Aller au contenu

Moyens de paiement et canaux

Chaque moyen de paiement avec lequel Wajub encaisse, son identifiant de canal et où il fonctionne.

Chaque moyen de paiement est désigné par un canal : une famille à part entière, mobile, card, bank ou crypto, ou un opérateur précis au format country.operator. La page hébergée propose tous les canaux sur lesquels votre compte peut encaisser ; réduisez cette liste paiement par paiement avec accept, et ne nommez un canal que dans un débit par l'API directe.

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.

Chaque famille a sa page :

Où en est chaque pays

La devise décide des canaux qui existent, et les prestataires du compte décident lesquels sont activés.

PaysDeviseMobile MoneyCartes
CamerounCamerounXAFMTN, Orange, Express UnionOui
Côte d'IvoireCôte d'IvoireXOFMTN, Orange, Wave, MoovOui
SénégalSénégalXOFOrange, Wave, FreeOui
BéninBéninXOFMTN, MoovOui
Burkina FasoBurkina FasoXOFOrange, MoovOui
TogoTogoXOFT-Money, MoovOui
MaliMaliXOFOrange, MoovOui
GhanaGhanaGHSMTN, Vodafone, AirtelTigoOui
NigeriaNigeriaNGNAucun. Virement bancaire, USSD, OPay et PalmPay à la placeOui
KenyaKenyaKESM-Pesa, AirtelOui
OugandaOugandaUGXMTN, AirtelOui
RwandaRwandaRWFMTN, AirtelOui
TanzanieTanzanieTZSM-Pesa, Airtel, Tigo, HalopesaOui
GabonGabonXAFAirtel, MoovOui
CongoCongoXAFMTN, AirtelOui
RD CongoRD CongoCDFOrange, Airtel, Vodacom, AfricellOui
GuinéeGuinéeGNFMTN, OrangeOui
LiberiaLiberiaLRDMTNOui
Sierra LeoneSierra LeoneSLLOrangeOui
ZambieZambieZMWMTN, Airtel, ZamtelOui
MalawiMalawiMWKAirtel, TNMOui
MozambiqueMozambiqueMZNM-PesaOui

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[]facultatif
Uniquement les canaux de ces pays, en codes ISO 3166-1 alpha-2. Les cartes et la crypto n'appartiennent à aucun pays : cette clé ne les retire jamais.
accept.channelsstring[]facultatif
Uniquement ces canaux, comme cm.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[]facultatif
Uniquement ces types de canal, comme mobile_money ou card.
accept.currenciesstringfacultatif
any (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.
Un paiement en USD, Mobile Money camerounais uniquement
{
"amount": 99.5,
"currency": "USD",
"email": "buyer@example.com",
"accept": {
"countries": [
"CM"
],
"types": [
"mobile_money"
]
}
}

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.

Moyens pour 25 000 XAF au Cameroun
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. logo_png, sur un canal et sur chaque opérateur, est le même logo en PNG, pour une application qui n'affiche pas de SVG, ou null quand il n'y en a pas. 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. Un paiement au-dessus est refusé avec un 422 au moment de le débiter.

Que pensez-vous de ce contenu ?