Ir al contenido

Simular escenarios

Esta página documenta los escenarios completos que puede reproducir en el Sandbox para probar su integración antes de pasar a producción. Cada escenario corresponde a un caso de negocio real.

Escenario 1: Pago correcto con Mobile Money + Webhook

  • 1. Crear un PaymentIntent.
  • 2. Confirmar con +24177000001 (Airtel — éxito inmediato).
  • 3. Webhook payment_intent.succeeded recibido en su endpoint.
  • 4. Comprobar el estado: succeeded.

Escenario 2: Timeout de Mobile Money

  • 1. Crear un PaymentIntent.
  • 2. Confirmar con +24177000003 (Airtel — timeout).
  • 3. Esperar 120 segundos.
  • 4. Estado → requires_payment_method.
  • 5. Proponer al comprador que vuelva a intentarlo con otro medio de pago.

Escenario 3: Pago con tarjeta + 3DS

  • 1. Montar el formulario de Hosted Fields.
  • 2. Introducir la tarjeta 4000 0000 0000 3220.
  • 3. El flujo 3DS se abre automáticamente.
  • 4. Aprobar con cualquier código OTP.
  • 5. Estado: succeeded.

Escenario 4: Suscripción con prueba + dunning

  • 1. Crear una subscription con trial_period_days: 7.
  • 2. Webhook subscription.created recibido.
  • 3. Esperar al fin de la prueba (simulado en el Sandbox).
  • 4. Primer cobro con +24177000002 (fallo — fondos insuficientes).
  • 5. Webhooks subscription.past_due × 3 (D+3, D+7, D+14).
Acelerar el tiempo en el Sandbox

En el Sandbox, los plazos de reintento de las suscripciones y los fines de período de prueba pueden simularse de inmediato con POST /v1/sandbox/advance-clock/: envíe {"days": 14} para adelantar 14 días las Subscriptions de su App y activar de inmediato los webhooks de renovación/dunning que se derivan de ello.

Escenario 1: Pago correcto con Mobile Money

bash
# 1. Créer le PaymentIntent
curl -X POST https://api.sangho.ga/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.ga/v1/payment-intents/pi_xxxx/confirm/ \
  -H "Authorization: Bearer sk_test_xxxx" \
  -H "Content-Type: application/json" \
  -d '{ "payment_method": "meth_xxxx" }'

Escenario 5: Reembolso parcial

Pruebe el flujo completo de reembolso parcial: crear un pago de 10 000 XAF y reembolsar después 3 000 XAF. El saldo neto del comerciante se actualiza en consecuencia y se emite el webhook refund.succeeded.

  • 1. Crear un PaymentIntent de 10 000 XAF.
  • 2. Confirmar con +24177000001 (éxito).
  • 3. Listar las transacciones del PaymentIntent.
  • 4. Crear un reembolso parcial de 3 000 XAF.
  • 5. Webhook refund.succeeded recibido.
Reembolso máximo

El importe reembolsado no puede superar el importe original de la transacción. Para un reembolso total, omita el campo amount: Sangho reembolsará la totalidad automáticamente.

Escenario 5: Reembolso parcial

bash
# 1. Créer le PaymentIntent
curl -X POST https://api.sangho.ga/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.ga/v1/payment-intents/pi_xxxx/confirm/ \
  -H "Authorization: Bearer sk_test_xxxx"


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


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