Naar hoofdinhoud
GoCardless API · invalid_state · reinstate

GoCardless mandate_not_inactive: het mandaat kan niet worden gereactiveerd

Een mandaat reactiveren (reinstate) betekent een geannuleerd of verlopen mandaat opnieuw bij de banken indienen. GoCardless weigert dit met mandate_not_inactive als het mandaat al actief is of al wordt ingediend. Met de connector kan dit alleen buiten productie, omdat GoCardless deze functie in productie beperkt.

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

ReasonTipoTexto de GoCardless
mandate_not_inactiveinvalid_state"Mandate could not be reinstated" en "it is already active or being submitted."

GoCardless scheidt de twee delen van de tekst met een streepje. In de API-referentie staat het zo uitgewerkt: "This will fail with a mandate_not_inactive error if the mandate is already being submitted, or is active.". Het is een invalid_state-fout, en daarvoor vraagt GoCardless de gebruiker te informeren en geen nieuwe poging toe te staan ("invalid_state → inform the end user, do not allow retry.").

Kaart van de mandate_not_inactive-fout van GoCardless
De reason, het type invalid_state, de reactiveringsactie (actions/reinstate) en de tekst van GoCardless.

Welke mandaten kunnen worden gereactiveerd

Voor reactivering gelden meer voorwaarden dan alleen de status:

  • Het is een beperkte functie: "Restricted this endpoint requires approved custom payment pages".
  • Het geldt alleen voor een mandaat dat via het Dashboard of de API is geannuleerd: "A mandate can only be reinstated if it has been cancelled through the dashboard or the API.". Een mandaat dat de bank heeft geannuleerd kan niet: "Any mandate that has been cancelled by the bank cannot be reinstated.".
  • Het werkt voor geannuleerde of verlopen mandaten ("Reinstates a cancelled or expired mandate to the banks."), en een mandaat kan tot 10 keer opnieuw worden ingediend ("Mandates can be resubmitted up to 10 times.").

Na de aanvraag verloopt het proces als bij een nieuwe machtiging: er komt resubmission_requested en daarna, zoals GoCardless zegt, "so you will receive a submitted webhook, followed by a reinstated or failed webhook up to two working days later.".

Wat Odoo met de connector doet

Op het betaalmethodeformulier van de klant zet de connector de knop "Reinstate mandate (sandbox)". Die verschijnt alleen als het mandaat van GoCardless is, de provider niet in productie staat (in Odoo 17, 18 en 19 de status van de provider; in Odoo 20 het productievinkje) en "Mandate Status" cancelled, failed of expired is.

Bij klikken:

  1. De connector vraagt GoCardless om reactivering van dat mandaat.
  2. Als GoCardless dit accepteert, wordt de status reinstate_requested en staat op het klantformulier "Reinstatement of the GoCardless mandate requested. It stays unusable until the bank confirms it.". De betaalmethode blijft gearchiveerd.
  3. Wanneer reinstated binnenkomt, keurt de connector het weer goed: hij activeert de betaalmethode weer en schrijft "The GoCardless mandate is usable again (reinstated).".

Als GoCardless mandate_not_inactive teruggeeft, vangt de connector dat niet op: Odoo toont "GoCardless rejected the request." met het bericht van GoCardless, de reason en de request_id, en het mandaat blijft zoals het was. Dat gebeurt als Odoo denkt dat het mandaat dood is terwijl het bij GoCardless al actief is of wordt ingediend, omdat de events nog niet bij Odoo zijn aangekomen. Na een geaccepteerde aanvraag verschijnt de knop niet meer, omdat de status reinstate_requested is.

De notitie dat het mandaat weer bruikbaar is, schrijft de connector bij het verwerken van het event, zonder dat iemand erbij 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: "The GoCardless mandate is usable again (reinstated).".

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

Wat te doen

  1. Bij mandate_not_inactive zoek je het mandaat op in het Dashboard van GoCardless. Is het actief of wordt het ingediend, dan is er niets te reactiveren: wacht tot de events binnenkomen. De taak die elk uur verloren events ophaalt, haalt ze op.
  2. Heeft de bank het mandaat geannuleerd, probeer het dan niet: GoCardless reactiveert die niet. Vraag de klant om een nieuw mandaat.
  3. In productie biedt de connector geen reactivering: de weg is een nieuw mandaat dat de klant ondertekent.
  4. Om het te testen gebruik je de sandbox van GoCardless met de provider in test.

Waarom verschijnt de knop alleen buiten productie?

Omdat GoCardless reactivering beperkt tot wie goedgekeurde eigen betaalpagina's heeft, en de connector die alleen buiten productie aanbiedt.

Hoe lang duurt het voordat het mandaat weer geldig is?

Zo lang als de banken nodig hebben: volgens GoCardless meldt het eerst dat de reactivering is aangevraagd, daarna dat het mandaat is ingediend en, tot twee werkdagen later, of het is gereactiveerd of is mislukt. Tot die tijd gebruikt de connector het niet.

Met onze connector

In Odoo 17, 18, 19 en 20 biedt de connector alleen reactivering van een geannuleerd, mislukt of verlopen mandaat aan, en alleen buiten productie, en hij gebruikt het mandaat pas weer wanneer GoCardless de reactivering met zijn event bevestigt.

Lees verder

GoCardless mandate_expired: het mandaat is verlopen omdat het niet is gebruiktGoCardless markeert een mandaat als expired als er in de hele inactiviteitsperiode niet mee is geïncasseerd. Wat Odoo doet en hoe je blijft incasseren.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.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.
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/responses-and-errors
  • docs.gocardless.com/docs/api-reference/mandate
  • docs.gocardless.com/docs/api-reference/events/mandate
  • Broncode van de module: flexigo_payment_gocardless: const.py, regel 134 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 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: views/payment_token_views.xml, regel 22 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 176 in 17.0 (d203ee6), regel 176 in 18.0 (e2ab18b), regel 176 in 19.0 (ce7f5a3) en regel 175 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: models/payment_token.py, regel 173 in 17.0 (d203ee6), regel 173 in 18.0 (e2ab18b), regel 173 in 19.0 (ce7f5a3) en regel 172 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 1004 in 17.0 (d203ee6), regel 1004 in 18.0 (e2ab18b), regel 1004 in 19.0 (ce7f5a3) en regel 1019 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: models/payment_token.py, regel 170 in 17.0 (d203ee6), regel 170 in 18.0 (e2ab18b), regel 170 in 19.0 (ce7f5a3) en regel 169 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: models/payment_provider.py, regel 462 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 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: const.py, regel 158 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 77 in 17.0 (d203ee6), regel 77 in 18.0 (e2ab18b), regel 77 in 19.0 (ce7f5a3) en regel 76 in 20.0 (688d86b)
  • Broncode van de module: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, regel 1157 in 17.0 (d203ee6), regel 1157 in 18.0 (e2ab18b), regel 1157 in 19.0 (ce7f5a3) en regel 1164 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: const.py, regel 117 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) en 20.0 (688d86b)
  • github.com/odoo/odoo/blob/20.0/addons/account_payment/views/account_move_views.xml
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • 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)