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

xProd: descrição do produto ou serviço na NF-e e NFC-e

<xProd>det › prod › xProd

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

xProd é o texto que identifica o produto ou serviço de cada item da NF-e ou NFC-e. A descrição deve corresponder ao que foi efetivamente faturado. O campo é obrigatório, fica em det/prod e admite de 1 a 120 caracteres, conforme o MOC 7.0, Anexo I, campo I04, página 17.

Nesta página: origem, homologação, campos distintos, formato, diagnóstico.

De onde vem a descrição

Confira a descrição selecionada no cadastro ou informada na emissão com o pedido e o item vendido. Quando houver características que distinguem a mercadoria, como tamanho ou embalagem, inclua-as de forma clara. Por exemplo: “Camiseta de algodão, tamanho M, azul”. A descrição ajuda a reconhecer o item, mas não define sua classificação nem substitui os campos de código do produto, NCM ou CFOP.

Este fragmento sintético é bem formado e mostra apenas o campo; não constitui uma nota pronta para transmissão:

<xProd xmlns="http://www.portalfiscal.inf.br/nfe">Camiseta de algodão, tamanho M, azul</xProd>

Abra o XML em um editor de texto e pesquise <xProd>; confira o item det correspondente. Em uma nota processada, o caminho é nfeProc/NFe/infNFe/det/prod/xProd. Há uma descrição por item; confira todas as ocorrências, e não somente a primeira.

A exceção nos testes de homologação

Em homologação (tpAmb=2), a regra I04-10 exige uma descrição padronizada no primeiro item quando o documento é NFC-e, modelo 65, ou NF-e, modelo 55, com DANFE Simplificado Tipo 2 (tpImp=6):

NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL

Copie a frase exatamente, inclusive “HOMOLOGACAO” sem acento. Essa condição está na NT 2026.002 v1.10a, páginas 11–12, regra I04-10. O cronograma da página 3 estabelece 03/08/2026 para a ampliação ao DANFE Simplificado Tipo 2. A regra não manda substituir a descrição real dos itens em produção nem padronizar todos os itens de uma nota de teste.

Se houver rejeição 373, compare o ambiente, o modelo, o tipo de impressão e o xProd do primeiro item no XML efetivamente enviado. Ajuste a geração do documento de teste quando essa condição estiver comprovada; a descrição do cadastro comercial não precisa ser substituída pela frase de homologação.

Código, descrição e classificação respondem a perguntas diferentes

O código cProd identifica o item segundo a codificação do emitente; xProd permite a uma pessoa reconhecer o que está sendo faturado. Dois fornecedores podem usar códigos diferentes para a mesma mercadoria. Por isso, uma integração não deve tratar a descrição como identificador único: compare emitente, código, características e unidade. NCM classifica a mercadoria e CFOP identifica a operação; nenhum desses campos substitui o nome legível do item.

Uma descrição como “Camiseta” pode não permitir distinguir tamanho e cor em uma conferência. “Camiseta de algodão, tamanho M, azul” explicita essas diferenças sem tentar decidir NCM ou tributação. Se o pedido contém duas variantes e o XML repete a descrição de uma delas, confira o vínculo do item ao cadastro, em vez de trocar a descrição de toda a nota. O mesmo produto pode aparecer em vários det; o atributo nItem identifica a ocorrência, não a identidade comercial da mercadoria.

Formato, acentos e caracteres especiais

O tamanho de 1 a 120 refere-se ao texto do campo. No tipo TString usado no schema, há restrição de caracteres e não são aceitos espaços no início ou no fim. Acentos como os de “algodão” podem ser preservados: não é necessário transformar todas as descrições em texto sem acento. Já o literal de homologação é uma comparação exata e permanece sem acento por ser esse o texto oficial.

Ao gerar XML, caracteres reservados precisam ser escapados. Um nome comercial que contém & pode ser representado assim:

<xProd xmlns="http://www.portalfiscal.inf.br/nfe">Conjunto de porca &amp; parafuso</xProd>

O conteúdo lido pelo processador XML será “Conjunto de porca & parafuso”. &amp; é a representação XML do caractere, não uma alteração do nome. Use um gerador XML que faça esse escape; um & solto pode tornar o documento malformado antes da validação fiscal. Essas restrições constam em prod/xProd e TString do pacote oficial de schemas PL_010c.

Como conferir uma descrição incorreta ou um erro de geração

  1. Localize o det apontado pelo problema e confirme nItem, cProd, xProd, unidade e quantidade. Procurar só a primeira tag pode levar à análise de outro item.
  2. Compare com o pedido e o cadastro usados no momento da geração. Se o cadastro foi alterado depois, essa alteração não prova que o XML anterior foi gerado com o novo valor.
  3. Para erro estrutural, confira tag ausente, texto vazio, tamanho, espaços nas pontas e caracteres XML reservados. Valide contra o pacote de schemas usado pela integração.
  4. Para rejeição 373, use a conferência específica de ambiente, modelo e tpImp descrita acima; não deduza essa rejeição de qualquer texto incorreto em produção.
  5. Corrija a origem comprovada e confira o novo documento gerado antes da transmissão. Uma nota autorizada não deve ser corrigida por edição direta do XML assinado: essa edição não modifica o documento autorizado e compromete sua integridade.

Uma descrição bem formada não prova que a classificação fiscal esteja correta nem que a nota esteja autorizada. Para conferir o estado do documento, examine o retorno de autorização e o protocolo correspondente; xProd não é um campo de status.

Consultas que ajudam na conferência

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/prod/xProd
Namespace
http://www.portalfiscal.inf.br/nfe
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
Obrigatório

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