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

modBC no ICMS10: modalidade da base do ICMS próprio

<modBC>det › imposto › ICMS › ICMS10 › modBC

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

modBC, em /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS10/modBC, informa como foi determinada a base de cálculo do ICMS próprio. É um código de modalidade, não uma base em reais, alíquota ou percentual de margem. No grupo ICMS10, é obrigatório e aceita os códigos de 0 a 3.

Quais códigos pertencem a modBC

Código Modalidade documentada
0 Margem de valor agregado, em percentual
1 Pauta, em valor
2 Preço tabelado máximo, em valor
3 Valor da operação

A tabela está no MOC 7.0 p. 27 e nas enumerações do XSD. O código representa um método já definido para a operação; sua presença não comprova que esse método é fiscalmente aplicável ao produto. MOC, grupo N03.

Por que modBC e modBCST não podem compartilhar a mesma tabela

modBC pertence à tributação própria. modBCST pertence à substituição tributária. Um valor numérico idêntico pode ter significado diferente: modBC=3 indica valor da operação; modBCST=3 indica lista neutra. Valor da operação em ST é modBCST=6; margem de valor agregado em ST é modBCST=4, e não 0.

As regras N18-10/932 e N18-20/933 relacionam modBCST à presença de pMVAST. Não exigem pMVAST por causa de modBC=0: esse percentual é filho destinado à base de ST. Um integrador que reutiliza uma enumeração única para as duas modalidades pode gerar XML sintaticamente aceito com um significado incorreto. NT 2019.001 v1.70, pp. 7 e 25.

Como o código se relaciona com vBC e vICMS

A geração deve obter a modalidade da parametrização fiscal confirmada e formar vBC com os componentes documentados dessa operação. O campo modBC não carrega a memória de cálculo, uma tabela de pauta ou a quantidade usada para obter a base. Essa origem precisa ser conservada nos registros do emissor para conferência.

Exemplo sintético: assume-se modalidade valor da operação, base própria já apurada em R$ 1.000,00 e alíquota própria de 12%, sem incluir FCP. O cálculo é 1.000 × 12/100 = 120. A base de R$ 1.000,00 e a alíquota são premissas didáticas, não orientações para uma venda real.

Fragmento parcial interno de ICMS10; os demais campos, inclusive ST, estão omitidos. Não é NF-e pronta para transmissão:

<modBC>3</modBC>
<vBC>1000.00</vBC>
<pICMS>12.00</pICMS>
<vICMS>120.00</vICMS>

O código 3 não permite concluir que vBC será sempre igual a prod/vProd. Frete, seguro, descontos, despesas e tributos exigem verificar sua inclusão ou exclusão conforme a operação e a legislação aplicável. A base própria também não deve ser copiada automaticamente de vBCST ou vBCFCP. ICMS10 não possui campo pRedBC de redução própria; pRedBCST, quando presente, é redução da base de ST.

O que conferir em um erro

Primeiro, confirme o XPath: um código 4 ou 6 pode pertencer à tabela de ST, mas não a ICMS10/modBC. Depois, verifique se o valor está preenchido uma vez, na sequência após CST e antes de vBC. O PL 010f v1.04 define essa estrutura; compartilhar esquema com NFC-e não torna CST 10 permitido no modelo 65.

Se a modalidade e a base estão bem representadas, mas o imposto diverge, a N17-20/528 é a comparação de vICMS com vBC × pICMS/100, para CST 10 e finNFe=1, de aplicação facultativa. A nota (*4) exige arredondar a multiplicação a duas casas e admite R$ 0,01 para mais ou para menos na validação. A regra não confirma se a base foi formada com os componentes fiscais corretos. MOC pp. 111 e 140.

Para resolver uma divergência, compare modalidade configurada, memória da base, documento comercial e XML enviado do mesmo item. Corrija a origem comprovadamente errada e gere novamente. Confirmar qual modalidade cabe ao caso requer produto, operação, UFs, data e fundamento legal com o responsável contábil; não se escolhe o código apenas porque a conta fecha.

Grupo completo para conferir a sequência

O exemplo abaixo dá contexto estrutural aos campos estudados. É sintético e parcial em relação à NF-e; não é documento pronto para transmissão. Assume origem e parâmetros previamente definidos, base própria de R$ 1.000,00 a 12% e retenção por diferença na hipótese explicada: base de ST de R$ 1.400,00 a 18%, menos R$ 120,00 próprios, resulta em R$ 132,00. Os números são premissas de demonstração, não recomendações de tributação.

<ICMS10 xmlns="http://www.portalfiscal.inf.br/nfe">
  <orig>0</orig>
  <CST>10</CST>
  <modBC>3</modBC>
  <vBC>1000.00</vBC>
  <pICMS>12.00</pICMS>
  <vICMS>120.00</vICMS>
  <modBCST>4</modBCST>
  <pMVAST>40.00</pMVAST>
  <vBCST>1400.00</vBCST>
  <pICMSST>18.00</pICMSST>
  <vICMSST>132.00</vICMSST>
</ICMS10>

Aprofundamento no mesmo contexto

A página do grupo ICMS10 reúne os campos próprios, de ST, de FCP e de desoneração e suas dependências.

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS10/modBC
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:xs:string · 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.

enumeration
0
enumeration
1
enumeration
2
enumeration
3
whiteSpace
preserve