Vai al contenuto principale
GoCardless · SEPA Core · pagamento fallito

GoCardless insufficient_funds (AM04): il conto del cliente non aveva fondi sufficienti

È il guasto più comune di un addebito diretto: la banca del cliente restituisce l'addebito perché sul conto non c'erano fondi. GoCardless lo segnala con un evento di pagamento failed, la causa insufficient_funds e il codice SEPA AM04. È uno dei guasti che il suo servizio Success+ può riprovare senza che tu debba fare nulla.

FlexigoTech · Responsabile: Víctor Gómez · Aggiornato il 6 novembre 2026

In breve

Versioni
Odoo 17, 18, 19 e 20
Verificato
nel codice del connettore, versione 17.0, 18.0, 19.0 e 20.0 · nelle fonti collegate in fondo
Lettura
5 min

Cosa dice GoCardless

EventoCausaCodice SEPA CoreTesto di GoCardless
payments · failedinsufficient_fundsAM04The customer's account had insufficient funds to make this payment.

La documentazione dell'evento failed aggiunge un elemento chiave: GoCardless riprova il pagamento autonomamente quando il campo will_attempt_retry dell'evento è true («GoCardless will automatically retry the payment if event's will_attempt_retry field is true.»). Questo riprovo automatico è Success+, e per usarlo bisogna averlo attivato nella Dashboard di GoCardless.

Secondo la guida di Success+, riprova solo i pagamenti che falliscono per mancanza di fondi. In SEPA sono due codici: AM04 e MS03, e MS03 solo in Austria, Belgio, Germania, Lussemburgo e Slovacchia. GoCardless avverte comunque che i suoi criteri possono cambiare: per ogni guasto vale il campo will_attempt_retry.

Scheda della causa insufficient_funds di GoCardless
La causa, il suo codice SEPA Core AM04 e il testo con cui GoCardless la documenta.

Perché arriva quando la fattura sembrava già incassata

Un addebito SEPA non si risolve subito: secondo GoCardless, l'incasso di un pagamento può richiedere fino a 5 giorni lavorativi. Di solito la banca del cliente segnala il guasto un giorno lavorativo dopo la data di addebito, prima che il pagamento passi a confirmed. In pochi casi lo segnala più tardi, con il pagamento già contrassegnato come confirmed: è un guasto tardivo (late failure), e la guida di Success+ cita come esempio uno per mancanza di fondi. Per questo AM04 può comparire quando in Odoo l'incasso risultava già confermato e la fattura riconciliata. Il connettore lo gestisce: se un incasso che Odoo considerava avvenuto fallisce, annulla il suo pagamento e la fattura torna in sospeso.

Il connettore GoCardless per Odoo incassa solo tramite SEPA Core e in euro, e per un pagamento fallito SEPA Core la documentazione di GoCardless riporta un solo codice con insufficient_funds: AM04. In Odoo vedrai la causa e non il codice, perché il connettore memorizza la causa dell'evento e non il codice SEPA. Il connettore annota inoltre nel suo codice che la combinazione insufficient_funds con AM04 è quella riscontrata nei pagamenti SEPA reali del sandbox di GoCardless.

Cosa vedi in Odoo con il connettore

Ogni incasso inviato dal connettore chiede a GoCardless retry_if_possible, l'opzione di Success+. Quando arriva il guasto possono succedere due cose, e la transazione ti indica quale nel suo gruppo GoCardless: «GoCardless Cause» e la casella «Success+ Will Retry». La transazione si apre dalla fattura, con il pulsante «Transazione di pagamento» in alto; il menu delle transazioni compare solo in modalità sviluppatore, e in Odoo 20 non esiste.

will_attempt_retryStato«Messaggio» della transazionePulsante «Retry collection»
true«In sospeso»«GoCardless could not collect this payment (insufficient_funds). Success+ will retry it automatically; there is nothing to do.»Non compare
false«Errore», e la fattura torna in sospeso«GoCardless could not collect this payment (insufficient_funds).» e, se GoCardless indica il motivo, «It will not be retried automatically (…).»Compare, se restano tentativi e il mandato è attivo

Questi messaggi li scrive il connettore nell'applicare l'evento, senza intervento umano. Il connettore non è tradotto in italiano: questi testi compaiono sempre in inglese, anche in un Odoo in italiano, sia che li avvii un utente sia un'azione pianificata: «GoCardless could not collect this payment (insufficient_funds). Success+ will retry it automatically; there is nothing to do.», «GoCardless could not collect this payment (insufficient_funds).» e «It will not be retried automatically (…).».

La transazione resta in sospeso di proposito quando Success+ riproverà: il denaro potrebbe ancora arrivare, e uno stato di errore farebbe credere che l'incasso sia perso. Ogni volta che GoCardless ripresenta l'incasso invia un evento resubmission_requested, e il connettore aumenta di uno «GoCardless Retries», sia che il riprovo sia di Success+ sia che l'abbia chiesto tu.

Cosa fare

  1. Apri la transazione dalla fattura e controlla «GoCardless Cause» e «Success+ Will Retry».
  2. Se Success+ la riproverà, non fare nulla: il pulsante di riprovo non compare nemmeno. GoCardless chiede di non addebitare il cliente con un altro canale nel frattempo, perché potrebbe pagare due volte.
  3. Se non la riproverà, parla prima con il cliente per sapere quando avrà fondi e premi «Retry collection» quando te lo conferma. Il pulsante non sceglie la data: la nuova data di addebito la stabilisce GoCardless, e la transazione passa a «Retry requested. GoCardless will confirm the new charge date.».
  4. Tieni il conto: GoCardless ammette al massimo 3 riprovi per pagamento («Payments can be retried up to 3 times.»), e il connettore conta anche quelli di Success+ in «GoCardless Retries».

Un AM04 annulla il mandato del cliente?

No. La causa insufficient_funds non è tra quelle che fanno archiviare il mandato al connettore, cioè mandate_cancelled, bank_account_closed, mandate_expired e authorisation_disputed. Il cliente conserva il suo metodo di pagamento per la prossima fattura.

Perché Success+ non riprova tutti i guasti?

Perché la sua guida lo limita ai pagamenti senza fondi: in SEPA, AM04 e, solo in cinque paesi, MS03. Un cliente che rifiuta l'addebito o un conto chiuso non si risolvono ripresentando l'addebito. Il connettore non decide da sé: segue il campo will_attempt_retry di ogni guasto.

Schema: cosa invia GoCardless con insufficient_funds e cosa fa Odoo con il connettore
Schema realizzato a partire dal codice del connettore (17.0, 18.0, 19.0 e 20.0) e dalla documentazione di GoCardless.

Con il nostro connettore

Il connettore GoCardless per Odoo 17, 18, 19 e 20 trasforma l'evento in qualcosa di gestibile dalla fattura: lascia la transazione in sospeso mentre Success+ lavora, la porta in errore e riapre la fattura quando non ci sarà più riprovo, e conta i riprovi per non offrirti un'azione che non serve. Ciò che non può fare è mettere denaro sul conto del tuo cliente: se l'AM04 si ripete, è la conversazione con lui a risolvere l'incasso.

Continua a leggere

GoCardless refer_to_payer: MS02, MS03, RR04 e SL01 in un addebito SEPArefer_to_payer raggruppa in GoCardless i codici SEPA MS02, MS03, RR04 e SL01. Cosa indica ciascuno, perché il mandato resta valido e come lo gestisce Odoo.Errore retry_failed di GoCardless nel nuovo tentativo di incasso da OdooGoCardless risponde retry_failed se il pagamento non è fallito o non ammette più tentativi. Quando compare «Retry collection» e cosa fa il connettore.GoCardless MD06: il cliente chiede alla propria banca di stornare un addebitoIl cliente chiede alla propria banca di stornare un addebito GoCardless: charged_back, refund_requested e MD06. Cosa succede in Odoo con fattura e mandato.
Verificato nel codice del connettore (versione 17.0, 18.0, 19.0 e 20.0) e nelle fonti collegate

Fonti

  • docs.gocardless.com/docs/api-reference/events/payment
  • docs.gocardless.com/docs/api-reference/payment
  • docs.gocardless.com/docs/optimise/reduced-failed-payments-with-success-plus
  • Codice del modulo: flexigo_payment_gocardless: const.py, riga 15 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: const.py, riga 76 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: const.py, riga 71 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 260 in 17.0 (d203ee6), riga 260 in 18.0 (e2ab18b), riga 260 in 19.0 (ce7f5a3) e riga 271 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 729 in 17.0 (d203ee6), riga 729 in 18.0 (e2ab18b), riga 728 in 19.0 (ce7f5a3) e riga 752 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 746 in 17.0 (d203ee6), riga 746 in 18.0 (e2ab18b), riga 745 in 19.0 (ce7f5a3) e riga 769 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 732 in 17.0 (d203ee6), riga 732 in 18.0 (e2ab18b), riga 731 in 19.0 (ce7f5a3) e riga 755 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 754 in 17.0 (d203ee6), riga 754 in 18.0 (e2ab18b), riga 753 in 19.0 (ce7f5a3) e riga 777 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 680 in 17.0 (d203ee6), riga 680 in 18.0 (e2ab18b), riga 679 in 19.0 (ce7f5a3) e riga 703 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 430 in 17.0 (d203ee6), riga 430 in 18.0 (e2ab18b), riga 429 in 19.0 (ce7f5a3) e riga 444 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: const.py, riga 122 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: const.py, riga 119 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 461 in 17.0 (d203ee6), riga 461 in 18.0 (e2ab18b), riga 460 in 19.0 (ce7f5a3) e riga 479 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 484 in 17.0 (d203ee6), riga 484 in 18.0 (e2ab18b), riga 483 in 19.0 (ce7f5a3) e riga 502 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: views/payment_transaction_views.xml, riga 13 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 63 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 418 in 17.0 (d203ee6), riga 418 in 18.0 (e2ab18b), riga 417 in 19.0 (ce7f5a3) e riga 432 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: views/payment_transaction_views.xml, riga 22 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: views/payment_transaction_views.xml, riga 27 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: views/payment_transaction_views.xml, riga 28 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • github.com/odoo/odoo/blob/20.0/addons/payment/views/payment_transaction_views.xml
  • github.com/odoo/odoo/blob/20.0/addons/payment/i18n/it.po
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 436 in 17.0 (d203ee6), riga 436 in 18.0 (e2ab18b), riga 436 in 19.0 (ce7f5a3) e riga 438 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 1083 in 17.0 (d203ee6), riga 1083 in 18.0 (e2ab18b), riga 1083 in 19.0 (ce7f5a3) e riga 1090 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 703 in 17.0 (d203ee6), riga 703 in 18.0 (e2ab18b), riga 703 in 19.0 (ce7f5a3) e riga 710 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 356 in 17.0 (d203ee6), riga 356 in 18.0 (e2ab18b), riga 356 in 19.0 (ce7f5a3) e riga 358 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 1063 in 17.0 (d203ee6), riga 1063 in 18.0 (e2ab18b), riga 1063 in 19.0 (ce7f5a3) e riga 1070 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 408 in 17.0 (d203ee6), riga 408 in 18.0 (e2ab18b), riga 408 in 19.0 (ce7f5a3) e riga 410 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 1016 in 17.0 (d203ee6), riga 1016 in 18.0 (e2ab18b), riga 1016 in 19.0 (ce7f5a3) e riga 1031 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 1022 in 17.0 (d203ee6), riga 1022 in 18.0 (e2ab18b), riga 1022 in 19.0 (ce7f5a3) e riga 1037 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: __manifest__.py, riga 31 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • support.gocardless.com/hc/en-gb/articles/360001467265
  • Codice del modulo: flexigo_payment_gocardless: const.py, riga 66 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • github.com/odoo/odoo/blob/20.0/addons/account_payment/views/account_move_views.xml