What GoCardless says
| Event | Cause | SEPA Core code | GoCardless text |
|---|---|---|---|
| payments · charged_back | refund_requested | MD06 | This payment was charged back by the customer's bank at the customer's request within the 8 week cool-off period. |
The text says almost everything: the customer requests the chargeback, their bank processes it, and it falls within the 8-week period that GoCardless calls the cool-off period. It is not a collection failure: the money arrived, and now it goes back.

When you notice it
An MD06 chargeback arrives after the collection is already closed. In Odoo, the transaction was done and the invoice paid: the connector treats a collection as done when GoCardless marks it confirmed or paid_out. After that there is another event worth knowing, chargeback_settled: “This charged back payment has been settled against a payout.”. In other words, the chargeback is deducted from a GoCardless payout, not charged to you separately.
If the customer's bank backs down, GoCardless sends chargeback_cancelled and the payment counts as collected again. Days can pass between one event and the other, and you should not make decisions with the customer without first checking the state of the transaction in Odoo: it reflects the last event GoCardless sent. You open the transaction from the invoice, with the “Payment Transaction” button at the top; the transactions menu only appears in developer mode, and in Odoo 20 it does not exist.
What Odoo does with the connector
| Step | What changes |
|---|---|
| The transaction | Goes from “Confirmed” to “Error”: a chargeback undoes a collection that had been fine. |
| The message | “GoCardless reported a chargeback for this payment (refund_requested). The funds have been taken back and will be deducted from a future payout.” |
| The payment in Odoo | It is cancelled, and the invoice is pending collection again. |
| The mandate | Remains valid: refund_requested is not among the causes for which the connector archives the mandate. |
The connector writes the message when it applies the event, with nobody in front of the screen. The connector writes these texts in English, so in an English-language Odoo they appear exactly as quoted here, whether a user or a scheduled action triggers them: “GoCardless reported a chargeback for this payment (refund_requested). The funds have been taken back and will be deducted from a future payout.”.
The transaction ends up in error with the mandate active, but it does not show the “Retry collection” button. Since version 1.1.4, the connector only offers it if the payment is failed in GoCardless, and a charged-back payment is charged_back. This is in line with the GoCardless documentation: a retry only works for payments that have failed, and a charged-back payment would be answered with retry_failed.
It is right that the mandate stays alive. Asking for a receipt to be refunded is not revoking the authorisation; if the customer wanted that, the cause would be a different one (mandate_cancelled, with the code MD01). With chargeback_cancelled, the connector treats the transaction as collected again.
What to do
An MD06 chargeback is a conversation with the customer before it is a technical problem. Ask what happened: an amount they did not expect, a service they are unhappy with, or a duplicate charge. With the answer:
- If the invoice is correct and the customer accepts it, collect it again with a new collection, using their saved payment method: the mandate is still available. The charged-back transaction has no retry button.
- If the customer was right, issue the appropriate credit note and leave the original uncollected.
- If chargebacks keep happening with the same customer, consider another payment method for them.
How long does the customer have to charge back a collection?
For an MD06, the GoCardless text speaks of an 8-week period: the customer asks their bank for the chargeback within that time. That is why a confirmed SEPA collection is not entirely firm during that time.
Where do I see that it was a chargeback and not a failure?
In the transaction, which you open from the invoice with the “Payment Transaction” button: the “GoCardless Cause” field says refund_requested and the message talks about a chargeback, not about a collection that could not be made.

With our connector
The GoCardless connector for Odoo 17, 18, 19 and 20 does not leave an invoice marked as paid with money you no longer have: it cancels the payment, reopens the invoice and saves the cause. And it does not punish the customer by archiving their mandate over a one-off chargeback.
Keep reading
Checked in the connector's source code (version 17.0, 18.0, 19.0 and 20.0) and the linked sources
Sources
- Module source code: flexigo_payment_gocardless: const.py, line 15 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) and 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: models/payment_transaction.py, line 694 in 17.0 (d203ee6), line 694 in 18.0 (e2ab18b), line 693 in 19.0 (ce7f5a3) and line 717 in 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: const.py, line 41 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) and 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: const.py, line 76 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) and 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: models/payment_transaction.py, line 713 in 17.0 (d203ee6), line 713 in 18.0 (e2ab18b), line 712 in 19.0 (ce7f5a3) and line 736 in 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: models/payment_transaction.py, line 754 in 17.0 (d203ee6), line 754 in 18.0 (e2ab18b), line 753 in 19.0 (ce7f5a3) and line 777 in 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, line 529 in 17.0 (d203ee6), line 529 in 18.0 (e2ab18b), line 529 in 19.0 (ce7f5a3) and line 531 in 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, line 356 in 17.0 (d203ee6), line 356 in 18.0 (e2ab18b), line 356 in 19.0 (ce7f5a3) and line 358 in 20.0 (688d86b)
- docs.gocardless.com/docs/api-reference/events/payment
- Module source code: flexigo_payment_gocardless: __manifest__.py, line 31 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) and 20.0 (688d86b)
- docs.gocardless.com/docs/api-reference/events/mandate
- Module source code: flexigo_payment_gocardless: views/payment_transaction_views.xml, line 13 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) and 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: models/payment_transaction.py, line 63 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) and 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: models/payment_transaction.py, line 418 in 17.0 (d203ee6), line 418 in 18.0 (e2ab18b), line 417 in 19.0 (ce7f5a3) and line 432 in 20.0 (688d86b)
- github.com/odoo/odoo/blob/20.0/addons/payment/i18n/payment.pot
- github.com/odoo/odoo/blob/20.0/addons/payment/views/payment_transaction_views.xml
- Module source code: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, line 1016 in 17.0 (d203ee6), line 1016 in 18.0 (e2ab18b), line 1016 in 19.0 (ce7f5a3) and line 1031 in 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, line 567 in 17.0 (d203ee6), line 567 in 18.0 (e2ab18b), line 567 in 19.0 (ce7f5a3) and line 569 in 20.0 (688d86b)
- docs.gocardless.com/docs/api-reference/payment
- docs.gocardless.com/docs/api-reference/responses-and-errors
- Module source code: flexigo_payment_gocardless: models/payment_transaction.py, line 469 in 17.0 (d203ee6), line 469 in 18.0 (e2ab18b), line 468 in 19.0 (ce7f5a3) and line 487 in 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, line 521 in 17.0 (d203ee6), line 521 in 18.0 (e2ab18b), line 521 in 19.0 (ce7f5a3) and line 523 in 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: models/payment_provider.py, line 397 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) and 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: views/payment_transaction_views.xml, line 22 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) and 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
- Module source code: flexigo_payment_gocardless: models/payment_transaction.py, line 435 in 17.0 (d203ee6), line 435 in 18.0 (e2ab18b), line 434 in 19.0 (ce7f5a3) and line 449 in 20.0 (688d86b)
- Module source code: flexigo_payment_gocardless: models/payment_transaction.py, line 247 in 17.0 (d203ee6), line 247 in 18.0 (e2ab18b), line 247 in 19.0 (ce7f5a3) and line 258 in 20.0 (688d86b)
