Estados y contrato de error
Referencia rápida de los dos contratos transversales: el sobre de error y el catálogo de estados de una sesión.
Sobre de error (canónico)
{ "success": false, "message": "<texto legible>", "code": "<CÓDIGO>" }
| HTTP | code | Significado |
|---|---|---|
400 | VALIDATION | El cuerpo no cumple el contrato |
401 | UNAUTHENTICATED | Falta o es inválido el Bearer |
404 | NOT_FOUND | El recurso no existe o no es tuyo |
Guía de uso → Manejo de estados y errores.
Catálogo de estados de la sesión
| Estado | Significado | Webhook asociado |
|---|---|---|
pending | Creada, esperando pago | — |
paid | Débito completado (leg 1) | payment_session.paid |
failed | Pago rechazado (solo Botón) | — |
expired | Venció sin pagarse | — |
| (acreditación) | Leg 2 — no cambia el status | payment_session.accredited |
El leg 2 no es un estado
La acreditación (leg 2) no aparece en GET status (se queda en paid); solo llega por el webhook payment_session.accredited. → Transacción a dos tiempos.
Eventos de webhook
| Evento | Tiempo |
|---|---|
payment_session.paid | leg 1 (débito) |
payment_session.accredited | leg 2 (acreditación) |