obsCont na NF-e: observação do contribuinte em nome e conteúdo
<obsCont>infAdic › obsContRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
obsCont é o grupo de uso livre do contribuinte nas informações adicionais da NF-e/NFC-e. Está em /nfeProc/NFe/infNFe/infAdic/obsCont, item Z04 do MOC. Cada ocorrência reúne o nome de um campo e seu conteúdo, de modo que ambos possam ser lidos como uma observação identificada.
Como funciona o par xCampo e xTexto?
xCampo é um atributo obrigatório de obsCont, com 1 a 20 caracteres. Identifica o campo. xTexto é um elemento filho obrigatório, com 1 a 60 caracteres, que contém o valor. O nome não é uma tag filha e o conteúdo não deve ficar solto no grupo.
Exemplo conceitual: nome SETOR_RECEBIMENTO e conteúdo ALMOXARIFADO CENTRAL. O primeiro diz como interpretar o segundo. Se uma integração preservar apenas o valor, pode perder a distinção entre setor de entrega, referência interna ou outra observação. Esses rótulos do exemplo são escolhas sintéticas, não códigos fiscais oficiais.
Quantas observações cabem e quando usar texto corrido?
O grupo ocorre de zero a dez vezes em infAdic. Cada ocorrência comporta seu próprio par. Dez observações não significam um texto de 600 caracteres que possa ser partido sem critério: a associação nome/conteúdo precisa continuar inteligível.
infCpl é o texto complementar geral de interesse do contribuinte, com limite próprio de 5.000 caracteres. det/infAdProd pertence a um item. obsCont é uma observação identificada no nível da nota. Nenhuma delas substitui campos de compra, exportação, tributação ou receita agrícola que tenham função estruturada e condições específicas.
Como reconhecer um exemplo válido do grupo?
Fragmento sintético, parcial em relação à NF-e/NFC-e, sem referência a uma operação real:
<obsCont xmlns="http://www.portalfiscal.inf.br/nfe" xCampo="SETOR_RECEBIMENTO">
<xTexto>ALMOXARIFADO CENTRAL</xTexto>
</obsCont>
Há uma observação, um atributo e um filho. Se houver outras observações do contribuinte, elas serão irmãs desta dentro de infAdic, antes dos grupos obsFisco e procRef. O namespace aplica-se ao elemento; o atributo xCampo é sem prefixo de namespace nesse leiaute.
O que comparar quando a observação some ou troca de significado?
Examine o XML gerado, a quantidade de ocorrências e os pares completos. Um objeto de programação indexado apenas pelo nome pode sobrescrever registros ao repetir uma chave; isso é um risco de mapeamento, não uma regra fiscal que permita excluir observações. Confira o contrato de integração e a representação efetiva antes de decidir como guardar os pares.
Para erro de schema, procure atributo ausente, filho vazio, limite excedido ou ordem inadequada no pai. Para divergência de significado, compare nome e conteúdo com o documento de origem. Não resolva falta de uma informação fiscal escrevendo-a em obsCont: o uso livre não concede enquadramento nem preenche outra tag. A conferência termina quando o par certo permanece íntegro no XML; sua impressão ou consumo precisa ser conferido na aplicação que o utiliza.
Fontes técnicas
MOC 7.0 — Anexo I — 7.0: p. 64, Z04–Z09.
XSD NF-e/NFC-e — PL_010f_v1.04: linhas 6163–6189, infAdic/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/obsCont- Namespace
http://www.portalfiscal.inf.br/nfe- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 0–10 no contexto do elemento pai
- Tipo
- inline:complexType
- 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.