Ir para conteúdo
  • Cadastre-se

dev botao

Transmissão em Contingência


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

Recommended Posts

Boa tarde,

estou iniciando o desenvolvimento em Contingência mas estou com dificuldades no entendimento do processo, por exemplo, 

estou gerando a NFe normalmente, com teDPEC, a Data e a Justificativa, envio, daí Mando transmitir, ele retorna com cStat 100.

Daí mudo o tpEmis para tpNormal e tento transmitir novamente, mas recebo o erro de Duplicidade com Chave de Acesso diferentes.

Qual o processo correto para transmitir em Contingência?

 

Conferi a chave logo antes do comando Enviar e é o mesmo da NF transmitida em teDPEC.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, Igor Bastos disse:

Boa tarde,

estou iniciando o desenvolvimento em Contingência mas estou com dificuldades no entendimento do processo, por exemplo, 

estou gerando a NFe normalmente, com teDPEC, a Data e a Justificativa, envio, daí Mando transmitir, ele retorna com cStat 100.

Daí mudo o tpEmis para tpNormal e tento transmitir novamente, mas recebo o erro de Duplicidade com Chave de Acesso diferentes.

Qual o processo correto para transmitir em Contingência?

 

Conferi a chave logo antes do comando Enviar e é o mesmo da NF transmitida em teDPEC.

O tipo de emissão é parte da chave de acesso, se você alterar o tipo de emissão a chave muda.

Eu nunca emiti NFe por EPEC, mas pelo que sei, primeiro você faz apenas o envio do evento EPEC, depois envia a NFe, com tpEmis = teDPEC.

Se você está enviando a NFe e recebendo cStat 100 quer dizer que ela já está autorizada.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

28 minutos atrás, BigWings disse:

O tipo de emissão é parte da chave de acesso, se você alterar o tipo de emissão a chave muda.

Eu nunca emiti NFe por EPEC, mas pelo que sei, primeiro você faz apenas o envio do evento EPEC, depois envia a NFe, com tpEmis = teDPEC.

Se você está enviando a NFe e recebendo cStat 100 quer dizer que ela já está autorizada.

 

E se está autorizando de primeira significa que não está enviado em contingencia. Tem algo errado na rotina então.

Link para o comentário
Compartilhar em outros sites

 

1 hora atrás, carlosinfoteen disse:

 

E se está autorizando de primeira significa que não está enviado em contingencia. Tem algo errado na rotina então.

Então talvez já esteja funcionando perfeitamente não?

Pq como eu estou desenvolvendo a função ainda estou emitindo sem problemas na rede, ou seja, tudo perfeito para Homologação.

Link para o comentário
Compartilhar em outros sites

16 minutos atrás, Igor Bastos disse:

 

Então talvez já esteja funcionando perfeitamente não?

Pq como eu estou desenvolvendo a função ainda estou emitindo sem problemas na rede, ou seja, tudo perfeito para Homologação.

Então, é como se tu estivesse transmitindo direto e não em contingencia. Já que na segunda vez dar duplicidade, significando que na primeira ja foi. Logo foi direto e nao em contingencia.

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
15 minutos atrás, Igor Bastos disse:

Então talvez já esteja funcionando perfeitamente não?

Pq como eu estou desenvolvendo a função ainda estou emitindo sem problemas na rede, ou seja, tudo perfeito para Homologação.

Você chegou a enviar o evento EPEC antes de tentar transmitir a NFe?

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

11 horas atrás, BigWings disse:

Você chegou a enviar o evento EPEC antes de tentar transmitir a NFe?

Então, como eu disse, estou com dificuldades para entender o Processo, então acho que o erro é meu msm, pois estou fazendo o mesmo que sempre faço para qualquer NF (GerarNF, AssinarNF, ValidarNF e EnviarNF), mas mudando o  tpEmis, adicionando a Data e Justificativa da Contingência.

Que evento seria esse de envio em contingência?

Link para o comentário
Compartilhar em outros sites

  • Moderadores
38 minutos atrás, Igor Bastos disse:

Então, como eu disse, estou com dificuldades para entender o Processo, então acho que o erro é meu msm, pois estou fazendo o mesmo que sempre faço para qualquer NF (GerarNF, AssinarNF, ValidarNF e EnviarNF), mas mudando o  tpEmis, adicionando a Data e Justificativa da Contingência.

Que evento seria esse de envio em contingência?

No Manual de Orientações do Contribuinte, a partir da página 90, explica o funcionamento da contingência EPEC:

http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=URCYvjVMIzI=

