Naar hoofdinhoud
GoCardless · SEPA Core · mandaat geannuleerd of betwist

GoCardless MD01: mandate_cancelled en authorisation_disputed bij een SEPA-incasso

MD01 verschijnt wanneer de klant het mandaat bij zijn bank heeft geannuleerd of zegt de incasso nooit te hebben geautoriseerd. Bij GoCardless komt het voor bij drie verschillende betalingsgebeurtenissen, afhankelijk van het moment, en in alle gevallen is het gevolg voor de toekomst hetzelfde: met dat mandaat kan niet meer worden geïnd.

FlexigoTech · Verantwoordelijk: Víctor Gómez · Bijgewerkt op 6 november 2026

In het kort

Versies
Odoo 17, 18, 19 en 20
Gecontroleerd
in de broncode van de connector, versie 17.0, 18.0, 19.0 en 20.0 · in de bronnen onderaan
Leestijd
4 min

Drie gebeurtenissen en vier rijen, dezelfde code

GebeurtenisOorzaakTekst van 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.

De vier rijen komen uit de SEPA Core-tabel in de documentatie van GoCardless en dragen MD01; de geannuleerde betaling heeft twee oorzaken met dezelfde tekst. Het mandaat wordt ook geannuleerd, en GoCardless meldt dat met een eigen gebeurtenis: "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.".

Kaart van de oorzaak mandate_cancelled van GoCardless
De oorzaak, de SEPA Core-code MD01 en de tekst van GoCardless voor de mislukte betaling.

Wat verandert er per moment

Als de klant het mandaat annuleert voordat de incasso is uitgevoerd, mislukt de betaling: het geld is niet binnengekomen. Betwist hij het na de afschrijving, dan is het een terugboeking: het geld kwam binnen en gaat weer terug. En als er betalingen in de wachtrij stonden om te worden ingediend, annuleert GoCardless die voordat ze worden verstuurd. De connector vermeldt in zijn code dat hij de oorzaak authorisation_disputed met MD01 zag bij een testbetaling in de sandbox, als terugboeking van een al verrekende betaling.

Wat Odoo met de connector doet

De transactie wordt geopend vanaf de factuur, met de knop "Betalingstransactie" bovenaan; het transactiemenu verschijnt alleen in de ontwikkelaarsmodus en bestaat niet in Odoo 20. In alle drie de gevallen krijgt de transactie de status "Fout" met de oorzaak zichtbaar. De melding hangt af van de gebeurtenis: "GoCardless could not collect this payment (mandate_cancelled)." bij een mislukking, en "GoCardless reported a chargeback for this payment (mandate_cancelled). The funds have been taken back and will be deducted from a future payout." bij een terugboeking. Als Odoo de factuur al als betaald had met die incasso, annuleert de connector de betaling en staat de factuur weer open.

Het belangrijkste is het mandaat. mandate_cancelled en authorisation_disputed behoren tot de vier oorzaken waarmee de connector het mandaat als ongeldig beschouwt, dus:

  • archiveert hij de betaalmethode van de klant, die niet meer wordt aangeboden om te innen;
  • schrijft hij op zijn kaart "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.";
  • maakt hij een activiteit "GoCardless mandate lost".

Er komen meerdere gebeurtenissen met hetzelfde bericht binnen, die van de betaling en die van het mandaat, maar de melding verschijnt maar één keer: de tweede vindt het mandaat al gearchiveerd.

Al deze teksten schrijft de connector bij het verwerken van de gebeurtenis, zonder dat iemand erbij is. 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 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." en "GoCardless mandate lost".

Wat te doen

Voordat je om een nieuw mandaat vraagt, moet je begrijpen waarom de klant het heeft geannuleerd. Een klant die de dienst niet meer wil, heeft een opzegging nodig, geen nieuwe handtekening. Als het een fout van de klant was of een wijziging bij zijn bank, vraag hem dan opnieuw te tekenen en int met het nieuwe mandaat de openstaande facturen. Als hij zegt de afschrijving nooit te hebben geautoriseerd, controleer dan hoe het mandaat is ondertekend voordat je hem nog een keer int.

Heeft het zin een betaling met MD01 opnieuw te proberen?

Nee. Het mandaat bestaat niet meer voor zijn bank, en met een gearchiveerd mandaat verschijnt de knop "Retry collection" niet in de transactie. Er is een nieuw mandaat nodig, ondertekend door de klant.

Schema: wat GoCardless bij MD01 stuurt en wat Odoo met de connector doet
Schema op basis van de code van de connector (17.0, 18.0, 19.0 en 20.0) en de documentatie van GoCardless.

Met onze connector

In Odoo 17, 18, 19 en 20 onderscheidt de connector de mislukking van de terugboeking, opent hij de factuur indien nodig opnieuw, trekt hij het mandaat in en laat hij de taak om met de klant te praten op zijn kaart staan. Wat hij niet doet, is zelfstandig om een nieuw mandaat vragen: dat gesprek is aan jou.

Lees verder

GoCardless MD06: de klant vraagt zijn bank om een incasso terug te boekenDe klant vraagt zijn bank om een GoCardless-incasso terug te boeken: charged_back, refund_requested en MD06. Wat er in Odoo gebeurt met factuur en mandaat.Fout mandate_is_inactive van GoCardless bij het aanmaken van een incasso vanuit OdooGoCardless antwoordt met mandate_is_inactive bij een betaling met een geannuleerd, mislukt of verlopen mandaat. Waarom het gebeurt en wat de connector doet.GoCardless bank_account_closed: AC04 en MD07, de rekening bestaat niet meerGoCardless bank_account_closed met AC04 (gesloten rekening) of MD07 (overleden houder): het mandaat vervalt. Wat Odoo met de factuur en de klant doet.
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 442 in 17.0 (d203ee6), regel 442 in 18.0 (e2ab18b), regel 441 in 19.0 (ce7f5a3) en regel 456 in 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: const.py, regel 71 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 725 in 17.0 (d203ee6), regel 725 in 18.0 (e2ab18b), regel 724 in 19.0 (ce7f5a3) en regel 748 in 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: models/payment_token.py, regel 131 in 17.0 (d203ee6), regel 131 in 18.0 (e2ab18b), regel 131 in 19.0 (ce7f5a3) en regel 130 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: models/payment_token.py, regel 83 in 17.0 (d203ee6), regel 83 in 18.0 (e2ab18b), regel 83 in 19.0 (ce7f5a3) en regel 82 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 436 in 17.0 (d203ee6), regel 436 in 18.0 (e2ab18b), regel 436 in 19.0 (ce7f5a3) en regel 438 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 1148 in 17.0 (d203ee6), regel 1148 in 18.0 (e2ab18b), regel 1148 in 19.0 (ce7f5a3) en regel 1155 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 495 in 17.0 (d203ee6), regel 495 in 18.0 (e2ab18b), regel 495 in 19.0 (ce7f5a3) en regel 497 in 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/events/mandate
  • 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/payment
  • 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)
  • 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)
  • github.com/odoo/odoo/blob/20.0/addons/payment/i18n/nl.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