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