Wann Odoo sich anmeldet
Odoo authentifiziert sich zu zwei Zeitpunkten: wenn Sie das KSeF-Zertifikat mit seinem privaten Schlüssel in den Einstellungen speichern, und in der geplanten Aktion «Refresh KSeF tokens», die die vollständige Anmeldung alle 6 Tage wiederholt. Der Kontext ist die NIP des Unternehmens, daher muss die USt-IdNr. des Unternehmens mit PL beginnen. Die Challenge von KSeF ist 10 Minuten gültig.

POST /auth/xades-signature zurückgibt.Die Codes und ihre Texte
| Code | Text von KSeF |
|---|---|
| 9101 | «Nieprawidłowy dokument.» (ungültiges Dokument) |
| 9102 | «Brak podpisu.» (Signatur fehlt) |
| 9103 | «Przekroczona liczba dozwolonych podpisów.» (zu viele Signaturen) |
| 9105 | «Nieprawidłowy podpis.» (ungültige Signatur) |
| 21111 | «Nieprawidłowe wyzwanie autoryzacyjne.» (ungültige Autorisierungs-Challenge) |
| 21115 | «Nieprawidłowy certyfikat.» (ungültiges Zertifikat) |
| 21117 | «Nieprawidłowy identyfikator podmiotu dla wskazanego typu kontekstu.» (ungültige Kennung des Subjekts für den angegebenen Kontexttyp) |
| 21217 | «Nieprawidłowe kodowanie znaków.» (ungültige Zeichenkodierung) |
| 21401 | «Dokument nie jest zgodny ze schemą (xsd).» Hier geht es um das XML der Anmeldung, nicht um die Rechnung. |
| 21406 | «Konflikt podpisu i typu uwierzytelnienia.» (Konflikt zwischen Signatur und Authentifizierungstyp) |
| 460 | «Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu», mit details: «Nieważny certyfikat», «Błąd weryfikacji łańcucha certyfikatów», «Niezaufany łańcuch certyfikatów», «Certyfikat odwołany», «Certyfikat zawieszony» oder «Niepoprawny certyfikat» (abgelaufen, Kettenfehler, nicht vertrauenswürdige Kette, widerrufen, gesperrt, fehlerhaft). |
Die ersten zehn kommen sofort als HTTP-Antwort 400 auf die Signatur. Der Status 460 kommt später, wenn der Anmeldestatus abgefragt wird. Ein Hinweis zur Spezifikation selbst: Die Beispiele für diese Abfrage nennen aus denselben Gründen den Code 400 mit der Beschreibung «Uwierzytelnianie zakończone niepowodzeniem», während die Statustabelle 460 angibt. Der Text im Feld details ist wichtiger als die Nummer.
Was Odoo nicht anzeigt
Schlägt die Signatur fehl, schreibt Odoo «Failed to authenticate with XAdES:», gefolgt vom Ausnahmetext der Bibliothek requests, etwa «400 Client Error: Bad Request for url: …/auth/xades-signature». Der Code aus der Tabelle erreicht den Bildschirm nicht: Odoo übernimmt den Antworttext nur, wenn das Antwortobjekt «wahr» ist, und in requests ist eine Antwort mit einem Code von 400 bis 599 falsch. Dasselbe passiert beim Anfordern der Challenge, beim Abfragen des Status und beim Einlösen der Tokens.
Bei Status 460 schreibt Odoo «KSeF Authentication failed with status 460: …» mit der Beschreibung und ohne die details (auf Polnisch in 18 und 19: «Uwierzytelnianie KSeF nie powiodło się z kodem błędu 460: …»).
Schlägt die Erneuerung alle 6 Tage fehl, hinterlässt sie nur eine Spur im Serverprotokoll. Das Refresh-Token von KSeF gilt bis zu 7 Tage; danach endet der Versand mit «Failed to refresh KSeF access token. You may need to re-authenticate manually.».
Die Liste der Zugangsdaten in unserem Modul

Poland KSeF 2.0 Validator hat unter KSeF › Configuration › Credentials eine Liste mit KSeF-Zertifikaten, Tokens, Siegeln und qualifizierten Signaturen samt den verbleibenden Tagen: orange bei 30 Tagen oder weniger, rot nach Ablauf. Das Ablaufdatum trägt die Person ein, die den Eintrag anlegt. Das Modul liest weder das Zertifikat aus den Einstellungen von Odoo noch seinen Status bei KSeF, daher meldet es kein widerrufenes oder gesperrtes Zertifikat.
Was zu tun ist
- Prüfen Sie in den Einstellungen, dass der gewählte Datensatz ein KSeF-Zertifikat mit seinem privaten Schlüssel ist.
- Kontrollieren Sie die Gültigkeitsdaten und ob das Zertifikat bei KSeF widerrufen oder gesperrt wurde.
- Prüfen Sie, dass die USt-IdNr. des Unternehmens mit PL beginnt und die NIP ist, für die das Zertifikat ausgestellt wurde.
- Speichern Sie das Zertifikat in den Einstellungen erneut. Kehrt der Fehler zurück und zeigt Odoo nur «400 Client Error», lassen Sie die Antwort von KSeF mit ihrem Code auslesen.
Weiterlesen
Geprüft im Quellcode des Moduls (Version 20.0) und in den verlinkten Quellen
Quellen
- Quellcode des Moduls: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): i18n/pl.po
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/open-api.json
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/uwierzytelnianie.
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/psf/requests/blob/v2.32.5/src/requests/models.py#L730
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/i18n
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/data
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/uwierzytelnianie.
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- Quellcode des Moduls: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): views/ksef_credential_views.xml
- Quellcode des Moduls: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/ksef_credential.py
