Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao cancelar NFS-e padrão nacional


Ver Solução Respondido por Italo Giurizzato Junior,

Recommended Posts

  • Membros Pro
Postado

Bom dia,
Ao tentar cancelar uma NFS-e padrão nacional (emitente MEI) está ocorrendo o erro E0802 informando que já existe um documento identificado com o mesmo ID.

O Erro ocorre também com o programa teste da NFSeX conforme log a seguir:

------------------------------
Versão OpenSSL
OpenSSL 1.1.1j  16 Feb 2021
01.01.01.0AF
C:\windows\SYSTEM32\libcrypto-1_1.dll
C:\windows\SYSTEM32\libssl-1_1.dll
------------------------------
Requisição
Ambiente : 1 - Produção
Cidade   : Santa Rosa/RS
Provedor : PadraoNacional Versão: 1.00
Data/Hora: 13/11/2024 09:09:58
 
Método Executado: Enviar Evento
 
Parâmetros de Envio
Chave NFSe : 431720222--------------000000000000324114321856706
Evento     : Cancelamento de NFS-e
 
Parâmetros de Retorno
Chave NFSe      :
Data            : 13/11/2024
Tipo Evento     : Cancelamento de NFS-e
Num. Seq. Evento: 0
ID do Evento    :
Sucesso         : False
 
Erro(s):
Código  : E0802
Mensagem: Já existe um documento fiscal eletrônico identificado com este id no Sistema Nacional NFS-e.
Correção:
---------

 

  • Membros Pro
Postado

Boa tarde, alguém teria alguma dica de como resolver esse problema do cancelamento?

Grato.

  • Membros Pro
Postado

Olá Ítalo, grato pelo retorno...
Está autorizada.
Esta NF logo que emiti tentei cancelar e já retornou o mesmo erro.
Consigo autorizar e consultar mas não consigo cancelar nem pelo meu aplicativo nem pelo de teste.

  • Consultores
  • Solution
Postado

@JLuis,

Pelo Portal da NFS-e Padrão Nacional não existe nenhum evento de cancelamento vinculado a nota?

Se não tem, tente então efetuar o cancelamento pelo Portal, uma vez que pela aplicação não esta funcionando.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

@Italo Giurizzato Junior,
Realmente me passei... o evento de cancelamento está sendo gerado e posso visualizá-lo no portal da NFS-e. O que está pegando é a questão da identificação da confirmação do cancelamento no tratamento do retorno para verificar se de fato o mesmo ocorreu ou não e também, ao consultar uma NF conseguir identificar qual a real situação atual da NF se está autorizada ou se foi cancelada para então atualizar o status da NF em meu sistema.
Andei vendo um tópico um pouco mais antigo ...

 mas não consegui entender bem como identificar de forma precisa o status da nf, inclusive, ao consultar é atualizado o XML da nf e o cStat continua 100 mesmo existindo o evento de cancelamento.
O que preciso verificar de fato para validar a situação atual da NFS-e no portal nacional?
Usar a função ConsultarEvento por chave e caso Resumos.Count > 0 (se existir um evento de cancelamento para a chave informada) então considerar a NF como cancelada?

Grato.

  • Consultores
Postado

Boa tarde @JLuis,

Caso você venha consultar uma nota após o seu cancelamento o XML da nota não vai mudar uma tag sequer.

Pelo XML da nota não tem como identificar se a mesma esta cancelada ou não.

Após o envio do pedido de cancelamento o componente lhe retorna as informações de retorno que podem ser lidas conforme consta no programa exemplo:

      tmEnviarEvento:
        begin
          with EnviarEvento do
          begin
            memoLog.Lines.Add('Método Executado: ' + MetodoToStr(tmEnviarEvento));
            memoLog.Lines.Add(' ');
            memoLog.Lines.Add('Parâmetros de Envio');
            with InfEvento.pedRegEvento do
            begin
              memoLog.Lines.Add('Chave NFSe : ' + chNFSe);
              memoLog.Lines.Add('Evento     : ' + tpEventoToDesc(tpEvento));
            end;
            memoLog.Lines.Add(' ');
            memoLog.Lines.Add('Parâmetros de Retorno');
            memoLog.Lines.Add('Chave NFSe      : ' + idNota);
            memoLog.Lines.Add('Data            : ' + DateToStr(Data));
            memoLog.Lines.Add('Tipo Evento     : ' + tpEventoToDesc(tpEvento));
            memoLog.Lines.Add('Num. Seq. Evento: ' + IntToStr(nSeqEvento));
            memoLog.Lines.Add('ID do Evento    : ' + idEvento);
            memoLog.Lines.Add('Sucesso         : ' + BoolToStr(Sucesso, True));

            LoadXML(XmlEnvio, WBXmlEnvio, 'temp1.xml');
            LoadXML(XmlRetorno, WBXmlRetorno, 'temp2.xml');

            ListaDeErros(Erros);
            ListaDeAlertas(Alertas);
          end;
        end;

Caso ocorra algum erro no retorno temos ainda o ConsultarEvento.

      tmConsultarEvento:
        begin
          with ConsultarEvento do
          begin
            memoLog.Lines.Add('Método Executado: ' + MetodoToStr(tmConsultarEvento));
            memoLog.Lines.Add(' ');
            memoLog.Lines.Add('Parâmetros de Envio');
            memoLog.Lines.Add('Chave NFSe      : ' + ChaveNFSe);
            memoLog.Lines.Add('Evento          : ' + tpEventoToDesc(tpEvento));
            memoLog.Lines.Add('Num. Seq. Evento: ' + IntToStr(nSeqEvento));
            memoLog.Lines.Add(' ');
            memoLog.Lines.Add('Parâmetros de Retorno');
            memoLog.Lines.Add('Chave NFSe      : ' + idNota);
            memoLog.Lines.Add('Data            : ' + DateToStr(Data));
            memoLog.Lines.Add('Tipo Evento     : ' + tpEventoToDesc(tpEvento));
            memoLog.Lines.Add('Num. Seq. Evento: ' + IntToStr(nSeqEvento));
            memoLog.Lines.Add('ID do Evento    : ' + idEvento);
            memoLog.Lines.Add('Sucesso         : ' + BoolToStr(Sucesso, True));

            ListaDeResumos(Resumos, tmConsultarEvento);

            LoadXML(XmlEnvio, WBXmlEnvio, 'temp1.xml');
            LoadXML(XmlRetorno, WBXmlRetorno, 'temp2.xml');

            ListaDeErros(Erros);
            ListaDeAlertas(Alertas);
          end;
        end;

Para pegar o IdNota do retorno a linha seria:

AuxIdNota := ACBrNFSeX1.WebService.EnviarEvento.IdNota;  // Retorno após o envio do evento

ou

AuxIdNota := ACBrNFSeX1.WebService.ConsultarEvento.IdNota; // Retorno após a consulta ao evento

De forma semelhante você consegue os demais dados.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.