Wat GoCardless zegt
| Event | Oorzaak | SEPA Core-code | Tekst van GoCardless |
|---|---|---|---|
| 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. |
De tekst zegt bijna alles: de terugboeking wordt gevraagd door de klant, afgehandeld door zijn bank en valt binnen de periode van 8 weken die GoCardless de cool-off period noemt. Het is geen fout bij de incasso: het geld is binnengekomen en gaat nu terug.

Wanneer merk je het
Een MD06-terugboeking komt binnen als de incasso al is afgesloten. In Odoo was de transactie afgerond en de factuur betaald: de connector beschouwt een incasso als gelukt wanneer GoCardless die als confirmed of paid_out markeert. Daarna volgt nog een event dat je moet kennen, chargeback_settled: "This charged back payment has been settled against a payout.". De terugboeking wordt dus verrekend met een uitbetaling van GoCardless, je krijgt er geen aparte afschrijving voor.
Als de bank van de klant terugkrabbelt, stuurt GoCardless chargeback_cancelled en telt de betaling weer als geïnd. Tussen het een en het ander kunnen dagen zitten. Neem dus geen beslissingen richting de klant zonder eerst te kijken in welke status de transactie in Odoo staat: die weerspiegelt het laatste event dat GoCardless stuurde. De transactie open je vanaf de factuur, met de knop "Betalingstransactie" bovenaan; het menu met transacties verschijnt alleen in ontwikkelaarsmodus en bestaat niet in Odoo 20.
Wat Odoo doet met de connector
| Stap | Wat verandert |
|---|---|
| De transactie | Gaat van "Bevestigd" naar "Fout": een terugboeking maakt een geslaagde incasso ongedaan. |
| Het bericht | "GoCardless reported a chargeback for this payment (refund_requested). The funds have been taken back and will be deducted from a future payout." |
| De betaling in Odoo | Wordt geannuleerd en de factuur staat weer open voor inning. |
| Het mandaat | Blijft geldig: refund_requested hoort niet bij de oorzaken waarmee de connector het mandaat archiveert. |
Het bericht wordt door de connector geschreven bij het verwerken van het event, zonder dat er iemand bij zit. De connector is niet in het Nederlands vertaald: deze teksten verschijnen altijd in het Engels, ook in een Nederlandstalige Odoo, of een gebruiker of een geplande actie ze nu start: "GoCardless reported a chargeback for this payment (refund_requested). The funds have been taken back and will be deducted from a future payout.".
De transactie blijft in fout staan met een actief mandaat, maar toont de knop "Retry collection" niet. Sinds versie 1.1.4 biedt de connector die alleen aan als de betaling bij GoCardless op failed staat, en een teruggeboekte betaling staat op charged_back. Dat sluit aan bij de documentatie van GoCardless: een nieuwe poging is alleen zinvol voor mislukte betalingen, en bij een teruggeboekte betaling zou het antwoord retry_failed zijn.
Dat het mandaat blijft bestaan, is juist. Een incasso laten terugboeken is niet hetzelfde als de machtiging intrekken; als de klant dat wilde, zou de oorzaak een andere zijn (mandate_cancelled, met code MD01). Bij chargeback_cancelled beschouwt de connector de transactie weer als geïnd.
Wat te doen
Een MD06-terugboeking is eerst een gesprek met de klant en pas daarna een technisch probleem. Vraag wat er gebeurd is: een bedrag dat hij niet verwachtte, een dienst waar hij niet tevreden over is of een dubbele afschrijving. Met het antwoord:
- Als de factuur klopt en de klant dat accepteert, incasseer je opnieuw met een nieuwe incasso, met zijn opgeslagen betaalmethode: het mandaat is nog beschikbaar. De teruggeboekte transactie heeft geen knop voor een nieuwe poging.
- Als de klant gelijk had, maak je de passende creditfactuur en laat je de oorspronkelijke factuur onbetaald.
- Als de terugboekingen zich bij dezelfde klant herhalen, overweeg dan een andere betaalwijze voor hem.
Hoe lang heeft de klant om een incasso terug te boeken?
Voor een MD06 spreekt de tekst van GoCardless over een periode van 8 weken: de klant vraagt de terugboeking aan bij zijn bank binnen die termijn. Daarom is een bevestigde SEPA-incasso in die tijd niet helemaal definitief.
Waar zie ik dat het een terugboeking was en geen fout?
In de transactie, die je vanaf de factuur opent met de knop "Betalingstransactie": het veld "GoCardless Cause" zegt refund_requested en het bericht spreekt van een terugboeking, niet van een incasso die niet lukte.

