Zum Hauptinhalt springen
GoCardless · Mandate · expired

GoCardless mandate_expired: das Mandat ist wegen Nichtnutzung abgelaufen

Ein GoCardless-Mandat bleibt nicht ewig gültig, wenn es nicht genutzt wird. Verstreicht der Inaktivitätszeitraum ohne einen einzigen Einzugsversuch, markiert GoCardless es als expired und lässt damit keine Einzüge mehr zu. Das wird in einem Ereignis zum Mandat mitgeteilt und, falls noch ein Einzug zur Einreichung anstand, auch im Ereignis zur Zahlung, die storniert wird.

FlexigoTech · Verantwortlich: Víctor Gómez · Aktualisiert am 6. November 2026

Das Wichtigste

Versionen
Odoo 17, 18, 19 und 20
Geprüft
im Quellcode des Connectors, Version 17.0, 18.0, 19.0 und 20.0 · in den Quellen am Ende
Lesezeit
4 Min.

Was GoCardless meldet

EreignisUrsacheText von 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.

Die Ereignisbeschreibung macht es deutlich: «No collection attempts were made against the mandate within the dormancy period of your service user number.». Und die Folge: «As a result it has expired, and no further collections can be taken against it.». Der Mandatsstatus wechselt auf expired, was GoCardless als wegen Inaktivität abgelaufen definiert.

GoCardless-Karte der Ursache mandate_expired
Die Ursache, das Ereignis des abgelaufenen Mandats, die stornierte Zahlung und der Text von GoCardless.

Wann es auftritt

Es betrifft ein Mandat, das unterschrieben und danach nicht mehr genutzt wurde: einen Kunden, der nicht mehr kauft, oder einen, dem so selten eingezogen wird, dass zwischen zwei Einzügen der gesamte Inaktivitätszeitraum verstreicht. Gezählt wird die Zeit ohne Einzugsversuche, nicht das Datum der Unterschrift.

Lag beim Ablauf ein Einzug zur Einreichung bereit, storniert GoCardless ihn mit derselben Ursache: «The mandate expired before the payment could be collected.».

Was Odoo mit dem Konnektor macht

  • Das Ereignis des abgelaufenen Mandats zieht es zurück. Der Konnektor betrachtet ein expired-Mandat als verloren: Er archiviert die Zahlungsart des Kunden, vermerkt in dessen Datensatz, dass das Mandat nicht mehr nutzbar ist, und legt die Aktivität «GoCardless mandate lost» an. Das geschieht nur beim ersten Mal; trifft ein anderes Ereignis dieselbe Information ein, findet es sie bereits archiviert vor.
  • Die stornierte Zahlung setzt ihre Transaktion auf «Fehler», die über die Schaltfläche «Zahlungstransaktion» oben in der Rechnung geöffnet wird, mit «GoCardless could not collect this payment (mandate_expired).». War die Rechnung mit diesem Einzug bereits bezahlt, wird die Zahlung annulliert und die Rechnung ist wieder offen. Da mandate_expired eine der Ursachen ist, mit denen der Konnektor das Mandat archiviert, zieht auch dieses Ereignis es als expired zurück.
  • Im Datensatz der Zahlungsart steht unter «Mandate Status» expired.

Diese Texte schreibt der Konnektor beim Anwenden des Ereignisses, ohne dass jemand eingreift. Der Konnektor ist nicht ins Deutsche übersetzt: Diese Texte erscheinen immer auf Englisch, auch in einem deutschen Odoo, egal ob ein Benutzer oder eine geplante Aktion sie auslöst: «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» und «GoCardless could not collect this payment (mandate_expired).».

Versucht Odoo, mit dem Mandat einzuziehen, bevor es davon erfährt, weil das Ereignis unterwegs verloren ging, antwortet GoCardless mit mandate_is_inactive. Der Konnektor ruft dann das Mandat ab, archiviert es und setzt in die Transaktion seine eigene Meldung: «The customer's GoCardless mandate is expired, so it cannot be charged. Ask the customer for a new mandate.». Die stündliche Aufgabe, die verlorene Ereignisse nachholt, bringt am Ende auch das Ereignis zum Mandat mit.

Schema: was GoCardless bei mandate_expired sendet und was Odoo mit dem Konnektor damit macht
Schema auf Grundlage des Codes des Konnektors (17.0, 18.0, 19.0 und 20.0) und der Dokumentation von GoCardless.

Reaktivieren oder ein neues anfordern?

GoCardless lässt zwei Wege offen. Um bei diesem Kunden weiter einzuziehen, heißt es, muss man um Erlaubnis bitten und die Reaktivierung des Mandats nutzen («you should request their permission and use the reinstate endpoint»). Dieser Endpunkt ist aber eingeschränkt: Er verlangt eigene, von GoCardless genehmigte Zahlungsseiten («Restricted this endpoint requires approved custom payment pages»).

Der Konnektor reaktiviert Mandate nicht im Produktivbetrieb: Die Schaltfläche «Reinstate mandate (sandbox)» im Datensatz der Zahlungsart erscheint nur bei einem Anbieter im Testbetrieb und bei einem stornierten, fehlgeschlagenen oder abgelaufenen Mandat. Im Produktivbetrieb führt der Weg über ein neues Mandat.

Was zu tun ist

  1. Sprechen Sie mit dem Kunden: Ist er weiterhin Kunde, bitten Sie ihn, ein neues Mandat zu unterschreiben. In Odoo wird das eine neue Zahlungsart sein.
  2. Ziehen Sie damit die offenen Rechnungen ein. Die Einzüge, die GoCardless wegen des Ablaufs storniert hat, werden nicht von selbst erneut eingereicht.
  3. Wird ein Kunde nur sehr selten eingezogen, rechnen Sie damit, dass sein Mandat zwischen zwei Einzügen ablaufen kann.

