O que significa cada estado
- 415
- «Uwierzytelnianie zakończone niepowodzeniem» (autenticação falhada), details «Brak przypisanych uprawnień» (sem permissões atribuídas): a pessoa ou entidade do certificado não tem nenhuma permissão no contexto desse NIF.
- 425
- «Uwierzytelnienie unieważnione» (autenticação revogada), details «Uwierzytelnienie i powiązane refresh tokeny zostały unieważnione przez użytkownika»: alguém encerrou essa sessão.
- 450
- «Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu» (falhada por token errado), com details como «Token unieważniony», «Token nieaktywny», «Nieprawidłowy czas tokena» ou «Token nie może być użyty w kontekście {contextIdentifier}»: refere-se ao início de sessão com token KSeF.
- 470
- «Uwierzytelnianie zakończone niepowodzeniem», details «Próba wykorzystania metod autoryzacyjnych osoby zmarłej» (tentativa de usar as credenciais de uma pessoa falecida).
- 480
- «Uwierzytelnienie zablokowane» (autenticação bloqueada), details «Podejrzenie incydentu bezpieczeństwa. Skontaktuj się z Ministerstwem Finansów przez formularz zgłoszeniowy.» (suspeita de incidente de segurança; contacte o Ministério através do seu formulário).
- 500 e 550
- «Nieznany błąd» (erro desconhecido) e «Operacja została anulowana przez system» (anulada pelo sistema), com details «Przetwarzanie zostało przerwane z przyczyn wewnętrznych systemu. Spróbuj ponownie» (processamento interrompido por causas internas; tente novamente).

Tokens KSeF e Odoo
O Odoo 18, 19 e 20 têm no seu código uma função para iniciar sessão com um token KSeF, mas nada a chama: só iniciam sessão com o certificado. Por isso um 450 no início de sessão não vem do Odoo. Se o vir, vem de outro programa que usa um token, como o de um gabinete de contabilidade. O KSeF revoga os tokens automaticamente quando o seu titular perde as permissões.
Com os restantes estados, o Odoo mostra «KSeF Authentication failed with status …: …» com a descrição e sem os details. No 415 e no 470 a descrição é a mesma, por isso só o campo details os distingue.
Tokens de acesso, de refrescamento e códigos 21301 e 21304
| Elemento | KSeF | Odoo 18, 19 e 20 |
|---|---|---|
| accessToken | Vale uns poucos minutos («kilkanaście», diz a documentação), os que indicar o seu campo exp | Após um HTTP 401 refresca-o e repete o pedido uma vez. |
| refreshToken | Até 7 dias | A ação agendada «Refresh KSeF tokens» volta a iniciar sessão com o certificado a cada 6 dias. |
| 21301 «Brak autoryzacji.» (sem autorização) | Ao trocar ou refrescar tokens, por exemplo «Token KSeF został unieważniony.» (token KSeF revogado) | Vê «Failed to refresh KSeF access token. You may need to re-authenticate manually. Error: 400 Client Error…», sem o código. |
| 21304 «Brak uwierzytelnienia.» (sem autenticação) | «Operacja uwierzytelniania o numerze referencyjnym {referenceNumber} nie została znaleziona.» | Igual: o código não chega ao ecrã. |

O que fazer
- 415, ou 21301 após retirar permissões: o proprietário da empresa concede permissões no KSeF à pessoa do certificado e volta a guardar o certificado nas definições do Odoo.
- 425: alguém revogou a sessão; volte a guardar o certificado para que o Odoo inicie sessão de novo.
- 480: faça o que o KSeF indica e contacte o Ministério das Finanças através do seu formulário; repetir o início de sessão não ajuda.
- 500 ou 550: tente novamente.
O nosso módulo, Poland KSeF 2.0 Validator, mantém uma lista de certificados e tokens KSeF com as respetivas datas de validade, mas não inicia sessão no KSeF e não vê estes estados.
Continue a ler
Verificado no código do módulo (versão 20.0) e nas fontes indicadas
Fontes
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/open-api.json
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/uwierzytelnianie.
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/uwierzytelnianie.
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/tool
- 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/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/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/mode
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/tool
- github.com/psf/requests/blob/v2.32.5/src/requests/models.py#L730
- Código do módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/ksef_credential.py
