Skip to content

Providers & channels

Which channels a payout can use, and what decides whether one is available.

A channel names an operator in a country: cm.mtn is MTN Cameroon, sn.wave is Wave Senegal. It is set on the beneficiary, so it is fixed the day the destination is created; the list below is what the API accepts, and what actually executes depends on your account.

What has to line up

A channel from the list below is accepted when you name it, but a payout only executes on a channel your account can pay out on, in that currency.

CaseRefused with
The slug is not a payout channel422 The selected beneficiary.channel is invalid.
Your account has no payout route for that channel and currency422 No payout provider is available for this channel and currency.

The channels the API accepts

Fifty Mobile Money channels across twenty-two countries. Any of them is a valid beneficiary.channel.

CountryChannels
Beninbj.mtn bj.moov
Burkina Fasobf.orange bf.moov
Camerooncm.mtn cm.orange cm.eu
Congo-Brazzavillecg.mtn cg.airtel
Côte d'Ivoireci.mtn ci.orange ci.moov ci.wave
DR Congocd.vodacom cd.airtel cd.orange cd.africell
Egypteg.vodafone
Gabonga.airtel ga.moov
Ghanagh.mtn gh.vodafone gh.airteltigo
Guineagn.mtn gn.orange
Kenyake.mpesa ke.airtel
Liberialr.mtn
Malawimw.airtel mw.tnm
Maliml.orange ml.moov
Mozambiquemz.mpesa
Rwandarw.mtn rw.airtel
Senegalsn.orange sn.free sn.wave
Sierra Leonesl.orange
Tanzaniatz.mpesa tz.airtel tz.tigo tz.halopesa
Togotg.tmoney tg.moov
Ugandaug.mtn ug.airtel
Zambiazm.mtn zm.airtel zm.zamtel

cd.vodacom and mz.mpesa are both M-Pesa, and cm.eu is Express Union.

Three more channels are valid for a beneficiary without being Mobile Money: ci.djamo and sn.djamo, Djamo wallets paid by phone number, and wajub, another Wajub account paid by its account number, which never leaves Wajub and carries no fee.

Any other channel, a bank among them, answers 422 The selected beneficiary.channel is invalid. A bank destination is a payout account you create in the Dashboard on the wire channel.

The generic channel

A payout names its channel: the operator's own slug from that table, such as ke.mpesa or eg.vodafone. There is one exception, Cameroon: cm.mobile works out from the number whether it is cm.mtn or cm.orange. Beneficiaries covers how that resolution behaves and how it fails.

No other country has a generic channel. ke.mobile, eg.mobile or any other {country}.mobile is refused like an unknown channel, with 422 and The selected channel is invalid.. Even in Cameroon, name the operator whenever you know it: a resolution that fails costs you a 422 where an explicit slug would have gone straight through.

Coverage belongs to your account

Every channel other than cm.mtn, cm.orange and cm.eu needs a payout provider connected to your account and approved by Wajub for live payouts; GET /providers lists what your account has. A provider connected for collections does not turn its payout side on.

What the currency does, and does not, decide

Send the currency the operator settles in: XAF on cm.*, XOF on ci.*. A currency your account cannot pay out in on that channel is refused with the same No payout provider is available for this channel and currency. as any other gap in coverage.

Which provider handles it

There is no provider field on a transfer and no per-call override: you name a channel. When several payout providers connected to your account can carry it, the priority you set on each decides the order, and a failure moves down the list. Orchestration covers how to set that priority.

The transfer tells you afterwards which one ran it, in provider, and the operator's own identifier lands in provider_reference once the payout reaches it.

What did you think of this content?