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.succeededrecibido 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.createdrecibido. - 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).
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
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.succeededrecibido.
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.