Skip to main content

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

FlowMerchant integrationContinue with
Hosted pay-in (H2P)Initialize the payment and redirect the customer to the returned payment pagePay-ins
Direct pay-in (H2H)Discover any required operator, create the payment, and handle OTP when requestedPay-ins
PayoutDiscover the beneficiary operator, create the payout, and reconcile the resultPayouts

Direct pay-in

  1. Call the pay-in operator discovery operation with the selected market and request context.
  2. Display operators[].name and reuse the selected operators[].operator exactly as returned.
  3. Create the pay-in with the mobile number and selected operator in the mobile-money detail block.
  4. When the response says OTP authorization is required, collect the token and authorize that payment order.
  5. 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

  1. Call the payout operator discovery operation for the selected market and request context.
  2. Reuse the selected operator exactly as returned when you create the payout.
  3. Send a beneficiary account name when the selected payout path requires one.
  4. 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.

API reference