Skip to main content
O retry manual tenta novamente um pagamento de renovação de assinatura com falha no momento em que você solicita, pela página de detalhes do pagamento ou pela API. Ele cobra o método de pagamento salvo na assinatura e é executado independentemente da programação de Payment Retries automáticos.

O que é o retry manual?

Quando um pagamento de renovação falha, a assinatura passa para on_hold e Payment Retries tenta cobrar novamente conforme uma programação de espera progressiva. Às vezes, você sabe que o pagamento será aprovado agora: o cliente confirmou que adicionou fundos à conta ou sua equipe de suporte está em uma ligação com ele. O retry manual permite enviar uma tentativa imediatamente, em vez de aguardar horas ou dias pela próxima tentativa programada.
  • Somente pagamentos de renovação: o retry manual se aplica a faturas de renovação de assinaturas enquanto a assinatura estiver em on_hold. Primeiros pagamentos, pagamentos avulsos, cobranças por alteração de plano e cobranças sob demanda não são elegíveis.
  • Nenhuma ação do cliente: a cobrança é enviada ao método de pagamento já salvo na assinatura.
  • Independente dos retries automáticos: um retry manual não consome uma tentativa da programação automática, não altera o próximo retry programado e funciona mesmo quando o Payment Retries está desativado.
  • Repete a fatura, não o pagamento: um pagamento com falha é apenas o ponto de entrada. O Dodo Payments localiza a fatura de renovação em aberto associada e cobra essa dívida; portanto, não importa a partir de qual pagamento com falha na fatura você inicia o retry.

Repetir pelo dashboard

1

Open the failed payment

Acesse Transactions → Payments e clique no pagamento de renovação com falha para abrir a página Transaction details.
2

Click Retry Payment Manually

Clique em Retry Payment Manually no canto superior direito. O botão fica disponível somente enquanto o pagamento estiver elegível.
3

Check the result

Um novo pagamento é criado para a tentativa e aparece no Activity Log. Se a cobrança for bem-sucedida, a assinatura retorna a active e a próxima data de cobrança avança normalmente. Se o processador de pagamentos ainda não tiver liquidado a cobrança, o pagamento será exibido como em andamento até que o webhook payment.succeeded ou payment.failed informe o resultado.
Página de detalhes da transação de um pagamento com falha mostrando o código e a mensagem de erro, um Activity Log e um botão Retry Payment Manually

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

Elegibilidade

Um retry manual só é enviado quando todas as verificações abaixo são aprovadas. A coluna Reason code corresponde ao que a API retorna: em reason em GET /payments/{payment_id}/retry e como o erro code em POST /payments/{payment_id}/retry.
O retry manual é mais restrito que os retries automáticos em um aspecto: ele exige que a assinatura esteja em on_hold. Os retries automáticos continuam sendo executados para outros status não ativos; consulte Transições de status da assinatura.
Repetir uma recusa definitiva no mesmo cartão não pode ser bem-sucedido, e recusas repetidas prejudicam sua taxa de autorização. Quando o motivo for MANUAL_RETRY_HARD_DECLINE, peça ao cliente que atualize o método de pagamento. O Subscription Dunning faz isso automaticamente.

Limites de retry

Cada fatura de renovação permite 3 retries manuais, com um período de espera entre eles: Os limites se aplicam tanto ao modo de teste quanto ao modo live. Quando um retry é recusado por esse motivo, a API retorna MANUAL_RETRY_LIMIT_REACHED (HTTP 429). O corpo do erro contém apenas code e message. Para saber quando o próximo retry será liberado, consulte o estado do retry e leia retry_available_at. Ele é null quando os três retries já tiverem sido usados. Retries automáticos não contam para esse limite, e retries manuais não contam para as 8 tentativas da programação automática.

Retries manuais vs. automáticos

Repetir pela API

Verifique primeiro a elegibilidade e depois envie o retry. Ambos os endpoints recebem o ID de um pagamento com falha.

Verificar se um pagamento pode ser repetido

GET /payments/{payment_id}/retry nunca falha para um pagamento inelegível. Em vez disso, ele retorna can_retry: false com o código reason, para que seu dashboard ou ferramenta de suporte possa mostrar o mesmo estado exibido pelo dashboard do Dodo Payments. Ele requer a função Viewer.
Response

Enviar um retry manual

POST /payments/{payment_id}/retry cria um novo pagamento e cobra o método de pagamento salvo. Ele requer a função Editor.
Response

Respostas de erro

Cada código é descrito na referência de Códigos de erro.

Webhooks

Um retry manual cria um pagamento comum, portanto os mesmos webhooks são acionados como em qualquer tentativa de renovação: No objeto de pagamento desses eventos, retry_attempt é 1 ou superior e subscription_id é definido, exatamente como em um retry automático. Mantenha o payment_id da resposta do retry se precisar diferenciar uma tentativa manual de uma programada.

Payment Webhook Payloads

Esquemas completos de payload para eventos de pagamento.

Relacionados

Subscription Payment Retries

A programação automática de espera progressiva executada junto com os retries manuais.

Subscription Dunning

Envie um e-mail ao cliente para atualizar o método de pagamento após uma recusa definitiva.

Handle Payment Failures

Leia os códigos de recusa e decida quando vale a pena fazer um retry.

Error Codes

Cada código MANUAL_RETRY_*, seu acionador e sua mensagem.
Última modificação em 25 de setembro de 2026