O EPEC é um evento, assim como o cancelamento de NFe e a carta de correção, a diferença é que o EPEC pode ser enviado antes da emissão da NFe, daí o nome Evento Prévio de Emissão em Contingência. O EPEC também é transmitido para o webservice do ambiente nacional, assim quando houver problemas com a SEFAZ do estado ele teoricamente vai estar funcionando.

O processo seria resumidamente:

1-Gerar a NFe com tpEmis = 4.

2-Gerar e enviar o evento EPEC.

3-Imprimir o DANFE em duas vias, uma devendo ser mantida pelo emitente.

Se você consultar a chave da NFe, mesmo antes do XML da NFe ser enviado, deve constar a emissão em contingência pelo evento EPEC, caso não tenha sido enviado o evento, a NFe não é válida.

4-Assim que possível, transmitir o XML da NFE, onde não se deve mudar o tipo de emissão.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Configurei para enviar o Evento, mas como pego o protocolo, cStat e XML de retorno?

Estou tentando utilizar o msm do Cancelamento, mas estão vindo vazios (exceto cStat = 128)

IntToStr(ACBrNFe1.WebServices.EnvEvento.EventoRetorno.cStat),
ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt,
ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.XML

Link para o comentário
Compartilhar em outros sites

Eu só sei que deu certo o Envio do Evento em contingência pq espero mais que 10min para transmitir (com a msm Chave) e ele transmite normalmente sem aportar o Erro de 5min .

Mas infelizmente a consulta da Chave de Acesso após o envio do Evento só retorna que Não Consta...

Além de que eu não estou conseguindo armazenar nenhuma informação de retorno do evento de Contingência, pois não sei como pagá-los

Link para o comentário
Compartilhar em outros sites

  • Moderadores
27 minutos atrás, Igor Bastos disse:

Mas infelizmente a consulta da Chave de Acesso após o envio do Evento só retorna que Não Consta...

Qual o XML de retorno da consulta?

50 minutos atrás, Igor Bastos disse:

Estou tentando utilizar o msm do Cancelamento, mas estão vindo vazios (exceto cStat = 128)

Esse é o cStat do processamento do lote 128-Lote processado.

Consulte o cStat do evento:

ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat;

 

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

4 minutos atrás, BigWings disse:

Qual o XML de retorno da consulta?

 

Gostaria de resgatar o XML de retorno de envio do Evento, pois aparentemente td Envio de Evento tem um XML de retorno.

9 minutos atrás, BigWings disse:

Esse é o cStat do processamento do lote 128-Lote processado.

Consulte o cStat do evento:


ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat;

 

 

O cStat vem vazio consultando desta forma.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
18 minutos atrás, Igor Bastos disse:

Gostaria de resgatar o XML de retorno de envio do Evento, pois aparentemente td Envio de Evento tem um XML de retorno.

Configure o componente para gravar os arquivos de envio e retorno:

ACBrNFe1.Configuracoes.Geral.Salvar := True;
ACBrNFe1.Configuracoes.Arquivos.PathEvento := edtPathEvento.Text;

Anexe aqui o arquivo *-ped-eve.xml e *-eve.xml gerado.

Para salvar o XML de processamento de evento:

ACBrNFe1.Configuracoes.Arquivos.SalvarEvento := True;

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
8 minutos atrás, Igor Bastos disse:

Mas não tem como eu pegar o XML igual aos outros comandos? Como se fosse uma variável String do Objeto

Sim, mas você disse que está vindo em branco, então tem algo errado.

Anexe os arquivos de envio e retorno que neles deve ter o cStat retornado.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Segue anexo os arquivos solicitados.

(2254 - Falha na validação de esquema Xml :-o)

Meu código para envio do evento está assim:

  ACBrNFe1.EventoNFe.Evento.Clear;
  with ACBrNFe1.EventoNFe.Evento.Add do
  begin
    infEvento.chNFe :=UBibliotecaWinDesktop.ClearTextToNum(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID);;
    infEvento.CNPJ := ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.CNPJCPF;
    infEvento.dhEvento := Now;
    infEvento.tpEvento := teEPECNFe;
    infEvento.detEvento.xJust := Justificativa;
    //infEvento.detEvento.nProt := ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.nProt;
  end;
  ACBrNFe1.EnviarEvento(qryConsNFeC.FieldByName('NFeNumLoteEnvio').AsInteger);

  //Atualiza tabela de retornos da NF
  DM3.InserirNFeRetornoValidacaoEnvio(
    ACodNFeC, qryConsNFeC.FieldByName('NFeModelo').AsString,
    qryConsNFeC.FieldByName('NFeNumSerie').AsString,
    qryConsNFeC.FieldByName('NFeNumNFe').AsString,
    qryConsNFeC.FieldByName('NFeChaveAcesso').AsString,
    IntToStr(ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat),
    '0',
    'CONTINGENCIA DE NFe',
    ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt,
    ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.XML
  );

 

