Naar hoofdinhoud
KSeF 2.0 · authenticatie

Aanmelden bij KSeF met certificaat: code 460 en XAdES-handtekeningfouten

Odoo 18, 19 en 20 maken alleen verbinding met KSeF met een KSeF-certificaat: ze ondertekenen een challenge met een XAdES-handtekening en sturen die naar POST /auth/xades-signature. Als er iets misgaat met het certificaat of de handtekening, antwoordt KSeF met een van de elf codes op deze pagina, maar Odoo toont daar meestal weinig van.

FlexigoTech · Verantwoordelijk: Víctor Gómez · Bijgewerkt op 5 november 2026

In het kort

Module
KSeF 2.0
Versies
Odoo 17, 18, 19 en 20
Gecontroleerd
in de broncode van de module, versie 20.0 · in de bronnen onderaan
Leestijd
3 min

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.

Kaart van KSeF-code 460 met de XAdES-handtekeninguitzonderingen
De code 460 en de tien uitzonderingen die POST /auth/xades-signature teruggeeft.

De codes en hun teksten

CodeTekst 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

Lijst met KSeF-credentials van de module, met twee rijen in oranje
Schermafbeelding met demogegevens: twee items staan in oranje omdat ze binnen 30 dagen verlopen.

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

  1. Controleer in de instellingen dat het gekozen record een KSeF-certificaat met zijn privésleutel is.
  2. Controleer de geldigheidsdata en of het certificaat in KSeF is ingetrokken of geschorst.
  3. Controleer dat het btw-nummer van het bedrijf begint met PL en het NIP is waarvoor het certificaat is uitgegeven.
  4. 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

KSeF-authenticatiestatussen: 415, 425, 450, 470 en 480Statussen van de KSeF 2.0-aanmelding naast het certificaat: geen rechten, ingetrokken, verkeerd token, geblokkeerd. Codes 21301 en 21304 en hoe ze eruitzien in Odoo.Codes 410 en 415 van KSeF: rechten van de verkoper en bijlagenKSeF 410 «Nieprawidłowy zakres uprawnień» en 415 bij facturen met bijlage: wat ze veroorzaakt in de tests van het Ministerie en wat je in Odoo 18, 19 en 20 moet nakijken.KSeF HTTP 429, 403 en 401: aanvraaglimieten en geweigerde toegangKSeF 2.0 antwoordt met 429 Too Many Requests bij overschrijding, 403 met een reasonCode bij ontbrekende toegang en 401 bij een verlopen token. Limieten en wat Odoo doet.
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen

Bronnen