Zum Hauptinhalt springen
GoCardless API · invalid_api_usage · 401

GoCardless access_token_revoked: Odoo kann Ihr Konto nicht mehr erreichen

Der Zugriffstoken ist der Schlüssel, mit dem Odoo mit Ihrem GoCardless-Konto spricht. Wird er widerrufen oder deaktiviert, lehnt GoCardless jede Anfrage ab und es kann nichts eingezogen werden. Bei der Verbindung mit zwei Klicks meldet GoCardless die Trennung, und der Konnektor hält sie fest; im erweiterten Modus erfahren Sie es durch die Ablehnung der nächsten Anfrage.

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

ReasonTypText von GoCardless
access_token_revokedinvalid_api_usageToken has been revoked by the user.
access_token_not_activeinvalid_api_usageToken has been disabled.
unauthorizedinvalid_api_usageCredentials not recognised.

Für Odoo bedeuten alle drei dasselbe: Die Zugangsdaten, mit denen angefragt wird, sind nicht mehr gültig. In seiner Tabelle der HTTP-Codes reserviert GoCardless den 401 für diesen Fall: «Missing or invalid Authorization header, or the user has been disabled.». Es handelt sich um invalid_api_usage-Fehler, also solche, die aus der Art der Anfrage entstehen; dafür verlangt GoCardless, das technische Team zu informieren («alert your dev team»).

Karte des GoCardless-Fehlers access_token_revoked
Die drei Reasons eines nicht mehr gültigen Tokens, ihr Typ invalid_api_usage und der HTTP-Code 401.

Wann ein Token ungültig wird

Der Konnektor verbindet sich auf zwei Wegen mit GoCardless, und der Token erlischt bei jedem anders:

  • «Connect my GoCardless account» ist die Verbindung mit zwei Klicks über FlexigoTech: eine Partner-Integration. Laut dem Partnerleitfaden von GoCardless kann der Händler diesen Zugriff im GoCardless-Dashboard widerrufen («they can revoke your access from the GoCardless dashboard») oder sein Konto schließen. Dann sendet GoCardless ein letztes Webhook, und der Token funktioniert nicht mehr: «Your access token stops working, so you can't make any more API calls for that user.».
  • «Paste an access token (advanced)» ist der Modus, in dem Sie den Token selbst im GoCardless-Dashboard erstellen und in Odoo einfügen. Wenn Sie ihn dort widerrufen oder deaktivieren, bemerkt Odoo das bei der nächsten Anfrage, wenn GoCardless sie ablehnt.

Was der Konnektor in Odoo tut

Bei der Verbindung mit zwei Klicks kommt dieses letzte Webhook ohne Ereignis-ID an, als organisations · disconnected. Der Konnektor verarbeitet es so:

  1. Er löscht den Token und das Webhook-Geheimnis, und die Verbindung des Anbieters wechselt zu «Disconnected in GoCardless».
  2. Er schreibt in den Kontakt Ihres Unternehmens «GoCardless reports that the account was disconnected from Odoo on … (…). No collection can be taken until it is connected again.», mit Datum und Ursache laut GoCardless.
  3. Er legt die Aktivität «GoCardless disconnected» an, damit jemand es erfährt, ohne den Anbieter öffnen zu müssen.

Ab diesem Moment ruft der Konnektor GoCardless mit diesem Anbieter nicht mehr auf: Die stündliche Aufgabe überspringt ihn, und eine Einziehung mit der gespeicherten Zahlungsmethode eines Kunden wird auf «Fehler» gesetzt, mit «This provider is not connected to GoCardless any more: connect it again first.».

Ohne diesen Hinweis bleibt der Token gespeichert, und GoCardless lehnt jede Anfrage ab. Bei einer Einziehung wird die Transaktion auf «Fehler» gesetzt mit «GoCardless rejected the request.» und darunter der Meldung von GoCardless mit dem Reason (access_token_revoked, access_token_not_active oder unauthorized) sowie der request_id in eckigen Klammern. Die Rechnung bleibt zur Einziehung offen, und die stündliche Aufgabe sendet eine fehlerhafte Transaktion nicht erneut.

