Logo GenukaGenuka Pay
Guides

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

CountryOperator codes
CameroonMTN_MOMO, ORANGE_MONEY, CARD
GabonAIRTEL_GABON, MOOV_GABON
ChadAIRTEL_TCHAD, MOOV_TCHAD
CongoMTN_CONGO, AIRTEL_CONGO
Central African RepublicORANGE_RCA
Equatorial GuineaMUNI_DINERO

West Africa — XOF

CountryOperator codes
Ivory CoastORANGE, MTN, MOOV, WAVE, DJAMO
SenegalORANGE, FREE
Burkina FasoORANGE, MOOV
TogoTMONEY, MOOV
MaliMOOV
BeninMOOV

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 transactionPer month
Minimum100—
KYC level 1 (email verified)100,000300,000
KYC level 2 (identity approved)500,0001,500,000
KYC level 3 (business approved)500,00010,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-providers
curl -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"
Response
{
  "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