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 paraon_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.
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: emreason 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.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.