modBC no ICMS70: modalidade da base própria e redução
<modBC>det › imposto › ICMS › ICMS70 › 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 informa a modalidade de determinação da base de cálculo do ICMS próprio. Dentro de ICMS70, é um campo obrigatório, de um dígito, localizado antes de pRedBC e vBC. Ele descreve como a base foi obtida; não contém o valor em reais, o percentual de redução ou a alíquota.
O caminho completo é /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS70/modBC. Sua ocorrência em outro grupo de ICMS tem contexto próprio; esta página trata da operação própria com CST 70.
Códigos aceitos e informação que cada um representa
| Código | Modalidade no MOC |
|---|---|
| 0 | Margem de Valor Agregado, em percentual |
| 1 | Pauta, em valor |
| 2 | Preço tabelado máximo, em valor |
| 3 | Valor da operação |
O XSD restringe modBC aos códigos 0,1,2 e 3. Não aceita o código 4 que identifica MVA no campo modBCST, nem o código 6 introduzido para valor da operação na modalidade de ST. As duas enumerações são diferentes: copiar o mesmo número entre elas pode mudar o significado ou tornar o XML inválido.
Uma pauta ou um preço tabelado pressupõe a referência aplicável ao produto, unidade e período; informar o código não fornece esses valores. A modalidade por operação pressupõe a composição real da operação. A origem do dado é a regra fiscal validada e sua memória, não o código que produza o imposto desejado.
Como a modalidade se relaciona com a redução
O encadeamento é: determinar a base anterior à redução segundo a modalidade, aplicar a redução documentada, informar o resultado em vBC e calcular o ICMS próprio usando pICMS. pRedBC identifica a redução da base própria, enquanto pRedBCST se refere a outra base.
Suponha, exclusivamente para a conta, uma modalidade 3 cuja memória já apurou base inicial de R$ 1.000,00, redução de 20% e alíquota própria de 18%. A redução retira R$ 200,00, deixando vBC=800.00; o imposto próprio é 800×18/100=144.00. O código 3 não informa nem calcula sozinho esses parâmetros. O exemplo não define quais despesas integram a operação do leitor e não recomenda 20% ou 18%.
Se a base inicial decorre de pauta ou preço, o primeiro passo é conferir a referência e a unidade, não substituir automaticamente o valor pelo preço de venda. A formação legal da base e a concessão da redução precisam ser confirmadas com o responsável contábil, levando UF, data, mercadoria, unidade, operação e benefício.
Recorte XML e comparação com a modalidade de ST
Exibição parcial da sequência de um ICMS70 sintético; o grupo completo também exige identificação e cálculo ST. Não é uma nota pronta para transmissão.
<modBC xmlns="http://www.portalfiscal.inf.br/nfe">3</modBC>
<pRedBC xmlns="http://www.portalfiscal.inf.br/nfe">20.00</pRedBC>
<vBC xmlns="http://www.portalfiscal.inf.br/nfe">800.00</vBC>
<pICMS xmlns="http://www.portalfiscal.inf.br/nfe">18.00</pICMS>
<vICMS xmlns="http://www.portalfiscal.inf.br/nfe">144.00</vICMS>
3 é valor da operação na base própria; 20.00 é a redução e 800.00 é a base resultante. Na mesma nota, modBCST poderia descrever outra modalidade fiscalmente confirmada. Isso não torna as modalidades inconsistentes por si só: elas tratam de responsabilidades e bases diferentes.
O que conferir quando a base ou o imposto divergir
Se o XML falha no schema, verifique se foi usado um único código válido, sem descrição por extenso, e se a ordem modBC, pRedBC, vBC, pICMS, vICMS foi preservada. Se o XML passa mas a base diverge, compare a modalidade do cadastro com a memória efetivamente aplicada; revise a referência de pauta/preço ou a composição da operação, conforme o caso.
Na rejeição 528, N17-20 verifica o produto vBC×pICMS/100 para CST 70 e finNFe=1, com aplicação facultativa. Ela não prova que modBC nem a redução estejam juridicamente corretos: dois parâmetros incorretos podem produzir uma multiplicação coerente. Corrija a causa identificada e confira novamente a base resultante e o imposto, sem mudar modalidade apenas para ajustar o resultado.
Na N17-20/528, a nota (*4) do MOC p. 140 manda arredondar o produto a duas casas e considerar tolerância de R$ 0,01 para mais ou menos na validação. A orientação alcança essa comparação documentada, com CST 70, finalidade normal e aplicação facultativa; não escolhe a modalidade nem autoriza corrigir uma base errada por centavos.
Grupo completo para conferência
Este ICMS70 sintético reúne os campos do recorte e o núcleo obrigatório, na ordem do schema. É completo somente em relação ao grupo e parcial em relação à NF-e; não é documento pronto para transmissão. Os números adicionais são hipóteses didáticas, não parâmetros para uma empresa.
<ICMS70 xmlns="http://www.portalfiscal.inf.br/nfe">
<orig>0</orig>
<CST>70</CST>
<modBC>3</modBC>
<pRedBC>20.00</pRedBC>
<vBC>800.00</vBC>
<pICMS>18.00</pICMS>
<vICMS>144.00</vICMS>
<modBCST>4</modBCST>
<pMVAST>40.00</pMVAST>
<vBCST>1400.00</vBCST>
<pICMSST>18.00</pICMSST>
<vICMSST>108.00</vICMSST>
</ICMS70>
Referências oficiais
- MOC 7.0, Anexo I, leiaute e regras de validação — 7.00, novembro 2020. p. 36 N13–N17; p. 111 N17-20
- Schemas XML da NF-e/NFC-e — PL_010f_v1.04, publicado em 31/08/2026. ICMS70/modBC: enumeração 0–3 e ordem dos campos
Páginas relacionadas
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS70/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