Causa:

Quando for emitida uma NF-e com o Total do IPI da NF-e (Campo: total / ICMSTot / vIPI) diferente do somatório do valor do IPI de cada item, será retornado a rejeição "538 - Total do IPI difere do somatório dos itens".


Exemplo:

Foi emitida uma NF-e com dois itens informados, cada um com o IPI calculado em R$ 144,67 e foi informado no Total do IPI o valor de R$ 290,00. Sendo o valor correto dessa soma R$ 289,34, a NF-e será rejeitada pelo motivo 538.


Campos no XML:

<det nItem="1"
... 
    <imposto
... 
        <IPI>
            <cEnq>999</cEnq>
            <IPITrib>
                <CST>50</CST>
                <vBC>2066.67</vBC>
                <pIPI>7.00</pIPI>
                <vIPI>144.67</vIPI>
            </IPITrib>
        </IPI>
... 
    </imposto>
</det>
<det nItem="2"
... 
    <imposto
... 
        <IPI>
            <cEnq>999</cEnq>
            <IPITrib>
                <CST>50</CST>
                <vBC>2066.67</vBC>
                <pIPI>7.00</pIPI>
                <vIPI>144.67</vIPI>
            </IPITrib>
        </IPI
... 
    </imposto>
</det>
<total>
    <ICMSTot>
        <vBC>2466.54</vBC>
        <vICMS>303.98</vICMS>
        <vICMSDeson>0.00</vICMSDeson>
        <vBCST>0.00</vBCST>
        <vST>0.00</vST>
        <vProd>4000.00</vProd>
        <vFrete>0.00</vFrete>
        <vSeg>0.00</vSeg>
        <vDesc>0.00</vDesc>
        <vII>0.00</vII>
        <vIPI>290.00</vIPI>
        <vPIS>68.20</vPIS>
        <vCOFINS>314.14</vCOFINS>
        <vOutro>0.00</vOutro>
        <vNF>4289.34</vNF>
    </ICMSTot>
</total>


Solução:

Deve-se verificar e refazer o somatório do Valor do IPI de cada item e corrigir o Valor do IPI informado nos Totais da NF-e.

Há uma tolerância para mais ou para menos de R$ 0,01 de diferença do valor calculado sem aproximações.

<total>
    <ICMSTot>
        <vBC>2466.54</vBC>
        <vICMS>303.98</vICMS>
        <vICMSDeson>0.00</vICMSDeson>
        <vBCST>0.00</vBCST>
        <vST>0.00</vST>
        <vProd>4000.00</vProd>
        <vFrete>0.00</vFrete>
        <vSeg>0.00</vSeg>
        <vDesc>0.00</vDesc>
        <vII>0.00</vII>
        <vIPI>289.34</vIPI>
        <vPIS>68.20</vPIS>
        <vCOFINS>314.14</vCOFINS>
        <vOutro>0.00</vOutro>
        <vNF>4289.34</vNF>
    </ICMSTot>
</total>