Skip to main content

Descripción general

Cuando un intento de pago falla, Dodo Payments devuelve un código de fallo estandarizado que indica el motivo. Los códigos son los mismos en todos los métodos de pago y procesadores de pagos, por lo que un único conjunto de reglas de gestión cubre todos los pagos fallidos. El webhook payment.failed y el objeto de pago exponen estos campos para un pago fallido:
  • error_code: un código de fallo estandarizado de la tabla siguiente.
  • error_message: una explicación escrita para ti, el merchant. Cuando error_code es uno de los códigos estandarizados siguientes, se trata de un encabezado más la acción recomendada, no del texto sin procesar del procesador de pagos.
  • retry_attempt: 0 para el cargo original, y 1 o superior para cada reintento programado de renovación de una suscripción. Los pagos que no son renovaciones de suscripción conservan el valor 0.
Usa estos códigos para proporcionar información clara a los clientes, decidir si un reintento puede tener éxito y recuperar más ingresos.

Texto para el merchant frente a texto para el cliente

Cada código de fallo estandarizado se asigna a dos mensajes, uno para ti y otro para tu cliente:
El Customer Portal devuelve el texto destinado al cliente en error_message, mientras que la API del merchant devuelve el texto destinado al merchant para el mismo pago. error_code es el mismo en ambos casos.

Handle Payment Failures

Una guía de desarrollo paso a paso para leer estos códigos desde los webhooks y la API, mostrarlos a los clientes y decidir cuándo reintentar.

Rechazos temporales frente a rechazos definitivos

Cada código de fallo es un rechazo temporal o un rechazo permanente. El tipo indica si un intento posterior con los mismos datos de pago puede tener éxito o si el cliente debe realizar alguna acción primero. En las renovaciones de suscripciones, Dodo Payments aplica esta clasificación automáticamente. Subscription Payment Retries vuelve a intentar los rechazos temporales. Un rechazo permanente finaliza inmediatamente la cadena de reintentos; recupéralo con Subscription Dunning.
Nunca reveles al cliente el motivo real de STOLEN_CARD, LOST_CARD, PICKUP_CARD o FRAUDULENT. Revelar estos motivos puede alertar a un actor fraudulento. Muestra al cliente un mensaje de rechazo genérico (por ejemplo, “Tu tarjeta ha sido rechazada. Contacta con tu banco o usa otra tarjeta.”) y registra el código específico solo internamente.Dodo Payments aplica esta regla en las superficies que controla. Para estos cuatro códigos, el checkout, el Customer Portal y los correos electrónicos de dunning muestran un mensaje de rechazo genérico, mientras que el texto destinado al merchant conserva el motivo real. Aplica la misma regla en cualquier lugar donde muestres error_message de la API del merchant a un cliente.

Motivos de fallo de transacciones

La tabla siguiente enumera todos los códigos de fallo, su tipo de rechazo, si el cliente puede resolverlo, una descripción y la acción recomendada.
Error del usuario indica si el cliente puede resolver el rechazo. Yes significa que el cliente puede solucionar el problema, por ejemplo, introduciendo correctamente los datos de la tarjeta. No significa que el rechazo se debe a un problema del sistema o a una restricción bancaria, y que el cliente no puede resolverlo directamente.
Un banco emisor también puede rechazar una tarjeta porque su propio motor de riesgo marca al titular de la tarjeta como de alto riesgo, independientemente del comercio o de los detalles de la transacción. Estos rechazos suelen aparecer como códigos genéricos, como DO_NOT_HONOR, GENERIC_DECLINE, CARD_DECLINED, TRANSACTION_NOT_APPROVED o FRAUDULENT. El banco no comparte el motivo específico, y ni Dodo Payments ni el comercio pueden anular la decisión. Pide al cliente que se ponga en contacto con su banco para resolver el bloqueo, o que utilice otra tarjeta o método de pago.

Gestión programática de fallos

Lee error_code del webhook payment.failed o del objeto de pago, asígnalo a la acción recomendada en la tabla y decide si debes reintentar. En las renovaciones de suscripciones, Dodo Payments reintenta por ti los rechazos temporales. Consulta Subscription Payment Retries. Para consultar errores de la API y de la lógica empresarial que no son rechazos de tarjetas, como PAYMENT_NOT_SUCCEEDED o REFUND_WINDOW_EXPIRED, consulta la referencia de Error Codes.

Relacionado

Handle Payment Failures

Guía completa para detectar, mostrar y reintentar pagos fallidos.

Error Codes

Códigos de error de API y de lógica de negocio para fallos que no son rechazos.

Subscription Payment Retries

Reintentos automáticos que recuperan rechazos temporales en las renovaciones de suscripciones.

Subscription Dunning

Secuencias de emails que recuperan rechazos definitivos al solicitar la actualización del método de pago.

Soporte

Para obtener más ayuda con fallos de transacciones o problemas de integración, contacta con el equipo de soporte en support@dodopayments.com.
Última modificación el 26 de septiembre de 2026