Naar hoofdinhoud
GoCardless · mandaten · expired

GoCardless mandate_expired: het mandaat is verlopen omdat het niet is gebruikt

Een GoCardless-mandaat blijft niet eeuwig geldig als het niet wordt gebruikt. Wanneer de inactiviteitsperiode verstrijkt zonder enige incasso-poging, markeert GoCardless het als expired en kan er daarmee niet meer worden geïncasseerd. Dat meldt GoCardless in een gebeurtenis van het mandaat en, als er nog een incasso klaarstond, ook in die van de betaling, die dan wordt geannuleerd.

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

Wat GoCardless zegt

GebeurtenisOorzaakTekst van GoCardless
mandates · expiredmandate_expiredThe mandate is being marked as expired, because no payments have been collected against it for the dormancy period of your service user number. If you have access to the mandate reinstation API endpoint, you can use this to attempt to set this mandate up again.
payments · cancelledmandate_expiredThe mandate expired before the payment could be collected.

De beschrijving van de gebeurtenis maakt het duidelijk: "No collection attempts were made against the mandate within the dormancy period of your service user number.". En het gevolg: "As a result it has expired, and no further collections can be taken against it.". De status van het mandaat wordt expired, wat GoCardless definieert als verlopen door inactiviteit.

Kaart van de oorzaak mandate_expired van GoCardless
De oorzaak, de gebeurtenis van het verlopen mandaat, de geannuleerde betaling en de tekst van GoCardless.

Wanneer het optreedt

Het overkomt een mandaat dat is ondertekend en daarna niet meer is gebruikt: een klant die niet meer koopt, of een klant die zo zelden wordt geïncasseerd dat er tussen twee incasso's de hele inactiviteitsperiode verstrijkt. Het telt de tijd zonder incasso-pogingen, niet de datum van ondertekening.

Als er op het moment van verlopen een incasso klaarstond, annuleert GoCardless die met dezelfde oorzaak: "The mandate expired before the payment could be collected.".

Wat Odoo met de connector doet

  • De gebeurtenis van het verlopen mandaat verwerkt de connector. De connector behandelt een expired-mandaat als verloren: hij archiveert de betaalmethode van de klant, schrijft op de kaart van de klant dat het mandaat niet meer bruikbaar is en maakt de activiteit "GoCardless mandate lost". Dat doet hij alleen de eerste keer; als een andere gebeurtenis hetzelfde meldt, vindt hij het mandaat al gearchiveerd.
  • De geannuleerde betaling zet de transactie op "Fout", die je opent vanaf de factuur met de knop "Betalingstransactie" hierboven, met "GoCardless could not collect this payment (mandate_expired).". Als de factuur al betaald was met die incasso, wordt de betaling geannuleerd en staat de factuur weer open. En omdat mandate_expired een van de oorzaken is waarmee de connector het mandaat archiveert, haalt die gebeurtenis het mandaat ook weg, als expired.
  • Op de kaart van de betaalmethode staat bij "Mandate Status" expired.

Die 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: "The GoCardless direct debit mandate of … is no longer usable (mandate_expired). No further collection can be taken against it. Ask the customer to set up a new mandate.", "GoCardless mandate lost" en "GoCardless could not collect this payment (mandate_expired).".

Als Odoo probeert te incasseren met het mandaat voordat het van de gebeurtenis op de hoogte is, omdat de gebeurtenis onderweg is verloren, antwoordt GoCardless met mandate_is_inactive. De connector raadpleegt dan het mandaat, archiveert het en zet in de transactie zijn eigen melding: "The customer's GoCardless mandate is expired, so it cannot be charged. Ask the customer for a new mandate.". De taak die elk uur de verloren gebeurtenissen ophaalt, haalt uiteindelijk ook de gebeurtenis van het mandaat op.

Schema: wat GoCardless stuurt bij mandate_expired 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.

Reactiveren of een nieuw vragen?

GoCardless laat twee wegen open. Om die klant verder te incasseren, zegt het, moet je om toestemming vragen en de reactivering van het mandaat gebruiken ("you should request their permission and use the reinstate endpoint"). Maar dat endpoint is beperkt: het vraagt om eigen betaalpagina's die door GoCardless zijn goedgekeurd ("Restricted this endpoint requires approved custom payment pages").