Den Hinweis im Kontakt und die Aktivität schreibt der Konnektor ohne Beteiligung eines Benutzers beim Verarbeiten des Webhooks. Die Texte erscheinen immer auf Englisch: Der Konnektor ist nicht ins Deutsche übersetzt, auch in einem deutschen Odoo, egal ob ein Benutzer oder eine geplante Aktion sie auslöst. Die Meldungen einer Einziehung erscheinen so: «GoCardless reports that the account was disconnected from Odoo on … (…). No collection can be taken until it is connected again.» und «GoCardless disconnected». Wird die Einziehung durch eine geplante Aktion ausgelöst, etwa die Verlängerung eines Abonnements, gilt dieselbe Regel: «This provider is not connected to GoCardless any more: connect it again first.» und «GoCardless rejected the request.».

Schema: was GoCardless sendet, wenn der Token ungültig wird, und was Odoo mit dem Konnektor tut
Schema auf Grundlage des Konnektor-Codes (17.0, 18.0, 19.0 und 20.0) und der Dokumentation von GoCardless.

Was zu tun ist

  1. Öffnen Sie die Transaktion über die Rechnung mit der Schaltfläche «Zahlungstransaktion» oben; das Transaktionsmenü erscheint nur im Entwicklermodus und existiert in Odoo 20 nicht. Wenn die Meldung sagt, dass der Anbieter nicht mehr verbunden ist, oder einen der drei Reasons nennt, liegt das Problem an der Verbindung, nicht am Kunden oder seinem Mandat.
  2. Bei der Verbindung mit zwei Klicks öffnen Sie den Zahlungsanbieter GoCardless und verbinden Sie erneut über «Connect my GoCardless account».
  3. Im erweiterten Modus erstellen Sie im GoCardless-Dashboard einen neuen Token, fügen ihn in «GoCardless Access Token» ein und klicken auf «Test connection». Der Konnektor fragt mit diesem Token den Gläubiger Ihres Kontos bei GoCardless ab: Lehnt GoCardless ihn ab, sehen Sie den Fehler sofort und nicht erst bei der nächsten Einziehung.
  4. Wenn die Verbindung wieder steht, ziehen Sie die Rechnungen erneut ein, die offen geblieben sind. Fehlerhafte Transaktionen werden nicht automatisch erneut gesendet.
  5. Falls Sie GoCardless kontaktieren müssen, notieren Sie die request_id aus der Meldung: Laut deren Dokumentation soll sie beim Support angegeben werden.

Warum löscht der Konnektor den Token, statt es weiter zu versuchen?

Weil GoCardless sagt, dass dieser Token nicht mehr funktioniert. So erklären die nächsten Einziehungen, was los ist (dass der Anbieter nicht mehr verbunden ist), statt eine Ablehnung nach der anderen zu erhalten, und im Kontakt des Unternehmens steht, wann und warum die Verbindung getrennt wurde.

Funktioniert ein Sandbox-Token mit dem Produktivkonto?

Nein. Der Hilfetext des Token-Feldes sagt es: Sandbox-Tokens beginnen mit sandbox_ und funktionieren nur mit der Sandbox-API. Für echte Einziehungen braucht man einen Produktiv-Token.

Mit unserem Konnektor

In Odoo 17, 18, 19 und 20 lässt der Konnektor nicht zu, dass ein ungültiger Token zu einer Kette fehlgeschlagener Einziehungen ohne Erklärung wird: Meldet GoCardless die Trennung, wird sie im Unternehmen und in einer Aktivität festgehalten, und wenn GoCardless nichts meldet, enthält jede Ablehnung den Reason und die request_id von GoCardless.

Weiterlesen

