Aller au contenu

Scénarios de test

Les numéros, cartes et comptes qui imposent chaque résultat.

Dans la sandbox, le résultat n'est pas aléatoire. Vous le choisissez avec le numéro de téléphone, la carte, le compte bancaire ou le portefeuille utilisé pour payer. Toutes les informations de cette page proviennent de la liste des numéros, cartes et comptes de test de la sandbox.

Mobile Money

Un numéro de test associe un préfixe d'opérateur à un suffixe de six chiffres qui détermine le résultat.

La formule
number = operator_prefix + outcome_suffix

+23767      +  000002   =  +237670000002
MTN Cameroon   failure      a payment that always fails

Les six suffixes

SuffixeRésultatCe que voit votre intégration
000000Réussitepayment.succeeded après environ 3 secondes
000001Fonds insuffisantsUn 402 sur la charge elle-même, avec error_code: insufficient_funds, comme un refus en live. Le paiement reste pending et payment.attempt_failed part
000002Échecpayment.failed, refusé par l'opérateur
000003Délai dépassépayment.expired, et le paiement finit expired
000004Annulépayment.cancelled, et le paiement finit cancelled
000009Réussite suivie de l'échec d'un remboursementpayment.succeeded, puis refund.failed

Les zéros supplémentaires au début sont acceptés

La partie abonné peut contenir des zéros supplémentaires avant le suffixe. Ainsi, +2376700000000 correspond également à 000000. Tout autre caractère entre le préfixe et le suffixe empêche la correspondance, et le débit répond un 422 sur data.phone qui liste les numéros à utiliser, avec le préfixe de l'opérateur du canal : Invalid sandbox test number. Use a test number of the channel's operator, e.g. +237670000000 (success), +237670000001 (insufficient funds), ….

Préfixes

Vingt-six pays et soixante-sept opérateurs : chaque canal Mobile Money annoncé par le catalogue. Un portefeuille détenu quel que soit l'opérateur du payeur, comme Capitec Pay, prend aussi le numéro de test de tout autre opérateur, et son suffixe fixe toujours le résultat ; un numéro qui n'est pas un numéro de test est refusé.

PaysOpérateurPréfixe
CamerounCamerounMTN MoMoMTN MoMo+23767
CamerounCamerounOrange MoneyOrange Money+23769
CamerounCamerounExpress UnionExpress Union+23768
CamerounCamerounYoomeeYoomee+23766
Côte d'IvoireCôte d'IvoireMTN MoMoMTN MoMo+22505
Côte d'IvoireCôte d'IvoireOrange MoneyOrange Money+22507
Côte d'IvoireCôte d'IvoireMoovMoov+22501
Côte d'IvoireCôte d'IvoireWaveWave+22503
Côte d'IvoireCôte d'IvoireGreen+22509
NigeriaNigeriaMTNMTN+2348
NigeriaNigeriaOrangeOrange+2347
SénégalSénégalOrange MoneyOrange Money+22177
SénégalSénégalFree+22176
SénégalSénégalWaveWave+22178
GhanaGhanaMTN MoMoMTN MoMo+23324
GhanaGhanaVodafone+23320
GhanaGhanaAirtelAirtel+23326
GhanaGhanaAirtelTigo+23327
KenyaKenyaM-PesaM-Pesa+25470
KenyaKenyaM-Pesa TillM-Pesa Till+25471
KenyaKenyaAirtel TillAirtel Till+25473
KenyaKenyaEquitel+25476
KenyaKenyaT-Kash+25477
KenyaKenyaAirtelAirtel+25478
TanzanieTanzanieAirtelAirtel+25567
TanzanieTanzanieTigo+25565
TanzanieTanzanieVodafone+25574
TanzanieTanzanieHaloPesa+25562
TanzanieTanzanieM-PesaM-Pesa+25576
OugandaOugandaMTNMTN+25677
OugandaOugandaAirtelAirtel+25675
RwandaRwandaMTNMTN+25078
RwandaRwandaAirtelAirtel+25073
RD CongoRD CongoAirtelAirtel+24399
RD CongoRD CongoOrangeOrange+24389
RD CongoRD CongoVodacom+24381
RD CongoRD CongoExpress UnionExpress Union+24382
RD CongoRD CongoAfricell+24390
BéninBéninMTNMTN+22990
BéninBéninMoovMoov+22991
BéninBéninGlo+22997
Burkina FasoBurkina FasoOrangeOrange+22670
Burkina FasoBurkina FasoMoovMoov+22671
GabonGabonAirtelAirtel+2410
GabonGabonExpress UnionExpress Union+2411
GabonGabonMoovMoov+2416
CongoCongoExpress UnionExpress Union+24205
CongoCongoMTNMTN+24206
CongoCongoAirtelAirtel+24204
TchadTchadExpress UnionExpress Union+23566
République centrafricaineRépublique centrafricaineExpress UnionExpress Union+23670
ZambieZambieMTNMTN+26096
ZambieZambieAirtelAirtel+26097
ZambieZambieZamtel+26095
MalawiMalawiAirtelAirtel+26599
MalawiMalawiTNM+26588
MaliMaliOrangeOrange+22370
MaliMaliMoovMoov+22366
TogoTogoMoovMoov+22899
TogoTogoT-Money+22890
GuinéeGuinéeMTNMTN+22466
GuinéeGuinéeOrangeOrange+22462
LiberiaLiberiaMTNMTN+23188
MozambiqueMozambiqueM-PesaM-Pesa+25884
ÉgypteÉgypteVodafone Cash+2010
Sierra LeoneSierra LeoneOrangeOrange+23276
Afrique du SudAfrique du SudCapitec Pay+2761

