Skip to main content
Airtel Money — Open API merchant payments.

Covered countries

CountryCodeCurrency
RwandaRWRWF
Additional Airtel markets (Uganda, Tanzania, DRC…) will be added post-launch.

URLs

TypeURL
Dev portaldevelopers.airtel.africa
Sandbox UAThttps://openapiuat.airtel.africa
OAuth tokenhttps://openapiuat.airtel.africa/auth/oauth2/token
Paymenthttps://openapiuat.airtel.africa/merchant/v1/payments/
USSD client*185#

Required credentials

Enter these in Settings → Stores → Airtel:
FieldTypeDescription
client_idtextOAuth client_id for your Airtel Developer app.
client_secretpasswordAssociated OAuth secret.

Specifics

  • OAuth client_credentials with JSON body: unlike Orange (which expects x-www-form-urlencoded), Airtel requires a JSON body { "client_id": ..., "client_secret": ..., "grant_type": "client_credentials" } on the token endpoint. SandPay handles this variant via oauthClientCredentialsJsonBody.
  • The X-Country and X-Currency headers are required on the POST /merchant/v1/payments/ call — they are derived from the MSISDN or explicitly passed via the country field.
  • msisdn is sent without the + in the subscriber object.
  • The Airtel payload separates subscriber (the payer) and transaction (the movement) — SandPay copies reference into both id fields to remain idempotent.
  • Nested response: data.transaction.id — this value is stored as provider_tx_id.

See also