Manual Retry ritenta il pagamento di rinnovo di un abbonamento non riuscito quando lo richiedi, dalla pagina dei dettagli del pagamento o tramite API. Addebita il metodo di pagamento salvato sull’abbonamento e opera indipendentemente dalla pianificazione automatica di Payment Retries.
Che cos’è Manual Retry?
Quando un pagamento di rinnovo non va a buon fine, l’abbonamento passa aon_hold. Se hai attivato Payment Retries, il sistema ritenta l’addebito secondo una pianificazione con back-off. A volte sai che il pagamento andrà a buon fine subito: il cliente ha confermato di aver ricaricato il proprio conto oppure il tuo team di supporto è al telefono con lui. Manual Retry invia immediatamente un tentativo, invece di aspettare ore o giorni per quello pianificato successivo.
- Solo pagamenti di rinnovo: Manual Retry si applica alle fatture di rinnovo degli abbonamenti mentre l’abbonamento è
on_hold. I pagamenti iniziali, i pagamenti una tantum, gli addebiti per cambio piano e gli addebiti on-demand non sono idonei. - Nessuna azione del cliente: l’addebito viene effettuato sul metodo di pagamento già salvato sull’abbonamento.
- Indipendente dai retry automatici: un retry manuale non consuma un tentativo della pianificazione automatica, non sposta il prossimo retry pianificato e funziona anche quando Payment Retries è disattivato.
- Ritenta la fattura, non il pagamento: il pagamento non riuscito è solo il punto di ingresso. Dodo Payments individua la fattura di rinnovo aperta associata e addebita l’importo dovuto, quindi non importa da quale pagamento non riuscito della fattura avvii il retry.
Ripetere dal dashboard
Solo gli utenti con il ruolo Owner o Editor possono inviare un retry manuale.1
Open the failed payment
Vai a Transactions → Payments e fai clic sul pagamento di rinnovo non riuscito per aprire la pagina Transaction details.
2
Click Retry Payment Manually
Fai clic su Retry Payment Manually nell’angolo in alto a destra. Il pulsante è disponibile solo mentre il pagamento è idoneo.
3
Check the result
Dodo Payments crea un nuovo pagamento per il tentativo, che compare nell’Activity Log. Se l’addebito va a buon fine, l’abbonamento torna a
active e la data di fatturazione successiva viene spostata a un periodo di fatturazione dopo il retry riuscito. Se il processore di pagamento non ha ancora regolato l’addebito, il pagamento viene mostrato come in corso finché il webhook payment.succeeded o payment.failed non comunica l’esito.
Retry Payment Manually on the transaction details page of a failed renewal
Idoneità
Dodo Payments invia un retry manuale solo quando tutti i controlli della tabella vengono superati. La colonna Reason code indica ciò che restituisce l’API: inreason su GET /payments/{payment_id}/retry e come errore code su POST /payments/{payment_id}/retry.
Manual Retry è più restrittivo dei retry automatici in un aspetto: richiede che l’abbonamento sia
on_hold. Un abbonamento past_due in un periodo di tolleranza non supera questo controllo. I retry automatici continuano a essere eseguiti per altri stati non attivi. Consulta Subscription Status Transitions.Limiti dei retry
Ogni fattura di rinnovo consente 3 retry manuali, con un periodo di attesa tra l’uno e l’altro:
I limiti si applicano sia in modalità test sia in modalità live. Quando il limite impedisce un retry, l’API restituisce
MANUAL_RETRY_LIMIT_REACHED (HTTP 429) e il corpo dell’errore contiene solo code e message. Per sapere quando sarà disponibile il retry successivo, controlla lo stato del retry e leggi retry_available_at. Il valore è null una volta utilizzati tutti e tre i retry.
I retry automatici non vengono conteggiati in questo limite e i retry manuali non vengono conteggiati negli 8 tentativi della pianificazione automatica.
Retry manuali e automatici
I due percorsi di retry differiscono nei seguenti aspetti:Retry tramite API
Controlla prima l’idoneità, quindi invia il retry. Entrambi gli endpoint accettano l’ID di un pagamento non riuscito.Verificare se un pagamento può essere ritentato
GET /payments/{payment_id}/retry non restituisce un errore per un pagamento non idoneo. Restituisce invece can_retry: false con il codice reason, così la tua dashboard o i tuoi strumenti di supporto possono mostrare lo stesso stato della dashboard di Dodo Payments. Richiede il ruolo Viewer.
Response
Inviare un retry manuale
POST /payments/{payment_id}/retry crea un nuovo pagamento e addebita il metodo di pagamento salvato. Richiede il ruolo Editor. Gli esempi SDK riutilizzano client dell’esempio precedente.
Response
Risposte di errore
Quando un retry non è consentito,POST restituisce uno dei seguenti HTTP status:
La documentazione di riferimento degli Error Codes descrive ogni codice.
Webhook
Un retry manuale crea un pagamento ordinario, quindi vengono attivati gli stessi webhook di qualsiasi tentativo di rinnovo:
Nell’oggetto pagamento di questi eventi,
retry_attempt è 1 o superiore e subscription_id è impostato, come per un retry automatico. L’oggetto pagamento non dispone di un campo che contrassegni un tentativo manuale, quindi conserva payment_id della risposta del retry se devi distinguere un tentativo manuale da uno pianificato.
Payment Webhook Payloads
Schemi completi del payload per gli eventi di pagamento.
Correlati
Subscription Payment Retries
La pianificazione automatica con back-off che viene eseguita insieme ai retry manuali.
Subscription Dunning
Invia un’email al cliente per aggiornare il metodo di pagamento dopo un hard decline.
Handle Payment Failures
Leggi i codici di rifiuto e decidi quando vale la pena effettuare un retry.
Error Codes
Ogni codice
MANUAL_RETRY_*, il relativo trigger e il relativo messaggio.