Environnement Sandbox
Tester votre intégration sans risque, avec des numéros et scénarios prédéfinis.
Vue d'ensemble
L'environnement sandbox simule l'API Orange Money sans mouvement de fonds réels. Il vous permet de :
- Tester l'authentification HMAC sans risque
- Forcer différents statuts (SUCCESS, FAILED, EXPIRED) via des MSISDN spécifiques
- Recevoir des webhooks de test sur votre URL configurée
- Valider votre intégration avant la mise en production
Caractéristiques
| Base URL | https://nekapaie.com/api/v1 |
| Préfixe API Key | nk_test_* |
| Frais | Aucun |
| Limite | Illimité, sans KYC |
| Persistance | Transactions stockées 30 jours |
Numéros de test
Utilisez ces MSISDN pour forcer un comportement précis lors de vos tests :
| MSISDN | Comportement attendu | Statut final |
|---|---|---|
+22376123456 |
Paiement validé immédiatement par le client | SUCCESS |
+22376111111 |
Solde insuffisant côté client | FAILED |
+22376222222 |
Client refuse le paiement (annulation USSD) | FAILED |
+22376333333 |
Aucune réponse client (timeout 5 min) | EXPIRED |
+22376444444 |
Reste en PENDING pendant 30 sec puis SUCCESS | SUCCESS |
+22376555555 |
Erreur opérateur (HTTP 503 simulé) | PENDING → FAILED |
+22376987654 |
Bénéficiaire valide pour Cash-Out | SUCCESS |
Bonus : tout autre numéro
+22376xxxxxxxx aboutit à un SUCCESS aléatoire après 5-15 secondes.
Scénarios prêts à tester
Scénario 1 : Paiement réussi
JSONPOST /api/v1/payments/cashin
{
"merchant_order_id": "test_success_001",
"amount": 50000,
"customer_msisdn": "+22376123456",
"country_code": "ML"
}
→ 202 PENDING → webhook 5s plus tard avec status SUCCESS
Scénario 2 : Solde insuffisant
JSONPOST /api/v1/payments/cashin
{
"merchant_order_id": "test_failed_001",
"amount": 50000,
"customer_msisdn": "+22376111111",
"country_code": "ML"
}
→ 202 PENDING → webhook avec status FAILED, failure_reason "Solde insuffisant"
Scénario 3 : Idempotence
JSON# Premier appel
POST /payments/cashin {"merchant_order_id": "test_idempo_001", ...}
→ 202 transaction_id: abc-123
# Même appel rejoué
POST /payments/cashin {"merchant_order_id": "test_idempo_001", ...}
→ 202 transaction_id: abc-123 (la même !)
Scénario 4 : Cash-Out
JSONPOST /api/v1/payments/cashout
{
"merchant_order_id": "payout_001",
"amount": 100000,
"beneficiary_msisdn": "+22376987654",
"currency": "XOF",
"reason": "Test sandbox"
}
→ 202 PENDING → webhook SUCCESS
Webhooks en sandbox
Pour tester votre handler webhook localement :
Option A : Tunneling avec ngrok
BASH"># Démarrer un tunnel HTTPS vers votre serveur local
ngrok http 3000
# Copier l'URL forwarding (ex: https://abc123.ngrok.io)
# Configurer dans votre espace marchand :
# Webhook URL = https://abc123.ngrok.io/webhooks/nekapay
Option B : Simulateur intégré
Depuis votre espace marchand → ouvrir une transaction → bouton « Renvoyer le webhook ».
Limites du sandbox
- Pas de mouvement réel — les soldes affichés sont simulés.
- Données purgées tous les 30 jours — n'utilisez pas pour de la production.
- Latences artificielles — les webhooks arrivent typiquement en 3 à 15 secondes.
- Filiales — seul Mali (ML) est actif en démo. Les autres seront ouvertes progressivement.