Countries and operators
Where you can collect, which operator codes to use, and the amount limits that apply.
Countries and operators
You pick an operator, not a provider. How each operator is reached is handled by Genuka Pay and can change without affecting your integration.
Coverage
Central Africa — XAF
| Country | Operator codes |
|---|---|
| Cameroon | MTN_MOMO, ORANGE_MONEY, CARD |
| Gabon | AIRTEL_GABON, MOOV_GABON |
| Chad | AIRTEL_TCHAD, MOOV_TCHAD |
| Congo | MTN_CONGO, AIRTEL_CONGO |
| Central African Republic | ORANGE_RCA |
| Equatorial Guinea | MUNI_DINERO |
West Africa — XOF
| Country | Operator codes |
|---|---|
| Ivory Coast | ORANGE, MTN, MOOV, WAVE, DJAMO |
| Senegal | ORANGE, FREE |
| Burkina Faso | ORANGE, MOOV |
| Togo | TMONEY, MOOV |
| Mali | MOOV |
| Benin | MOOV |
CARD is not a mobile money operator: it is bank card payment, available in Cameroon, as a redirect flow and subject to your account being enabled for it.
The same code does not mean the same thing everywhere
ORANGE in Ivory Coast and ORANGE_MONEY in Cameroon are two distinct codes. Always send country alongside the operator code, or let it be derived from the payer's phone number.
Amount limits
| Per transaction | Per month | |
|---|---|---|
| Minimum | 100 | — |
| KYC level 1 (email verified) | 100,000 | 300,000 |
| KYC level 2 (identity approved) | 500,000 | 1,500,000 |
| KYC level 3 (business approved) | 500,000 | 10,000,000 |
Amounts in the corridor's currency (XAF or XOF). The ceiling actually enforced is the lower of the operator ceiling and your KYC ceiling — today the KYC ceiling is the binding one everywhere. See Account activation and KYC.
Query coverage from your code
Rather than hard-coding this table, read it at runtime:
GET /api/v1/operator-providerscurl -X GET "{{BASE_URL}}/api/v1/operator-providers?filter[country]=CI" \
-H "X-Public-Key: YOUR_PUBLIC_KEY" \
-H "X-Timestamp: UNIX_TIMESTAMP" \
-H "X-Signature: HMAC_SHA256_SIGNATURE"{
"data": [
{
"id": "01HR...",
"operator_code": "ORANGE",
"country": "CI",
"active": true,
"min_payin_amount": 100,
"max_payin_amount": 2000000,
"min_payout_amount": 5,
"max_payout_amount": 2000000
}
]
}The endpoint returns one entry per operator per country. Available filters: filter[country] (two-letter ISO code) and filter[operator_code].
Two fields not to build on
max_payin_amount is the operator's ceiling, not yours: your KYC ceiling takes precedence. And provider_code exposes which provider is used at a point in time — it is informational, can change between calls, and must not drive anything in your integration.
Next
How is this guide?
Last updated on