@Arnaldo Cruz o @Sebastiao observou bem quanto à questão de rateio, mas outra questão a se verificar são as casas decimais dos campos.
Ex.: produto 4, quantidade 1,765 KG e preço 2,90
1,765 * 2,90 =5,1185
no XML :
qcom = 1,765
vuncom = 2,90
vprod = 5,12 (ou 5,11) depende da função usada, arredondamento ou truncamento, 1 centavo é tolerado na validação
Note que no xml vprod tem precisão de somente 2 casas, assim como os campos dos totais, portanto cuidado em como está a precisão do se banco de dados.
É de suma importância que o tratamento de arredondamento ou truncamento seja utilizado em todos os preenchimentos das tags e aplicação de descontos ou acréscimos, pois nesse mesmo exemplo se eu tivesse dois itens, nesta mesma situação, e arredondando no item e truncando no total a diferença fica em 2 centavos e bloqueia a nota.