Supported Networks

CountryCodeOperators
Uganda256MTN MoMo, Airtel Money
Kenya254M-Pesa, Airtel Money
Tanzania255M-Pesa, Tigo, Airtel
Rwanda250MTN MoMo, Airtel Money

How It Works

Mobile money is asynchronous. When you call POST /api/v1/collect, the API triggers a USSD prompt on the user’s phone. You don’t know if they approved until the webhook fires.
POST /api/v1/collect  →  status: "pending"
                         USSD sent to user's phone

                         User approves

Webhook: deposit.successful  →  your callback_url

Endpoints

OperationMethodEndpoint
Collect (receive money)POST/api/v1/collect
Disburse (send money)POST/api/v1/disburse
Check statusGET/api/v1/transactions/:ref
List transactionsGET/api/v1/transactions

Phone Number Format

All numbers must be in international format without +:
Uganda:   256700123456
Kenya:    254712345678
Tanzania: 255712345678
Rwanda:   250780123456
See Phone Formats for full conversion guide per country.

Test Mode

In test mode with a test_ key:
  • Use 256700000000 as the test number — payment completes immediately
  • No real USSD is sent to any phone
  • Your callback_url still receives a webhook with the test result
  • Disbursements are blocked — switch to a live_ key for disbursement testing

Commission

A platform commission of 1% is deducted from each collected amount. The net_amount field in the response reflects what is credited to your wallet.