modBC no ICMS90: modalidade da base do ICMS próprio
<modBC>det › imposto › ICMS › ICMS90 › 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 indica como foi determinada a base de cálculo do ICMS próprio do item no ICMS90. Seu código descreve o método, enquanto vBC informa o valor final em reais. Não é o código de modalidade de substituição tributária, modBCST.
Neste artigo:
- Quais códigos este campo aceita?
- modBC é sempre obrigatório no CST 90?
- Como conferir método e valor sem presumir a base?
- Como ler o exemplo e corrigir erro de integração?
- Exemplo XML sintético
- Conferência técnica e limite da orientação
Quais códigos este campo aceita?
O domínio é 0=Margem de Valor Agregado (%), 1=Pauta (valor), 2=Preço Tabelado Máximo (valor) e 3=Valor da Operação. Apesar de 0 mencionar MVA, não se deve copiar a modalidade 4 de modBCST: são campos diferentes com enumerações próprias. O código é um dígito, sem percentual ou expressão textual. Schemas NF-e/NFC-e PL_010f_v1.04 NT 2022.002 — Equiparação à exportação e outras alterações
modBC é sempre obrigatório no CST 90?
Ele é obrigatório dentro do bloco próprio, mas esse bloco inteiro é opcional estruturalmente. Se usado, modBC abre a sequência e exige vBC, pICMS e vICMS; pRedBC e cBenefRBC podem intercalar-se antes de pICMS, e o diferimento pode aparecer depois da alíquota. Informar modBC sem a base ou os resultados produz uma sequência incompleta. A opcionalidade externa não determina se o ICMS próprio deve existir na situação fiscal real. Schemas NF-e/NFC-e PL_010f_v1.04 NT 2022.002 — Equiparação à exportação e outras alterações
Como conferir método e valor sem presumir a base?
Localize o fundamento documentado da operação e o cálculo que originou vBC. No método valor da operação, não conclua que vBC deve ser automaticamente igual a vProd: parcelas, exclusões e reduções dependem do contexto legal. Em pauta ou preço tabelado, confira a tabela, unidade, quantidade e vigência que sustentaram o valor. O XML registra a modalidade e a base resultante; não carrega todos os documentos que a justificam. NT 2022.002 — Equiparação à exportação e outras alterações
Como ler o exemplo e corrigir erro de integração?
O exemplo assume método 3 e base já determinada de R$ 1.000,00. A alíquota sintética 18% gera imposto 180. Se o retorno mencionar formato ou elemento esperado, confira o domínio 0–3 e a posição de modBC antes de vBC. Se a estrutura passar mas a base parecer incorreta, reconstrua as parcelas e o método no cálculo de origem; trocar o código para fazer caber um valor não demonstra correção fiscal. Schemas NF-e/NFC-e PL_010f_v1.04 MOC 7.0 — Anexo I, Leiaute e Regras de Validação
Exemplo XML sintético
Fragmento sintético sem redução ou diferimento: modBC=3, base de R$ 1.000,00, alíquota de 18% e ICMS de R$ 180,00. O exemplo testa a sequência completa do bloco próprio e não sugere uma modalidade para a empresa.
<ICMS90 xmlns="http://www.portalfiscal.inf.br/nfe">
<orig>0</orig>
<CST>90</CST>
<modBC>3</modBC>
<vBC>1000.00</vBC>
<pICMS>18.00</pICMS>
<vICMS>180.00</vICMS>
</ICMS90>
Este é um fragmento completo do grupo ICMS90, parcial em relação à nota. Ele demonstra forma e dependências, sem assinatura, documento completo ou autorização fiscal. Não deve ser enviado como nota pronta.
Conferência técnica e limite da orientação
Para localizar o campo em XML de nota processada, use /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS90/modBC com o namespace http://www.portalfiscal.inf.br/nfe. No XML de NFe sem o envelope nfeProc, o caminho começa em NFe/infNFe. Compare o item correto; campos de mesmo nome em outro CST ou nos totais têm contexto diferente.
Os parâmetros que exigem confirmação são: modalidade legal, tabela/unidade/vigência quando aplicável, composição da base. Reúna a documentação da operação, a UF, a data de emissão e a memória de cálculo. Após definidos esses parâmetros, confira a geração e os valores do exemplo com os dados reais. O artigo explica a representação técnica; não escolhe enquadramento, alíquota ou benefício para a empresa. XML bem formado ou válido no XSD não comprova autorização. O pacote PL_010f_v1.04 define a estrutura examinada; a implantação de cada regra depende do cronograma específico, do modelo e da UF. Schemas NF-e/NFC-e PL_010f_v1.04
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS90/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