Met onze connector
De GoCardless-connector voor Odoo 17, 18, 19 en 20 laat een factuur niet als betaald staan terwijl het geld er niet meer is: hij annuleert de betaling, heropent de factuur en bewaart de oorzaak. En hij straft de klant niet door zijn mandaat te archiveren vanwege een eenmalige terugboeking.
Lees verder
Gecontroleerd in de broncode van de connector (versie 17.0, 18.0, 19.0 en 20.0) en in de gelinkte bronnen
Bronnen
- Broncode van de module: flexigo_payment_gocardless: const.py, regel 15 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: models/payment_transaction.py, regel 694 in 17.0 (d203ee6), regel 694 in 18.0 (e2ab18b), regel 693 in 19.0 (ce7f5a3) en regel 717 in 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: const.py, regel 41 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: const.py, regel 76 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: models/payment_transaction.py, regel 713 in 17.0 (d203ee6), regel 713 in 18.0 (e2ab18b), regel 712 in 19.0 (ce7f5a3) en regel 736 in 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: models/payment_transaction.py, regel 754 in 17.0 (d203ee6), regel 754 in 18.0 (e2ab18b), regel 753 in 19.0 (ce7f5a3) en regel 777 in 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 529 in 17.0 (d203ee6), regel 529 in 18.0 (e2ab18b), regel 529 in 19.0 (ce7f5a3) en regel 531 in 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 356 in 17.0 (d203ee6), regel 356 in 18.0 (e2ab18b), regel 356 in 19.0 (ce7f5a3) en regel 358 in 20.0 (688d86b)
- docs.gocardless.com/docs/api-reference/events/payment
- Broncode van de module: flexigo_payment_gocardless: __manifest__.py, regel 31 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 20.0 (688d86b)
- docs.gocardless.com/docs/api-reference/events/mandate
- Broncode van de module: flexigo_payment_gocardless: views/payment_transaction_views.xml, regel 13 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: models/payment_transaction.py, regel 63 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: models/payment_transaction.py, regel 418 in 17.0 (d203ee6), regel 418 in 18.0 (e2ab18b), regel 417 in 19.0 (ce7f5a3) en regel 432 in 20.0 (688d86b)
- github.com/odoo/odoo/blob/20.0/addons/payment/i18n/nl.po
- github.com/odoo/odoo/blob/20.0/addons/payment/views/payment_transaction_views.xml
- Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 1016 in 17.0 (d203ee6), regel 1016 in 18.0 (e2ab18b), regel 1016 in 19.0 (ce7f5a3) en regel 1031 in 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 567 in 17.0 (d203ee6), regel 567 in 18.0 (e2ab18b), regel 567 in 19.0 (ce7f5a3) en regel 569 in 20.0 (688d86b)
- docs.gocardless.com/docs/api-reference/payment
- docs.gocardless.com/docs/api-reference/responses-and-errors
- Broncode van de module: flexigo_payment_gocardless: models/payment_transaction.py, regel 469 in 17.0 (d203ee6), regel 469 in 18.0 (e2ab18b), regel 468 in 19.0 (ce7f5a3) en regel 487 in 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 521 in 17.0 (d203ee6), regel 521 in 18.0 (e2ab18b), regel 521 in 19.0 (ce7f5a3) en regel 523 in 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: models/payment_provider.py, regel 397 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: views/payment_transaction_views.xml, regel 22 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 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
- Broncode van de module: flexigo_payment_gocardless: models/payment_transaction.py, regel 435 in 17.0 (d203ee6), regel 435 in 18.0 (e2ab18b), regel 434 in 19.0 (ce7f5a3) en regel 449 in 20.0 (688d86b)
- Broncode van de module: flexigo_payment_gocardless: models/payment_transaction.py, regel 247 in 17.0 (d203ee6), regel 247 in 18.0 (e2ab18b), regel 247 in 19.0 (ce7f5a3) en regel 258 in 20.0 (688d86b)
