Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · Transporte

Numeração dos volumes na NF-e: nVol é identificação, não quantidade

<nVol>transp › vol › nVol

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

nVol registra a numeração dos volumes transportados descritos em um grupo vol. O caminho é /nfeProc/NFe/infNFe/transp/vol/nVol. Sua função é identificar os volumes, enquanto qVol informa quantos volumes existem naquele conjunto. Apesar do nome, nVol é um campo textual: um código como CX0007 não deve ser convertido para o número inteiro 7.

O MOC 7.0, X30 documenta ocorrência de zero a um e comprimento de 1 a 60 caracteres. O schema PL_010c realmente consultado restringe TString, sem uma máscara exclusivamente numérica nem uma regra de numeração sequencial universal. Os exemplos de faixas nesta página são formas ilustrativas de preservar uma identificação documentada; não criam uma sintaxe oficial obrigatória.

Por que nVol e qVol não são intercambiáveis

Um conjunto de cinco caixas pode ter identificações de CX001 a CX005. Sua quantidade é cinco, mas sua numeração é a identificação dessas caixas. Se a numeração for CX010 a CX014, a quantidade continua cinco; o último número da faixa não se torna a quantidade. A relação de expedição é que confirma os volumes, e não a interpretação automática do maior algarismo encontrado no texto.

qVol usa somente de 1 a 15 algarismos no XSD, sem fração. nVol usa texto de 1 a 60 caracteres. Enviar CX001 A CX005 para qVol provoca incompatibilidade de formato; enviar apenas 5 em nVol pode até caber como texto, mas não informa necessariamente a identificação real do conjunto. Consulte quantidade de volumes para o tratamento da contagem.

Também distinga nLacre, que identifica o lacre, de nVol, que identifica os volumes. Um número de série de mercadoria ou um lote de produto não se torna numeração de embalagem por conveniência da integração.

Onde conferir a numeração

Use as identificações atribuídas aos volumes e a relação de expedição que permite localizá-los. Etiquetas e registros precisam apontar para os mesmos objetos. Quando a interface recebe o valor como número, confira se ela perdeu zeros, prefixos ou separadores antes de chegar ao XML; a correção pertence ao dado e ao seu mapeamento.

Não gere 1, 2, 3 com base no número de linhas da NF-e sem uma numeração real correspondente. Uma nota com três itens pode conter uma caixa ou dezenas de caixas. A regra estrutural não atribui números às embalagens nem exige que a sequência comece em um.

Se não existir numeração aplicável conhecida, não crie uma faixa fictícia. O campo é opcional no leiaute lido, mas a necessidade de identificação na operação concreta deve ser conferida. O XML não resolve dúvidas sobre quais volumes precisam ser individualizados no controle físico.

Exemplo de um conjunto numerado

Nesta hipótese sintética, quatro caixas estão identificadas de CX0007 a CX0010, sem lacunas no registro de expedição:

<vol xmlns="http://www.portalfiscal.inf.br/nfe">
  <qVol>4</qVol>
  <esp>CAIXAS</esp>
  <nVol>CX0007 A CX0010</nVol>
</vol>

São quatro volumes nesta hipótese, e não dez. O texto da faixa conserva o prefixo e os zeros, mas o schema não calcula a quantidade a partir dele. O fragmento é parcial, omite o restante da nota e não está pronto para transmissão.

A faixa também não serve para esconder uma lacuna. Se o registro real mostrar CX0007, CX0008 e CX0010, não descreva sem esclarecimento quatro caixas contínuas de CX0007 a CX0010. A quantidade e a identificação precisam corresponder à expedição confirmada. A aceitação textual pelo XSD não compara esses códigos com as etiquetas.

E se cada conjunto tiver uma identificação diferente?

O leiaute permite repetir vol até 5.000 vezes. Cada ocorrência tem no máximo um nVol. Quando os registros representam conjuntos distintos, pode-se conservar sua numeração separadamente, junto com quantidade, espécie e pesos próprios:

<vol xmlns="http://www.portalfiscal.inf.br/nfe">
  <qVol>2</qVol>
  <esp>CAIXAS</esp>
  <nVol>CX001 A CX002</nVol>
</vol>
<vol xmlns="http://www.portalfiscal.inf.br/nfe">
  <qVol>1</qVol>
  <esp>TAMBOR</esp>
  <nVol>TB009</nVol>
</vol>

Os fragmentos irmãos representam três volumes diferentes nesta hipótese. Não repita o total três em cada qVol, nem copie o peso total da carga para cada conjunto. A escolha de organização deve preservar a documentação real; não se estabelece aqui uma obrigação universal de uma linha XML por embalagem. Veja a organização completa de vol.

Formato e erros de geração

nVol presente precisa conter de 1 a 60 caracteres. O tipo TString preserva espaços e não aceita espaço inicial ou final; espaços internos podem fazer parte do texto. Não há obrigação de maiúsculas nem proibição geral de letras. O serializador deve escapar os caracteres reservados do XML e conservar o valor textual confirmado.

Uma tag vazia não equivale a omitir o campo. Não use um zero automático para representar dado desconhecido e não trunque a identificação ao atingir 60 caracteres. Se a relação for longa, esclareça como os conjuntos documentados serão representados sem perder associação; concatenar toda a lista e cortar o final pode deixar volumes sem identificação correta.

Na sequência de vol, nVol vem após marca, quando presente, e antes de pesoL e pesoB. Um erro de ordem difere de um erro de numeração. Para diagnosticar, compare origem e XML gerado, confirme o grupo pai, o tipo textual, o comprimento e os espaços; examine o retorno real antes de atribuir uma rejeição específica.

O MOC e o PL_010c citados foram confrontados com documentos posteriores consultados até 26/09/2026. Essa referência documenta o campo e não comprova presença física dos volumes, ausência de duplicação, implantação na UF ou autorização do documento completo.

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/transp/vol/nVol
Namespace
http://www.portalfiscal.inf.br/nfe
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
0–1 no contexto do elemento pai
Tipo
inline:TString · TString
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.

maxLength
60
minLength
1
pattern
[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}
whiteSpace
preserve