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)

1 curtida

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

Bom dia!

Em produção restrita, estou fazendo teste com os seguintes valores:

  • Alíquota PIS: 0,65%
  • Base de Cálculo: 17.850,00

17850 x 0,0065 = 116,025

Com o arredondamento bancário, deveria ficar 116,02. Mas ao enviar isso, estou recebendo rejeição “E0694 - O valor do Pis informado não corresponde ao resultado da BC Pis/Cofins x Alíquota Pis, que foram informados na DPS.“

Ao enviar 116,03, a nota é aceita.

Sabem se algo mudou para arredondamento para cima (Away From Zero)?

Esta correção não foi aplicada ainda.
Segundo informações de ontem, será aplicada na próxima atualização.
Não tem previsão de quando.

Essa tolerância de R$ 0,01 é exclusiva para o ISS ou deveria estar acontecendo para os demais impostos retidos também, por exemplo, para o PIS e COFINS?

Temos nota rejeitadas com valores de PIS e COFINS, por exemplo, COFINS foi enviado 28,12 e rejeitou, daí enviando com 28,13 autorizou (937,50 * 3%)

Pois é, no seu caso, o valor de 937,50 gerou um imposto de 28,125, que arredondado pela regra geral, foi para: 28,13.

Sim, a tal tolerância de R$ 0,01 seria para esses casos, não?

Não sei se a tolerância que aqui falam vai ser aplicada a todos os impostos calculados.

O que fazemos nas nossas aplicações, é arredondar e assim a Receita vem aceitando nossos xml gerados.

Qual a fonte desta informação?

No meu caso, como fa; co folha de pagamento também, sei que no cálculo do IRRF usa-se o arrendamento matemático (3ª casa < 5 → mantém; 3ª casa ≥ 5 → arredonda para cima), logo para liberar meus sistemas, sempre faço verifico com a calculadora da Receita Federal e outros mecanismos como o e-Social e REINF.

Link calculadora: Simulador de alíquotas efetivas: Receita Federal do Brasil