modBC no ICMS10: modalidade da base do ICMS próprio
<modBC>det › imposto › ICMS › ICMS10 › modBCRevisã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