Formats de numéros de téléphone
Comment Wajub lit un numéro Mobile Money, pays par pays, et ce qu'il rejette.
Le Mobile Money est identifié par numéro de téléphone partout où Wajub y touche : un client qui paie, un payout qui quitte votre solde, une marketplace qui règle un vendeur. Si le format est faux, le paiement échoue avant même que le client voie une demande de confirmation, ce qui en fait l'erreur d'intégration la plus fréquente que nous observons.
Envoyer au format E.164
Wajub attend la forme internationale : un +, l'indicatif du pays, puis le numéro d'abonné. Pas
d'espaces, pas de tirets, pas de parenthèses, pas de zéro initial issu du format national.
+[country code][subscriber number]
+237670000000 Cameroon, MTN
+221770000000 Senegal, Orange
+254700000000 Kenya, SafaricomUn numéro qui arrive sans son indicatif n'est pas automatiquement refusé. Wajub l'analyse avec
libphonenumber, et quand l'appel porte un pays sur lequel l'ancrer (un channel comme cm.mtn
suffit), un numéro local tel que 670000000 est lu comme +237670000000. Sans cet ancrage, il n'y a
rien sur quoi s'appuyer pour deviner, et le numéro revient en 422.
Envoyez quand même au format E.164
Compter sur ce repli, c'est compter sur l'exactitude de votre propre channel. Normalisez de votre
côté, au moment où le client saisit le numéro, et vous éliminez toute une catégorie d'échecs de
chaque appel qui suit.
Tous les pays couverts par Wajub
Seize pays, chacun avec son indicatif et les opérateurs que Wajub y connaît.
| Pays | Indicatif | Opérateurs |
|---|---|---|
+237 | MTN MoMo, Orange Money, Express Union, Yoomee Money | |
+225 | MTN MoMo, Orange Money, Moov Money, Wave, Green Money | |
+221 | Orange Money, Free Money | |
+229 | MTN MoMo, Moov Money, Glo | |
+226 | Orange Money, Moov Money | |
+234 | MTN MoMo, Orange Money | |
+233 | MTN MoMo, Vodafone Cash, Airtel Money, AirtelTigo Money | |
+254 | M-Pesa, M-Pesa Till, Airtel Till, Equitel, T-Kash | |
+256 | MTN MoMo, Airtel Money | |
+250 | MTN MoMo, Airtel Money | |
+255 | Airtel Money, Tigo Pesa, Vodafone Cash, HaloPesa | |
+243 | Airtel Money, Orange Money, Vodacom M-Pesa, Express Union | |
+241 | Airtel Money, Express Union | |
+235 | Express Union | |
+236 | Express Union | |
+242 | Express Union |
Comment l'opérateur est identifié
C'est là que la production et la sandbox diffèrent vraiment, et cette différence compte.
En production, Wajub interroge la base des opérateurs de libphonenumber pour savoir à qui appartient réellement le numéro. Cette base est maintenue par Google et suit les attributions réelles : elle résiste donc à la portabilité des numéros et aux nouvelles plages sans que personne ait à mettre à jour une table ici. Le nom d'opérateur renvoyé est associé à un opérateur connu : MTN, Orange, Airtel, Moov, Wave, Safaricom, Vodacom, Free, Nexttel, Camtel, Yoomee et Expresso sont reconnus. Un opérateur hors de cette liste est considéré comme non pris en charge.
En sandbox, il n'existe aucun vrai numéro à consulter : Wajub compare donc plutôt les préfixes ci-dessous. Ils sont synthétiques : ils servent à rendre les résultats de test déterministes, pas à décrire l'attribution des vrais numéros.
Ne construisez pas votre propre table de préfixes
Les préfixes ci-dessous sont ceux de la sandbox. Les recopier dans votre code revient à réimplémenter la détection d'opérateur avec des données fausses en production, et périmées le jour où une plage est réattribuée. Envoyez le numéro et laissez Wajub le résoudre.
| Pays et opérateur | Préfixe sandbox | Canal |
|---|---|---|
+23767… | cm.mtn | |
+23769… | cm.orange | |
+23768… | cm.eu | |
+23766… | cm.yoomee | |
+22505… | ci.mtn | |
+22507… | ci.orange | |
+22501… | ci.moov | |
+22503… | ci.wave | |
+22509… | ci.green | |
+22177… | sn.orange | |
+22176… | sn.free | |
+22990… | bj.mtn | |
+22991… | bj.moov | |
+22997… | bj.glo | |
+22670… | bf.orange | |
+22671… | bf.moov | |
+2348… | ng.mtn | |
+2347… | ng.orange | |
+23324… | gh.mtn | |
+23320… | gh.vodafone | |
+23326… | gh.airtel | |
+23327… | gh.airteltigo | |
+25470… | ke.mpesa | |
+25471… | ke.mpesa_till | |
+25473… | ke.airtel_till | |
+25476… | ke.equitel | |
+25477… | ke.tkash | |
+25677… | ug.mtn | |
+25675… | ug.airtel | |
+25078… | rw.mtn | |
+25073… | rw.airtel | |
+25567… | tz.airtel | |
+25565… | tz.tigo | |
+25574… | tz.vodafone | |
+25562… | tz.halopesa | |
+24399… | cd.airtel | |
+24389… | cd.orange | |
+24381… | cd.vodacom | |
+24382… | cd.eu | |
+2410… | ga.airtel | |
+2411… | ga.eu | |
+23566… | td.eu | |
+23670… | cf.eu | |
+24205… | cg.eu |
Laisser Wajub choisir le canal
Envoyez un numéro de téléphone sans channel et Wajub résout lui-même l'opérateur, puis route vers
le meilleur prestataire disponible pour cet opérateur. C'est le cas normal, et celui à privilégier.
Ne nommez un channel que si vous voulez imposer un opérateur, sur l'appel de débit d'une
intégration API directe. Si le numéro et le canal ne concordent pas, l'appel est refusé plutôt que
rerouté en silence.
Ce qui revient quand le numéro est faux
| Réponse | Cause | Correction |
|---|---|---|
422 sur phone | Pas de +, pas d'indicatif et rien pour ancrer le numéro | Normalisez au format E.164 avant l'envoi |
422 sur channel | Le canal désigne un opérateur qui ne dessert pas ce pays | Vérifiez les opérateurs du pays ci-dessus |
422, numéro et canal discordants | Le numéro appartient à un autre opérateur que celui indiqué | Retirez channel et laissez Wajub le résoudre |
failed avec invalid_phone | Le numéro a été analysé mais aucun opérateur ne le détient | Demandez au client de confirmer son numéro |
Les trois premiers sont des refus à la création : rien n'est débité et rien n'apparaît dans votre Dashboard. Le dernier est un vrai paiement qui a atteint un opérateur et en est revenu, et il figure dans le catalogue des motifs d'échec.
Pages associées
- Moyens de paiement et canauxChaque opérateur, son canal et où il fonctionne.
- Numéros de test sandboxLes suffixes qui déclenchent chaque résultat en mode test.
- Motifs d'échecLe catalogue complet, y compris invalid_phone.
- TransfertsLe même format, utilisé comme destination de payout.
- SyncLe même format, utilisé pour régler un vendeur de marketplace.