Kann ich mit einem abgelaufenen Mandat einziehen, wenn der Kunde zustimmt?

Mit diesem Mandat nicht: GoCardless lässt damit keine Einzüge mehr anlegen. Nötig ist ein neues oder, wo verfügbar, die Reaktivierung über GoCardless.

Kann man die Reaktivierung testen?

Ja, in der Sandbox von GoCardless. Bei einem Anbieter im Testbetrieb zeigt der Datensatz der Zahlungsart «Reinstate mandate (sandbox)», wenn das Mandat abgelaufen ist.

Mit unserem Konnektor

In Odoo 17, 18, 19 und 20 zieht der Konnektor das abgelaufene Mandat zurück, sobald GoCardless es meldet, lässt den Einzug storniert im Fehlerstatus mit seiner Ursache zurück und warnt im Kundendatensatz, damit vor der nächsten Rechnung ein neues Mandat angefordert wird.

Weiterlesen

GoCardless mandate_not_inactive: Das Mandat kann nicht reaktiviert werdenGoCardless meldet mandate_not_inactive bei aktiven oder bereits eingereichten Mandaten. Wann Reaktivierung möglich ist und was der Konnektor in Odoo tut.GoCardless-Fehler mandate_is_inactive beim Anlegen einer Zahlung aus OdooGoCardless meldet mandate_is_inactive bei Zahlungen mit gekündigtem, fehlgeschlagenem oder abgelaufenem Mandat. Ursache und Lösung im Odoo-Konnektor.GoCardless MD01: mandate_cancelled und authorisation_disputed bei einer SEPA-LastschriftMD01 erscheint bei GoCardless als mandate_cancelled oder authorisation_disputed bei fehlgeschlagenen, rückbelasteten oder stornierten SEPA-Zahlungen.
Geprüft im Quellcode des Connectors (Version 17.0, 18.0, 19.0 und 20.0) und in den verlinkten Quellen

Quellen

  • docs.gocardless.com/docs/api-reference/events/mandate
  • docs.gocardless.com/docs/api-reference/events/payment
  • docs.gocardless.com/docs/api-reference/mandate
  • Quellcode des Moduls: flexigo_payment_gocardless: const.py, Zeile 33 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) und 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_token.py, Zeile 83 in 17.0 (d203ee6), Zeile 83 in 18.0 (e2ab18b), Zeile 83 in 19.0 (ce7f5a3) und Zeile 82 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_token.py, Zeile 131 in 17.0 (d203ee6), Zeile 131 in 18.0 (e2ab18b), Zeile 131 in 19.0 (ce7f5a3) und Zeile 130 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 1148 in 17.0 (d203ee6), Zeile 1148 in 18.0 (e2ab18b), Zeile 1148 in 19.0 (ce7f5a3) und Zeile 1155 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 495 in 17.0 (d203ee6), Zeile 495 in 18.0 (e2ab18b), Zeile 495 in 19.0 (ce7f5a3) und Zeile 497 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: const.py, Zeile 76 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) und 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_transaction.py, Zeile 914 in 17.0 (d203ee6), Zeile 914 in 18.0 (e2ab18b), Zeile 913 in 19.0 (ce7f5a3) und Zeile 937 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_transaction.py, Zeile 725 in 17.0 (d203ee6), Zeile 725 in 18.0 (e2ab18b), Zeile 724 in 19.0 (ce7f5a3) und Zeile 748 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_transaction.py, Zeile 754 in 17.0 (d203ee6), Zeile 754 in 18.0 (e2ab18b), Zeile 753 in 19.0 (ce7f5a3) und Zeile 777 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 436 in 17.0 (d203ee6), Zeile 436 in 18.0 (e2ab18b), Zeile 436 in 19.0 (ce7f5a3) und Zeile 438 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_transaction.py, Zeile 278 in 17.0 (d203ee6), Zeile 278 in 18.0 (e2ab18b), Zeile 278 in 19.0 (ce7f5a3) und Zeile 289 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_transaction.py, Zeile 321 in 17.0 (d203ee6), Zeile 321 in 18.0 (e2ab18b), Zeile 321 in 19.0 (ce7f5a3) und Zeile 332 in 20.0 (688d86b)
  • docs.gocardless.com/docs/api-reference/responses-and-errors
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 1233 in 17.0 (d203ee6), Zeile 1233 in 18.0 (e2ab18b), Zeile 1233 in 19.0 (ce7f5a3) und Zeile 1240 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: views/payment_token_views.xml, Zeile 15 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) und 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 785 in 17.0 (d203ee6), Zeile 785 in 18.0 (e2ab18b), Zeile 785 in 19.0 (ce7f5a3) und Zeile 800 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: views/payment_token_views.xml, Zeile 23 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) und 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 998 in 17.0 (d203ee6), Zeile 998 in 18.0 (e2ab18b), Zeile 998 in 19.0 (ce7f5a3) und Zeile 1013 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_token.py, Zeile 162 in 17.0 (d203ee6), Zeile 162 in 18.0 (e2ab18b), Zeile 162 in 19.0 (ce7f5a3) und Zeile 161 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: const.py, Zeile 117 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) und 20.0 (688d86b)
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • github.com/odoo/odoo/blob/20.0/addons/payment/i18n/de.po
  • github.com/odoo/odoo/blob/20.0/addons/account_payment/views/account_move_views.xml
  • Quellcode des Moduls: flexigo_payment_gocardless: __manifest__.py, Zeile 31 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) und 20.0 (688d86b)