Quan inicia sessió Odoo
Odoo s'autentica en dos moments: quan deses el certificat KSeF amb la seva clau privada a la configuració i a l'acció planificada «Refresh KSeF tokens», que repeteix l'inici de sessió complet cada 6 dies. El context és el NIP de l'empresa, així que el NIF de l'empresa ha de començar per PL. El repte (challenge) de KSeF és vàlid durant 10 minuts.

POST /auth/xades-signature.Els codis i els seus textos
| Codi | Text de KSeF |
|---|---|
| 9101 | «Nieprawidłowy dokument.» (document no vàlid) |
| 9102 | «Brak podpisu.» (falta la signatura) |
| 9103 | «Przekroczona liczba dozwolonych podpisów.» (massa signatures) |
| 9105 | «Nieprawidłowy podpis.» (signatura no vàlida) |
| 21111 | «Nieprawidłowe wyzwanie autoryzacyjne.» (repte d'autorització no vàlid) |
| 21115 | «Nieprawidłowy certyfikat.» (certificat no vàlid) |
| 21117 | «Nieprawidłowy identyfikator podmiotu dla wskazanego typu kontekstu.» (identificador no vàlid per a aquest tipus de context) |
| 21217 | «Nieprawidłowe kodowanie znaków.» (codificació de caràcters no vàlida) |
| 21401 | «Dokument nie jest zgodny ze schemą (xsd).» Aquí es tracta del XML d'inici de sessió, no de la factura. |
| 21406 | «Konflikt podpisu i typu uwierzytelnienia.» (conflicte entre la signatura i el tipus d'autenticació) |
| 460 | «Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu», amb details: «Nieważny certyfikat», «Błąd weryfikacji łańcucha certyfikatów», «Niezaufany łańcuch certyfikatów», «Certyfikat odwołany», «Certyfikat zawieszony» o «Niepoprawny certyfikat» (caducat, error de cadena, cadena no fiable, revocat, suspès o incorrecte). |
Els deu primers arriben de seguida, com a resposta HTTP 400 a la signatura. L'estat 460 arriba després, en consultar l'estat de l'inici de sessió. Compte amb la pròpia especificació: els exemples d'aquesta consulta donen, pels mateixos motius, el codi 400 amb la descripció «Uwierzytelnianie zakończone niepowodzeniem», mentre que la seva taula d'estats dona 460. Importa més el text de details que el número.
Què no mostra Odoo
Si la signatura falla, Odoo escriu «Failed to authenticate with XAdES:» seguit del text de l'excepció de la biblioteca requests, del tipus «400 Client Error: Bad Request for url: …/auth/xades-signature». El codi de la taula no arriba a la pantalla: Odoo només pren el cos de la resposta quan l'objecte resposta és «veritable», i a requests una resposta amb codi de 400 a 599 és falsa. Passa el mateix en demanar el repte, en consultar l'estat i en bescanviar els tokens.
Amb l'estat 460, Odoo escriu «KSeF Authentication failed with status 460: …» amb la descripció i sense els details (en polonès a la 18 i la 19: «Uwierzytelnianie KSeF nie powiodło się z kodem błędu 460: …»).
Si la renovació cada 6 dies falla, només deixa rastre al registre del servidor. El token de refresc de KSeF dura fins a 7 dies; després, l'enviament acaba amb «Failed to refresh KSeF access token. You may need to re-authenticate manually.».
La llista de credencials del nostre mòdul

Poland KSeF 2.0 Validator té a KSeF › Configuration › Credentials una llista de certificats KSeF, tokens, segells i signatures qualificades amb els dies que els queden: en taronja amb 30 dies o menys i en vermell ja caducats. La data de caducitat l'escriu qui dona d'alta l'entrada. El mòdul no llegeix el certificat de la configuració d'Odoo ni el seu estat a KSeF, així que no marcarà un certificat revocat o suspès.
Què fer
- Comprova a la configuració que el registre triat és un certificat KSeF amb la seva clau privada.
- Revisa les dates de validesa i si el certificat està revocat o suspès a KSeF.
- Comprova que el NIF de l'empresa comença per PL i és el NIP per al qual es va emetre el certificat.
- Torna a desar el certificat a la configuració. Si l'error torna i a Odoo només veus «400 Client Error», demana que llegeixin la resposta de KSeF amb el seu codi.
Continua llegint
Comprovat al codi del mòdul (versió 20.0) i a les fonts enllaçades
Fonts
- Codi del mòdul: 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
- Codi del mòdul: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): views/ksef_credential_views.xml
- Codi del mòdul: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/ksef_credential.py
