Skip to main content
Manual Retry vuelve a intentar un pago de renovación de una suscripción cuando lo solicitas, desde la página de detalles del pago o mediante la API. Cobra el método de pago guardado en la suscripción y se ejecuta de forma independiente del calendario de Payment Retries automáticos.

¿Qué es Manual Retry?

Cuando falla un pago de renovación, la suscripción pasa a on_hold. Si activaste Payment Retries, estos vuelven a intentar el cobro según un calendario con intervalos crecientes. A veces sabes que el pago se aprobará ahora: el cliente confirmó que recargó su cuenta o tu equipo de soporte está hablando con él. Manual Retry envía un intento de inmediato, en lugar de esperar horas o días hasta el siguiente intento programado.
  • Solo pagos de renovación: Manual Retry se aplica a las facturas de renovación de suscripciones mientras la suscripción está en on_hold. Los primeros pagos, pagos únicos, cargos por cambios de plan y cargos bajo demanda no son aptos.
  • Sin acción del cliente: el cobro se realiza al método de pago ya guardado en la suscripción.
  • Independiente de los reintentos automáticos: un reintento manual no consume un intento del calendario automático, no cambia el siguiente reintento programado y funciona incluso cuando Payment Retries está desactivado.
  • Reintenta la factura, no el pago: el pago fallido es solo el punto de entrada. Dodo Payments encuentra la factura de renovación abierta asociada y cobra esa deuda, por lo que no importa desde qué pago fallido de la factura realices el reintento.

Reintentar desde el dashboard

Solo los usuarios con el rol Owner o Editor pueden enviar un reintento manual.
1

Open the failed payment

Ve a Transactions → Payments y haz clic en el pago de renovación fallido para abrir su página de Transaction details.
2

Click Retry Payment Manually

Haz clic en Retry Payment Manually en la esquina superior derecha. El botón solo está disponible mientras el pago sea eligible.
3

Check the result

Dodo Payments crea un nuevo pago para el intento, que aparece en el Activity Log. Si el cobro se realiza correctamente, la suscripción vuelve a active y la siguiente fecha de facturación pasa a ser un periodo de facturación posterior al reintento correcto. Si el procesador de pagos aún no ha liquidado el cobro, el pago aparece como en progreso hasta que el webhook payment.succeeded o payment.failed informe del resultado.
Transaction details page for a failed payment showing the error code and message, an Activity Log, and a Retry Payment Manually button

Retry Payment Manually on the transaction details page of a failed renewal

Elegibilidad

Dodo Payments solo envía un reintento manual cuando se cumplen todas las comprobaciones de esta tabla. La columna Reason code muestra lo que devuelve la API: en reason sobre GET /payments/{payment_id}/retry y como el error code sobre POST /payments/{payment_id}/retry.
Manual Retry es más restrictivo que los reintentos automáticos en un aspecto: requiere que la suscripción esté en on_hold. Una suscripción past_due en un periodo de gracia no supera esta comprobación. Los reintentos automáticos siguen ejecutándose para otros estados no activos. Consulta Subscription Status Transitions.
Reintentar un hard decline contra la misma tarjeta no puede tener éxito, y los rechazos repetidos perjudican tu tasa de autorización. Cuando el motivo es MANUAL_RETRY_HARD_DECLINE, pide al cliente que actualice su método de pago. Subscription Dunning lo hace automáticamente.

Límites de reintentos

Cada factura de renovación permite 3 reintentos manuales, con un periodo de espera entre ellos: Los límites se aplican tanto en test mode como en live mode. Cuando el límite rechaza un reintento, la API devuelve MANUAL_RETRY_LIMIT_REACHED (HTTP 429) y el cuerpo del error contiene solo code y message. Para saber cuándo se habilita el siguiente reintento, consulta el estado del reintento y lee retry_available_at. Es null una vez consumidos los tres reintentos. Los reintentos automáticos no cuentan para este límite y los reintentos manuales no cuentan para los 8 intentos del calendario automático.

Reintentos manuales y automáticos

Las dos vías de reintento se diferencian en los siguientes aspectos:

Reintentar mediante la API

Comprueba primero la elegibilidad y después envía el reintento. Ambos endpoints reciben el ID de un pago fallido.

Comprobar si se puede reintentar un pago

GET /payments/{payment_id}/retry no devuelve un error para un pago que no es apto. En su lugar, devuelve can_retry: false con el código reason, para que tu propio dashboard o herramienta de soporte pueda mostrar el mismo estado que el dashboard de Dodo Payments. Requiere el rol Viewer.
Response

Enviar un reintento manual

POST /payments/{payment_id}/retry crea un nuevo pago y cobra el método de pago guardado. Requiere el rol Editor. Los ejemplos del SDK reutilizan client del ejemplo anterior.
Response

Respuestas de error

Cuando no se permite un reintento, POST devuelve uno de estos estados HTTP: La referencia de Error Codes describe todos los códigos.

Webhooks

Un reintento manual crea un pago normal, por lo que se activan los mismos webhooks que para cualquier intento de renovación: En el objeto de pago de estos eventos, retry_attempt es 1 o superior y subscription_id está establecido, igual que en un reintento automático. El objeto de pago no tiene ningún campo que marque un intento manual, así que conserva payment_id de la respuesta del reintento si necesitas distinguir un intento manual de uno programado.

Payment Webhook Payloads

Esquemas completos de payload para eventos de pago.

Relacionado

Subscription Payment Retries

El calendario automático con intervalos crecientes que se ejecuta junto con los reintentos manuales.

Subscription Dunning

Envía un correo al cliente para que actualice su método de pago después de un hard decline.

Handle Payment Failures

Lee los códigos de rechazo y decide cuándo merece la pena reintentar.

Error Codes

Cada código MANUAL_RETRY_*, su activador y su mensaje.
Última modificación el 26 de septiembre de 2026