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

cAgreg na NF-e: código de agregação e vínculo com o lote

<cAgreg>det › prod › rastro › cAgreg

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

cAgreg é o código de agregação do produto no grupo de rastreabilidade. Seu caminho é /nfeProc/NFe/infNFe/det/prod/rastro/cAgreg. É um identificador opcional de 1 a 20 caracteres, associado à ocorrência de rastro em que foi informado. Não representa quantidade, preço ou uma classificação fiscal.

O código acompanha a ocorrência de rastreabilidade

Uma agregação pode vincular unidades a uma embalagem ou agrupamento nos controles da cadeia. O XML oferece o campo para registrar esse identificador; não especifica aqui um sistema universal de geração, um dígito verificador ou uma consulta pública para autenticar qualquer código. Use a identificação existente na documentação e no sistema de rastreabilidade do produto, preservando a relação comprovada.

nLote identifica o lote; qLote informa sua quantidade; dFab e dVal trazem as datas. cAgreg vem depois desses quatro campos. Informá-lo não dispensa nenhum deles quando rastro existe. A quantidade também não pode ser deduzida do comprimento do código de agregação ou do número de caracteres de um identificador impresso.

Se o produto traz GTIN, serial e lote num mesmo símbolo físico, a leitura precisa separar as informações antes de mapeá-las. O conteúdo completo do símbolo não cabe automaticamente em cAgreg e o GTIN pertence a cEAN/cEANTrib conforme a apresentação. Não corte o conteúdo até obter vinte caracteres sem verificar o que cada parcela significa.

O campo passou de numérico para alfanumérico

A tabela original do MOC 7.0 apresenta o tipo numérico. A NT 2020.005 v1.21, seção 2.1.3 e tabela I85, documenta expressamente a mudança para alfanumérico. O schema consultado implementa texto com mínimo de 1 e máximo de 20 caracteres. Assim, a descrição antiga de campo numérico não justifica rejeitar letras num identificador real. NT 2020.005.

Essa mudança não autoriza conteúdo arbitrário: continuam aplicáveis as restrições de texto e tamanho do schema efetivo. Uma ocorrência vazia não é uma forma de representar ausência; quando não existe agregação documentada a informar, a opcionalidade permite omitir a tag, preservando os demais dados reais do lote.

Caracteres, espaços e código preservado

O tipo TString do pacote lido preserva o conteúdo e restringe seus caracteres. Seu padrão não admite espaço no início ou no fim nem um valor formado apenas por espaços; letras, algarismos e separadores compatíveis com o tipo podem fazer parte do código. O limite de vinte é do valor textual de uma ocorrência, não da quantidade agregada. A regra não impõe um código de vinte posições nem exige completar um identificador mais curto com zeros.

Se o código confirmado contiver um caractere reservado de XML, o serializador deve escapá-lo. Um identificador fictício AG&0001 seria representado como AG&amp;0001, mas o texto interpretado continua AG&0001. Isso não transforma a sequência de escape em parte do código original. Confira o conteúdo interpretado, a grafia e os zeros com a origem; aceitar o texto no XSD não autentica a agregação física.

Exemplo de vínculo entre lote e agregação

Fragmento sintético e parcial, com identificadores fictícios e quantidade ilustrativa. Não identifica uma embalagem real nem está pronto para transmissão.

<rastro xmlns="http://www.portalfiscal.inf.br/nfe">
  <nLote>LOTE-A2026</nLote>
  <qLote>12.000</qLote>
  <dFab>2026-08-01</dFab>
  <dVal>2027-08-31</dVal>
  <cAgreg>AG-A2026-01</cAgreg>
</rastro>

A sequência mantém o código no mesmo bloco das datas e quantidade. Se o item tem vários lotes, confira em qual ocorrência o identificador deve aparecer. Copiar um único código para todos os blocos exige correspondência documental, não uma conveniência do gerador.

Diagnóstico de perda ou rejeição do identificador

Compare o código na fonte, no cadastro, na preparação do lote e no XML. Uma coluna numérica pode apagar letras ou zeros iniciais; um leitor de código de barras pode transferir caracteres de controle ou toda a sequência codificada. Confira a extração, a posição após dVal e o limite de vinte caracteres.

Se há erro estrutural, valide a versão do schema e a transferência integral. Se falta comprovação do vínculo, obtenha a documentação da agregação e do lote. Não gere um identificador aleatório para satisfazer um campo opcional, nem o substitua por registro ANVISA ou CNPJ. Corrija apenas a transferência demonstravelmente incorreta e confira o XML gerado novamente, sem editar arquivo assinado.

Fontes oficiais

Leitura relacionada

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/prod/rastro/cAgreg
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
Opcional

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
20
minLength
1
pattern
[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}
whiteSpace
preserve