Causa:

Quando for emitida uma NF-e (modelo 55) ou NFC-e (modelo 65) com ICMS " 00 - Tributada integralmente", " 10 - Tributada e com cobrança de ICMS por ST", " 20 - Com redução da base de cálculo" ou " 70 - Com redução de base de cálculo e cobrança do ICMS por ST" e a Finalidade da NF-e (Campo: ide / finNFe - ID: B25 ) igual à " 1  - NF-e Normal", com erro (superior a R$ 0,01) no Valor do ICMS (Campo: vICMS - ID: N17) oriundo do produto (multiplicação) entre a Base de Cálculo do ICMS (Campo: vBC - ID: N15) e o percentual da Alíquota (Campo: pICMS - ID: N16) será retornado a rejeição "528 - Valor do ICMS difere do produto BC e Alíquota".


Exemplo:

Foi emitida uma NF-e com ICMS "20 - Com redução da base de cálculo". A Base de Cálculo do ICMS para o produto foi preenchido com o valor R$ 1233,27, o Percentual com o valor 12% e o Valor do ICMS foi informado com o valor R$ 151,99. Sendo o valor correto desse produto o Valor do ICMS igual à R$ 147,99, a NF-e / NFC-e será rejeitada pelo motivo 528.


Campos no XML:

<ICMS>
    <ICMS20>
        <orig>0</orig>
        <CST>20</CST>
        <modBC>3</modBC>
        <pRedBC>0.00</pRedBC>
        <vBC>1233.27</vBC>
        <pICMS>12.00</pICMS>
        <vICMS>151.99</vICMS>
    </ICMS20>
</ICMS>


Solução:

Deve-se verificar e refazer o produto dos campos vBC pICMS  de cada produto da NF-e e corrigir o valor do campo vICMS , também de cada produto.

A multiplicação desses campos devem ser arredondados para 2 casas decimais, considerando uma tolerância para mais ou para menos de R$ 0,01 de diferença do valor calculado sem aproximações.

No exemplo apresentado anteriormente o produto seria realizado da seguinte forma:

vBC (ID: N15) = 1233,27        pICMS (ID: N16) = 12%
_______________________________________
vICMS = 1233,27 x 0,12

   vICMS (ID: N17) = 147,9924

O percentual é informado na multiplicação em valores decimais e não em porcentagem, logo a necessidade de dividir o valor percentual do campo pICMS por 100 antes de realizar a operação.

Como podem ser informados apenas 2 casas decimais, o resultado deve ser arredondado. Nesse caso, podemos arredondar para R$ 147.99 , pois é o valor mais próximo, porém pode também ser arredondado também para R$ 148.00 , pois a diferença ainda é menor que R$ 0,01.

<ICMS>
    <ICMS20>
        <orig>0</orig>
        <CST>20</CST>
        <modBC>3</modBC>
        <pRedBC>0.00</pRedBC>
        <vBC>1233.27</vBC>
        <pICMS>12.00</pICMS>
        <vICMS>147.99</vICMS>
    </ICMS20>
</ICMS>