xCampo de obsCont no item: atributo de identificação
@xCampodet › obsItem › obsCont › @xCampoRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
xCampo em obsItem/obsCont é o atributo que identifica a observação de uso livre do contribuinte de um item. O nome da informação fica nesse atributo; seu conteúdo fica em xTexto, dentro do mesmo obsCont.
A estrutura descrita usa o pacote oficial PL_010f_v1.04, publicado em 31/08/2026. Esse pacote não altera a versão selecionada de um XML histórico na consulta; para arquivos de outra versão, confira a declaração correspondente e as regras vigentes na data e no ambiente do documento.
Neste artigo:
- Por que o XPath termina com @xCampo
- Limite e obrigatoriedade do identificador
- O atributo identifica e xTexto informa o valor
- Exemplo correto no contexto do contribuinte
- Conferência de erro e de significado
Por que o XPath termina com @xCampo
O caminho é /nfeProc/NFe/infNFe/det/obsItem/obsCont/@xCampo, VA03. O símbolo @ indica um atributo. Na escrita XML, ele aparece na abertura de obsCont, como xCampo="REF_INTERNA". Gerar um elemento filho chamado xCampo dentro de obsCont não equivale a preencher esse atributo.
Há xCampo em obsFisco e nos grupos de observações da nota inteira. Para selecionar o correto, mantenha obsItem/obsCont no caminho e o det correspondente ao nItem. Um extrator que procura qualquer atributo xCampo pode devolver uma observação de outro titular, outra posição ou outro item.
Schemas NF-e/NFC-e PL_010f_v1.04 NT 2021.004 — Regras de Validação e Novos Campos
Limite e obrigatoriedade do identificador
xCampo é obrigatório quando obsCont do item está informado. Sua restrição baseada em TString admite uma a 20 posições. obsCont pode ser omitido quando não há observação, mas um obsCont presente sem xCampo ou com o atributo vazio não satisfaz a declaração.
O tipo preserva espaços e restringe a faixa de caracteres, sem espaço no início ou no fim. Um identificador de 20 caracteres ocupa o limite; um de 21 ultrapassa a restrição. Conte caracteres interpretados, não bytes UTF-8. Não remova acentos ou corte o nome automaticamente: isso pode mudar a identificação acordada com quem consome o XML.
Schemas NF-e/NFC-e PL_010f_v1.04 Tipos básicos do leiaute NF-e NT 2021.004 — Regras de Validação e Novos Campos
O atributo identifica e xTexto informa o valor
O par funciona como nome e conteúdo: REF_INTERNA pode identificar a informação, e Controle demonstrativo do item 1 pode ser seu conteúdo em xTexto. Esses nomes são sintéticos. O leiaute geral define a estrutura, sem declarar que todo identificador escolhido pelo emitente tenha reconhecimento fiscal.
xTexto tem limite separado de 60 posições. Preencher apenas xCampo não completa obsCont: o elemento xTexto também é obrigatório. Não transporte o valor da observação para o atributo para contornar o limite do filho. Um código tributário obrigatório em tag própria não é substituído pela criação de um rótulo homônimo aqui.
Schemas NF-e/NFC-e PL_010f_v1.04 NT 2021.004 — Regras de Validação e Novos Campos
Exemplo correto no contexto do contribuinte
Fragmento sintético do grupo obsCont, parcial em relação à nota inteira. O identificador ilustra a estrutura e não é código oficial nem recomendação de preenchimento fiscal.
<obsCont xmlns="http://www.portalfiscal.inf.br/nfe" xCampo="REF_INTERNA">
<xTexto>Controle demonstrativo do item 1</xTexto>
</obsCont>
Na NF-e, esse grupo fica em det/obsItem. O atributo xCampo não recebe prefixo de namespace próprio; pertence ao elemento obsCont cuja declaração está no namespace da NF-e. Use um serializador para criar o atributo e escapar aspas ou & que integrem o valor, sem inserir markup manualmente.
Schemas NF-e/NFC-e PL_010f_v1.04 Tipos básicos do leiaute NF-e
Conferência de erro e de significado
Em erro de schema, confira primeiro se xCampo é atributo, está em obsCont do item, está preenchido e respeita o limite. Depois confira xTexto e a ocorrência única de obsCont em obsItem. Se uma integração lê o nome, compare o valor interpretado pelo parser com o valor de origem; escapes XML não fazem parte do nome.
Se a dúvida é qual identificador usar para uma exigência fiscal, o schema geral não resolve essa escolha. Reúna orientação ou ato oficial, UF, data, operação e item; confirme o nome e o alcance com o responsável contábil. Só depois confira sua representação exata, sem abreviar um identificador exigido ou atribuir efeito tributário a um nome inventado.
Schemas NF-e/NFC-e PL_010f_v1.04 Tipos básicos do leiaute NF-e NT 2021.004 — Regras de Validação e Novos Campos
Leitura relacionada
- obsCont — det/obsItem/obsCont
- xTexto — det/obsItem/obsCont/xTexto
- xCampo — det/obsItem/obsFisco/@xCampo
- obsItem — det/obsItem
Fontes oficiais
- Schemas NF-e/NFC-e PL_010f_v1.04, 010f v1.04, publicado em 31/08/2026 — /infNFe/det/obsItem/obsCont/@xCampo; sequência e cardinalidade dos ancestrais.
- NT 2021.004 — Regras de Validação e Novos Campos, 1.30, maio/2022; histórico do grupo VA, não última edição nacional — NT 2021.004 v1.30, seção 3.4, p.13 VA01–VA07; edição histórica confrontada com XSD atual, sem inferência de cronograma vigente.
- Tipos básicos do leiaute NF-e, PL_010f_v1.04 — TString; TDec_1302; TDec_0302Max100 conforme o campo.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/obsItem/obsCont/@xCampo- Namespace
Não informado- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 1–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
20- minLength
1- pattern
[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}- whiteSpace
preserve