E1289 - Arredondamento vBC x pAlicAplic

Estou com o seguinte erro aonde a conta dessa alíquota resulta em um valor R$ 1.005

E1289 - O produto do valor da base de cálculo pela alíquota aplicada, ambos informados na NFS-e compartilhada, não está de acordo com o resultado cálculado pelo sistema (vBC x pAliAplic).

o campo vISSQN aponta para o tipo TSDec15V2

<xs:element name="vISSQN" type="TSDec15V2" minOccurs="0">
  <xs:annotation>
    <xs:documentation>
      Valor do ISSQN (R$) = Valor da Base de Cálculo x Alíquota ISSQN = vBC x pAliqAplic
    </xs:documentation>
  </xs:annotation>
</xs:element>
<xs:simpleType name="TSDec15V2">
    <xs:annotation>
      <xs:documentation>Valor decimal com 1 a 15 dígitos mais 2 casas decimais</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
      <xs:pattern value="0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,14}(\.[0-9]{2})?"/>
    </xs:restriction>
  </xs:simpleType>

Qual a regra de arredondamento de valores decimais ?


A Nota Técnica 2013.005 (Projeto NF-e) estabelece critérios específicos para arredondamento nos cálculos da Nota Fiscal eletrônica.

De acordo com o documento, existe uma tolerância de até R$ 0,01 (um centavo) no resultado do cálculo do imposto, quando comparado ao produto da base de cálculo pela alíquota. Isso significa que, em situações como o valor R$ 1,005, o sistema aceita tanto o arredondamento para R$ 1,00 quanto para R$ 1,01, sem que haja rejeição da nota.

Critério de Arredondamento (NT 2013.005, pág. 33/132)

Somatório dos itens: o valor total da NF-e deve ser exatamente igual à soma dos valores dos itens (sem tolerância).

Cálculo de imposto (base × alíquota): admite-se uma diferença de até R$ 0,01, para mais ou para menos, em todos os casos.

As regras alteradas estão sinalizadas com observações “(*3)” ou “(*4)” no Manual de Orientação do Contribuinte (MOC), e podem ser verificadas no Anexo II – Regras de Validação da NF-e, especialmente:

N17-20 → cálculo de impostos;

W03-10 a W22-10 → regras de totalização.

arredondamento_classico.xml (6,3,KB)

Eu consegui enviar a nota usando

Arredondamento bancário (half even ou round half to even)

  • Se a fração for exatamente 0.5, arredonda para o número par mais próximo.

  • 1.005 → 1.00 (porque 1.00 é par na casa dos centavos).


:white_check_mark: Correção Sugerida

  • O imposto calculado (base × alíquota) deve ser informado em 2 casas decimais (R$), aceitando diferença de ± 0,01.

  • Não existe obrigação de usar half up ou half even — o fisco só valida se a diferença ficar dentro da tolerância.

arredondamento_para_baixo.xml (6,3,KB)

Olá Elvis

Poderia fazer dois testes que não estão passando na integração com o ADN.

Teste 1:
Base de cálculo 33,75 x 2,00% = 0,675.
Enviando com R$ 0,68 não está gerando erro E1289

Teste 2:
Base de cálculo 30,25 x 2,00% = 0,605.
Enviando com R$ 0,61, que atende a regra de arredondamento, ao realizar integração está retornando erro E1289

:white_check_mark: Teste 1 – Sucesso
half-even
Base de cálculo 33,75 x 2,00% = 0,675 → 0,68

<valores>
	<vBC>33.75</vBC>
	<pAliqAplic>2.00</pAliqAplic>
	<vISSQN>0.68</vISSQN>
	<vTotalRet>33.75</vTotalRet>
	<vLiq>33.75</vLiq>
</valores>


:cross_mark: Teste 2 – Erro
half up
Base de cálculo 30,25 x 2,00% = 0,605 → 0,61

<valores>
	<vBC>30.25</vBC>
	<pAliqAplic>2.00</pAliqAplic>
	<vISSQN>0.61</vISSQN>
	<vTotalRet>30.25</vTotalRet>
	<vLiq>30.25</vLiq>
</valores>


:white_check_mark: Teste 2 – Sucesso
half-even
Base de cálculo 30,25 x 2,00% = 0,605 → 0,60

<valores>
	<vBC>30.25</vBC>
	<pAliqAplic>2.00</pAliqAplic>
	<vISSQN>0.60</vISSQN>
	<vTotalRet>30.25</vTotalRet>
	<vLiq>30.25</vLiq>
</valores>


Pelo comportamento observado, acredito que o modelo de arredondamento adotado pela Nota Nacional seja o arredondamento bancário (half-even), no qual valores terminados em “.5” são arredondados para o número par mais próximo.

Mas precisamos de uma confirmação dos desenvolvedores da nota nacional.

:white_check_mark: Resolvido

Após análise, foi constatado que a diferença de R$ 0,01 entre a base de cálculo (vBC) e o valor obtido pela aplicação da alíquota (pAliqAplic) é aceitável, portando o problema foi resolvido.

O Método de arredondamento realmente é o bancário citado ao longo deste Post.

1 curtida