Send Money (also known as disbursements or withdrawals) allows you to send payments to customers via mobile money. The provider is detected automatically from the phone number and country (Uganda MTN/Airtel, Kenya M-Pesa, Rwanda MTN/Airtel, DRC Vodacom/Airtel/Orange, Zambia MTN/Airtel/Zamtel, Cameroon MTN/Orange, Benin MTN/Moov, Côte d’Ivoire MTN/Orange, Gabon Airtel, Congo-Brazzaville MTN/Airtel, Senegal Orange/Free, Sierra Leone Orange).

How send money works

1

Create a request

Send a POST request to /api/v1/send-money with the amount and the recipient’s phone number.
2

Provider detected

The system automatically detects the mobile money provider for that market from the phone number.
3

Money transferred

Money is transferred directly to the recipient’s mobile money account.
4

Notification sent

The recipient receives an SMS notification of the incoming payment, and you receive a webhook with the result.

Pricing

Fees come from the public pricing page. Custom business rates may differ. Send money works in all 12 markets: UG, KE, RW, CD, ZM, CM, BJ, CI, GA, CG, SN, and SL. For DRC, also send currency as CDF or USD.

API endpoints

Send money

To send money, send a POST request to the send money endpoint with the required parameters.

Request parameters

Required fields Optional fields

Reference requirements

API Send Money requires a valid UUID reference:
  • Must be in UUID v4 format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
  • Must be unique across all API send money transactions
  • Cannot be reused - each transaction needs a unique reference
  • Maximum 50 characters
Valid UUID examples:
  • c97fae8b-9b7f-4192-9f72-6f0859d33e67
  • 123e4567-e89b-12d3-a456-426614174000

Example request (Uganda)

Example request (Kenya / M-Pesa)

Example response

Provider detection

The system automatically detects the mobile money provider based on the phone number pattern.

MTN / Airtel (Uganda)

country: UG · +256
Auto-detected from phone number

M-Pesa (Kenya)

country: KE · +254

MTN / Airtel (Rwanda)

country: RW · +250

Vodacom / Airtel / Orange (DRC)

country: CD · CDF or USD · +243

Zambia / Cameroon

ZM · ZMW · +260 · Zambia
CM · XAF · +237 · Cameroon

West & Central Africa

BJ / CI / SN · XOF
GA / CG · XAF · SL · SLE

Sandbox mode

New accounts start in sandbox mode where you can test all send money features without processing real payments or creating actual transactions.
  • No actual mobile money API calls are made
  • No real transactions are created in the database
  • Immediate dummy success response
  • Generated sandbox provider references
  • Status set to sandbox

Webhooks & callbacks

You can receive real-time notifications about send money status through webhooks or custom callback URLs. Optional metadata: if you sent metadata on create, the same array is included at the top level of the callback payload (success and failure). Example callback payload

Best practices

Phone number format

  • Always include country code (+256 for Uganda)
  • Use the format: +256xxxxxxxxx
  • Ensure the number is active and registered for mobile money
  • Verify recipient details before sending large amounts

Withdrawal phone numbers (optional)

Withdrawal phone numbers are optional and provide an additional layer of security and convenience. If you have withdrawal phone numbers set up, you can only send money to those registered phone numbers. If you don’t have them configured, you can send money to any valid phone number (normal operation). Manage withdrawal phone numbers in your account settings.

Amount limits

  • Minimum amount: 500 UGX
  • Maximum amount: 10,000,000 UGX
  • Consider recipient’s mobile money limits
  • Check your account balance before sending

Error handling

  • Always check the response status
  • Handle failed send money requests gracefully
  • Implement retry logic for failed requests
  • Monitor webhook delivery and implement fallbacks
  • Keep transaction logs for audit purposes

Security considerations

Verified recipients

Never send money to unverified recipients.

Authentication

Implement proper authentication and authorization.

HTTPS

Use HTTPS for all API calls.

Monitoring

Monitor for suspicious transaction patterns.