Skip to main content
Manual Retry vuelve a intentar el pago de renovación fallido de una suscripción en el momento en que 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 funciona independientemente 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 y Payment Retries vuelve a intentar el cobro según un calendario con intervalos crecientes. A veces sabes que el pago se realizará ahora: el cliente ha confirmado que recargó su cuenta o tu equipo de soporte está hablando con él. Manual Retry te permite enviar un intento inmediatamente en lugar de esperar horas o días al 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, los pagos únicos, los cargos por cambio de plan y los cargos bajo demanda no son aptos.
  • Sin acción del cliente: el cargo se realiza en el 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: un pago fallido es solo el punto de partida. Dodo Payments busca 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

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

Se crea un nuevo pago para el intento y aparece en el Activity Log. Si el cargo se realiza correctamente, la suscripción vuelve a active y la siguiente fecha de facturación avanza con normalidad. Si el procesador de pagos aún no ha liquidado el cargo, el pago aparece como en curso hasta que el webhook payment.succeeded o payment.failed informe del resultado.
Página de detalles de la transacción de un pago fallido que muestra el código y el mensaje de error, un Activity Log y un botón Retry Payment Manually

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

Elegibilidad

El reintento manual solo se envía cuando se cumplen todas las comprobaciones siguientes. La columna Reason code es lo que devuelve la API: en reason en GET /payments/{payment_id}/retry y como el error code en 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. Los reintentos automáticos siguen ejecutándose para otros estados que no sean activos; consulta Subscription Status Transitions.
Reintentar un rechazo permanente contra la misma tarjeta no puede tener éxito y los rechazos repetidos perjudican tu tasa de autorización. Cuando el motivo sea 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 se rechaza un reintento por este motivo, la API devuelve MANUAL_RETRY_LIMIT_REACHED (HTTP 429). El cuerpo del error solo contiene 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. 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 frente a automáticos

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 nunca falla cuando el pago no es apto. En su lugar, devuelve can_retry: false con el código reason, para que tu dashboard o tus herramientas de soporte puedan mostrar el mismo estado que muestra 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.
Response

Respuestas de error

Todos los códigos se describen en la referencia de Error Codes.

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, exactamente igual que en un reintento automático. Conserva payment_id de la respuesta del reintento si necesitas distinguir un intento manual de uno programado.

Payment Webhook Payloads

Esquemas completos de carga útil para eventos de pago.

Relacionado

Subscription Payment Retries

El calendario automático de intervalos crecientes que funciona 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 rechazo permanente.

Handle Payment Failures

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

Error Codes

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