Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · ICMS

vBC no ICMS00: como conferir a base de cálculo do item

<vBC>det › imposto › ICMS › ICMS00 › vBC

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

ICMS00/vBC contém a base monetária sobre a qual se aplica a alíquota do ICMS próprio daquele item. Não é automaticamente o preço do produto nem o total da nota. Para conferir a base, reconstrua a memória de cálculo com a modalidade e os componentes fiscais já definidos para a operação. O campo N15 é obrigatório dentro de ICMS00, segundo o MOC 7.0, Anexo I, p. 26.

De onde deve vir a base

modBC identifica o método: margem de valor agregado, pauta, preço tabelado máximo ou valor da operação. vBC é seu resultado em reais. Uma regra de pauta, por exemplo, exige conferir a referência e a quantidade/unidade correspondente; não se comprova a base olhando apenas o preço de venda.

Na modalidade de valor da operação, a conferência começa nos valores do item e no critério confirmado de participação de descontos e acréscimos. Produtos, frete, seguro, outras despesas e eventual IPI precisam ser examinados conforme o contexto fiscal; o fato de uma parcela existir no XML não significa que sempre entre na base. O leiaute da NF-e não fornece uma fórmula universal de incidência para qualquer mercadoria.

Uma memória útil mostra: componente de origem, valor antes do rateio, parcela atribuída ao item, inclusão ou exclusão na base e fundamento do critério. Isso permite distinguir uma decisão fiscal de uma falha técnica no rateio. Se não estiver definido como tratar uma parcela, o dado faltante é o critério fiscal dessa parcela na operação; não o substitua por zero. A confirmação deve levar ao responsável contábil documentos, produto, regime, UF, operação e composição de valores.

Exemplo de reconstrução, com hipóteses explícitas

Suponha, apenas para demonstrar a conta, modalidade 3 já confirmada e uma base que inclui frete e outra despesa e deduz o desconto. No item sintético:

Parcela Valor Participação assumida
Mercadorias R$ 500,00 Soma
Desconto R$ 20,00 Subtrai
Frete rateado ao item R$ 15,00 Soma
Outra despesa rateada R$ 5,00 Soma
  1. Valor após desconto: 500,00 − 20,00 = 480,00.
  2. Acréscimos assumidos: 15,00 + 5,00 = 20,00.
  3. Base: 480,00 + 20,00 = 500,00.
  4. Com alíquota sintética de 18%, imposto: 500,00 × 18 / 100 = 90,00.

O resultado igual ao valor de mercadorias é uma coincidência dos números. Não demonstra que a base foi simplesmente copiada de vProd. Se o desconto fosse R$ 30,00, mantendo as demais hipóteses, a base seria R$ 490,00 e o imposto R$ 88,20.

Esse exemplo não determina se frete, despesas ou descontos de uma operação real integram a base. Demonstra como conferir a conta depois de confirmar os componentes.

Campo do item, total da base e base de FCP

Campo Contexto
det/imposto/ICMS/ICMS00/vBC Base do item em CST 00.
total/ICMSTot/vBC Consolidação das bases de ICMS da nota, sujeita à W03-10. Não se repete integralmente em cada item.
prod/vProd Valor de produtos do item. Pode diferir da base, conforme componentes e método.
ICMSTot/vNF Total da nota, com composição própria. Não é base de todos os itens.
vBCFCP de outros grupos Base de FCP expressa em contextos que possuem esse campo. ICMS00 não tem vBCFCP; sua verificação de FCP usa vBC.

Exemplo de totalização: item 1 com base sintética de R$ 500,00 e item 2 com base R$ 200,00 geram R$ 700,00 no total de bases, supondo somente esses itens e parcelas na consolidação. Não grave R$ 700,00 em ambos os itens. Confira a soma dos valores transmitidos; não conclua que todos têm a mesma alíquota.

XML e precisão

O XPath completo é nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS00/vBC. Sem o envelope processado, comece em NFe. Identifique o nItem antes de ler o campo.

O tipo TDec_1302 do pacote oficial de schemas aceita valor não negativo de até 13 dígitos inteiros; quando houver fração, há duas casas decimais. O valor zero é estruturalmente possível, mas essa aceitação não demonstra base fiscal zero para qualquer operação.

Fragmento parcial e sintético, com origem e enquadramento assumidos, destinado à leitura, sem aptidão para transmissão:

<ICMS00 xmlns="http://www.portalfiscal.inf.br/nfe">
  <orig>0</orig>
  <CST>00</CST>
  <modBC>3</modBC>
  <vBC>500.00</vBC> <!-- base reconstruída, não total da nota -->
  <pICMS>18.00</pICMS>
  <vICMS>90.00</vICMS>
</ICMS00>

500,00, R$ 500.00, valor negativo e fração com três casas não representam o formato desse tipo. Preserve a precisão dos dados intermediários conforme sua origem, mas confira a representação monetária final; não invente uma tolerância para a formação fiscal da base.

Onde procurar quando o valor não bate

  • Memória e XML divergem: verifique serialização, versão dos dados e eventual alteração manual no emissor. A origem do erro pode estar após o cálculo.
  • Frete ou desconto difere entre itens: compare o rateio e seu total com os dados de origem. Um valor correto na nota pode ter sido atribuído ao item errado.
  • ICMS não corresponde à base: refaça vBC × pICMS / 100. A N17-20, em finalidade normal e CST 00 entre os códigos abrangidos, relaciona divergência a 528; o produto é arredondado para duas casas, com tolerância de R$ 0,01 na validação.
  • Rejeição 531: a W03-10 compara ICMSTot/vBC com o somatório das bases dos itens. Confira todos os itens abrangidos antes de mexer no total. É uma regra facultativa; conta de item e consolidação são testes diferentes.

As regras e a nota de arredondamento estão no MOC, p. 111, 117 e 120. Corrija a origem comprovada no emissor e reconcilie base do item, imposto e total; editar apenas o total ou o XML assinado não resolve a causa.

modBC aprofunda o método de formação, e vICMS explica a conferência do imposto resultante.

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS00/vBC
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
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.

pattern
0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?
whiteSpace
preserve