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

nItem na NF-e: atributo, sequência e rejeição 927

@nItemdet › @nItem

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

nItem é o atributo que identifica a posição do item no grupo det da NF-e ou da NFC-e. Escreve-se <det nItem="1">, e não <nItem>1</nItem>. O caminho é /nfeProc/NFe/infNFe/det/@nItem. A forma de atributo é parte do contrato XML; uma tag com o mesmo texto não a substitui.

A sequência exigida e o que o XSD consegue verificar

O Grupo H do MOC prevê números de 1 a 990. Cada det deve trazer esse atributo. O XSD verifica sua presença e seu formato, enquanto a regra H02-10 compara os números dos itens em conjunto: devem aparecer em ordem incremental, consecutiva e a partir de 1. A implementação dessa regra é opcional, a critério da UF; quando aplicada, uma sequência divergente pode receber a rejeição 927. Essa condição não torna uma sequência irregular um padrão aceitável para gerar documentos. MOC, H02 e H02-10.

Considere três linhas em uma nota. 1, 2, 3 respeita a sequência; 1, 3, 4 tem uma lacuna; 1, 2, 2 repete um número; 2, 3, 4 não começa em 1. Cada valor isolado pode estar dentro da faixa, mas o conjunto ainda pode falhar na regra. Zero, negativo, decimal ou valor superior a 990 também não representam o atributo previsto. O padrão do atributo começa por algarismo de 1 a 9: 01 e 001 não substituem 1. Não preencha a posição com zeros à esquerda nem com espaços nas extremidades.

Exemplo de leitura do atributo

Fragmento sintético e parcial, com conteúdo de itens omitido. Não constitui uma NF-e válida nem pronta para transmissão.

<infNFe xmlns="http://www.portalfiscal.inf.br/nfe">
  <det nItem="1"><!-- primeiro item --></det>
  <det nItem="2"><!-- segundo item --></det>
  <det nItem="3"><!-- terceiro item --></det>
</infNFe>

Ao usar XPath com namespace, vincule um prefixo ao namespace da NF-e; a seleção de det/@nItem retorna os atributos dos itens selecionados. Não busque //nItem esperando encontrar esse atributo.

A linha 42 do pedido pode ser o item 1 da nota

prod/nItemPed informa a linha do pedido de compra, quando existente; prod/xPed identifica o pedido. Eles podem conservar o número 42 mesmo quando a nota contém somente aquele item e seu nItem é 1. cProd identifica o cadastro e também não precisa ser renumerado.

Exemplo comercial sintético: pedido PC-2026-015 possui uma linha 42 e uma linha 57. Uma entrega parcial dessas duas linhas pode gerar det/@nItem 1 e 2, mantendo nItemPed 42 e 57. Não use o número do pedido ou do SKU como posição fiscal.

Diagnóstico da rejeição 927

Leia o XML que originou a resposta e liste os atributos na ordem em que os grupos aparecem. A primeira divergência revela se o gerador iniciou incorretamente, pulou itens após uma exclusão, ordenou os produtos depois de numerá-los ou manteve números de uma lista anterior.

Se uma linha foi removida no rascunho, revise a numeração das linhas remanescentes e as associações do sistema que dependem delas. Uma referência a item de documento anterior tem outra identidade: não deve ser renumerada para coincidir com a nota nova. Guarde a relação entre identidade interna e posição fiscal para não deslocar impostos, lotes e referências.

A correção técnica ocorre no gerador do rascunho e deve ser conferida em um novo XML. Documento autorizado tem sua integridade e histórico próprios; não se renumera o XML assinado como reparo. A quantidade de itens e a divisão da operação precisam continuar fiéis aos documentos comerciais, sem usar a renumeração para alterar conteúdo fiscal.

Fontes oficiais

Leitura relacionada

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/@nItem
Namespace
Não informado
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
Obrigatório

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
[1-9]{1}[0-9]{0,1}|[1-8]{1}[0-9]{2}|[9]{1}[0-8]{1}[0-9]{1}|[9]{1}[9]{1}[0]{1}
whiteSpace
preserve