Aller au contenu principal

Mode sandbox

Votre compte est en sandbox par défaut dès sa création — tous les paiements que vous créez sont des paiements de test tant que vous n'êtes pas passé en production.

Ce qui change en sandbox​

Une transaction sandbox suit exactement le même chemin qu'une transaction réelle (routage vers le partenaire de paiement le plus adapté, référence, redirectUrl vers votre page de paiement) — la seule différence est qu'aucune requête n'est envoyée au partenaire de paiement. Rien n'est débité, rien n'est crédité, et vos transactions sandbox n'entrent jamais dans votre solde ni dans vos règlements.

La page de statut de paiement (celle vers laquelle pointe redirectUrl) affiche clairement le badge Sandbox et propose trois boutons pour résoudre vous-même la transaction : Réussi, Échoué, Expiré — pratique pour tester chaque scénario côté intégration sans dépendre d'un vrai paiement.

Pour un test scripté (CI, suite de tests automatisée), le même résultat est accessible sans interface :

curl -X POST https://api.passerelle.abecedaire.tg/payments/pay_0d9ace5b-.../simulate \
-H "Content-Type: application/json" \
-d '{ "outcome": "succeeded" }'

outcome vaut succeeded, failed ou expired. Cet appel ne fonctionne que sur une transaction sandbox encore pending — 400 sinon.

Forcer une transaction en sandbox depuis un compte en production​

Ajoutez "sandbox": true au corps de votre POST /payments pour tester un scénario précis sans rebasculer tout votre compte :

{ "amount": 1000, "customerName": "Jane Doe", "customerPhone": "+22890123456", "sandbox": true }

L'inverse n'existe pas : tant que votre compte est en mode sandbox, toutes ses transactions sont sandbox, sans exception possible transaction par transaction.

Passer en production​

Trois étapes — la bascule (dans un sens comme dans l'autre) exige toujours un code de confirmation envoyé par email, même depuis le tableau de bord :

  1. Avoir terminé l'inscription (POST /merchants/me/start-collecting — voir Créer votre compte) — uniquement nécessaire pour passer en production, pas pour revenir en sandbox.
  2. Demander un code de confirmation, envoyé à l'email du compte :
curl -X POST https://api.passerelle.abecedaire.tg/merchants/me/environment/otp/request \
-H "Authorization: Bearer sk_..."
  1. Basculer le mode du compte avec ce code (valable 10 minutes) :
curl -X PATCH https://api.passerelle.abecedaire.tg/merchants/me/environment \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{ "isSandboxMode": false, "code": "123456" }'

400 si l'inscription n'est pas terminée, 401 si le code est invalide ou expiré (même message dans les deux cas). Le tableau de bord marchand propose ce même bascule sous forme de switch dans le navbar, avec une modale de saisie du code — sans appel API manuel.

Et ensuite ?​