Valor do ICMS calculado difere do produto entre base de cálculo e alíquota
Rejeição 528: Valor do ICMS difere do produto BC e Alíquota
vICMSvBCpICMSICMSA rejeição 528 ocorre quando o valor de ICMS declarado em <vICMS> em um item da nota não corresponde ao resultado de <vBC> multiplicado por <pICMS>. A causa mais comum é arredondamento inconsistente entre o cálculo item a item e o valor preenchido na tag. Corrija o <vICMS> para que seja exatamente vBC × pICMS / 100, com arredondamento adequado, antes de retransmitir.
O que significa esta rejeição
Em cada item da NF-e que usa CST de ICMS 00, 10, 20 ou 70, a SEFAZ confere se o valor declarado em <vICMS> (identificador N17 do Anexo I) é igual ao produto da base de cálculo <vBC> (N15) pela alíquota <pICMS> (N16), dividido por cem. Se a diferença ultrapassar a tolerância de arredondamento permitida, o item indicado entre colchetes na mensagem ([nItem]) causa a rejeição de toda a nota.
O erro não significa que a alíquota está errada: significa que o valor numérico declarado em <vICMS> não reproduz matematicamente o resultado da multiplicação. Um centavo de diferença por arredondamento inconsistente já é suficiente para gerar a rejeição.
Causas mais comuns
- Arredondamento feito em etapas diferentes: base arredondada antes de multiplicar, produzindo resultado diferente do esperado pela SEFAZ.
- Alíquota de ICMS desatualizada no cadastro de operações, gerando cálculo com percentual errado.
- Cálculo manual do ICMS no ERP divergindo do que foi automaticamente gerado pelo motor de impostos.
- Uso de truncamento em vez de arredondamento (ou vice-versa) na conversão de decimais.
- Item com desconto ou frete que alterou a base, mas o
<vICMS>não foi recalculado. - Importação de XML de terceiro com valor de ICMS já fixo que não bate com a alíquota configurada localmente.
Regra de validação oficial
A regra N17-20 do Anexo I do MOC define que, para NF-e com finalidade finNFe = 1 (Normal) e CST de ICMS 00, 10, 20 ou 70, o campo <vICMS> deve ser igual a:
vICMS = vBC × pICMS / 100Se o valor declarado em <vICMS> divergir desse produto (considerando arredondamento de dois dígitos decimais), a transmissão é rejeitada com o código 528, indicando o número do item na mensagem.
Exemplo XML, antes (errado)
<det nItem="1">
<imposto>
<ICMS>
<ICMS00>
<orig>0</orig>
<CST>00</CST>
<modBC>3</modBC>
<vBC>10000.00</vBC>
<pICMS>12.00</pICMS>
<vICMS>1250.00</vICMS>
</ICMS00>
</ICMS>
</imposto>
</det>(vICMS correto seria 1200.00, não 1250.00)
Exemplo XML, depois (correto)
<det nItem="1">
<imposto>
<ICMS>
<ICMS00>
<orig>0</orig>
<CST>00</CST>
<modBC>3</modBC>
<vBC>10000.00</vBC>
<pICMS>12.00</pICMS>
<vICMS>1200.00</vICMS>
</ICMS00>
</ICMS>
</imposto>
</det>Passo a passo para corrigir
- Identifique o item apontado na mensagem de rejeição (
[nItem]) e localize os campos<vBC>,<pICMS>e<vICMS>daquele item. - Calcule o valor esperado:
vBC × pICMS / 100, com arredondamento para dois dígitos decimais. - Verifique se a alíquota em
<pICMS>está correta para a operação e UF de destino. - Corrija
<vICMS>com o resultado do cálculo do passo 2. - Verifique se os totalizadores do grupo
<ICMSTot>também precisam ser ajustados e retransmita a nota.
Como o FazendaNota previne
O FazendaNota calcula <vICMS> por multiplicação direta de <vBC> e <pICMS>, com arredondamento consistente em todos os itens. Os totalizadores de ICMS são derivados por agregação direta dos itens, evitando divergência de centavos entre o cálculo item a item e o valor declarado no XML.
Rejeições relacionadas
- Rejeição 531, Total da BC ICMS difere do somatório dos itens
- Rejeição 610, Total da NF difere do somatório dos valores
- Rejeição 938, Não informada BCST, pST e ICMSST retido na operação anterior
Referência oficial
Esta rejeição está descrita no Anexo I - Leiaute e Regra de Validação do Manual de Orientação do Contribuinte (MOC) v7.0 da NF-e, publicado pelo CONFAZ. Texto integral em https://www.confaz.fazenda.gov.br/legislacao/arquivo-manuais/moc7-visao-geral.pdf