Mobile Money Overview
Accept and send money via MTN MoMo, Airtel Money, M-Pesa, and Tigo across East Africa.
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 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.
output.txtText
POST /api/v1/collect → status: "pending"
USSD sent to user's phone
↓
User approves
↓
Webhook: deposit.successful → your callback_url
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 +:
output.txtText
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 an Iotec sandbox number such as
256111777771(success) — see Test Numbers for the full set - 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. The net_amount field in the response reflects what is credited to your wallet.
