Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · Produtos e serviços

anoFab na NF-e: ano de fabricação do veículo novo

<anoFab>det › prod › veicProd › anoFab

Revisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.

anoFab informa o ano de fabricação do veículo novo no grupo veicProd. É um dado do veículo, não o ano em que a nota é emitida nem uma abreviação do ano modelo. A conferência deve preservar o ano efetivo informado na documentação do veículo.

O caminho no XML processado é /nfeProc/NFe/infNFe/det/prod/veicProd/anoFab. Sem o envelope nfeProc, a leitura começa em NFe. O namespace é http://www.portalfiscal.inf.br/nfe; consultas XPath precisam associá-lo a um prefixo.

Fabricação, modelo e emissão

anoFab é o campo J17; anoMod, J16, identifica o ano modelo. Eles não precisam ser copiados um do outro. Uma emissão realizada em 2026 também não obriga que o veículo tenha sido fabricado em 2026. A data da NF-e está no grupo ide, em outro contexto.

O formato de anoFab é exatamente quatro dígitos, pela expressão [0-9]{4} do XSD 010f. Essa restrição não estabelece que qualquer combinação de quatro dígitos seja um ano verdadeiro daquele veículo. 26, 2026/2027, espaços ou texto explicativo não representam o campo corretamente; a combinação fabricação/modelo precisa ser separada nas duas tags.

Quando obter o ano e de onde ele vem

A aplicação é restrita ao detalhamento de veículo novo, no grupo veicProd do item. Dentro desse grupo, o campo ocorre uma vez e é obrigatório; a ausência do grupo em uma operação diferente não torna este filho exigível isoladamente. A regra J01-10, mensagem 736, rejeita o grupo em NFC-e e em NF-e com DANFE Simplificado Tipo 2 (tpImp=6). A ampliação consta da NT 2026.002, com produção prevista em 03/08/2026; ela restringe o grupo inteiro, não o conteúdo deste campo.

Use o dado documental associado ao chassi do item. Em integrações, confira qual coluna do cadastro representa fabricação e qual representa modelo; nomes comerciais e datas de entrada no estoque não substituem essa identificação. Se o documento traz a dupla 2026/2027, confirme o significado de cada posição antes de mapear; não adivinhe a partir da ordem de uma tela.

Exemplo de anos diferentes

Suponha um veículo cuja documentação confirme fabricação 2026 e modelo 2027. O recorte sintético e parcial é:

<ns0:anoMod xmlns:ns0="http://www.portalfiscal.inf.br/nfe">2027</ns0:anoMod>

<ns0:anoFab xmlns:ns0="http://www.portalfiscal.inf.br/nfe">2026</ns0:anoFab>

O schema coloca anoMod antes de anoFab, mesmo que a fonte apresente “fabricação/modelo”. Os demais filhos de veicProd foram omitidos; o trecho não é uma nota ou grupo completo para envio. A diferença dos anos, por si só, não permite concluir erro. A comparação correta é com a documentação vinculada ao veículo.

Conferência antes de corrigir

  1. Localize o det correspondente ao veículo e confirme seu chassi.
  2. Compare o valor de anoFab com o ano de fabricação documental; confira separadamente anoMod.
  3. Verifique se o gerador preserva quatro dígitos e a ordem dos filhos, sem transportar a barra da descrição conjunta.
  4. Se a origem estiver errada, corrija o cadastro comprovado e confira a nova geração. Um resultado verde no XSD não comprova o ano real.

Não altere o ano para coincidir com a emissão ou para eliminar uma mensagem de outra regra. A rejeição 736 está ligada ao grupo em modelo ou DANFE vedado; não é uma validação específica de anoFab. A identificação técnica do ano também não define NCM, CFOP ou tributação da operação.

Campos relacionados

Fontes oficiais

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/prod/veicProd/anoFab
Namespace
http://www.portalfiscal.inf.br/nfe
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
1–1 no contexto do elemento pai
Tipo
inline:xs:string · string
Preenchimento no catálogo
Condicional

A ocorrência vale dentro da estrutura XML: um campo obrigatório em um grupo opcional não torna esse grupo obrigatório. A aplicação fiscal depende da operação e da versão da regra.

pattern
[0-9]{4}
whiteSpace
preserve