Saltar para o conteúdo principal
KSeF 2.0 · estado da fatura

Código 450 do KSeF: «Błąd weryfikacji semantyki dokumentu faktury»

O estado 450 significa que o KSeF aceitou o ficheiro para o processar e depois rejeitou a fatura ao rever o seu conteúdo. É outro código diferente do 450 do início de sessão, que se refere a um token (explicamos à parte). O Odoo mostra-lhe o número e uma descrição geral; o motivo concreto está no campo details da resposta do KSeF.

FlexigoTech · Responsável: Víctor Gómez · Atualizado em 5 de novembro de 2026

O essencial

Módulo
KSeF 2.0
Versões
Odoo 17, 18, 19 e 20
Verificado
no código do módulo, versão 17.0 e 20.0 · nas fontes indicadas no fim
Leitura
3 min

O que devolve o KSeF

Na especificação da API do KSeF 2.9.0, o estado 450 de uma fatura em sessão tem uma descrição fixa, «Błąd weryfikacji semantyki dokumentu faktury» (erro de verificação semântica do documento de fatura). O que falha em concreto é acrescentado pelo KSeF no campo details desse mesmo estado. O Ministério das Finanças polaco não publica a lista dessas mensagens, pelo que não existe uma tabela do género «o 450 é sempre esta falha».

O que existe são casos que o Ministério verifica nos testes da sua própria biblioteca ksef-client-csharp e nos quais espera precisamente o código 450:

  • data de emissão P_1 colocada para amanhã segundo a hora polaca, porque o KSeF lê P_1 no fuso horário de Varsóvia e não aceita uma data posterior ao momento em que recebe a fatura;
  • DataWytworzeniaFa anterior a 2025-09-01T00:00:00Z, o limite inferior desse campo no esquema FA(3) 1-0E.
Cartão do código 450 do KSeF com a sua descrição na API
O código 450 e a sua descrição na API do KSeF 2.9.0, com os campos por onde convém começar.

O que vê no Odoo

As faturas chegam ao KSeF com o módulo l10n_pl_edi do Odoo, que existe no Odoo 18, 19 e 20. Quando o KSeF responde, põe «KSeF Status» em Rejected e escreve uma mensagem no histórico da fatura:

VersãoMensagem no Odoo
Odoo 18 e 19 em polaco«Status KSeF: Odrzucono (kod: 450). Błąd weryfikacji semantyki dokumentu faktury.»
Odoo 20«KSeF Status: Rejected (Code: 450). Invoice document semantics verification error.» (a tradução polaca deste módulo está vazia na 20)
Odoo 17Sem l10n_pl_edi: a fatura é enviada por outro programa e é esse que mostra o erro.

Da resposta do KSeF, o Odoo lê o código, a descrição e o número KSeF. Não guarda o campo details (apenas acrescenta a descrição do KSeF com o código 500), pelo que o Odoo, por si só, não lhe diz que parte da fatura falhou.

Onde obter o motivo

O texto de details vem na resposta do KSeF à consulta do estado da fatura. Se enviar a partir do Odoo, precisa de alguém que o leia da API ou de uma verificação do ficheiro FA(3) antes de o enviar. O Odoo 18, 19 e 20 trazem uma cópia do esquema FA(3) dentro do módulo, mas fora dos testes nada a usa: o ficheiro segue para o KSeF sem ser validado contra o esquema.

Duas coisas o Odoo vigia. Não envia uma fatura com data posterior a hoje no fuso horário do utilizador («The move was skipped because it is future-dated»). E preenche DataWytworzeniaFa com o momento em que gera o ficheiro, em UTC, pelo que o limite de 2025 não deveria vir de uma fatura emitida no Odoo.

Como voltar a enviá-la

  1. Obtenha o motivo em details ou verifique o ficheiro FA(3) contra o esquema.
  2. Corrija os dados no Odoo: data, cliente, linhas.
  3. Repunha a fatura em rascunho. Numa fatura rejeitada, o Odoo limpa o seu estado, número, referência e sessão do KSeF.
  4. Confirme-a e envie-a de novo com a opção «by KSeF (e-Faktura)». O Odoo só envia faturas sem estado KSeF, pelo que, sem o passo 3, nada sai.
Esquema: o que devolve o KSeF com o código 450 e o que mostra o Odoo 20
Esquema feito a partir do código de l10n_pl_edi do Odoo 20 e da especificação da API do KSeF 2.9.0; o riscado é o que o Odoo não guarda ou não faz.

Com o nosso módulo

O Poland KSeF 2.0 Validator não envia faturas ao KSeF. Com a subscrição do FlexigoTech Cloud, se carregar em «Validate FA(3) (FlexigoTech Cloud)» antes de enviar a fatura, valida o ficheiro FA(3) contra o esquema 1-0E e mostra cada falha como uma linha «[error] XSD (caminho)»: o sítio do ficheiro, sem o texto da mensagem, até 100 falhas. O resultado não trava o envio do l10n_pl_edi: uma fatura «Not valid» sai igualmente se a enviar. Não deteta o que o KSeF só verifica do seu lado, como P_1 face ao momento da receção. Quando o l10n_pl_edi envia a fatura, a validação anterior passa a Expired e o módulo revê o ficheiro que o KSeF recebeu. No Odoo 17 valida o FA(3) carregado para a fatura.

O código 450 não chega ao nosso módulo: do l10n_pl_edi só retira o estado (Submitted, Accepted ou Rejected) e o número KSeF.

Continue a ler

As datas no FA(3): P_1, P_6 e DataWytworzeniaFaRegras de datas do esquema FA(3) 1-0E e do KSeF: P_1 na hora polaca, P_6, DataWytworzeniaFa desde 2025-09-01. Quando dão 450 e o que faz o Odoo 18-20.Estados técnicos da fatura no KSeF: 550, 500, 405, 430 e 435Estados da fatura no KSeF alheios ao seu conteúdo: 550 «Operacja została anulowana przez system», 500, 405, 430 e 435. O que faz o Odoo e porque o 550 fica em Sent.Estados de autenticação do KSeF: 415, 425, 450, 470 e 480Estados do início de sessão no KSeF 2.0 além do certificado: sem permissões, revogado, token errado, bloqueio. Códigos 21301 e 21304 e como aparecem no Odoo.
Verificado no código do módulo (versão 17.0 e 20.0) e nas fontes indicadas

Fontes