Skip to main content
Quando un pagamento fallisce, Dodo Payments ti comunica perché attraverso un error_code standardizzato e un error_message leggibile. Questa guida mostra come leggere quei campi, decidere se vale la pena riprovare e recuperare il pagamento senza esporre informazioni sensibili ai clienti.

Come Dodo Payments Riporta un Fallimento

Ogni pagamento fallito — sia un checkout una tantum che un rinnovo di abbonamento — porta gli stessi campi di fallimento sull’oggetto di pagamento:
error_code e error_message sono null finché un pagamento non fallisce effettivamente. Controlla sempre prima status, poi leggi i campi di errore.
error_message proveniente dall’API merchant è un testo rivolto al merchant. Può indicare il motivo reale di un rifiuto, inclusi quelli correlati alle frodi, quindi non mostrarlo mai direttamente al cliente. Mappa invece error_code su un testo sicuro per il cliente, come illustrato in Mostrare gli errori ai clienti in modo sicuro.

Il webhook payment.failed

Il modo più affidabile per rilevare un fallimento è il webhook payment.failed. L’evento include l’intero oggetto del pagamento in data:
payment.failed payload
Un handler minimale legge error_code e applica il routing 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. Il riferimento Transaction Failures elenca il tipo di rifiuto e l’azione consigliata per ogni error_code.

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 effettuando attivamente il checkout. Mostra un messaggio chiaro e consenti di riprovare immediatamente o di usare un’altra carta.
  • requires_payment_method — il cliente non ha mai fornito un metodo di pagamento: non ha inserito i dati della carta oppure gli è stato richiesto di inserirli ma non ha eseguito alcuna azione. Di solito si tratta di un abbandono del checkout, non di un rifiuto: coinvolgi nuovamente il cliente per completare il pagamento (consulta Recupero dei carrelli abbandonati).
  • requires_customer_action — è necessaria un’autenticazione aggiuntiva (ad esempio 3DS); chiedi al cliente di completarla. Consulta Gestione di 3D Secure.

Riprovare un pagamento non riuscito

  • Abbonamenti: abilita Subscription Payment Retries per recuperare i rifiuti soft senza interventi di integrazione. Puoi anche attivare il recupero chiedendo al cliente di aggiornare il metodo di pagamento tramite l’API Update Payment Method, che addebita gli importi ancora dovuti.
  • Pagamenti una tantum: invia nuovamente il checkout o payment_link affinché il cliente possa riprovare con un metodo diverso. Non è previsto alcun nuovo tentativo automatico per i pagamenti una tantum.
Non riprovare i rifiuti hard con la stessa carta. I circuiti delle carte possono segnalare i rifiuti ripetuti come attività abusiva, danneggiando il tuo tasso di autorizzazione.

Mostrare gli errori ai clienti in modo sicuro

Mostra ai clienti un messaggio chiaro e cordiale — mai il valore grezzo di error_code e mai error_message, che è rivolto al merchant.
Nelle superfici gestite da Dodo Payments — checkout, Customer Portal ed e-mail di dunning — questa mappatura è già effettuata per te, incluso il fallback a un messaggio generico per i rifiuti correlati alle frodi. Ti serve la mappatura 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. Mostrarli può fornire informazioni utili a un autore di frodi. Mostra un messaggio generico di rifiuto e registra internamente solo il valore specifico di error_code.

Correlati

Transaction Failures

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

Error Codes

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

Subscription Payment Retries

Recupero automatico dei rifiuti soft durante i rinnovi degli abbonamenti.

Subscription Dunning

Sequenze di e-mail che recuperano i rifiuti hard.

Payment Webhooks

Schema completo del payload per gli eventi di pagamento.

Testing Failures

Carte di test che simulano rifiuti e fallimenti dei rinnovi.
Ultima modifica il 8 agosto 2026