Tests en Sandbox
Chaque nouveau compte démarre en sandbox (account_type: "sandbox"). Le sandbox vous permet
d'exercer l'intégration complète — authentification, création de transactions,
réception de webhooks et rapprochement — avant que de l'argent réel ne circule.
Prerequisites
- Un compte vérifié avec un profil marchand complété.
- Un jeton API (Authentification).
- Votre point de terminaison de webhook accessible en HTTPS (ou un tunnel pendant le dev local).
Comment fonctionne le sandbox
- Le mode de votre compte figure dans la charge utile utilisateur sous
account_type("sandbox"|"prod"). Lisez-le depuisGET /api/auth/me/. - La surface de l'API, les formes des requêtes/réponses, les statuts et les webhooks sont identiques à la production — seul l'indicateur de mode diffère. Le code écrit pour le sandbox fonctionne sans changement en production.
- Un administrateur vous promeut en production lorsque vous êtes prêt (Passage en production).
Affichez le mode dans votre propre application
Affichez un badge « Sandbox » clair dans votre tableau de bord tant que account_type === "sandbox",
et conditionnez tout flux réel ou réservé à la production sur account_type === "prod".
Ce qu'il faut vérifier avant le passage en production
Parcourez chaque scénario et confirmez que votre système se comporte correctement :
- Authentification — un jeton valide renvoie
200depuisGET /api/auth/me/; un jeton invalide/expiré renvoie401et votre client se rafraîchit ou se réauthentifie. - Créer un paiement —
POST /api/payments/transaction/renvoie201avec unereferenceettransaction_status: "Received". - Protection contre les doublons — renvoyer le même
merchant_referencerenvoie400(et votre code le traite comme « déjà soumis », pas comme un nouveau débit). - Erreurs de validation — une
currency/serviceinconnue, un champ manquant, ou un jeton non-marchand renvoie le400/403attendu et vous affichezerror.message/error.detailsà l'utilisateur. - Webhook de succès — votre point de terminaison reçoit le callback
Success, renvoie200, et est idempotent lorsque le même callback arrive deux fois. - Webhook d'échec — vous gérez un callback
Failed(pas de livraison, utilisateur informé). - Rapprochement — vous pouvez lister et ré-interroger les transactions pour récupérer après un webhook manqué (voir Rapports).
Checklist pré-production
Avant de demander la promotion
- Les jetons sont stockés comme des secrets (jamais dans le code client ni le contrôle de version).
- Le gestionnaire de webhook vérifie, répond
200rapidement, et est idempotent surreference. - Vous ré-interrogez le statut faisant autorité avant de libérer des biens/fonds.
- Tous les chemins d'erreur (
400/401/403/409) sont gérés et journalisés. - Votre
callback_urlest en HTTPS et accessible publiquement. - Vous avez rapproché au moins un paiement de bout en bout (création → webhook → statut).
Lorsque toutes les cases sont cochées, demandez l'accès en production — voir Passage en production.