Exemples complets

ScénarioMTN CamerounOrange Côte d'IvoireM-Pesa Kenya
Réussite+237670000000+225070000000+254700000000
Fonds insuffisants+237670000001+225070000001+254700000001
Échec+237670000002+225070000002+254700000002
Délai dépassé+237670000003+225070000003+254700000003
Annulé+237670000004+225070000004+254700000004

Cartes

Seul le numéro de carte détermine le résultat. Les autres champs doivent tout de même être bien formés, sinon le débit est refusé par un 422 sur le champ : un nom de titulaire, une expiration au format MM/AA ou MM/AAAA avec une année de celle-ci à trente ans plus tard, et un CVV de trois ou quatre chiffres. La page API directe montre les quatre champs d'un débit par carte en sandbox.

Réussite sans 3D Secure

CarteRéseauRésultat
4242 4242 4242 4242VisaRéussite
5555 5555 5555 4444MastercardRéussite
4000 0000 0000 5423VisaRéussite, puis échec de chaque remboursement

Vérification 3D Secure obligatoire

Le Checkout hébergé demande un code envoyé par e-mail, comme décrit dans Mode sandbox. Ces cartes renvoient d'abord 202. Le statut final arrive une fois la vérification terminée.

CarteRésultat de la vérification
4000 0566 5566 5556Réussite de la vérification et du paiement
4000 0025 0000 3155Réussite de la vérification et du paiement
4000 0027 6000 3184Réussite de la vérification et du paiement
4000 0025 0000 3063Échec de l'authentification
4000 0025 0000 3089Échec de l'authentification
4000 0025 0000 3018Authentification réussie, puis refus de l'émetteur
4000 0025 0000 3026Authentification réussie, puis refus de l'émetteur
4000 0025 0000 3034Le payeur abandonne la vérification
4000 0025 0000 3042Le payeur abandonne la vérification
4000 0025 0000 3050Le délai de vérification est dépassé
4000 0025 0000 3097Le délai de vérification est dépassé

Échec sans 3D Secure

CarteRésultat
4000 0000 0000 9995Fonds insuffisants
4000 0000 0000 0002Refus
4000 0000 0000 9987Refus
4000 0000 0000 9979Refus
4000 0000 0000 0069Refus
4000 0000 0000 0127Refus
4000 0000 0000 0119Refus
4000 0000 0000 0341Refus
4000 0000 0000 6975Refus
4242 4242 4242 4241Refus

