Ir para conteúdo
  • Cadastre-se

dev botao

Recuperar XML de Cancelamento - NFCe


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 2113 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado (editado)

Olá a todos,

Como o Juliomar falou, é possível recuperar o XML do cancelamento:

Estou montando o XML da nota e fazendo a consulta... Com isso é gravado automaticamente pelo componente no HD o XML de autorização, mas não o de cancelamento. O cancelamento que estou fazendo é por substituição.

Eu entendi a explicação do Juliomar de forma errada? Como devo proceder?

Editado por doidopb
  • Membros Pro
Postado
Em 09/03/2019 at 11:48, Juliomar Marchetti disse:

Não sei lhe dizer se na consulta do xml da NFC-e ele traz os eventos atrelados a nota. precisa testar

Então não entendi como devo proceder para recuperar o XML de cancelamento... Poderia me ajudar?

  • Consultores
Postado

Bom dia,

O cancelamento é um evento.

O componente cria e envia o XML chamado: *-ped-eve.xml (pedido, ou seja, o envio do evento) todos os eventos enviados para SEFAZ tem esse nome.

O retorno é salvo com o seguinte nome: *-eve.xml 

Por fim o componente gera um XML chamado *-procEventoNFe.xml que nada mais é do que a composição desse dois arquivos, ou seja, o pedido e o retorno da SEFAZ).

Não existe um serviço na SEFAZ especifico para consultar a situação de um evento.

A única saída é consultar a situação da nota através do método Consultar.

Ao executar esse método temos como resposta a situação da nota e uma lista de eventos vinculados a mesma.

De forma manual (uma vez que não temos esse recurso implementado no componente), você consegue extrair o(s) evento(s) vinculado(s) a nota.

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
2 horas atrás, Italo Jurisato Junior disse:

Bom dia,

O cancelamento é um evento.

O componente cria e envia o XML chamado: *-ped-eve.xml (pedido, ou seja, o envio do evento) todos os eventos enviados para SEFAZ tem esse nome.

O retorno é salvo com o seguinte nome: *-eve.xml 

Por fim o componente gera um XML chamado *-procEventoNFe.xml que nada mais é do que a composição desse dois arquivos, ou seja, o pedido e o retorno da SEFAZ).

Não existe um serviço na SEFAZ especifico para consultar a situação de um evento.

A única saída é consultar a situação da nota através do método Consultar.

Ao executar esse método temos como resposta a situação da nota e uma lista de eventos vinculados a mesma.

De forma manual (uma vez que não temos esse recurso implementado no componente), você consegue extrair o(s) evento(s) vinculado(s) a nota.

Olá Italo, tudo bom?

Esse "de forma manual" que eu não estou entendendo.

Quando eu consulto a nota deveria vir também o XML de cancelamento (lista de eventos vinculadas a mesma) e eu manualmente pegar esses dados? Ou não vem esse XML e o cliente tem que baixar manualmente no site da SEFAZ?

  • Consultores
Postado

Boa tarde,

Faça um teste.

Emita uma nota em ambiente de homologação, depois faça o seu cancelamento, por fim execute o seguinte comando:

ACBrNFe.NotasFiscais.LoadFromFile(xNomeXML);

ACBrNFe.Consultar;

Feito isso abra o arquivo *-sit.xml através de um navegador.

Note que existe um grupo chamado <protNFe> que contem as informações sobre o protocolo de autorização (algumas SEFAZ colocam do cancelamento) e caso a nota tenha eventos vinculados (neste caso sim, pois a nota foi cancelada) temos o grupo procEventoNFe.

é grupo procEventoNFe que vamos encontrar tudo referente ao evento, que neste caso é o de cancelamento.

O componente no momento não possui nenhum recurso que extrai esse grupo do XML (*-sit.xml) e salve separadamente.

É ai que eu me refiro em extrair o conteúdo procEventoNFe de forma manual.

Outra coisa importante, uma nota cancelada só possui um evento vinculado a ela, logo no arquivo *-sit.xml só vai existir apenas um grupo procEventoNFe, por outro lado uma nota que não foi cancelada, mas teve por exemplo: Cartas de correções, EPEC e outros eventos que a SEFAZ desejar incluir, teremos com certeza mais de um procEventoNFe nesse arquivo.

 

  • 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

  • Membros Pro
