Vai al contenuto principale
GoCardless · SEPA Core · mandato annullato o contestato

GoCardless MD01: mandate_cancelled e authorisation_disputed in un incasso SEPA

MD01 arriva quando il cliente ha annullato il mandato presso la sua banca o dichiara di non aver mai autorizzato l'addebito. In GoCardless compare in tre eventi di pagamento diversi, a seconda del momento, e in tutti il risultato per il futuro è lo stesso: con quel mandato non si può più incassare.

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
4 min

Tre eventi e quattro righe, lo stesso codice

EventoCausaTesto di GoCardless
payments · failedmandate_cancelledThe customer cancelled their mandate at their bank.
payments · charged_backmandate_cancelledThis payment was charged back by the customer's bank, because the customer disputed authorising the transaction.
payments · cancelledauthorisation_disputedThis payment has been cancelled because the payer disputes authorising its mandate.
payments · cancelledmandate_cancelledThis payment has been cancelled because the payer disputes authorising its mandate.

Le quattro righe provengono dalla tabella SEPA Core della documentazione di GoCardless e riportano MD01; il pagamento annullato compare con due cause e lo stesso testo. Anche il mandato viene annullato, e GoCardless lo comunica con un evento proprio: «A payment under this mandate failed, indicating that the mandate has been cancelled at the customer's bank. Any subscriptions and pending payments will also be cancelled.».

Scheda della causa mandate_cancelled di GoCardless
La causa, il codice SEPA Core MD01 e il testo di GoCardless per il pagamento fallito.

Cosa cambia a seconda del momento

Se il cliente annulla il mandato prima che l'incasso venga addebitato, il pagamento fallisce: il denaro non è arrivato. Se lo contesta dopo l'addebito, è uno storno: il denaro è arrivato e viene restituito. E se c'erano pagamenti in attesa di essere presentati, GoCardless li annulla prima di inviarli. Il connettore annota nel suo codice di aver visto la causa authorisation_disputed con MD01 in un pagamento di prova della sandbox, come storno di un pagamento già regolato.

Cosa fa Odoo con il connettore

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. In tutti e tre i casi la transazione finisce in «Errore» con la causa in evidenza. Il messaggio dipende dall'evento: «GoCardless could not collect this payment (mandate_cancelled).» per un fallimento, e «GoCardless reported a chargeback for this payment (mandate_cancelled). The funds have been taken back and will be deducted from a future payout.» per uno storno. Se Odoo aveva già la fattura pagata con quell'incasso, il connettore annulla il pagamento e la fattura torna da saldare.

L'importante è il mandato. mandate_cancelled e authorisation_disputed sono tra le quattro cause per cui il connettore lo considera non più valido, quindi:

  • archivia il metodo di pagamento del cliente, che smette di essere proposto per gli incassi;
  • scrive nella sua scheda «The GoCardless direct debit mandate of … is no longer usable (mandate_cancelled). No further collection can be taken against it. Ask the customer to set up a new mandate.»;
  • crea un'attività «GoCardless mandate lost».

Arrivano più eventi con la stessa notizia, quello del pagamento e quello del mandato, ma l'avviso compare una sola volta: il secondo trova il mandato già archiviato.

Tutti questi testi li scrive il connettore nell'applicare l'evento, senza nessuno davanti. Sono in inglese, perché il connettore non è tradotto in italiano e questi messaggi escono sempre in inglese, anche in un Odoo in italiano: «GoCardless could not collect this payment (mandate_cancelled).», «GoCardless reported a chargeback for this payment (mandate_cancelled). The funds have been taken back and will be deducted from a future payout.», «The GoCardless direct debit mandate of … is no longer usable (mandate_cancelled). No further collection can be taken against it. Ask the customer to set up a new mandate.» e «GoCardless mandate lost».

Cosa fare

Prima di chiedere un mandato nuovo, capisci perché l'ha annullato. Un cliente che ha smesso di voler il servizio ha bisogno di una disdetta, non di un'altra firma. Se è stato un errore suo o un cambiamento nella sua banca, chiedigli di firmare di nuovo e incassa con il mandato nuovo le fatture rimaste aperte. Se dice di non aver mai autorizzato l'addebito, verifica come è stato firmato il mandato prima di continuare a incassare.

Ha senso riprovare un pagamento con MD01?

No. Il mandato non esiste più per la sua banca, e con il mandato archiviato il pulsante «Retry collection» non compare nella transazione. Serve un mandato nuovo firmato dal cliente.

Schema: cosa invia GoCardless con MD01 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

In Odoo 17, 18, 19 e 20, il connettore distingue il fallimento dallo storno, riapre la fattura se serve, ritira il mandato e ti lascia l'attività di parlare con il cliente nella sua scheda. Quello che non fa è chiedere il mandato nuovo per conto tuo: quella conversazione spetta a te.

Continua a leggere

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.Errore mandate_is_inactive di GoCardless alla creazione di un incasso da OdooGoCardless risponde mandate_is_inactive se crei un pagamento con un mandato annullato, fallito o scaduto. Perché succede e come lo gestisce il connettore.GoCardless bank_account_closed: AC04 e MD07, il conto non esiste piùGoCardless bank_account_closed con AC04 (conto chiuso) o MD07 (titolare deceduto): il mandato viene annullato. Cosa fa Odoo con la fattura e con il cliente.
Verificato nel codice del connettore (versione 17.0, 18.0, 19.0 e 20.0) e nelle fonti collegate

Fonti

  • 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: models/payment_transaction.py, riga 442 in 17.0 (d203ee6), riga 442 in 18.0 (e2ab18b), riga 441 in 19.0 (ce7f5a3) e riga 456 in 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 725 in 17.0 (d203ee6), riga 725 in 18.0 (e2ab18b), riga 724 in 19.0 (ce7f5a3) e riga 748 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_transaction.py, riga 713 in 17.0 (d203ee6), riga 713 in 18.0 (e2ab18b), riga 712 in 19.0 (ce7f5a3) e riga 736 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_token.py, riga 131 in 17.0 (d203ee6), riga 131 in 18.0 (e2ab18b), riga 131 in 19.0 (ce7f5a3) e riga 130 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: models/payment_token.py, riga 83 in 17.0 (d203ee6), riga 83 in 18.0 (e2ab18b), riga 83 in 19.0 (ce7f5a3) e riga 82 in 20.0 (688d86b)
  • 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 529 in 17.0 (d203ee6), riga 529 in 18.0 (e2ab18b), riga 529 in 19.0 (ce7f5a3) e riga 531 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 1148 in 17.0 (d203ee6), riga 1148 in 18.0 (e2ab18b), riga 1148 in 19.0 (ce7f5a3) e riga 1155 in 20.0 (688d86b)
  • Codice del modulo: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, riga 495 in 17.0 (d203ee6), riga 495 in 18.0 (e2ab18b), riga 495 in 19.0 (ce7f5a3) e riga 497 in 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/events/mandate
  • Codice del modulo: flexigo_payment_gocardless: __manifest__.py, riga 31 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) e 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/events/payment
  • 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: 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)
  • github.com/odoo/odoo/blob/20.0/addons/payment/i18n/it.po
  • 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