Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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.

  • Moderadores
Postado
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

 

 

Postado
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.

Postado

 

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.

Postado
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.

 

  • Moderadores
Postado
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

 

 

Postado
1 minuto atrás, BigWings disse:

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

Me parece que é isso que está ocorrendo. Algo de erro no processo. Como se ele tivesse enviado 1º direto a nota e não o evento.

Postado
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?

  • Moderadores
Postado
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

 

 

Postado

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

Postado

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

  • Moderadores
Postado
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

 

 

Postado
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.

  • Moderadores
Postado
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

 

 

  • Moderadores
Postado
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

 

 

Postado (editado)

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
  • Moderadores
Postado
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

 

 

Postado

De acordo com o Manual:

cOrgaoAutor : Código da UF
tpAutor: Informar 1=Empresa Emitente para este evento.

Ou seja, sempre terei que informar 

cOrgaoAutor := CodUF
tpAutor := 1

?

Pq vc lançou com cOrgaoAutor = 0?

Postado
  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

  • Moderadores
Postado

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

 

 

  • Moderadores
Postado
3 horas atrás, Igor Bastos disse:

493 Rejeicao: Evento nao atende o Schema XML especifico

Preencha também a tag verAplic:

    InfEvento.detEvento.verAplic := 'MeuApp 1.0';
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Este tópico foi criado há 2313 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.