Environnement Sandbox

Production
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 URLhttps://nekapaie.com/api/v1
Préfixe API Keynk_test_*
FraisAucun
LimiteIllimité, sans KYC
PersistanceTransactions stockées 30 jours

Numéros de test

Utilisez ces MSISDN pour forcer un comportement précis lors de vos tests :

MSISDNComportement attenduStatut 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é) PENDINGFAILED
+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.