10 erros comuns de Factur-X / ZUGFeRD e como corrigi-los
Os erros de validação mais frequentes em faturas Factur-X e ZUGFeRD, com explicações e correções: desde a estrutura PDF/A-3 às regras de negócio EN 16931.
Valide o seu ficheiro agora
Grátis, instantâneo e 100% no seu navegador - nenhum ficheiro é enviado.
Porque é que as faturas Factur-X são rejeitadas
As faturas Factur-X e ZUGFeRD combinam duas camadas de complexidade: a estrutura do contentor PDF/A-3 e o modelo de dados XML incorporado (UN/CEFACT CII, alinhado com a EN 16931). Podem ocorrer erros em qualquer uma das camadas. Um PDF estruturalmente válido pode conter XML inválido, e um XML semanticamente correto pode estar incorporado num PDF que não cumpre a conformidade PDF/A-3. Compreender ambas as camadas é essencial para produzir faturas que passem na validação automatizada no Chorus Pro, no ZRE e nas plataformas de faturação eletrónica dos compradores.
A fonte de erros mais comum é a discrepância entre o que o software de contabilidade gera e o que a norma EN 16931 exige. Muitos sistemas ERP geram Factur-X com incompatibilidades ao nível do perfil, erros de arredondamento ou campos obrigatórios em falta - especialmente quando configurados pela primeira vez ou após uma atualização de software.
Erros de estrutura PDF/A-3
O contentor PDF deve estar em conformidade com PDF/A-3b (ou superior). Estes são os erros mais comuns ao nível do PDF:
PDF não conforme com PDF/A-3
O ficheiro deve ser PDF/A-3b (ou PDF/A-3u). Os PDF padrão gerados por aplicações de escritório não são PDF/A-3. Utilize uma biblioteca Factur-X certificada (por exemplo, a biblioteca Python Factur-X, o Mustang Project ou uma plataforma de faturação eletrónica conforme) para gerar ficheiros em conformidade com PDF/A-3.
XML não incorporado como AFRelationship=Alternative
O XML incorporado deve ter os metadados AFRelationship definidos como 'Alternative' (para Factur-X padrão) ou 'Data' (para algumas variantes ZUGFeRD). Um AFRelationship incorreto causa falhas de validação no Chorus Pro e no ZRE.
Nome de ficheiro XML errado no anexo do PDF
O Factur-X exige que o XML seja anexado como 'factur-x.xml'. O ZUGFeRD exige 'ZUGFeRD-invoice.xml' (ZUGFeRD 1.0) ou 'zugferd-invoice.xml' (ZUGFeRD 2.x). O nome do ficheiro é sensível a maiúsculas/minúsculas. Um nome de ficheiro errado causa falhas de extração nos sistemas de processamento automatizado.
Metadados XMP em falta no PDF
O PDF deve conter metadados XMP que declarem o perfil e a versão Factur-X/ZUGFeRD. O elemento de metadados é urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#ConformanceLevel. Sem estes metadados, os sistemas de processamento não conseguem determinar o nível do perfil.
PDF gerado a partir de scanner (apenas imagem)
Os PDF digitalizados convertidos para PDF/A-3 são tecnicamente PDF/A-3 válidos, mas não têm o anexo XML necessário. Uma fatura Factur-X requer tanto a camada visual do PDF COMO o XML incorporado. O PDF deve ser gerado programaticamente a partir dos dados da fatura, e não digitalizado.
Erros de dados XML (CII / EN 16931)
Estes erros ocorrem no XML incorporado, independentemente da validade do contentor PDF:
Número de IVA do vendedor em falta
A EN 16931 exige o número de identificação de IVA do vendedor (SellerTradeParty/SpecifiedTaxRegistration/ID com schemeID='VA'). A ausência do número de IVA causa a falha da regra BR-CO-09 e a rejeição pelas plataformas das autoridades fiscais.
Discrepância de arredondamento do montante de IVA
O montante de imposto calculado (taxBasisAmount × taxRate / 100) deve corresponder ao TaxTotalAmount declarado com uma tolerância de 0,01 €. Os erros de arredondamento nos sistemas ERP - especialmente com várias linhas que utilizam taxas diferentes - são a causa mais comum de falhas de regras EN 16931 (BR-CO-15).
Discrepância no total geral
O GrandTotalAmount deve ser igual a LineTotalAmount − AllowanceTotalAmount + ChargeTotalAmount + TaxTotalAmount. Qualquer discrepância, mesmo de 0,01 €, causa a falha da regra EN 16931 BR-CO-16. Verifique se todos os montantes intermédios estão corretamente somados.
Identificador de perfil errado em GuidelineSpecifiedDocumentContextParameter
O perfil deve ser declarado no cabeçalho do XML. Valores corretos comuns: urn:cen.eu:en16931:2017 (EN 16931 COMFORT), urn:factur-x.eu:1p0:minimum, urn:factur-x.eu:1p0:basicwl, etc. Uma incompatibilidade entre o perfil declarado e os dados efetivamente presentes causa falhas de validação.
Montantes das linhas de fatura ou preço unitário em falta
A EN 16931 exige, no mínimo: descrição do artigo, quantidade, unidade de medida, preço unitário e valor de extensão da linha para cada linha de fatura. Muitas faturas do perfil MINIMUM omitem os detalhes das linhas, o que só é válido para esse nível de perfil - mudar para o perfil EN 16931 sem acrescentar dados de detalhe das linhas causa falhas de regras.
Valide as suas faturas Factur-X instantaneamente
O Validador Factur-X do ValidateFin extrai o XML incorporado da sua fatura PDF, valida a estrutura CII, verifica os campos obrigatórios da EN 16931 e destaca os erros com feedback preciso ao nível do campo. Todo o processamento é feito no seu navegador - nenhum ficheiro é carregado.
Abrir o Validador Factur-XPerguntas frequentes
Como corrijo uma não conformidade PDF/A-3 na minha fatura Factur-X?
Não é possível converter um PDF padrão em PDF/A-3 com uma ferramenta simples - a conformidade PDF/A-3 deve ser assegurada durante a geração do PDF. Utilize uma biblioteca Factur-X certificada (Factur-X Python, Mustang Project, iText para Java ou uma plataforma comercial de faturação eletrónica) que gere ficheiros em conformidade com PDF/A-3b desde o início.
Qual é o nome de ficheiro XML correto para Factur-X?
Para Factur-X (norma francesa/europeia), o nome de ficheiro exigido é 'factur-x.xml' (minúsculas, com hífen). Para ZUGFeRD 1.0 é 'ZUGFeRD-invoice.xml'. Para ZUGFeRD 2.x é 'zugferd-invoice.xml' (minúsculas). O nome do ficheiro é sensível a maiúsculas/minúsculas - use exatamente o nome exigido.
A minha fatura passa na validação de esquema mas falha no Chorus Pro - porquê?
O Chorus Pro aplica tanto a validação de esquema XSD COMO a validação de regras de negócio Schematron EN 16931. Um XML válido face ao esquema pode ainda assim falhar em regras de negócio como a BR-CO-15 (discrepância do montante de IVA) ou a BR-CO-16 (discrepância do total geral). Utilize o ValidateFin para verificar a conformidade com as regras de negócio EN 16931 antes da submissão.
Que perfil Factur-X exige a Bélgica?
A Bélgica aceita formatos conformes com a EN 16931. Para Factur-X, isto significa, no mínimo, o perfil EN 16931 (COMFORT), que contém todos os termos de negócio obrigatórios, incluindo detalhes ao nível da linha, desagregação completa do IVA e informação de pagamento. Os perfis MINIMUM e BASIC WL são insuficientes para a conformidade B2B belga.
Como corrijo o erro de arredondamento de IVA em Factur-X?
Calcule os montantes de IVA usando arredondamento por excesso (round-half-up) para 2 casas decimais ao nível da desagregação de IVA, e não ao nível da linha. Some as desagregações de IVA para obter o TaxTotalAmount. Depois verifique se GrandTotalAmount = LineTotalAmount - AllowanceTotalAmount + ChargeTotalAmount + TaxTotalAmount. Se a diferença for exatamente 0,01 €, trata-se de um problema de arredondamento na configuração do seu ERP.
Qual é a diferença entre ZUGFeRD e Factur-X?
O ZUGFeRD é a norma alemã, desenvolvida pelo FeRD (Forum elektronische Rechnung Deutschland). O Factur-X é a norma conjunta franco-alemã que alinha o ZUGFeRD 2.0+ com os requisitos do Chorus Pro francês. Desde o ZUGFeRD 2.1, os dois são tecnicamente idênticos - o mesmo formato XML, os mesmos perfis. O nome utilizado depende do país e do contexto.
Que perfil Factur-X devo utilizar?
Utilize o perfil mínimo que satisfaça os seus requisitos de conformidade: MINIMUM para arquivo (sem dados de pagamento), BASIC WL para faturas apenas com totais de linha, BASIC para faturas padrão com detalhes básicos de linha, EN 16931 (COMFORT) para conformidade total com a EN 16931 e EXTENDED para dados de negócio adicionais. Para conformidade B2B em França e na Bélgica, utilize o perfil EN 16931 ou superior.
Posso validar uma fatura Factur-X sem software?
Sim - utilize o Validador Factur-X do ValidateFin no seu navegador. Largue a sua fatura PDF e ele extrairá o XML incorporado, validará a estrutura CII, verificará os campos obrigatórios da EN 16931 e apresentará todos os dados da fatura. Sem instalação, sem carregamento de ficheiros, totalmente gratuito.
O que são os metadados AFRelationship em Factur-X?
AFRelationship são metadados PDF que declaram a relação entre o PDF e o ficheiro anexado incorporado. Para faturas Factur-X, devem ser definidos como 'Alternative' - indicando que o XML é uma representação alternativa do mesmo conteúdo do PDF. Algumas variantes ZUGFeRD usam 'Data'. Um AFRelationship errado causa falhas de extração.
Como verifico se o meu PDF Factur-X é um PDF/A-3 válido?
O ValidateFin extrai e valida o XML incorporado do seu PDF Factur-X. Para a verificação completa da conformidade PDF/A-3 (para além da extração do XML), utilize validadores PDF/A dedicados como o veraPDF (código aberto) ou ferramentas comerciais como o Callas pdfToolbox. A conformidade PDF/A-3 exige metadados, perfis de cor e incorporação de tipos de letra específicos que só os validadores PDF dedicados conseguem verificar totalmente.