Categorias

Rejeição 897: Código numérico em formato inválido - Como resolver?

Quando for emitida uma NF-e (modelo 55 ou 95) e o Código Numérico que compõe a Chave de Acesso (campo: cNF id - B03) for igual ao Número do Documento Fiscal (campo: nNF id - B08) ou igual a relação abaixo. Haverá a rejeição 897 - Código numérico em formato inválido.

00000000, 11111111, 22222222, 33333333, 44444444, 55555555, 66666666, 77777777, 88888888, 99999999, 12345678, 23456789, 34567890, 45678901, 56789012, 67890123, 78901234, 89012345, 90123456, 01234567.

 

Exceções e Observações

Para essa Regra de Validação, não há exceções e nem observações.

 

Regra de Validação da Sefaz

 

Exemplo

No exemplo abaixo, foi emitida uma NF-e e o Código Numérico que compõe a Chave de Acesso (cNF) está idêntico ao Número do Documento Fiscal (nNF). Nessa situação a NF-e foi rejeitada pelo motivo 897.

Trecho do XML:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<ide>
    <cUF>43</cUF>
    <!-- Código Numérico que compõe a Chave de Acesso -->
    <cNF>31447746</cNF>
    <natOp>REVENDA DE MERCADORIAS</natOp>
    <mod>55</mod>
    <serie>503</serie>
    <!-- Número do Documento Fiscal -->
    <nNF>31447746</nNF>
    <dhEmi>2019-08-28T08:25:13-03:00</dhEmi>
    <tpNF>1</tpNF>
    <idDest>1</idDest>
    <cMunFG>4314902</cMunFG>
    <tpImp>1</tpImp>
    <tpEmis>1</tpEmis>
    <tpAmb>2</tpAmb>
    <finNFe>1</finNFe>
    <indFinal>1</indFinal>
    <indPres>1</indPres>
    <procEmi>0</procEmi>
    <verProc>OOBJ-NFE_EE</verProc>
</ide>

 

Como resolver?

Vamos nos atentar ao que a Sefaz diz sobre o Código numérico que compõe a Chave de Acesso: 

Número aleatório gerado pelo emitente para cada NF-e para evitar acessos indevidos da NF-e;

 

Sendo assim, por se tratar de um número aleatório, para resolver basta alterar o campo cNF, informando uma numeração com no máximo 8 dígitos. Desde que não seja o próprio número da NF-e e também não seja igual a:

00000000, 11111111, 22222222, 33333333, 44444444, 55555555, 66666666, 77777777, 88888888, 99999999, 12345678, 23456789, 34567890, 45678901, 56789012, 67890123, 78901234, 89012345, 90123456, 01234567

 

Abaixo exemplo de XML com a correção:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<ide>
      <cUF>43</cUF>
      <!-- Código Numérico que compõe a Chave de Acesso -->
      <cNF>97600851</cNF>
      <natOp>REVENDA DE MERCADORIAS</natOp>
      <mod>55</mod>
      <serie>503</serie>
      <!-- Número do Documento Fiscal -->
      <nNF>31447746</nNF>
      <dhEmi>2019-08-28T08:25:13-03:00</dhEmi>
      <tpNF>1</tpNF>
      <idDest>1</idDest>
      <cMunFG>4314902</cMunFG>
      <tpImp>1</tpImp>
      <tpEmis>1</tpEmis>
      <tpAmb>2</tpAmb>
      <finNFe>1</finNFe>
      <indFinal>1</indFinal>
      <indPres>1</indPres>
      <procEmi>0</procEmi>
      <verProc>OOBJ-NFE_EE</verProc>
  </ide>

Para a solução desse problema:

  • Verificar a existência do gatilho Tr_Tdcup_Bi
  • Verificar a data do terminal e do servidor.

Caso o cupom tenha ficado pendente Executar o comando abaixo substituindo NUMERO_DO_CUPOM pelo coo exibido no sistema:

update todos_cupons t set t.cdram =  Concat( concat(TIME_FORMAT(curtime(), '%s'), year(date_sub(Curdate(), interval 2006 year))) , right(t.numcupom, 4)) where t.numcupom = NUMERO_DO_CUPOM



Referências