Cuando un pago falla, Dodo Payments te indica por qué a través de un
error_code estandarizado y un error_message legible para humanos. Esta guía muestra cómo leer esos campos, decidir si vale la pena reintentar, y recuperar el pago sin exponer información sensible a los clientes.Cómo Dodo Payments Informa un Fallo
Cada pago fallido, ya sea una compra única o una renovación de suscripción, lleva los mismos campos de fallo en el objeto de pago:error_code e error_message son null hasta que un pago realmente falle. Siempre verifica status primero, luego lee los campos de error.El webhook de payment.failed
La forma más fiable de detectar un fallo es el webhook de payment.failed. El evento incluye el objeto de pago completo en data:
payment.failed payload
error_code y decide según su valor:
Decide si reintentar: rechazos temporales frente a definitivos
error_code te indica si vale la pena reintentar con el mismo método de pago.
La referencia de Transaction Failures indica el tipo de rechazo y la acción recomendada para cada
error_code.
Gestión de fallos durante el checkout y durante la renovación
La forma de recuperar el pago depende de si el cliente está presente.- At checkout (customer present)
- On subscription renewal (customer not present)
El cliente está completando el checkout activamente. Muestra un mensaje claro y permítele reintentar de inmediato o usar otra tarjeta.
requires_payment_method— el cliente nunca proporcionó un método de pago: no introdujo los datos de la tarjeta o se le pidió que lo hiciera y no realizó ninguna acción. Por lo general, esto es un abandono del checkout, no un rechazo: vuelve a captar la atención del cliente para que complete el pago (consulta Recuperación de carritos abandonados).requires_customer_action— se necesita autenticación adicional (como 3DS); haz que el cliente la complete. Consulta Gestión de 3D Secure.
Reintentar un pago fallido
- Suscripciones: activa Reintentos de pagos de suscripciones para recuperar rechazos temporales sin trabajo de integración. También puedes activar la recuperación haciendo que el cliente actualice su método de pago mediante la API de actualización del método de pago, que cobra cualquier importe pendiente.
- Pagos únicos: vuelve a enviar el checkout o
payment_linkpara que el cliente pueda intentarlo de nuevo con un método diferente. No existe un reintento automático para los pagos únicos.
Mostrar errores a los clientes de forma segura
Muestra al cliente un mensaje cordial: nunca elerror_code sin procesar y nunca el error_message dirigido al comercio.
En las superficies que controla Dodo Payments — el checkout, el Customer Portal y los correos de gestión de cobros — esta asignación ya está hecha, incluido el uso de un mensaje genérico como alternativa para los rechazos relacionados con fraude. Solo necesitas la asignación siguiente cuando muestres fallos en tu propio producto.
Customer-facing messaging
Relacionado
Transaction Failures
Cada código de rechazo, su tipo y la acción recomendada.
Error Codes
Errores de API y de lógica de negocio que no son rechazos de tarjeta.
Subscription Payment Retries
Recuperación automática de rechazos temporales durante las renovaciones de suscripciones.
Subscription Dunning
Secuencias de correos que recuperan rechazos definitivos.
Payment Webhooks
Esquema completo de la carga útil para eventos de pago.
Testing Failures
Tarjetas de prueba que simulan rechazos y fallos de renovación.