Saltar al contenido principal

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>" }
HTTPcodeSignificado
400VALIDATIONEl cuerpo no cumple el contrato
401UNAUTHENTICATEDFalta o es inválido el Bearer
404NOT_FOUNDEl recurso no existe o no es tuyo

Guía de uso → Manejo de estados y errores.

Catálogo de estados de la sesión

EstadoSignificadoWebhook asociado
pendingCreada, esperando pago
paidDébito completado (fase 1)payment_session.paid
failedPago rechazado (solo Botón)
expiredVenció sin pagarse
(acreditación)Fase 2 — no cambia el statuspayment_session.accredited
La fase 2 no es un estado

La acreditación (fase 2) no aparece en el campo status, que se queda en paid. Pero sí está en esa misma respuesta, un nivel más abajo: data.session_payment.receiver_credits. Y te llega además por el webhook payment_session.accredited. → Transacción a dos fases.

Eventos de webhook

EventoTiempo
payment_session.paidfase 1 (débito)
payment_session.accreditedfase 2 (acreditación)

Webhooks · Ciclo de vida