Un seul motif de refus, pas dix

Seule la carte …9995 possède un motif distinct. Les neuf autres produisent le même refus générique. Utilisez celle que vous souhaitez pour tester un parcours d'échec. Une carte absente de cette page est refusée, car elle ne correspond pas à une carte de test.

Comptes bancaires

Tout numéro de compte ou IBAN d'au moins quatre caractères est accepté. Les deux derniers chiffres déterminent le résultat.

Se termine parRésultat
00Réussite
01Fonds insuffisants
02Échec
03Délai dépassé
04Annulé

Toute autre valeur réussit. Un compte qui se termine par 47 fonctionne donc simplement.

Cryptomonnaies

Les cryptomonnaies s'activent ou se désactivent pour toute la plateforme sandbox, pas par compte : quand elles sont désactivées, le canal n'est pas proposé. Quand elles sont actives, un débit crypto répond avec crypto.deposit, dont l'objet scenarios porte une adresse de dépôt par résultat : success, insufficient_funds, failure, timeout et canceled.

  • Sans wallet_address dans le débit, le paiement réussit.
  • Avec l'une des adresses de scenarios comme wallet_address, vous obtenez ce résultat.
  • Toute autre adresse est refusée par un 422 sur data.wallet_address.

Chaque adresse est dérivée du paiement, du canal et du scénario (address_derivation en donne la recette) : deux exécutions du même test produisent la même adresse. Elle expire après 30 minutes.

Les suffixes d'adresse _success, _insufficient, _failure, _timeout et _canceled choisissent le résultat d'un payout vers un bénéficiaire crypto, pas d'un paiement.

Remboursements

Le résultat d'un remboursement dépend du paiement d'origine, pas de l'appel de remboursement.

Moyen utilisé pour le paiementRésultat du remboursement
4000 0000 0000 5423Échec systématique
Un numéro qui se termine par 000009Échec systématique
Un numéro qui se termine par 000000Réussite
Toute autre carte, un compte bancaire ou un portefeuille de cryptomonnaieRéussite

Les numéros qui se terminent par 000001 à 000004 n'ont pas de ligne : leurs paiements n'aboutissent jamais, il n'y a donc rien à rembourser. POST /refunds répond 422 avec Transaction must be completed to be refunded. Pour tester un remboursement qui échoue, payez avec …000009 ou avec la carte 4000 0000 0000 5423.

Transferts

Un payout utilise les informations du bénéficiaire et les mêmes suffixes s'appliquent. Un bénéficiaire Mobile Money doit posséder un numéro de test reconnu. Un compte bancaire de test choisit son résultat par ses deux derniers chiffres, une adresse crypto de test par son suffixe, de la même façon.

SuffixeLe transfertfailure_reason
000000succeeded
000001Refusé aussitôt : 422 avec error_code: insufficient_funds, rien n'est créé
000002failedfailure
000003failednetwork_error
000004failedinvalid_recipient
L'erreur 422 renvoyée dans le cas contraire
{
"code": 422,
"status": "Unprocessable Content",
"error_code": "invalid_test_number",
"message": "Invalid sandbox test number. Use a recognised Mobile Money test number, e.g. +237670000000 (success), +237670000001 (insufficient funds), +237670000002 (failure), +237670000003 (timeout), +237670000004 (canceled).",
"errors": {
"beneficiary": [
"Invalid sandbox test number. Use a recognised Mobile Money test number, e.g. +237670000000 (success), +237670000001 (insufficient funds), +237670000002 (failure), +237670000003 (timeout), +237670000004 (canceled)."
]
}
}

Un transfert débite votre solde de sandbox. Commencez donc par réussir un paiement. Dans le cas contraire, le payout échoue pour cause de fonds insuffisants, exactement comme en mode live.

Que pensez-vous de ce contenu ?