Aller au contenu

Simuler des scénarios

Cette page documente les scénarios complets que vous pouvez reproduire en Sandbox pour tester votre intégration avant la mise en production. Chaque scénario correspond à un cas métier réel.

Scénario 1 : Paiement Mobile Money réussi + Webhook

  • 1. Créer un PaymentIntent.
  • 2. Confirmer avec +24177000001 (Airtel — succès immédiat).
  • 3. Webhook payment_intent.succeeded reçu sur votre endpoint.
  • 4. Vérifier le statut : succeeded.

Scénario 2 : Timeout Mobile Money

  • 1. Créer un PaymentIntent.
  • 2. Confirmer avec +24177000003 (Airtel — timeout).
  • 3. Attendre 120 secondes.
  • 4. Statut → requires_payment_method.
  • 5. Proposer à l'acheteur de retenter avec un autre moyen de paiement.

Scénario 3 : Paiement par carte + 3DS

  • 1. Monter le formulaire Hosted Fields.
  • 2. Saisir la carte 4000 0000 0000 3220.
  • 3. Le flux 3DS s'ouvre automatiquement.
  • 4. Approuver avec n'importe quel code OTP.
  • 5. Statut : succeeded.

Scénario 4 : Abonnement avec essai + dunning

  • 1. Créer une subscription avec trial_period_days: 7.
  • 2. Webhook subscription.created reçu.
  • 3. Attendre la fin d'essai (simulée en Sandbox).
  • 4. Premier prélèvement avec +24177000002 (échec — fonds insuffisants).
  • 5. Webhooks subscription.past_due × 3 (J+3, J+7, J+14).
Accélérer le temps en Sandbox

En Sandbox, les délais de retry des abonnements et les fins de période d’essai peuvent être simulés immédiatement. Consultez l’endpoint POST /v1/sandbox/advance-clock/ pour avancer l’horloge de test.

Scénario 1 : Paiement Mobile Money réussi

bash
# 1. Créer le PaymentIntent
curl -X POST https://api.sangho.com/v1/payment-intents/ \
  -H "Authorization: Bearer sk_test_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 5000,
    "currency": "XAF",
    "payment_method_types": ["mobile_money"]
  }'


# 2. Confirmer — +24177000001 = succès immédiat Airtel
curl -X POST https://api.sangho.com/v1/payment-intents/pay_xxxx/confirm/ \
  -H "Authorization: Bearer sk_test_xxxx" \
  -H "Content-Type: application/json" \
  -d '{ "payment_method": "meth_xxxx" }'

Scénario 5 : Remboursement partiel

Testez le flux complet de remboursement partiel : créer un paiement de 10 000 XAF, puis rembourser 3 000 XAF. Le solde net du marchand est mis à jour en conséquence et le webhook refund.succeeded est émis.

  • 1. Créer un PaymentIntent de 10 000 XAF.
  • 2. Confirmer avec +24177000001 (succès).
  • 3. Lister les transactions du PaymentIntent.
  • 4. Créer un remboursement partiel de 3 000 XAF.
  • 5. Webhook refund.succeeded reçu.
Remboursement maximum

Le montant remboursé ne peut pas dépasser le montant original de la transaction. Pour un remboursement total, omettez le champ amount — Sangho remboursera la totalité automatiquement.

Scénario 5 : Remboursement partiel

bash
# 1. Créer le PaymentIntent
curl -X POST https://api.sangho.com/v1/payment-intents/ \
  -H "Authorization: Bearer sk_test_xxxx" \
  -H "Content-Type: application/json" \
  -d '{ "amount": 10000, "currency": "XAF", "payment_method_types": ["mobile_money"] }'


# 2. Confirmer
curl -X POST https://api.sangho.com/v1/payment-intents/pay_xxxx/confirm/ \
  -H "Authorization: Bearer sk_test_xxxx"


# 3. Lister les transactions
curl "https://api.sangho.com/v1/transactions/?page_size=5" \
  -H "Authorization: Bearer sk_test_xxxx"


# 4. Remboursement partiel
curl -X POST https://api.sangho.com/v1/refunds/ \
  -H "Authorization: Bearer sk_test_xxxx" \
  -H "Content-Type: application/json" \
  -d '{ "transaction": "trans_xxxx", "amount": 3000, "reason": "customer_request" }'