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

modBC no ICMS00: o que significam os códigos 0, 1, 2 e 3

<modBC>det › imposto › ICMS › ICMS00 › modBC

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

modBC identifica a modalidade de determinação da base de cálculo do ICMS do item. Dentro de ICMS00, ele é obrigatório e aceita os códigos 0, 1, 2 e 3. A modalidade explica como a base foi determinada; o valor resultante fica em vBC. Nem a alíquota nem o valor do imposto são informados em modBC. Consulte o MOC 7.0, Anexo I, campo N13, p. 26.

Como interpretar cada código

Código Modalidade Informação que deve sustentar a conferência
0 Margem de valor agregado (%) Critério e percentual de margem efetivamente aplicáveis, com memória de cálculo. O dígito zero é o código da modalidade, não uma margem de 0%.
1 Pauta (valor) Valor de pauta, referência oficial e vigência utilizados para apurar a base. O número 1 não é o valor de R$ 1,00.
2 Preço tabelado máximo (valor) Preço tabelado, produto/unidade correspondente e regra que determina seu emprego.
3 Valor da operação Componentes da operação que foram considerados na base, com inclusões e exclusões confirmadas.

O domínio do schema não é uma recomendação de uso. Ele demonstra quais códigos essa ocorrência comporta. Para decidir a modalidade real, precisam estar confirmados os parâmetros fiscais da operação. O código não deve ser inferido por “ser uma venda”, pelo preço, por ser CST 00 ou pela modalidade de outra nota.

modBC vem da definição fiscal utilizada no cálculo. O emissor pode obtê-lo da parametrização, mas a coerência depende de essa definição corresponder à operação e à referência aplicável. Se a dúvida for qual modalidade empregar, reúna regime, produto, UF, operação e fundamento da base para confirmação com o responsável contábil. Depois verifique se o sistema utilizou o método confirmado e serializou seu código.

Por que mudar o código não recalcula a base

Suponha dois cenários puramente didáticos, já definidos por suas respectivas regras:

  • Cenário A: a modalidade confirmada é valor da operação; a memória apurou base de R$ 1.000,00 e alíquota de 18%. O XML registra modBC=3, vBC=1000.00 e vICMS=180.00.
  • Cenário B: a modalidade confirmada é pauta e a memória dessa pauta apurou base de R$ 1.200,00, com percentual sintético de 18%. O XML registra modBC=1, vBC=1200.00 e vICMS=216.00.

O aumento do imposto vem da diferença entre as bases apuradas: 1.200 × 18 / 100 = 216. Não vem de multiplicar a base pelo código 1. Os números não propõem pauta ou alíquota para um produto real. No segundo cenário, o valor de pauta e sua relação com quantidade/unidade precisariam estar sustentados pela regra concreta antes da geração.

Se um integrador só troca 3 por 1 e mantém a memória do cenário A, não demonstra que adotou pauta. Há duas verificações separadas: o código deve identificar o método real; a base precisa resultar desse método.

Onde localizar e como representar

O caminho processado é nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS00/modBC. Localize o det pelo seu nItem; não procure qualquer tag de mesmo nome no documento. O schema oficial usa enumerações de um dígito para essa ocorrência.

Fragmento sintético do cenário A, parcial em relação à nota, sem assinatura/protocolo e sem aptidão para transmissão:

<ICMS00 xmlns="http://www.portalfiscal.inf.br/nfe">
  <orig>0</orig>
  <CST>00</CST>
  <modBC>3</modBC> <!-- identifica o método, não a alíquota -->
  <vBC>1000.00</vBC> <!-- resultado monetário do método -->
  <pICMS>18.00</pICMS>
  <vICMS>180.00</vICMS>
</ICMS00>

Diferenças que evitam erros

modBCST é a modalidade da base de ICMS por substituição tributária, encontrada em alternativas que comportam ST. Tem seu próprio domínio e contexto. Não copie seus códigos para ICMS00/modBC. pMVAST é um percentual de margem de ST em grupos pertinentes; não é outro nome para modBC=0 e não pertence a ICMS00. pICMS é percentual; vBC é dinheiro; modBC é classificação do método.

O ICMS00 tampouco contém um campo de percentual de redução de base. Se a definição fiscal real envolve redução, a comparação com ICMS20 ajuda a reconhecer que a estrutura é outra; essa comparação não autoriza trocar o enquadramento por conta própria.

Como diagnosticar uma inconsistência

  1. Compare o código do XML enviado com o método registrado na memória de cálculo. Código divergente indica possível erro de mapeamento ou parâmetro aplicado à emissão.
  2. Confira a base com os valores e referências desse método. Uma base igual ao preço por coincidência não demonstra que foi usada a modalidade 3.
  3. Refaça vBC × pICMS / 100 para conferir o imposto. Em finalidade normal, a N17-20 pode retornar 528 se vICMS divergir do produto, conforme condições e arredondamento do MOC. Essa validação aritmética não prova a escolha correta de modBC.
  4. Corrija a origem comprovada e regenere o XML. Verifique código, base e imposto juntos; não force o total para esconder uma diferença.

Para continuar, vBC no ICMS00 aprofunda a reconstrução da base, e ICMS00 reúne todos os campos do grupo.

Referência técnica para integração

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