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. Par défaut, la page hébergée propose tous les canaux sur
lesquels votre compte peut encaisser, quelle que soit la devise, et ne choisit rien à la place du
client. Vous pouvez réduire cette liste paiement par paiement avec
accept. 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 zm.mtn cg.mtn gn.mtn lr.mtn | CM, CI, BJ, GH, UG, RW, ZM, CG, GN, LR | XAF, XOF, GHS, UGX, RWF, ZMW, GNF, LRD | |
cm.orange ci.orange sn.orange bf.orange ml.orange gn.orange cd.orange. Bientôt disponible : sl.orange | CM, CI, SN, BF, ML, GN, SL, CD | XAF, XOF, GNF, SLL, CDF | |
ci.wave sn.wave | CI, SN | XOF | |
ug.airtel rw.airtel tz.airtel ke.airtel zm.airtel mw.airtel cd.airtel cg.airtel ga.airtel | UG, RW, TZ, KE, ZM, MW, CD, CG, GA | UGX, RWF, TZS, KES, ZMW, MWK, CDF, XAF | |
ci.moov bj.moov bf.moov tg.moov ml.moov ga.moov | CI, BJ, BF, TG, ML, GA | XOF, XAF | |
ke.mpesa tz.mpesa mz.mpesa | KE, TZ, MZ | KES, TZS, MZN |
D'autres opérateurs complètent le catalogue : Express Union au Cameroun (cm.eu), Free au Sénégal,
T-Money au Togo, Vodafone et AirtelTigo au Ghana, Tigo et Halopesa en Tanzanie, Vodacom et Africell
en RD Congo, Zamtel en Zambie, TNM au Malawi, Vodafone Cash en Égypte et Capitec Pay en Afrique du
Sud.
mobile et cm.mobile, pour le Cameroun, ne sont pas des canaux du catalogue. Ce sont les deux
raccourcis qu'accepte l'appel de débit, pour
laisser Wajub déduire l'opérateur à partir du numéro plutôt que de le nommer à l'avance. Aucun autre
pays n'a d'agrégat : débitez le canal de son opérateur.
`GET /providers` donne la liste de votre compte
La couverture évolue. GET /channels est le catalogue global : tous les
canaux pris en charge par Wajub, la même réponse pour chaque clé, filtrée par country si vous le
passez. Ce que votre propre compte peut accepter dépend des prestataires que votre équipe a
activés, et c'est GET /providers : chaque connexion active avec les canaux
qu'elle propose réellement, ceux qu'affiche le checkout hébergé. Considérez le tableau ci-dessus
comme la forme de l'offre. Un nouveau canal est un changement rétrocompatible, il ne casse donc
jamais une intégration existante.
Cartes bancaires
Visa et Mastercard, 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 demande | |
mastercard | 3-D Secure 2 sur demande |
Le canal est card pour les deux réseaux. Vous ne nommez jamais la marque : Wajub la lit à partir
du numéro de carte pour router le paiement. C'est aussi ainsi qu'American Express, Discover, Diners,
JCB et Maestro sont reconnues lorsqu'un prestataire les accepte. Le paiement lui-même ne porte aucun
champ card.brand.
Wajub demande le 3-D Secure quand Shield l'exige : l'Auto 3DS de Shield Advanced à partir
de votre seuil de revue, ou une règle challenge_3ds. Sinon, le prestataire et l'émetteur de la carte
appliquent leur propre politique.
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 fonctionnent en live uniquement
Un portefeuille apparaît sur la page hébergée et dans les composants intégrés quand l'un de vos prestataires le propose, en live. La sandbox masque tous les portefeuilles : vous ne pouvez pas en tester un. Consultez Wajub Components → JS pour le côté composants.
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.
Quatre actifs figurent au catalogue, les deux stablecoins en dollar et les deux principales blockchains :
| Actif | Canal |
|---|---|
crypto.btc | |
crypto.eth | |
crypto.usdt | |
crypto.usdc |
L'API accepte aussi crypto.bnb, crypto.sol, crypto.xrp, crypto.ada, crypto.ltc,
crypto.matic, crypto.doge et crypto.trx comme channel, mais aucun prestataire du catalogue ne
les prend en charge. Ceux que vos clients voient réellement parmi les quatre dépendent du
prestataire crypto activé sur votre compte : lisez donc GET /providers avant de construire un
sélecteur.
La crypto est bientôt disponible
Aucun prestataire portant ces quatre actifs ne peut encore être connecté : aucun compte ne peut donc les débiter en live aujourd'hui. Couverture liste les autres rails dans la même situation.
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 | Oui | |
| XOF | MTN, Orange, Wave, Moov | Oui | |
| XOF | Orange, Wave, Free | Oui | |
| XOF | MTN, Moov | Oui | |
| XOF | Orange, Moov | Oui | |
| XOF | T-Money, Moov | Oui | |
| XOF | Orange, Moov | Oui | |
| GHS | MTN, Vodafone, AirtelTigo | Oui | |
| NGN | Aucun. Virement bancaire, USSD, OPay et PalmPay à la place | Oui | |
| KES | M-Pesa, Airtel | Oui | |
| UGX | MTN, Airtel | Oui | |
| RWF | MTN, Airtel | Oui | |
| TZS | M-Pesa, Airtel, Tigo, Halopesa | Oui | |
| XAF | Airtel, Moov | Oui | |
| XAF | MTN, Airtel | Oui | |
| CDF | Orange, Airtel, Vodacom, Africell | Oui | |
| GNF | MTN, Orange | Oui | |
| LRD | MTN | Oui | |
| SLL | Orange | Oui | |
| ZMW | MTN, Airtel, Zamtel | Oui | |
| MWK | Airtel, TNM | Oui | |
| MZN | M-Pesa | Oui |
Choisir ce qu'un paiement accepte
Rien n'est masqué par défaut : le payeur voit tous les moyens sur lesquels votre compte peut
encaisser, et un paiement dans une devise que le portefeuille n'utilise pas est converti, comme
décrit dans Limites. Pour réduire la liste, envoyez accept à la création du
paiement, du lien ou de la facture. Chaque clé est facultative, et une clé omise ne restreint rien.
accept.countriesstring[]facultatifaccept.channelsstring[]facultatifcm.mtn. Un agrégat comme cm.mobile désigne tous les opérateurs mobiles du pays, et mobile tous les opérateurs mobiles.accept.typesstring[]facultatifmobile_money ou card.accept.currenciesstringfacultatifany (par défaut) propose tous les canaux et convertit le montant quand les devises diffèrent. payment ne garde que les canaux qui règlent dans la devise du paiement : un paiement en XAF n'affiche plus le Mobile Money kényan.La restriction est conservée sur le paiement et s'applique deux fois : la page ne propose que ce
qu'elle autorise, et un débit qui nomme un autre canal est refusé par un 422 et le code
channel_not_accepted. Si accept ne laisse aucun moyen de payer, c'est la création elle-même qui
répond 422 sur accept, plutôt que de produire une page sans aucun moyen de paiement.
Un débit envoyé sur mobile ou sur cm.mobile est vérifié sur l'opérateur
que donne le numéro, pas sur l'agrégat. Avec la restriction ci-dessus, cm.mobile et un numéro MTN
Cameroun est débité sur cm.mtn, et un numéro ivoirien est refusé. Un paiement restreint à
"channels": ["mobile"] accepte tout opérateur Mobile Money, quel que soit celui que donne le
numéro, et aucun canal carte, bancaire ou crypto.
Un lien ou une facture porte son propre accept, que chaque paiement ouvert depuis lui hérite.
Sur un lien ou une facture, accept: {} supprime la restriction. Dans le Dashboard, les mêmes
champs se trouvent sous Moyens de paiement, dans le composer de lien et sur le formulaire de
facture.
Prévisualiser les moyens avant de créer un paiement
GET /payments/options liste les canaux qu'un payeur pourrait utiliser pour une devise et un
montant, avant qu'aucun paiement n'existe : ceux que votre compte propose sur la page de paiement,
restreints au country du payeur et au minimum et au maximum de chaque canal. Il prend la même
restriction accept que POST /payments. Servez-vous-en pour dessiner votre propre choix de moyen
de paiement ; une fois le paiement créé, c'est lui qui fixe ce qui est réellement proposé au payeur.
curl "https://api.wajub.com/payments/options?currency=XAF&amount=25000&country=CM&locale=fr" \
-H "Authorization: sk_test.xxxxxxxxxxxxxxxx…"La réponse porte code, status, message et channels : chacun avec son slug, name,
name.fr, type, logo et countries, et operators pour cm.mobile.
Lister les options de paiement
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. En live, un paiement au-dessus est refusé avec un 422 au moment de le débiter.
Seule la sandbox 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.
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.