Postado (editado)
1 hora atrás, Italo Jurisato Junior disse:

Boa tarde,

Faça um teste.

Emita uma nota em ambiente de homologação, depois faça o seu cancelamento, por fim execute o seguinte comando:

ACBrNFe.NotasFiscais.LoadFromFile(xNomeXML);

ACBrNFe.Consultar;

Feito isso abra o arquivo *-sit.xml através de um navegador.

Note que existe um grupo chamado <protNFe> que contem as informações sobre o protocolo de autorização (algumas SEFAZ colocam do cancelamento) e caso a nota tenha eventos vinculados (neste caso sim, pois a nota foi cancelada) temos o grupo procEventoNFe.

é grupo procEventoNFe que vamos encontrar tudo referente ao evento, que neste caso é o de cancelamento.

O componente no momento não possui nenhum recurso que extrai esse grupo do XML (*-sit.xml) e salve separadamente.

É ai que eu me refiro em extrair o conteúdo procEventoNFe de forma manual.

Outra coisa importante, uma nota cancelada só possui um evento vinculado a ela, logo no arquivo *-sit.xml só vai existir apenas um grupo procEventoNFe, por outro lado uma nota que não foi cancelada, mas teve por exemplo: Cartas de correções, EPEC e outros eventos que a SEFAZ desejar incluir, teremos com certeza mais de um procEventoNFe nesse arquivo.

 

Italo, isso que disse é verdade,  pois eu inclusive uso essa sua lógica para notas canceladas normalmente montando o XML "na unha".

ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.WebServices.Consulta.NFeChave := chave;
ACBrNFe1.WebServices.Consulta.Executar;
xml := ACBrNFe1.WebServices.Consulta.RetWS;
xml := TextoEntre(xml, '<procEventoNFe', '</procEventoNFe>');
xml := '<?xml version="1.0" encoding="UTF-8"?><procEventoNFe' + xml + '</procEventoNFe>';

Eu fiz exatamente como falou, mas não existe o <procEventoNFe>, apesar da nota estar cancelada. Só existe o <protNFe> e como disse só possui informações sobre o protocolo de autorização.

Como eu sei que essa sua afirmação está correta (pois eu já uso ela para notas canceladas normalmente), fiz novamente o teste sendo que com uma nota CANCELADA NORMALMENTE, e NÃO POR SUBSTITUIÇÃO. Funcionou exatamente como você disse, veio o protNFe com informações sobre a autorização e o procEventoNFe com todas as informações sobre o cancelamento.

Então é isso... O servidor usado pela SEFAZ do Rio não fornece esse tipo de retorno para Cancelamentos por Substituição ou NENHUM servidor retorna?

Desde já agradeço a atenção

Editado por doidopb
  • Consultores
  • Solution
Postado

Bom dia,

Primeiramente o Cancelamento Por Substituição nessa primeira etapa só esta disponível para a NFC-e, logo não podemos enviar esse tipo de evento para a NF-e.

Quanto ao retorno da consulta de uma NFC-e não existir o procEventoNFe de uma nota cancelada por substituição pode ser que a SEFAZ ainda esteja fazendo os ajustes necessários para que ele seja gerado.

Lembre-se que o Cancelamento Por Substituição é um evento novo.

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
2 minutos atrás, Italo Jurisato Junior disse:

Bom dia,

Primeiramente o Cancelamento Por Substituição nessa primeira etapa só esta disponível para a NFC-e, logo não podemos enviar esse tipo de evento para a NF-e.

Quanto ao retorno da consulta de uma NFC-e não existir o procEventoNFe de uma nota cancelada por substituição pode ser que a SEFAZ ainda esteja fazendo os ajustes necessários para que ele seja gerado.

Lembre-se que o Cancelamento Por Substituição é um evento novo.

Entendo, mesmo assim é uma pena essa demora toda em algo VITAL para o Ajuste SINIEF n. 13/2018 que têm que iniciar em 01/04/18....

Nem as séries exclusivas para a Contingência estão sendo aceitas em ambiente de Homologação, dá erro de Rejeição... Meu receio é a SEFAZ exigir isso "em cima da hora".

  • Curtir 1
×
×
  • 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.

The popup will be closed in 10 segundos...