GoCardless-Webhook: 498 Token Invalid, 204 und die Webhook-SignatureGoCardless fordert 498 bei falscher Webhook-Signature und 204 bei unbekanntem Ereignis. Was Odoo 17, 18, 19 und 20 antwortet und warum es in 20 ein 401 ist.GoCardless internal_server_error und request_timed_out: der Fehler liegt bei GoCardlessGoCardless antwortet mit 500 internal_server_error oder 504 request_timed_out, wenn der Fehler bei GoCardless liegt. So reagiert der Konnektor in Odoo.GoCardless 429 rate_limit_exceeded: zu viele Anfragen pro MinuteGoCardless antwortet bei über 1.600 Anfragen pro Minute mit 429 rate_limit_exceeded. So wartet und wiederholt der Konnektor, und was bei erneutem Fehler hilft.
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/responses-and-errors
  • docs.gocardless.com/docs/partner-integrations/connect-your-merchants
  • docs.gocardless.com/docs/partner-integrations/webhooks-for-partners
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_provider.py, Zeile 71 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 143 in 17.0 (d203ee6), Zeile 143 in 18.0 (e2ab18b), Zeile 143 in 19.0 (ce7f5a3) und Zeile 145 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 888 in 17.0 (d203ee6), Zeile 888 in 18.0 (e2ab18b), Zeile 888 in 19.0 (ce7f5a3) und Zeile 903 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_provider.py, Zeile 1237 in 17.0 (d203ee6), Zeile 1237 in 18.0 (e2ab18b), Zeile 1237 in 19.0 (ce7f5a3) und Zeile 1234 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_provider.py, Zeile 1241 in 17.0 (d203ee6), Zeile 1241 in 18.0 (e2ab18b), Zeile 1241 in 19.0 (ce7f5a3) und Zeile 1238 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 265 in 17.0 (d203ee6), Zeile 265 in 18.0 (e2ab18b), Zeile 265 in 19.0 (ce7f5a3) und Zeile 267 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 545 in 17.0 (d203ee6), Zeile 545 in 18.0 (e2ab18b), Zeile 545 in 19.0 (ce7f5a3) und Zeile 547 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 456 in 17.0 (d203ee6), Zeile 456 in 18.0 (e2ab18b), Zeile 456 in 19.0 (ce7f5a3) und Zeile 458 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_provider.py, Zeile 732 in 17.0 (d203ee6), Zeile 732 in 18.0 (e2ab18b), Zeile 732 in 19.0 (ce7f5a3) und Zeile 734 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_provider.py, Zeile 336 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 1740 in 17.0 (d203ee6), Zeile 1740 in 18.0 (e2ab18b), Zeile 1740 in 19.0 (ce7f5a3) und Zeile 1745 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_provider.py, Zeile 397 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) und 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_provider.py, Zeile 462 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 521 in 17.0 (d203ee6), Zeile 521 in 18.0 (e2ab18b), Zeile 521 in 19.0 (ce7f5a3) und Zeile 523 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_transaction.py, Zeile 281 in 17.0 (d203ee6), Zeile 281 in 18.0 (e2ab18b), Zeile 281 in 19.0 (ce7f5a3) und Zeile 292 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_transaction.py, Zeile 247 in 17.0 (d203ee6), Zeile 247 in 18.0 (e2ab18b), Zeile 247 in 19.0 (ce7f5a3) und Zeile 258 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_provider.py, Zeile 623 in 17.0 (d203ee6), Zeile 623 in 18.0 (e2ab18b), Zeile 623 in 19.0 (ce7f5a3) und Zeile 625 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: models/payment_provider.py, Zeile 742 in 17.0 (d203ee6), Zeile 742 in 18.0 (e2ab18b), Zeile 742 in 19.0 (ce7f5a3) und Zeile 744 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 1100 in 17.0 (d203ee6), Zeile 1100 in 18.0 (e2ab18b), Zeile 1100 in 19.0 (ce7f5a3) und Zeile 1107 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 346 in 17.0 (d203ee6), Zeile 346 in 18.0 (e2ab18b), Zeile 346 in 19.0 (ce7f5a3) und Zeile 348 in 20.0 (688d86b)
  • Quellcode des Moduls: flexigo_payment_gocardless: i18n/flexigo_payment_gocardless.pot, Zeile 1167 in 17.0 (d203ee6), Zeile 1167 in 18.0 (e2ab18b), Zeile 1167 in 19.0 (ce7f5a3) und Zeile 1174 in 20.0 (688d86b)
  • 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
  • github.com/odoo/odoo/blob/17.0/odoo/http.py
  • Quellcode des Moduls: flexigo_payment_gocardless: __manifest__.py, Zeile 31 in 17.0 (d203ee6), 18.0 (e2ab18b), 19.0 (ce7f5a3) und 20.0 (688d86b)