De connector reactiveert geen mandaten in productie: de knop "Reinstate mandate (sandbox)" op de kaart van de betaalmethode verschijnt alleen bij de provider in de testomgeving en met een geannuleerd, mislukt of verlopen mandaat. In productie is de weg een nieuw mandaat.

Wat te doen

  1. Praat met de klant: als het nog steeds een klant is, vraag hem een nieuw mandaat te ondertekenen. In Odoo wordt dat een nieuwe betaalmethode.
  2. Incasseer met hem de openstaande facturen. De incasso's die GoCardless door het verlopen heeft geannuleerd, worden niet vanzelf opnieuw aangeboden.
  3. Als een klant zelden wordt geïncasseerd, houd er rekening mee dat zijn mandaat tussen twee incasso's kan verlopen.

Kan ik incasseren met een verlopen mandaat als de klant het ermee eens is?

Met dat mandaat niet: GoCardless staat niet toe dat er incasso's mee worden aangemaakt. Er is een nieuw mandaat nodig of, waar het kan, de reactivering van GoCardless.

Kan ik de reactivering uitproberen?

Ja, in de sandbox van GoCardless. Met de provider in de testomgeving toont de kaart van de betaalmethode "Reinstate mandate (sandbox)" wanneer het mandaat verlopen is.

Met onze connector

In Odoo 17, 18, 19 en 20 verwijdert de connector het verlopen mandaat zodra GoCardless het meldt, zet de geannuleerde incasso in fout met zijn oorzaak en waarschuwt op de kaart van de klant, zodat je een nieuw mandaat kunt vragen vóór de volgende factuur.

Lees verder

GoCardless mandate_not_inactive: het mandaat kan niet worden gereactiveerdGoCardless geeft mandate_not_inactive bij het reactiveren van een actief mandaat of een mandaat dat al wordt ingediend. Wanneer kan het en wat doet Odoo?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 MD01: mandate_cancelled en authorisation_disputed bij een SEPA-incassoSEPA-code MD01 komt bij GoCardless als mandate_cancelled of authorisation_disputed, bij een mislukte, teruggeboekte of geannuleerde incasso. Wat Odoo doet.
Gecontroleerd in de broncode van de connector (versie 17.0, 18.0, 19.0 en 20.0) en in de gelinkte bronnen

Bronnen

  • docs.gocardless.com/docs/api-reference/events/mandate
  • docs.gocardless.com/docs/api-reference/events/payment
  • docs.gocardless.com/docs/api-reference/mandate
  • Broncode van de module: flexigo_payment_gocardless: const.py, regel 33 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 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: 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: 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)
  • 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 914 in 17.0 (d203ee6), regel 914 in 18.0 (e2ab18b), regel 913 in 19.0 (ce7f5a3) en regel 937 in 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 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 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: models/payment_transaction.py, regel 278 in 17.0 (d203ee6), regel 278 in 18.0 (e2ab18b), regel 278 in 19.0 (ce7f5a3) en regel 289 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: models/payment_transaction.py, regel 321 in 17.0 (d203ee6), regel 321 in 18.0 (e2ab18b), regel 321 in 19.0 (ce7f5a3) en regel 332 in 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/responses-and-errors
  • Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 1233 in 17.0 (d203ee6), regel 1233 in 18.0 (e2ab18b), regel 1233 in 19.0 (ce7f5a3) en regel 1240 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: views/payment_token_views.xml, regel 15 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 785 in 17.0 (d203ee6), regel 785 in 18.0 (e2ab18b), regel 785 in 19.0 (ce7f5a3) en regel 800 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: views/payment_token_views.xml, regel 23 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 998 in 17.0 (d203ee6), regel 998 in 18.0 (e2ab18b), regel 998 in 19.0 (ce7f5a3) en regel 1013 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: models/payment_token.py, regel 162 in 17.0 (d203ee6), regel 162 in 18.0 (e2ab18b), regel 162 in 19.0 (ce7f5a3) en regel 161 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: const.py, regel 117 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/payment/i18n/nl.po
  • github.com/odoo/odoo/blob/20.0/addons/account_payment/views/account_move_views.xml
  • 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)