vProd no item da NF-e: bruto e rejeições 629, 630 e 564
<vProd>det › prod › vProdRevisão editorial em 26 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
vProd em /nfeProc/NFe/infNFe/det/prod/vProd representa o valor bruto do produto ou serviço daquele item. É obrigatório e monetário. O desconto, frete, seguro e outras despesas destacados possuem campos próprios; o valor do item não é automaticamente o líquido do pedido nem o total final da nota.
Duas multiplicações devem representar o mesmo bruto
O conjunto comercial usa qCom e vUnCom. O conjunto tributável usa qTrib e vUnTrib. As unidades podem diferir, mas seus valores devem representar o mesmo bruto quando a conversão documental correspondente se aplica. Num exercício de duas caixas de doze unidades a R$ 120,00 por caixa, o bruto comercial é R$ 240,00. Com quantidade tributável 24 e preço tributável R$ 10,00, o outro produto também é R$ 240,00.
Usar 24 unidades com o preço de R$ 120,00 da caixa produziria R$ 2.880,00. Essa diferença sugere unidade/preço misturados; não se resolve elevando vProd para o número maior sem examinar a documentação. NCM ou GTIN não fornecem automaticamente o fator de conversão do produto.
Rejeições 629 e 630: escopo e arredondamento
I11-10/629 compara vProd a qCom×vUnCom; I11-20/630 compara vProd a qTrib×vUnTrib. O MOC as descreve como facultativas, modelos 55/65, para NF-e normal (finNFe=1). A nota(*4) orienta arredondar o produto da multiplicação para duas casas e considerar a tolerância de R$ 0,01 para mais ou menos nessa comparação. A condição não é uma autorização para mudar preços ou uma tolerância universal de todos os totais. MOC, I11 e nota(*4).
Preço unitário admite precisão maior que vProd. Por exemplo, 3×0.3333333333 resulta 0.9999999999 e arredonda para 1.00 no exercício monetário. Não arredonde o preço antes da multiplicação sem verificar a consequência: o diagnóstico deve usar os valores realmente serializados no XML.
Desconto separado e total de produtos
Com vProd 240.00 e desconto documentado 24.00, o líquido comercial simples é 216.00; o bruto continua 240.00. Colocar 216.00 em vProd e ainda 24.00 em vDesc duplica a redução nessa representação. I17-10/483 impede desconto maior que o bruto do mesmo item.
total/ICMSTot/vProd é outra ocorrência. O MOC base descrevia W07-10/564 para itens sujeitos ao ICMS com indTot=1. Na NT 2025.002 v1.51, W07-10 inclui itens sujeitos ao ICMS ou IBS/CBS/IS, mantém indTot=1 e marca a validação obrigatória. A alteração W07 está na linha 1.40 com homologação até 01/07/2026 e produção 03/08/2026, sem o adiamento de outras regras. As ressalvas do cronograma para validações específicas dos novos tributos dependem da presença dos respectivos campos no documento. NT RTC, pp.5–6 e 72.
Itens de ISSQN possuem contexto próprio de totalização, mas isso não permite excluir um item abrangido pelo conjunto atual de W07. Não some toda tag chamada vProd de qualquer contexto; identifique grupos tributários efetivos e indTot antes de comparar. A ampliação do conjunto não define a incidência de um item concreto. O indicador indTot possui restrições próprias, incluindo a regra 774 nas condições documentadas.
Num exercício apenas de seleção do somatório, numa NF-e modelo 55, suponha três linhas documentalmente confirmadas: R$ 100,00 de uma linha sujeita ao ICMS com indTot=1, R$ 20,00 de uma linha sujeita a IBS/CBS com indTot=1 e R$ 50,00 de uma linha com indTot=0. O conjunto de W07 contém 100+20=120, sem os 50 da terceira linha. Esse exercício ilustra o conjunto depois de conhecidos os grupos e o indicador; não decide quais grupos ou indicador devem ser preenchidos pelo leitor. Na NFC-e, indTot=0 tem a restrição própria de I17b-10/774 e não deve ser adotado a partir desse exercício de modelo 55.
Representação no XML
O tipo TDec_1302 admite zero ou valor positivo, até treze dígitos inteiros e duas casas quando decimal. Não aceita número negativo, símbolo monetário ou vírgula decimal. A aceitação lexical de zero não substitui um preço ou quantidade desconhecidos.
Fragmento sintético e parcial do exercício de conversão, com identificação e classificação omitidas. Não está pronto para transmissão.
<prod xmlns="http://www.portalfiscal.inf.br/nfe">
<!-- Campos anteriores omitidos -->
<uCom>CX</uCom><qCom>2.0000</qCom><vUnCom>120.00</vUnCom>
<vProd>240.00</vProd><cEANTrib>SEM GTIN</cEANTrib>
<uTrib>UN</uTrib><qTrib>24.0000</qTrib><vUnTrib>10.00</vUnTrib>
<vDesc>24.00</vDesc><indTot>1</indTot>
</prod>
Conferência orientada pelo retorno
Para 629 ou 630, identifique o item e calcule a multiplicação indicada com os números efetivos, preservando precisão e unidades. Confira fator da embalagem, líquido copiado como bruto e desconto em duplicidade. Para 564, confira o conjunto de itens e indTot antes do somatório.
Se a causa é cálculo ou transferência comprovadamente incorretos, corrija a origem e confira o novo XML. Se falta apresentação, preço ou parâmetro fiscal, obtenha esse dado específico. Não altere uma quantidade verdadeira ou o bruto para forçar fechamento e não edite documento assinado.
Fontes oficiais
- MOC 7.0 — Anexo I — 7.00; p.18 I11; pp.93–94 I11-10/20 e I17-10; p.121 W07-10; p.140(*4).
- Schemas NF-e/NFC-e — PL_010c_NT2022_002v1.30; prod/vProd TDec_1302.
- NT 2025.002 — Reforma Tributária do Consumo — 1.51; pp.5–6 cronograma 1.40 W07; p.72 W07-10.
Leitura relacionada
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/prod/vProd- 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
- TDec_1302 · string
- 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.
- pattern
0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?- whiteSpace
preserve