infCpl na NF-e: complemento do contribuinte, tamanho e conferência
<infCpl>infAdic › infCplRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
infCpl contém informações complementares de interesse do contribuinte no nível da NF-e/NFC-e. Fica em /nfeProc/NFe/infNFe/infAdic/infCpl, item Z03 do MOC. É um texto geral da nota, diferente das informações adicionais do produto em det/infAdProd e das estruturas com funções específicas.
Que informação cabe no complemento geral?
O campo pode representar um complemento documentado de interesse do contribuinte, como uma orientação comercial de recebimento. O critério técnico é preservar o conteúdo pertinente àquela nota e sua origem. Não acrescente mensagens de outra empresa ou venda, nem use uma frase para substituir dados que tenham tags próprias.
Uma referência comercial ao contrato pode ser complementar; não substitui compra/xCont quando o processo exige a estrutura. O mesmo vale para pedidos, exportação, receituários e referências processuais. Já textos sobre incidência, benefício ou fundamento legal exigem definição e revisão do responsável fiscal: a existência de um campo livre não torna correto um texto copiado de outra nota.
Como distinguir os campos próximos?
infAdFisco reúne informação de interesse do Fisco e aceita até 2.000 caracteres; infCpl reúne complemento do contribuinte e aceita até 5.000. obsCont oferece até dez pares curtos, com atributo de nome e conteúdo de até 60 caracteres. Nenhum deles funciona como continuação ilimitada de outro por simples divisão arbitrária.
det/infAdProd pertence a um produto. Quando a informação só explica um item, colocá-la no texto geral pode perder o vínculo para integrações ou leitura. Confirme o contexto real e o contrato de consumo do XML; não mova dados existentes sem preservar sua associação.
Como gerar um exemplo sem perder caracteres?
infCpl ocorre 0..1 e exige 1 a 5.000 caracteres quando presente. Usa TString: texto vazio, espaços nas extremidades e caracteres fora do padrão precisam ser tratados na origem/serialização. O elemento vem depois de infAdFisco, se houver, e antes das observações em pares e processos.
Fragmento sintético parcial em relação à nota, com condição comercial fictícia:
<infCpl xmlns="http://www.portalfiscal.inf.br/nfe">Recebimento: setores A & B, conforme agendamento.</infCpl>
O conteúdo interpretado é “A & B”, com os espaços mostrados; & é a representação XML do caractere &. A entidade não acrescenta cinco caracteres ao texto interpretado. Contagem de bytes de UTF-8, tamanho da marcação e comprimento do conteúdo são medidas diferentes. Um serializador correto evita XML malformado e dupla codificação.
Por que o complemento está no XML e não aparece como esperado?
Compare o XML efetivo com o texto de origem antes de investigar a impressão. A renderização do documento auxiliar e o modo como um destinatário lê o campo são etapas distintas; presença no XML não garante uma apresentação visual específica em todos os emissores. Confira qual campo o renderizador utiliza e se o conteúdo integral está disponível na visualização ou no arquivo correspondente.
Se o texto estiver truncado no próprio XML, verifique concatenação, limites e duplicações. Preserve os complementos existentes e revise a redação quando o tamanho for excedido, sem eliminar condição legal ou referência necessária. Se o XML estiver íntegro, examine o renderizador/consumidor e o campo que ele lê. Aprovação do schema não valida o conteúdo jurídico ou a tributação narrada, e uma nota autorizada não deve ter seu XML editado para alterar uma frase.
Fontes técnicas
MOC 7.0 — Anexo I — 7.0: p. 63–64, Z02–Z06.
XSD NF-e/NFC-e — PL_010f_v1.04: linhas 6135–6203, infAdic/infCpl e obsCont.
Tipos básicos NF-e/NFC-e — PL_010f_v1.04: linhas 519–527, TString.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/infAdic/infCpl- 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
5000- minLength
1- pattern
[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}- whiteSpace
preserve