1-eve.xml

1-ped-eve.xml

Editado por Igor Bastos
Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, Igor Bastos disse:

Veja o retorno do erro:

<cStat>999</cStat>
<xMotivo>2254 - Falha na validação de esquema Xml</xMotivo>

Provavelmente é por falta de preenchimento das tags específicas para o EPEC no seu XML de envio:

1 hora atrás, Igor Bastos disse:
<verEvento/>
<detEvento versao="1.00">
  <descEvento>EPEC</descEvento>
  <cOrgaoAutor>0</cOrgaoAutor>
  <tpAutor>1</tpAutor>
  <verAplic/>
  <dhEmi>1899-12-30T00:00:00-02:00</dhEmi>
  <tpNF>0</tpNF>
  <IE/>
  <dest>
    <UF/>
    <vNF>0.00</vNF>
    <vICMS>0.00</vICMS>
    <vST>0.00</vST>
  </dest>
</detEvento>

Tente preencher essas tags com os dados da nota e enviar novamente.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  ACBrNFe1.EventoNFe.Evento.Clear;
  with ACBrNFe1.EventoNFe.Evento.Add do
  begin
    infEvento.chNFe :=UBibliotecaWinDesktop.ClearTextToNum(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID);;
    infEvento.CNPJ := ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.CNPJCPF;
    infEvento.dhEvento := Now;
    infEvento.tpEvento := teEPECNFe;

    infEvento.detEvento.cOrgaoAutor := qryConsNFeC.FieldByName('EmitcodUF').AsInteger;
    infEvento.detEvento.tpAutor := StrToTipoAutor(VReturn, '1');
    infEvento.detEvento.xJust := Justificativa;
    infEvento.detEvento.vNF := ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vNF;
    infEvento.detEvento.vICMS := ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vICMS;
    infEvento.detEvento.vST := ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vST;
  end;
  ACBrNFe1.EnviarEvento(qryConsNFeC.FieldByName('NFeNumLoteEnvio').AsInteger);

Acho que agora fiz mais certo, porem ainda está dando o msm retorno 

<xMotivo>2254 - Falha na validação de esquema Xml</xMotivo>

1-ped-eve.xml

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Tente desta forma:

  ACBrNFe1.EventoACBrNFe1.Evento.Clear;
  ACBrNFe1.EventoACBrNFe1.idLote := nLote;

  with ACBrNFe1.EventoACBrNFe1.Evento.Add do
  begin
    infEvento.chNFe := chNFe;
    infEvento.cOrgao := 91; // ambiente nacional
    infEvento.CNPJ   := Copy(chNFe, 7, 14);
    infEvento.dhEvento := Now;
    infEvento.tpEvento := teEPECNFe;
    infEvento.nSeqEvento := 1;
    infEvento.versaoEvento := '1.00';
    infEvento.detEvento.cOrgaoAutor := StrToInt(Copy(chNFe, 1, 2)); // código da uf do emitente
    InfEvento.detEvento.tpAutor := taEmpresaEmitente;
    InfEvento.detEvento.dhEmi := ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dEmi;
    InfEvento.detEvento.tpNF := ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpNF;
    InfEvento.detEvento.IE := sIE_Emitente;
    InfEvento.detEvento.dest.UF := ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.EnderDest.UF;
    InfEvento.detEvento.dest.CNPJCPF := ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.CNPJCPF;
    InfEvento.detEvento.dest.idEstrangeiro := ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.idEstrangeiro;
    InfEvento.detEvento.dest.IE := ACBrNFe1.NotasFiscais.Items[0].NFe.Dest.IE;
    InfEvento.detEvento.vNF := ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vNF;
    InfEvento.detEvento.vICMS := ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vICMS;
    InfEvento.detEvento.vST := ACBrNFe1.NotasFiscais.Items[0].NFe.Total.ICMSTot.vST;
  end;

  ACBrNFe1.EnviarEvento(nLote);

  cStat := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat;
  xMotivo := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo;
  nProt := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;

O cStat no envio do evento deve ser "136 - Evento registrado, mas nao vinculado a NF-e".

Na consulta da NFe após o envio do evento deve retornar o cStat "124 - EPEC autorizado".

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Ao fazer testes com esse código, recebo o seguinte retorno:

493 Rejeicao: Evento nao atende o Schema XML especifico

Minha justificativa: ENVIANDO EM CONTINGENCIA

Código utilizado: http://textuploader.com/dqplw

Segue anexo os arquivos de retorno do Evento.

 

2-eve.xml

2-ped-eve.xml

Editado por Igor Bastos
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2070 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.