Skip to main content
Cuando falla un pago, Dodo Payments proporciona un error_code estandarizado y un error_message legible. Esta guía muestra cómo leer esos campos, decidir si se debe reintentar y recuperar el pago de forma segura.

Cómo Dodo Payments Informa un Fallo

Cada pago fallido incluye estos campos en el objeto de pago:
error_code y error_message son null hasta que falla un pago. Comprueba siempre status primero.
error_message está dirigido al merchant y puede revelar motivos relacionados con el fraude. Nunca lo muestres a los clientes. En su lugar, asigna error_code a un texto seguro para el cliente (consulta Mostrar errores a los clientes de forma segura).

El webhook de payment.failed

El webhook payment.failed es la forma más fiable de detectar un fallo. El evento incluye el objeto de pago completo en data:
payment.failed payload
Un handler mínimo lee error_code y determina la ruta en función de su valor:
Verifica siempre la firma del webhook antes de procesarlo. Consulta la guía de Webhooks para conocer la configuración completa, incluida la verificación de firmas y la idempotencia.

Decide si reintentar: rechazos temporales frente a definitivos

error_code te indica si vale la pena reintentar con el mismo método de pago. Consulta Transaction Failures para ver la lista completa de tipos de decline y las acciones recomendadas.

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.
El cliente está realizando el checkout. Muestra un mensaje claro y permite que reintente o use otra tarjeta.
  • requires_payment_method — el cliente nunca proporcionó un método de pago. Normalmente se trata de un abandono del checkout, no de un decline. Vuelve a contactar con el 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 3D Secure.

Reintentar un pago fallido

Suscripciones: Activa Subscription Payment Retries para recuperar automáticamente los soft declines. Para reintentar de inmediato en lugar de esperar al momento programado, usa Manual Payment Retry desde el dashboard o la API. También puedes activar la recuperación haciendo que el cliente actualice su método de pago mediante la Update Payment Method API, que cobra cualquier importe pendiente. Pagos únicos: Reenvía el checkout o payment_link para que el cliente pueda intentarlo de nuevo con otro método. No hay reintentos automáticos para pagos únicos.
No reintentes los hard declines con la misma tarjeta. Las redes de tarjetas marcan los declines repetidos como abusivos, lo que perjudica tu tasa de autorización.

Mostrar errores a los clientes de forma segura

Muestra a los clientes un mensaje claro y amigable, nunca el error_code sin procesar ni el error_message dirigido al merchant.
En las superficies controladas por Dodo Payments (checkout, Customer Portal y correos de dunning), esta asignación ya está hecha, incluido el uso de un mensaje genérico como alternativa para los declines relacionados con fraude. Solo necesitas la asignación siguiente cuando muestres los fallos en tu propio producto.
Customer-facing messaging
Nunca reveles el motivo real de STOLEN_CARD, LOST_CARD, PICKUP_CARD o FRAUDULENT. Mostrar estos motivos puede alertar a un actor fraudulento. Muestra un mensaje de decline genérico y registra el error_code específico solo internamente.

Relacionado

Transaction Failures

Cada código de decline, su tipo y la acción recomendada.

Error Codes

Errores de la API y de la lógica de negocio que no son declines de tarjeta.

Subscription Payment Retries

Recuperación automática de soft declines en renovaciones de suscripciones.

Subscription Dunning

Secuencias de correo que recuperan hard declines.

Payment Webhooks

Esquema completo del payload de los eventos de pago.

Testing Failures

Tarjetas de prueba que simulan declines y fallos de renovación.
Última modificación el 26 de septiembre de 2026