Coverage
Countries, currencies and mobile money operators, and which ones the API accepts today.
Monerail covers 22 African countries. The API accepts 20 of them today, in 10 currencies: XAF, XOF, GNF, CDF, NGN, GHS, KES, UGX, TZS and RWF. Availability is being extended to the 2 countries marked Opening, to collections in NGN and to USD in DR Congo. Cards are issued in US dollars and work online worldwide, wherever Visa or Mastercard is accepted.
The tables below are a guide. The source of truth for your integration is List operators: it returns the operators open right now for a currency (and, with country, for one country), in the mode of your key. Operators and limits are confirmed for your business during onboarding.
Central Africa
| Country | ISO | Currency | Available in the API | Main operators |
|---|---|---|---|---|
| Cameroon | CM |
XAF |
Yes | MTN MoMo, Orange Money |
| Gabon | GA |
XAF |
Yes | Airtel Money, Moov Money |
| Chad | TD |
XAF |
Yes | Airtel Money, Moov Money |
| Congo | CG |
XAF |
Yes | MTN MoMo, Airtel Money |
| Central African Republic | CF |
XAF |
Yes | Orange Money, Telecel Money |
| DR Congo | CD |
CDF |
Yes (USD: opening) |
Airtel Money, M-Pesa, Orange Money, Afrimoney |
XAF is shared by six countries: send country (GA, TD, CG, CF) to collect or pay out outside Cameroon. Without it, XAF means Cameroon.
West Africa
| Country | ISO | Currency | Available in the API | Main operators |
|---|---|---|---|---|
| Côte d’Ivoire | CI |
XOF |
Yes | Orange Money, MTN MoMo, Moov Money, Wave |
| Senegal | SN |
XOF |
Yes | Orange Money, Wave, Free Money |
| Benin | BJ |
XOF |
Yes | MTN MoMo, Moov Money |
| Togo | TG |
XOF |
Yes | TMoney, Moov Money |
| Burkina Faso | BF |
XOF |
Yes | Orange Money, Moov Money |
| Ghana | GH |
GHS |
Yes | MTN MoMo, Telecel Cash, AirtelTigo Money |
| Nigeria | NG |
NGN |
Payouts: yes. Collections: opening | MTN MoMo, Airtel, bank transfer |
| Guinea | GN |
GNF |
Yes | MTN MoMo, Orange Money |
| Mali | ML |
XOF |
Yes | Orange Money, Moov Money |
| Niger | NE |
XOF |
Yes | Airtel Money |
In Nigeria, payouts go to mobile money wallets and bank accounts. Collections in NGN return 400 currency_unsupported until they open. Without country, XOF means Senegal.
East Africa
| Country | ISO | Currency | Available in the API | Main operators |
|---|---|---|---|---|
| Kenya | KE |
KES |
Yes | M-Pesa, Airtel Money |
| Uganda | UG |
UGX |
Yes | MTN MoMo, Airtel Money |
| Tanzania | TZ |
TZS |
Yes | Vodacom M-Pesa, Airtel Money, Mixx by Yas (Tigo), Halotel |
| Rwanda | RW |
RWF |
Yes | MTN MoMo, Airtel Money |
Southern Africa
| Country | ISO | Currency | Available in the API | Main operators |
|---|---|---|---|---|
| Zambia | ZM |
ZMW |
Opening | MTN MoMo, Airtel Money, Zamtel |
| South Africa | ZA |
ZAR |
Opening | Bank transfer and EFT |
Bank payouts
Bank payouts are available in Cameroon, Côte d’Ivoire, Senegal, Benin, Togo, Burkina Faso, Ghana, Nigeria, Kenya, Uganda, Tanzania and Rwanda (List banks returns the banks of each country). In Gabon, Chad, Congo, Central African Republic, DR Congo, Guinea, Mali and Niger, pay out to mobile money wallets: a bank payout returns 400 bank_transfer_unsupported.
Operator codes
Send the operator as operator on a collection, or as recipient.operator on a mobile money payout, with the matching country. These codes are recognised:
| Code | Operator | Live in |
|---|---|---|
MTN |
MTN MoMo | CM, CG, CI, BJ, GN, GH, NG, UG, RW |
ORANGE |
Orange Money | CM, CF, CD, CI, SN, BF, ML, GN |
MOOV |
Moov Money | GA, TD, CI, BJ, TG, BF, ML |
AIRTEL |
Airtel Money | GA, TD, CG, CD, NE, NG, KE, UG, TZ, RW |
WAVE |
Wave | CI, SN |
FREE |
Free Money | SN |
MPESA |
M-Pesa | CD, KE |
AFRIMONEY |
Afrimoney | CD |
VODACOM |
Vodacom M-Pesa | TZ |
TIGO |
Mixx by Yas (formerly Tigo Pesa) | TZ |
TELECEL |
Telecel Cash (formerly Vodafone Cash), Telecel Money | GH, CF |
AIRTEL_TIGO |
AirtelTigo Money | GH |
For TMoney (Togo) and Halotel (Tanzania), use the code returned by List operators for XOF or TZS. In every case, prefer the code from List operators over a hard-coded value: it is exactly what the API expects.
Operators that send a code
Most operators ask the customer to approve the payment on their phone with their PIN. Some send the customer a one-time code by SMS instead: the collection then moves to requires_otp and you send the code with authorize. Orange Money in Cameroon works this way, for example.
With other operators the customer generates the code: Orange Money in Guinea, for example. The collection is requires_otp from the start and next_action.ussd_code holds the USSD code to dial (*144*4*2*1#). Show it to your customer, ask for the code they get, and send it with authorize. Nothing is sent to the operator before the code; without a code within 15 minutes, the collection expires.
Which flow an operator uses can change, so do not hard-code it. Read authorization on each operator from List operators: PIN means approval on the phone, OTP means a code to send with authorize. The Collections guide shows both flows.
The live list
curl "https://api.monerail.com/v1/operators?currency=XAF&country=TD" \
-H "Authorization: Bearer $MONERAIL_KEY"Call it per currency (and per country for XAF and XOF), cache the answer for a few minutes (the API caches it for up to 10), and fill your operator picker from it. New operators then appear without a code change.
Opening markets
Availability in the API is being extended to Zambia and South Africa, to collections in NGN and to USD in DR Congo. Until then, ZMW, ZAR and USD are refused for collections and payouts with 400 currency_unsupported. Each opening is announced in the changelog. To ask for a country that is not listed, write to support@monerail.com.