Wanneer Odoo zich aanmeldt
Odoo authenticeert zich op twee momenten: wanneer je het KSeF-certificaat met zijn privésleutel in de instellingen opslaat, en in de geplande actie "Refresh KSeF tokens", die elke 6 dagen de volledige aanmelding herhaalt. De context is het NIP van het bedrijf, dus het btw-nummer van het bedrijf moet beginnen met PL. De challenge van KSeF is 10 minuten geldig.

POST /auth/xades-signature teruggeeft.De codes en hun teksten
| Code | Tekst van KSeF |
|---|---|
| 9101 | "Nieprawidłowy dokument." (ongeldig document) |
| 9102 | "Brak podpisu." (handtekening ontbreekt) |
| 9103 | "Przekroczona liczba dozwolonych podpisów." (te veel handtekeningen) |
| 9105 | "Nieprawidłowy podpis." (ongeldige handtekening) |
| 21111 | "Nieprawidłowe wyzwanie autoryzacyjne." (ongeldige autorisatiechallenge) |
| 21115 | "Nieprawidłowy certyfikat." (ongeldig certificaat) |
| 21117 | "Nieprawidłowy identyfikator podmiotu dla wskazanego typu kontekstu." (ongeldige entiteitsidentificatie voor het type context) |
| 21217 | "Nieprawidłowe kodowanie znaków." (ongeldige tekencodering) |
| 21401 | "Dokument nie jest zgodny ze schemą (xsd)." Het gaat hier om de aanmeldings-XML, niet om de factuur. |
| 21406 | "Konflikt podpisu i typu uwierzytelnienia." (conflict tussen handtekening en authenticatietype) |
| 460 | "Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu", met details: "Nieważny certyfikat", "Błąd weryfikacji łańcucha certyfikatów", "Niezaufany łańcuch certyfikatów", "Certyfikat odwołany", "Certyfikat zawieszony" of "Niepoprawny certyfikat" (verlopen, ketenfout, onbetrouwbare keten, ingetrokken, geschorst, onjuist). |
De eerste tien komen meteen binnen, als HTTP 400-antwoord op de handtekening. Status 460 komt later, wanneer de aanmeldstatus wordt opgevraagd. Let op de specificatie zelf: de voorbeelden voor dat verzoek geven om dezelfde redenen code 400 met de beschrijving "Uwierzytelnianie zakończone niepowodzeniem", terwijl de statustabel 460 geeft. De tekst van details is belangrijker dan het nummer.
Wat Odoo niet laat zien
Wanneer de handtekening mislukt, schrijft Odoo "Failed to authenticate with XAdES:" gevolgd door de uitzonderingstekst van de bibliotheek requests, zoiets als "400 Client Error: Bad Request for url: …/auth/xades-signature". De code uit de tabel bereikt het scherm nooit: Odoo neemt de body van het antwoord alleen mee wanneer het responseobject "waar" is, en in requests is een antwoord met een code van 400 tot 599 "onwaar". Hetzelfde gebeurt bij het ophalen van de challenge, het controleren van de status en het inwisselen van de tokens.
Bij status 460 schrijft Odoo "KSeF Authentication failed with status 460: …" met de beschrijving en zonder de details (in het Pools in versie 18 en 19: "Uwierzytelnianie KSeF nie powiodło się z kodem błędu 460: …").
Als de vernieuwing elke 6 dagen mislukt, laat dat alleen een spoor achter in het serverlogboek. Het refreshtoken van KSeF is maximaal 7 dagen geldig; daarna eindigt het verzenden met "Failed to refresh KSeF access token. You may need to re-authenticate manually.".
De lijst met credentials van onze module

Poland KSeF 2.0 Validator heeft onder KSeF › Configuration › Credentials een lijst met KSeF-certificaten, tokens, zegels en gekwalificeerde handtekeningen, met de dagen die er nog over zijn: oranje bij 30 dagen of minder en rood zodra ze verlopen zijn. De vervaldatum typt degene die het item toevoegt. De module leest het certificaat uit de instellingen van Odoo niet en ook niet de status ervan in KSeF, dus een ingetrokken of geschorst certificaat wordt niet gesignaleerd.
Wat te doen
- Controleer in de instellingen dat het gekozen record een KSeF-certificaat met zijn privésleutel is.
- Controleer de geldigheidsdata en of het certificaat in KSeF is ingetrokken of geschorst.
- Controleer dat het btw-nummer van het bedrijf begint met PL en het NIP is waarvoor het certificaat is uitgegeven.
- Sla het certificaat opnieuw op in de instellingen. Als de fout terugkomt en Odoo alleen "400 Client Error" toont, vraag dan om het antwoord van KSeF met zijn code te laten lezen.
Lees verder
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen
Bronnen
- Broncode van de module: 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
- Broncode van de module: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): views/ksef_credential_views.xml
- Broncode van de module: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/ksef_credential.py
