Mobile money
Last updated: 2026-07-17
Use mobile money when the selected market in GET /merchant/api/v1/catalog
returns mobile_money in methodsIn or methodsOut.
For market coverage, see Coverage. For operator-code discovery, see Mobile money operators.
Choose the flow
| Flow | Merchant integration | Continue with |
|---|---|---|
| Hosted pay-in (H2P) | Initialize the payment and redirect the customer to the returned payment page | Pay-ins |
| Direct pay-in (H2H) | Discover any required operator, create the payment, and handle OTP when requested | Pay-ins |
| Payout | Discover the beneficiary operator, create the payout, and reconcile the result | Payouts |
Direct pay-in
- Call the pay-in operator discovery operation with the selected market and request context.
- Display
operators[].nameand reuse the selectedoperators[].operatorexactly as returned. - Create the pay-in with the mobile number and selected operator in the mobile-money detail block.
- When the response says OTP authorization is required, collect the token and authorize that payment order.
- Reconcile the latest status through a verified webhook or a payment read.
For a voucher-based route, follow Vouchers and send a voucher PIN only when that route requires one.
Hosted pay-in
Call pay-in operator discovery when the selected standard mobile-money market
requires an operator. Send the returned public code in mobileMoneyOperator
during initialization; omit it only when discovery and the selected market do
not require an operator. The customer completes the remaining method-specific
step on the hosted page.
Redirect only when paymentOrder.paymentUrl is returned. Treat the customer
return as navigation, not payment confirmation.
Payout
- Call the payout operator discovery operation for the selected market and request context.
- Reuse the selected operator exactly as returned when you create the payout.
- Send a beneficiary account name when the selected payout path requires one.
- Reconcile the latest status; request acceptance is not a final payout outcome.
Request context
Use the same countryCode, paymentMethod, trafficVertical, and
customerSegment values for discovery and payment creation. Use the selected
market currency for the payment request.
Discovery responses use public CAPS codes. Treat them as opaque and case-sensitive: do not map, lowercase, rename, or hard-code them as a fixed enum. Store and send only the code returned for the current request context.
For the separate inbound-only transfer method, use Mobile money transfer.