Skip to main content
Quando un payment fallisce, Dodo Payments fornisce un error_code standardizzato e un error_message leggibile. Questa guida mostra come leggere questi campi, decidere se ritentare e recuperare il payment in sicurezza.

Come Dodo Payments Riporta un Fallimento

Ogni payment fallito contiene questi campi nell’oggetto payment:
error_code e error_message sono null finché un payment non fallisce. Controlla sempre prima status.
error_message è rivolto al merchant e può rivelare motivi legati alla frode. Non mostrarlo mai ai clienti. Associa invece error_code a un testo sicuro per il cliente (consulta Surface Errors to Customers Safely).

Il webhook payment.failed

Il webhook payment.failed è il metodo più affidabile per rilevare un fallimento. L’evento include l’intero oggetto payment in data:
payment.failed payload
Un handler minimale legge error_code e instrada in base a tale valore:
Verifica sempre la firma del webhook prima di elaborarlo. Consulta la guida sui webhook per la configurazione completa, inclusa la verifica della firma e l’idempotenza.

Decidere se riprovare: rifiuti soft e hard

error_code indica se vale la pena riprovare con lo stesso metodo di pagamento. Consulta Transaction Failures per l’elenco completo dei tipi di decline e delle azioni consigliate.

Gestire i fallimenti al checkout e durante il rinnovo

Il modo in cui recuperi il pagamento dipende dalla presenza o meno del cliente.
Il cliente sta completando attivamente il checkout. Mostra un messaggio chiaro e consentigli di ritentare o usare un’altra carta.
  • requires_payment_method — il cliente non ha mai fornito un metodo di pagamento. Di solito si tratta di un abbandono del checkout, non di un decline. Ricontatta il cliente per completare il payment (consulta Abandoned Cart Recovery).
  • requires_customer_action — è necessaria un’autenticazione aggiuntiva (ad esempio 3DS). Chiedi al cliente di completarla. Consulta 3D Secure.

Riprovare un pagamento non riuscito

Subscriptions: attiva Subscription Payment Retries per recuperare automaticamente i soft decline. Per ritentare immediatamente invece di attendere la pianificazione, usa Manual Payment Retry dalla dashboard o dall’API. Puoi anche attivare il recupero chiedendo al cliente di aggiornare il metodo di pagamento tramite Update Payment Method API, che addebita eventuali importi dovuti. One-time payments: invia nuovamente il checkout o payment_link affinché il cliente possa riprovare con un metodo diverso. Non esiste un retry automatico per i pagamenti una tantum.
Non ritentare gli hard decline sulla stessa carta. I circuiti delle carte contrassegnano i decline ripetuti come abusivi, danneggiando il tuo tasso di autorizzazione.

Mostrare gli errori ai clienti in sicurezza

Mostra ai clienti un messaggio chiaro e amichevole, mai il valore grezzo di error_code o di error_message rivolto al merchant.
Sulle superfici gestite da Dodo Payments (checkout, Customer Portal, email di dunning), questa associazione è già configurata per te, incluso il fallback a un messaggio generico per i decline legati alla frode. Ti serve l’associazione seguente solo quando mostri i fallimenti nel tuo prodotto.
Customer-facing messaging
Non rivelare mai il motivo reale di STOLEN_CARD, LOST_CARD, PICKUP_CARD o FRAUDULENT. Mostrarlo può informare un attore fraudolento. Mostra un messaggio generico di decline e registra internamente solo il valore specifico di error_code.

Correlati

Transaction Failures

Ogni codice di decline, il relativo tipo e l’azione consigliata.

Error Codes

Errori dell’API e della logica di business che non sono decline della carta.

Subscription Payment Retries

Recupero automatico dei soft decline sui rinnovi delle subscription.

Subscription Dunning

Sequenze di email che recuperano gli hard decline.

Payment Webhooks

Schema completo del payload per gli eventi di payment.

Testing Failures

Carte di test che simulano decline e fallimenti dei rinnovi.
Ultima modifica il 26 settembre 2026