Ir para conteúdo
  • Cadastre-se

dev botao

Cancelamento De Nfe 573 Rejeição


GSN
  • Este tópico foi criado há 3336 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia !

 

Estou tentando cancelar uma NFe e não consigo, testei ta,bém pelo "DEMO" e ocorre o mesmo erro.

 

 

Por favor me ajude ! pois preciso colocar em produção 

 

 

Segue XML para análise e rotina do cancelamento

 

 

procedure TF_nota.cancelar_nfe;

var
  numerolote : integer;
  NumeroProtocolo , sjustificativa , XMLCancelamento ,  MotivoStatus  : string;
  CodigoStatus  : integer;
  DataHoraEvento : Tdate;
  xxx_chave ,   xxx_cnpj ,   xxx_protocolo : string;
 
begin
  NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));
  // carregar o xml da nota fiscal eletronica, pode ser omitido
  dm_acbr.AcbrNFe1.NotasFiscais.Clear;
  dm_acbr.AcbrNFe1.NotasFiscais.LoadFromFile(snome_arq_xml);
  // Criar o cancelamento
  dm_acbr.AcbrNFe1.EventoNFe.Evento.Clear;
  dm_acbr.AcbrNFe1.EventoNFe.idLote := NumeroLote;
  //
  with dm_acbr.AcbrNFe1.EventoNFe.Evento.Add do
  begin
    xxx_chave                 := dm_acbr.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.chNFe;
    xxx_cnpj                  := dm_acbr.ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.CNPJCPF;
    xxx_protocolo             := dm_acbr.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.nProt;
    //
    showmessage('Chave: ' + xxx_chave + #13 + 'CNPJ Emitente: ' + xxx_cnpj + #13 + 'Protocolo: ' + xxx_protocolo );
    //
    infEvento.chNFe           := xxx_chave;
    infEvento.CNPJ            := xxx_cnpj;
    infEvento.detEvento.nProt := xxx_protocolo ;
    //
    infEvento.dhEvento        := NOW;
    infEvento.tpEvento        := teCancelamento;
    infEvento.nSeqEvento      := strtoint(ed_sequencia.text);
    //
    infEvento.detEvento.xJust := ed_jus1.text;
  end;
 
// Enviar o evento de cancelamento
if dm_acbr.AcbrNFe1.EnviarEventoNFe(NumeroLote) then // solicita senha do certificado digital
  begin
    with dm_acbr.AcbrNFe1.WebServices.EnvEvento do
    begin
      if EventoRetorno.retEvento.Items[0].RetInfEvento.cStat <> 135 then
      begin
        raise Exception.CreateFmt(
          'Ocorreu o seguinte erro ao cancelar a nota fiscal eletrônica:'  + sLineBreak +
          'Código:%d' + sLineBreak +
          'Motivo: %s', [
            EventoRetorno.retEvento.Items[0].RetInfEvento.cStat,
            EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo
        ]);
        MemoResp.Lines.Text :=  UTF8Encode(dm_acbr.ACBrNFe1.WebServices.EnvEvento.RetWS);
        memoRespWS.Lines.Text :=  UTF8Encode(dm_acbr.ACBrNFe1.WebServices.EnvEvento.RetornoWS);
        LoadXML(MemoResp, WBResposta);
        ShowMessage(IntToStr(dm_acbr.ACBrNFe1.WebServices.EnvEvento.cStat));
        ShowMessage(dm_acbr.ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt);
      end;
  // retornos
      DataHoraEvento  := EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento;
      NumeroProtocolo := EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
      XMLCancelamento := EventoRetorno.retEvento.Items[0].RetInfEvento.XML;
      CodigoStatus    := EventoRetorno.retEvento.Items[0].RetInfEvento.cStat;
      MotivoStatus    := EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo;
    end;
  end
  else
  begin
    with dm_acbr.AcbrNFe1.WebServices.EnvEvento do
    begin
      raise Exception.Create(
        'Ocorreram erros ao tentar efetuar o cancelamento:' + sLineBreak +
        'Lote: '     + IntToStr(EventoRetorno.idLote) + sLineBreak +
        'Ambiente: ' + TpAmbToStr(EventoRetorno.tpAmb) + sLineBreak +
        'Orgao: '    + IntToStr(EventoRetorno.cOrgao) + sLineBreak +
        sLineBreak +
        'Status: '   + IntToStr(EventoRetorno.cStat) + sLineBreak +
        'Motivo: '   + EventoRetorno.xMotivo
      );
    end;
  end;
end;
 
 
Obrigado
 
GSN - São Paulo / SP

 

 

NFe35150311199459000182550010000004451000004455.XML

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia,

 

Primeiramente, por favor não post como texto fragmento do seu código, inclua-o em um arquivo txt e post como anexo.

 

Segundo o que vem a ser 573?

 

É o código da rejeição?

 

Não encontrei esse código na nota técnica mais recente, qual é a descrição do mesmo?

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Amigo Ítalo,

 

bom dia !

 

 

Obrigado pela sugestão.

 

Talvez não tenho explicado melhor.

 

 

Foi gerado uma nota fiscal eletrônica , onde foi gerado um XML de autorização de uso, quando tento fazer o cancelamento dessa mesma nota, carregando o XML da nota fiscal autorizada, ocorre erro: 573: Retorno := 'Motivo: 573 -> Rejeição: Duplicidade de Evento';

Pensei que havia algo errado no meu código fonte, tentei fazer o teste pélo "Demo" do ACBR e ocorreu o mesmo erro.

 

Será que estou fazendo algo de errado no meu código, não consegui achar o erro.

 

Será que alguem poderia me dar uma luz, vou enviar o meu código fonte em anexo txt anexo e arquivo XML da nota autorizada.;

 

 

Obrigado

 

GSN - SP

 

cancela_nfe_codigo_fonte.txt

NFe35150311199459000182550010000004451000004455.XML

Link para o comentário
Compartilhar em outros sites

Olá , consultei a nota no portal nacional , a nota consta como cancelada desde ontem 25/03/2015 às 14:46:10 (segundo o horario do Ambiente Nacional)

 

Tente carregar o XML e realizar uma consulta da mesma, assim sera retornado o protocolo de cancelamento.

 

feito isso , você pode alterar o status da nota dentro do seu software.

Link para o comentário
Compartilhar em outros sites

Outra coisa que gostaria de acrescentar amigo , notei que o XML esta na versão 2.0 , aconselho que você atualize seus clientes para a versão 3.10  , pois como consta no aviso do Portal NFe , a versão 2.0 sera desativada dentro de 6 Dias.

 

Visite https://www.nfe.fazenda.gov.br/portal/principal.aspx para verificar o comunicado.

Editado por William Mattos
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Thiago ou William matos

 

boa tarde amigos

 

como faço pra consulta o status da nota através do XML pra trazer o status de cancela, pois com essas informações posso gravar no meu banco de dados , seria isso né?

 

 

Pelo exemplo não consegui, poderia me dar uma luz

 

 

Obrigado 

Link para o comentário
Compartilhar em outros sites

ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.NotasFiscais.LoadFromStream(XMLStream); //Carrega o XML da Nota
ACBrNFe1.Consultar;

Já o retorno você obtem atraves das propiedades contidas em: "ACBrNFe1.WebServices.Consulta."

 

por exemplo:

ACBrNFe1.WebServices.Consulta.cStat;     // Codigo de Status
ACBrNFe1.WebServices.Consulta.Protocolo; // retorna o ultimo protocolo válido ( no caso da nota cancelada o protocolo de cancelamento ) (corrijam-me se estiver errado)
ACBrNFe1.WebServices.Consulta.RetornoWS; // retorna o stream do XML( no caso da nota cancelada, o xml de cancelamento

//E etc...
 

Não sei se a explicação foi clara , porém

 

A melhor opção e fazer oque o Tiago disse, ler o manual e depois analisar o demo,se você olhar com atenção , o demo vai te ajudar a entender o funcionamento na pratica.

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3336 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.