Vai al contenuto principale
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.

Il Webhook payment.failed

Il modo più affidabile per rilevare un fallimento è il webhook payment.failed. L’evento avvolge l’intero oggetto di pagamento in data:
payment.failed payload
Un gestore minimale legge error_code e instrada su di esso:
Verifica sempre la firma del webhook prima di elaborarlo. Vedi la guida Webhooks per l’intero setup, compresa la verifica della firma e l’idempotenza.

Decidi se Riprovare: Declini Soft vs. Hard

error_code ti dice se vale la pena riprovare con lo stesso metodo di pagamento. Il riferimento Transaction Failures elenca il tipo di declino e l’azione consigliata per ogni error_code.

Gestire i Fallimenti al Checkout vs. al Rinnovo

Come si recupera dipende dal fatto che il cliente sia presente.
Il cliente sta effettuando attivamente il checkout. Mostra un messaggio chiaro e lascia che riprovino immediatamente o utilizzino un’altra carta.
  • requires_payment_method — il cliente non ha mai fornito un metodo di pagamento: non ha inserito i dettagli della carta o è stato richiesto di farlo e non ha agito. Questo è di solito un abbandono del checkout, non un rifiuto: re-ingaggia il cliente per completare il pagamento (vedi Abandoned Cart Recovery).
  • requires_customer_action — è necessaria un’autenticazione aggiuntiva (come 3DS); fai completare al cliente. Vedi gestione 3D Secure.

Riprovare un Pagamento Fallito

  • Abbonamenti: Abilita Subscription Payment Retries per recuperare declini soft senza lavoro di integrazione. Puoi anche innescare il recupero facendo aggiornare al cliente il proprio metodo di pagamento tramite l’API di Aggiornamento Metodo di Pagamento, che addebita eventuali importi in sospeso.
  • Pagamenti una tantum: Invia nuovamente il checkout o payment_link affinché il cliente possa riprovare con un metodo diverso. Non esiste un ripetizione automatica per pagamenti una tantum.
Non riprovare declini hard con la stessa carta. Le reti di carte possono segnalare ripetuti declini come abusivi, il che riduce il tuo tasso di autorizzazione.

Comunicazione degli Errori ai Clienti in Sicurezza

Mostra ai clienti un messaggio amichevole — mai il vero error_code.
Customer-facing messaging
Non rivelare mai la vera ragione per STOLEN_CARD, LOST_CARD, PICKUP_CARD, o FRAUDULENT. Mostrare questi può avvisare un attore fraudolento. Mostra un messaggio di declino generico e registra solo il specifico error_code internamente.

Correlati

Transaction Failures

Ogni codice di declino, il suo tipo e l’azione raccomandata.

Error Codes

Errori di API e logica aziendale che non sono declini di carta.

Subscription Payment Retries

Recupero automatico dei declini soft sui rinnovi degli abbonamenti.

Subscription Dunning

Sequenze email che recuperano declini hard.

Payment Webhooks

Schema completo del payload per eventi di pagamento.

Testing Failures

Carte di test che simulano declini e fallimenti di rinnovo.
Ultima modifica il 18 giugno 2026