Moyens de paiement et canaux
Chaque moyen de paiement avec lequel Wajub encaisse, son identifiant de canal et où il fonctionne.
Wajub encaisse via cinq familles de moyens de paiement, derrière une seule API. Chacune est désignée
par un canal, et un canal est soit une famille à part entière, mobile, card, bank ou
crypto, soit un opérateur précis au format country.operator.
Vous avez rarement besoin d'en nommer un. La page hébergée propose tous les canaux disponibles pour la devise demandée et ne choisit rien à la place du client. Nommer un canal, c'est ce que fait l'API directe, quand vous avez déjà collecté le numéro vous-même.
Comment lire un canal
cm.mtn correspond à MTN Mobile Money au Cameroun, sn.wave à Wave au Sénégal. Le préfixe est le
code pays ISO 3166-1 alpha-2 et le suffixe l'opérateur. Un nom de famille seul, comme mobile,
laisse Wajub déduire l'opérateur à partir du numéro de téléphone.
Mobile Money
La colonne vertébrale de l'encaissement sur le continent. Le client valide sur son propre téléphone, depuis une invite USSD ou l'application de l'opérateur, et rien n'est encaissé tant qu'il ne l'a pas fait.
| Opérateur | Canaux | Pays | Devises |
|---|---|---|---|
cm.mtn ci.mtn bj.mtn gh.mtn ug.mtn rw.mtn ng.mtn | CM, CI, BJ, GH, UG, RW, NG | XAF, XOF, GHS, UGX, RWF, NGN | |
cm.orange ci.orange sn.orange bf.orange cd.orange | CM, CI, SN, BF, CD | XAF, XOF, CDF | |
ci.wave | CI | XOF | |
ug.airtel rw.airtel tz.airtel cd.airtel ga.airtel gh.airtel | UG, RW, TZ, CD, GA, GH | UGX, RWF, TZS, CDF, XAF, GHS | |
ci.moov bj.moov bf.moov | CI, BJ, BF | XOF | |
ke.mpesa ke.mpesa_till | KE | KES |
Plusieurs pays proposent d'autres opérateurs que les six ci-dessus : Express Union et Yoomee au
Cameroun, Free au Sénégal, Vodafone et AirtelTigo au Ghana, Vodacom, Tigo, Halopesa, Equitel et
T-Kash plus à l'est. Wajub expose aussi des canaux agrégés comme cm.mobile, qui permet de déduire
l'opérateur à partir du numéro plutôt que de le choisir à l'avance.
`GET /channels` fait foi
La couverture évolue, et ce qui est activé sur votre compte dépend des prestataires que votre équipe
a activés. Considérez le tableau ci-dessus comme la forme de l'offre et GET /channels comme la
vérité pour votre propre compte : cet appel ne demande aucune permission particulière et répond la
même chose pour chaque clé. Un nouveau canal est un changement rétrocompatible, il ne casse donc
jamais une intégration existante.
Cartes bancaires
Visa et Mastercard avec 3-D Secure 2, proposées sur la page hébergée partout où la devise de règlement le permet.
| Réseau | Détecté comme | Remarques |
|---|---|---|
visa | 3-D Secure 2 sur chaque transaction | |
mastercard | 3-D Secure 2 sur chaque transaction |
Le canal est card pour les deux réseaux. Vous ne nommez jamais la marque : Wajub la lit à partir
du numéro de carte et la renvoie dans card.brand sur le paiement. C'est aussi ainsi qu'American
Express, Discover, Diners, JCB et Maestro sont reconnues lorsqu'un prestataire les accepte.
Virements bancaires
Pour les gros montants, surtout entre entreprises. Le client reçoit des coordonnées bancaires, et le
paiement passe à succeeded une fois les fonds arrivés.
| Type | Canal | Pays |
|---|---|---|
bank | CM, CI, SN, NG, GH |
Un virement se règle au rythme de la banque, pas à celui du client. Attendez-vous à un délai entre le moment où il confirme et celui où le webhook est déclenché, et ne gardez jamais une commande ouverte dans le navigateur en l'attendant.
Portefeuilles
Apple Pay et Google Pay tokenisent la carte sur l'appareil : Wajub ne voit donc jamais la carte en clair ni les identifiants de l'appareil.
| Portefeuille | `wallet_type` | Nécessite |
|---|---|---|
apple_pay | Safari, iOS | |
google_pay | Chrome, Android |
Les portefeuilles nécessitent le SDK Components
Aucun des deux portefeuilles n'apparaît sur la page de paiement hébergée. Ils sont affichés par l'intégration Components embarquée, sous la forme d'un Payment Request Button qui ouvre la fenêtre native du portefeuille. Consultez Wajub Components → JS pour l'intégration.
Cryptomonnaies
Le paiement est réglé une fois le transfert confirmé sur la blockchain. Les canaux suivent le format
crypto.{asset}, et si vous ne fournissez pas de wallet_address, le payeur voit une adresse de
dépôt vers laquelle envoyer les fonds.
Douze actifs sont acceptés, sur les principales blockchains et les deux stablecoins en dollar :
| Actif | Canal |
|---|---|
crypto.btc | |
crypto.eth | |
crypto.usdt | |
crypto.usdc | |
crypto.bnb | |
crypto.sol | |
crypto.xrp | |
crypto.ada | |
crypto.ltc | |
crypto.matic | |
crypto.doge | |
crypto.trx |
Ceux que vos clients voient réellement dépendent du prestataire crypto activé sur votre compte :
lisez donc GET /channels avant de construire un sélecteur, plutôt que de supposer que les douze
sont actifs.
Où en est chaque pays
La devise décide des canaux qui existent, et les prestataires du compte décident lesquels sont activés.
| Pays | Devise | Mobile Money | Cartes |
|---|---|---|---|
| XAF | MTN, Orange, Express Union, Yoomee | Oui | |
| XOF | MTN, Orange, Wave, Moov | Oui | |
| XOF | Orange, Free | Oui | |
| XOF | MTN, Moov, Glo | Oui | |
| XOF | Orange, Moov | Oui | |
| XOF | Moov | Oui | |
| XOF | Orange | Oui | |
| GHS | MTN, Vodafone, AirtelTigo | Oui | |
| NGN | MTN | Oui | |
| KES | M-Pesa, Airtel, Equitel, T-Kash | Oui | |
| UGX | MTN, Airtel | Oui | |
| RWF | MTN, Airtel | Oui | |
| TZS | Vodacom, Airtel, Tigo, Halopesa | Oui |
Montants et plafonds
Deux limites différentes s'appliquent au même paiement, et elles sont faciles à confondre.
La première concerne le paiement lui-même. En XAF et XOF, il doit être compris entre 25 et
2 000 000 ; en dehors de cette plage, l'appel de création est refusé avec un 422 qui indique la
borne dans errors.amount.
La seconde est ce qu'un seul débit Mobile Money peut porter, plafonné à 500 000 XAF, et au même
montant en XOF. Un paiement au-dessus n'est pas refusé : la page hébergée l'encaisse en tranches
successives, et c'est la seule situation où un paiement reste en partial. Consultez le cycle de
vie d'un paiement pour comprendre ce que signifie cet état.
Votre propre plafond est plus bas tant que vous n'êtes pas vérifié
Les chiffres ci-dessus sont ceux de la plateforme. Ce que votre compte peut réellement encaisser dépend de votre niveau de vérification, et un compte non vérifié a un plafond live de zéro. Vérifiez-le dans Settings → Compliance, comme expliqué dans Activation du compte.
Vous ne pouvez pas restreindre la liste par paiement
Il n'existe pas de paramètre channels sur POST /payments : la page hébergée affiche donc
toujours tout ce qui est disponible pour la devise. Pour passer complètement l'écran de sélection,
ne créez pas le paiement autrement : débitez-le vous-même avec POST /payments/{id} et un
channel, c'est le parcours API directe décrit dans Choisir une
intégration.
Pages associées
- Formats de numéros de téléphoneCe que chaque opérateur accepte, avant même qu'un paiement puisse démarrer.
- Cycle de vie d'un paiementY compris les tranches en lesquelles un gros paiement Mobile Money est découpé.
- Devise de règlement et soldeDans quelle devise vous êtes payé, et quand.
- Frais et tarifsCe que chaque canal vous coûte.
- Envoyer vers ces canauxDes payouts Mobile Money avec Transferts.