Membros Pro JLuis Postado 13 Novembro Membros Pro Postado 13 Novembro 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 JLuis Postado 13 Novembro Autor Membros Pro Postado 13 Novembro Boa tarde, alguém teria alguma dica de como resolver esse problema do cancelamento? Grato.
Consultores Italo Giurizzato Junior Postado 13 Novembro Consultores Postado 13 Novembro Boa tarde @JLuis, Entre no Portal da NFSe Padrão Nacional e verifique se essa nota já não esta cancelada. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Membros Pro JLuis Postado 13 Novembro Autor Membros Pro Postado 13 Novembro 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 Italo Giurizzato Junior Postado 13 Novembro Consultores Solution Postado 13 Novembro @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. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Membros Pro JLuis Postado 14 Novembro Autor Membros Pro Postado 14 Novembro @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 Italo Giurizzato Junior Postado 14 Novembro Consultores Postado 14 Novembro 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. 1 Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Recommended Posts