Comment simuler erreurs et cas limites ?
Testez refus, authentification 3DS, mobile money asynchrone et échecs webhook avant la mise en production.
Utilisez cet index en bac à sable. Les numéros de carte et le comportement MoMo détaillés sont dans Paiements en bac à sable.
Exécutez ces scénarios uniquement avec des clés test (lomi_sk_test_...).
Matrice de scénarios
| Scénario | Déclencheur | Résultat attendu | Détail |
|---|---|---|---|
| Carte acceptée | 4242 4242 4242 4242 | completed | Bac à sable: cartes |
| Carte refusée | PAN de refus du tableau test | failed | Idem |
| 3D Secure | Cartes test auth | requires_action | Bac à sable |
| Wave (test) | Wave sur checkout test | Souvent completed immédiat | Wave |
| MTN (test) | POST /charge/mtn | completed immédiat | MTN MoMo |
MoMo direct pending (test) | X-Scenario-Key: pending sur POST /charge/mtn ou /charge/wave | Charge reste PENDING ; pas d’auto-complétion | Bac à sable : scénarios |
MoMo direct failed (test) | X-Scenario-Key: failed sur POST /charge/mtn ou /charge/wave | Réponse d’erreur 400 | Même section |
| MTN (live) | numéro de téléphone réel, clé live | PENDING | Vérifier les paiements |
| Expiration | Dépassement TTL session/transaction | expired / failed | Machine à états |
| Signature webhook invalide | POST sans X-Lomi-Signature | 4xx + retries lomi. | Gestion webhooks |
| Webhook dupliqué | Rejouer le même id | Déduplication côté vous | Fiabilité webhooks |
| Reversement solde insuffisant | Règles test payout | 400 / failed | Reversements test |
| Clé API invalide | Mauvais X-API-Key | 401 | Authentification |
| Limite de débit | Rafale de requêtes en test | 429 | Gestion des erreurs |
Scénarios de charge directe (clé test uniquement)
Sur POST /charge/mtn et POST /charge/wave, envoyez X-Scenario-Key pour outrepasser le comportement test par défaut. Cela s’applique aux charges directes uniquement — le checkout hébergé et les charges carte ne lisent pas encore cet en-tête.
| Valeur d’en-tête | Comportement |
|---|---|
| (omis) | Par défaut : la charge test se complète automatiquement et crédite le solde test |
pending | La charge reste PENDING ; pas d’auto-complétion (polling ou webhook) |
failed | La requête échoue avec 400 |
# Garder la charge en attente (CI / tests de relance)
curl -sS -X POST "https://sandbox.api.lomi.africa/charge/mtn" \
-H "X-API-KEY: $LOMI_TEST_KEY" \
-H "X-Scenario-Key: pending" \
-H "Content-Type: application/json" \
-d '{"amount":1000,"currency":"XOF","customer_phone":"+2250700000000"}'
# Simuler un échec prestataire
curl -sS -X POST "https://sandbox.api.lomi.africa/charge/wave" \
-H "X-API-KEY: $LOMI_TEST_KEY" \
-H "X-Scenario-Key: failed" \
-H "Content-Type: application/json" \
-d '{"amount":1000,"currency":"XOF","customer_phone":"+2250700000000"}'Automatisation
Voir Guide de tests et les recettes curl du bac à sable.
Voir aussi
Quels moyens de paiement lomi. prend-il en charge ?
Matrice pays, devises et canaux pour checkout hébergé et charges directes en Afrique de l’Ouest francophone et marchés MTN.
Comment accepter les paiements Wave ?
Mobile money Wave via checkout hébergé ou POST /charge/wave, comportement asynchrone en live et exigence XOF.