Nordlet

← Blogue

Conformidade com a EN 16931: Peppol, Factur-X e ZUGFeRD verificados face às regras oficiais

Submetemos os ficheiros de fatura produzidos pela Nordlet às regras de validação oficiais da EN 16931. Os ficheiros Peppol e romenos passam com sucesso. Os ficheiros Factur-X violam duas regras e este artigo identifica-as.

Nordlet Team · · 4 min de leitura

A norma EN 16931 é o padrão europeu para o conteúdo de uma fatura eletrónica. Define os termos comerciais que uma fatura deve conter (vendedor, comprador, linhas, resumo de IVA, totais) e as regras comerciais que esses termos devem satisfazer; por exemplo, que a soma do resumo de IVA resulte no total da fatura. A norma pode ser escrita em dois formatos XML: UBL 2.1 e UN/CEFACT Cross Industry Invoice (CII).

A maioria dos formatos europeus de faturação eletrónica baseia-se na EN 16931:

  • Peppol BIS Billing 3.0 é a EN 16931 em UBL com regras adicionais da Peppol.
  • e-Factura romena (CIUS-RO) é a EN 16931 em UBL com regras adicionais romenas.
  • Factur-X (França) e ZUGFeRD 2.3 (Alemanha) incorporam a EN 16931 em CII. No perfil "EN 16931", utilizado pela Nordlet, ambos os formatos utilizam o mesmo XML.

Se uma fatura violar uma regra da EN 16931, violará igualmente todos os formatos construídos com base na mesma.

Como efetuámos a verificação

A Comissão Europeia remete para as regras de validação publicadas pelo comité técnico de faturação eletrónica do CEN (CEN/TC 434) no GitHub. Utilizámos a versão mais recente, 1.3.17 de 12 de outubro de 2026, tanto para UBL como para CII. As regras estão escritas em Schematron e compiladas para XSLT, tendo sido executadas com o motor XSLT Saxon-HE 12.5.

Os ficheiros de fatura foram gerados pelo código atual da Nordlet a partir de dados de exemplo. O vendedor é uma empresa lituana; os compradores são uma empresa lituana, uma empresa alemã e, no caso da exportação Peppol, uma empresa norte-americana. As faturas de exemplo incluem uma linha com IVA a 21% e uma linha a 0% com uma nota de isenção.

Resultados

O que a Nordlet gera Ficheiros verificados Resultado
Peppol BIS Billing 3.0 (UBL) 7: fatura nacional, nota de crédito, transação intra-EU, exportação, autoliquidação (reverse charge), vendedor não enquadrado em IVA, fatura em USD com desconto Todos aprovados: 0 erros, 0 avisos
e-Factura romena (UBL, CIUS-RO) 4: fatura nacional, nota de crédito, transação intra-EU, fatura em USD com desconto Todos aprovados
Factur-X / ZUGFeRD (CII, perfil EN 16931) 4: fatura nacional, nota de crédito, transação intra-EU, fatura em USD com desconto Todos os 4 reprovam, 1 erro cada

As duas regras violadas pelos ficheiros Factur-X

BR-Z-10: uma linha com taxa zero não deve incluir um motivo de isenção

A EN 16931 distingue as categorias de IVA para uma taxa de 0% ("Z", taxa zero) e para uma transmissão isenta ("E", isenta). Apenas a transmissão isenta requer a indicação de um motivo. A regra BR-Z-10 determina que um resumo de IVA na categoria "Z" não pode conter um código de motivo de isenção (BT-121) nem um texto de motivo de isenção (BT-120).

O gerador de Factur-X insere o texto de motivo "Taux zéro" em todos os resumos com taxa zero, pelo que três dos quatro ficheiros falham. Além disso, ignora a nota de isenção introduzida na linha. O gerador Peppol processa a mesma linha corretamente: quando uma linha a 0% possui uma nota de isenção, classifica a linha como isenta ("E") e utiliza a nota como o respetivo motivo.

BR-IC-12: uma transação intra-UE deve indicar o país de entrega

A regra BR-IC-12 estabelece que, quando o resumo de IVA apresenta a categoria "K" (transmissão intracomunitária), o código do país de entrega (BT-80) não pode estar vazio. O país de entrega comprova que as mercadorias abandonaram o país do vendedor.

O gerador de Factur-X não preenche o país de entrega, motivo pelo qual o ficheiro intra-UE é rejeitado. O gerador Peppol preenche o país do comprador como o país de entrega para estas transações.

O que esta verificação não abrange

  • Esquema XML. Apenas executámos as regras de negócio, excluindo as validações de esquemas (XSD) para UBL e CII.
  • Campos não gerados pela Nordlet. As regras relativas a termos que não constam nos ficheiros não foram avaliadas. Exemplos disso são encargos ao nível do documento, montantes pagos adiantadamente, período de faturação e referências a ordens de compra.
  • Regras nacionais adicionais à EN 16931. Não verificámos as regras da reforma de faturação eletrónica francesa nem as regras alemãs XRechnung. As regras específicas da Peppol são validadas por um script separado da Nordlet, que utiliza os conjuntos de regras OpenPeppol.
  • A componente PDF do Factur-X. Uma fatura Factur-X consiste num ficheiro PDF/A-3 com o XML anexado. A verificação restringe-se exclusivamente ao ficheiro XML.

FAQ

O que é a EN 16931?

A EN 16931 é a norma europeia que define os requisitos de dados e as regras de negócio para as faturas eletrónicas, garantindo a interoperabilidade entre sistemas de faturação em toda a Europa.

Porque é que os ficheiros Factur-X da Nordlet falharam na validação?

Os ficheiros Factur-X falharam em duas regras específicas: a BR-Z-10, por incluir indevidamente um motivo de isenção em linhas com taxa zero, e a BR-IC-12, por omitir o país de entrega obrigatório em transações intra-UE.

Os ficheiros Peppol cumprem integralmente a norma?

Sim. Todos os 7 ficheiros de teste Peppol BIS Billing 3.0 gerados pela Nordlet passaram sem quaisquer erros ou avisos na validação oficial CEN/TC 434.