Supported Networks
| Country | Code | Operators |
|---|---|---|
| Uganda | 256 | MTN MoMo, Airtel Money |
| Kenya | 254 | M-Pesa, Airtel Money |
| Tanzania | 255 | M-Pesa, Tigo, Airtel |
| Rwanda | 250 | MTN MoMo, Airtel Money |
How It Works
Mobile money is asynchronous. When you callPOST /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.
Endpoints
| Operation | Method | Endpoint |
|---|---|---|
| Collect (receive money) | POST | /api/v1/collect |
| Disburse (send money) | POST | /api/v1/disburse |
| Check status | GET | /api/v1/transactions/:ref |
| List transactions | GET | /api/v1/transactions |
Phone Number Format
All numbers must be in international format without+:
Test Mode
In test mode with atest_ key:
- Use
256700000000as the test number — payment completes immediately - No real USSD is sent to any phone
- Your
callback_urlstill 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. Thenet_amount field in the response reflects what is credited to your wallet.