Mobile Wallet
Use the Payouts API to send funds to mobile money wallets (MoMo). Set paymentMethodId to "mobilemoney" and provide a recipient object with type: "mobile_money".
Request Shape
Set paymentMethodId to "mobilemoney" and provide recipient with the following structure:
Top-level required fields for every payout:
- Required:
merchantId,merchantReference,destinationValue(withminorAmountandcurrency),paymentMethodId("mobilemoney"),paymentLocation,recipient - Optional:
sender,attributes
Example Request
Note: minorAmount: 500000 = 5,000.00 KES (multiply major units by 100 to get minor units).
Required vs Optional Summary
- Required for
recipient(mobile_money):type("mobile_money"),phoneNumber,country,operator - Optional for
recipient:name - Required at request level:
merchantId,merchantReference,destinationValue,paymentMethodId,paymentLocation,recipient - Optional at request level:
sender,attributes
Operator and Currency
Operator choice depends on the destination currency and country:
Use the operator enum value that matches the recipient’s wallet (e.g. M-Pesa in Kenya → mpesa). Valid operator values: airtel, airteltigo, celtiis, fawry, free, halotel, moov, mpesa, mtn, opay, orange, tigo, vodacom, wave, zamtel.
Amount Format: Amounts are specified in minor units (integer). For example, minorAmount: 500000 = 5,000.00 KES. See Single Payouts for details.
Phone Number Format
Phone numbers are automatically normalized to international format. You can provide numbers in:
- Local format:
0723993187(Kenya) → normalized to254723993187 - International format:
+254723993187or254723993187→ normalized to254723993187
Mobile Number Verification
Before initiating a payout, you can verify that a mobile number is valid and registered with the mobile money provider using the Mobile Number Verification API. This helps:
- Reduce payout failures due to invalid or unregistered numbers
- Display the account holder’s name for confirmation before disbursement
- Catch errors early in the disbursement process
The verification API is currently available for M-Pesa in Kenya. Contact CrissCross support for availability in other markets.
Where Mobile Wallet Is Supported
Not every currency supports mobile wallet payouts. See Supported Destinations for a table of currencies, countries, and supported rails.
Next Steps
- Mobile Number Verification — Validate mobile numbers before processing payouts
- Single Payouts — Create one-off mobile wallet payouts
- Bulk Payouts — Send multiple payouts in one request
- Supported Destinations — Currencies and rails by destination
- Sandbox Testing — Test scenarios using test phone numbers (MSISDNs) and account suffixes