Ir para conteúdo
  • Cadastre-se

dev botao

Consulta Situação NFe - Manifestação


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

Recommended Posts

Boa tarde,

Procurei em alguns tópicos porém são do meio do ano passado para trás.
Alguém já conseguiu uma forma de retornar se a nota já foi manifestada ou não com a DistribuicaoDFe?
Pois na verdade uma forma de saber é através do XML, se for resumido, a nota não foi manifestada ainda, porém gostaria de saber se alguém já conseguiu algo sem ser dessa forma.

E também há uma forma de saber se o XML é o RESUMO ou é COMPLETO ?

Obrigado e aguardo.

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

20 minutos atrás, Juliomar Marchetti disse:

Basta consultar com o xml que vai vir todos os eventos atrelados a ela.

Certo.
De que forma é feito a consulta com o XML usando o DistribuicaoDFe?
Porque na verdade eu até encontrei algumas propertys referente aos eventos, porém sempre quando uso a Distribuicao, me retorna apenas eventos de CCE e nenhum de manifestação.
Não sei se tenho que percorrer alguma lista ou algo assim.

Poderia ajudar por favor?

Obrigado

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
5 horas atrás, Rodrigo Coradi disse:

E também há uma forma de saber se o XML é o RESUMO ou é COMPLETO ?

Deve ter outras formas de saber.

Eu verifico qual o schema utilizado no processamento e por enquanto resolve.

                if AcbrNfe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.schema = schprocNFe Then // significa que já retornou a nota processada
                Begin
                  AcbrNfe.NotasFiscais.Clear;
                  AcbrNfe.NotasFiscais.LoadFromString(localAcbrNfe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.InfZip);

                End;
 

Att

Leandro

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

1 minuto atrás, Leandro Vignoto disse:

Deve ter outras formas de saber.

Eu verifico qual o schema utilizado no processamento e por enquanto resolve.

                if AcbrNfe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.schema = schprocNFe Then // significa que já retornou a nota processada
                Begin
                  AcbrNfe.NotasFiscais.Clear;
                  AcbrNfe.NotasFiscais.LoadFromString(localAcbrNfe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.InfZip);

                End;
 

Att

Leandro

Obrigado Leandro, vou testar dessa forma.

Link para o comentário
Compartilhar em outros sites

Realizando a primeira DistribuicaoDFe, passando os parametros de aUltNSU 0 e ANSU = '', onde irá retornar a listagem das notas, dessas notas que retornou, tem como sabermos a situação da Manifestação ?
Nem que não seja nesse momento, mas depois de ser feito essa distribuicao, é possível consultar isso ? Pela chave de acesso, pelo NSU, ou de alguma outra forma ?
No caso ainda não possuo o XML completo, apenas o RESUMO. 
Se alguém conseguiu ou tem uma forma de fazer isso ajudaria bastante, pois é algo novo que estamos fazendo e de início será feito a listagem dos 3 meses de notas, e sem saber quais estão manifestadas ou não, ficará complicado.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
4 horas atrás, Thiago2016 disse:

@Rodrigo Coradi

Boa tarde!

Estou nessa mesma situação para saber a situação da manifestação, pois no webservice que está sendo desativado tinhamos o <cSitConf> e no DistribuicaoDFe não tem. Encontrou alguma solução para conseguir a situação da manifestação?

Nao thiago, até o momento nao.

Link para o comentário
Compartilhar em outros sites

Não sei se é o jeito correto, mas por enquanto estou pegando o status da seguinte forma:

Realizo a DistribuicaoDFe e mostro as notas em um grid. Nesse momento, caso não conste manifestação pelo meu sistema, chamo um método que consulta os eventos NFe e retorna a última manifestação. Ex:

function ConsultaSitManifesto(pChave: String): String;
var i: Integer;
begin
  ACBrNFe1.WebServices.Consulta.procEventoNFe.Clear;
  ACBrNFe1.WebServices.Consulta.NFeChave := pChave;
  ACBrNFe1.WebServices.Consulta.Executar;

  cdsEventos.EmptyDataSet;

    for i := 0 to ACBrNFe1.WebServices.Consulta.procEventoNFe.Count -1 do
      if ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.retEvento.Items[0].RetInfEvento.tpEvento in
        [teManifDestConfirmacao, teManifDestCiencia, teManifDestDesconhecimento, teManifDestOperNaoRealizada] then
      begin
        cdsEventos.Append;
        cdsEventosDataHora.AsDateTime := ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.retEvento.Items[0].RetInfEvento.dhRegEvento;
        cdsEventosDescricao.AsString  := TpEventoToStr(ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.retEvento.Items[0].RetInfEvento.tpEvento);
        cdsEventos.Post;
      end;

  cdsEventos.Last;  //IndexFieldNames := 'DatHora';

  Result := cdsEventosDescricao.AsString;
end;

onde cdsEventos é um ClientDataSet em memória, ordenado por Data/Hora (porque os eventos podem vir fora de ordem).

Bom, é isso. Se alguém está fazendo de alguma outra forma, favor compartilhar :-)

Editado por Reinaldo Silveira
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
28 minutos atrás, Reinaldo Silveira disse:

Não sei se é o jeito correto, mas por enquanto estou pegando o status da seguinte forma:

Realizo a DistribuicaoDFe e mostro as notas em um grid. Nesse momento, caso não conste manifestação pelo meu sistema, chamo um método que consulta os eventos NFe e retorna a última manifestação. Ex:


function ConsultaSitManifesto(pChave: String): String;
var i: Integer;
begin
  ACBrNFe1.WebServices.Consulta.procEventoNFe.Clear;
  ACBrNFe1.WebServices.Consulta.NFeChave := pChave;
  ACBrNFe1.WebServices.Consulta.Executar;

  cdsEventos.EmptyDataSet;

    for i := 0 to ACBrNFe1.WebServices.Consulta.procEventoNFe.Count -1 do
      if ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.retEvento.Items[0].RetInfEvento.tpEvento in
        [teManifDestConfirmacao, teManifDestCiencia, teManifDestDesconhecimento, teManifDestOperNaoRealizada] then
      begin
        cdsEventos.Append;
        cdsEventosDataHora.AsDateTime := ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.retEvento.Items[0].RetInfEvento.dhRegEvento;
        cdsEventosDescricao.AsString  := TpEventoToStr(ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.retEvento.Items[0].RetInfEvento.tpEvento);
        cdsEventos.Post;
      end;

  cdsEventos.Last;  //IndexFieldNames := 'DatHora';

  Result := cdsEventosDescricao.AsString;
end;

onde cdsEventos é um ClientDataSet em memória, ordenado por Data/Hora (porque os eventos podem vir fora de ordem).

Bom, é isso. Se alguém está fazendo de alguma outra forma, favor compartilhar :-)

Isso está funcionando?

Na nota técnica de 2015/002 v.141  (http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=hDS5co/qWOc=) diz que a isso não ia mais ser retornado pelo webservice de consulta...

Vide anexo...

 

 

REtorno.GIF

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

  • 2 semanas depois ...
Em 10/04/2017 at 14:05, douglaswf disse:

Isso está funcionando?

Na nota técnica de 2015/002 v.141  (http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=hDS5co/qWOc=) diz que a isso não ia mais ser retornado pelo webservice de consulta...

Vide anexo...

REtorno.GIF

tem razão, infelizmente esta opção não retorna mais os eventos de manifesto. Voltamos à estaca zero...

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

  • 9 meses depois ...
  • 1 mês depois ...

Bom dia ! Alguém encontrou alguma solução para retorno ou verificação da situação da manifestação, através do DistribuicaoDFE ?

O mais estranho nessa história é que o programa gratuito da SEFAZ obtém estas informações bem como o Software Espião-NFe.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
Em 28/03/2018 at 10:42, augustus disse:

Bom dia ! Alguém encontrou alguma solução para retorno ou verificação da situação da manifestação, através do DistribuicaoDFE ?

O mais estranho nessa história é que o programa gratuito da SEFAZ obtém estas informações bem como o Software Espião-NFe.

Bom dia, estou com um problemão sobre essa situação, usando o emissorMD-e gratuito do Sefaz eu consigo baixar todas as Notas de meus clientes, mas pelo meu sistema falta um monte de notas, mesmo tentando várias vezes baixar os lotes dos 90 dias, nada, sempre vem as mesmas notas, o mais difícil é explicar isso pra eles...

Analysis and System Development - Delphi Programmer - Computer Technician - Developing solutions together

 

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois ...

Olá!

Fiquei caçando uma solução por dias na internet, em vão, e então peguei um dia fazendo inúmeros testes e monitorando o tráfego do Software Manifestador, para consulta ele somente acessa o IP 200.198.239.181, que é do domínio www1.nfe.fazenda.gov.br, que é do webservice do NFeDistribuicaoDFe.

Não consegui descriptografar o tráfego para ter certeza do caminho do webservice, então resolvi inspecionar os "jar" baixados pelo "jnlp", descompactei e tentei encontrar alguma string que me indicasse um webservice diferente... Sem sucesso.

Como eu já tinha todos os class, resolvi usar o "javap" e inspecionar os bytecodes... Sem sucesso.

Fui mais além e utilizei então dois descompiladores e encontrei algo que me chamou a atenção, pois encontrei nos arquivo XML de consulta estavam com a versão 1.35:
---> br/gov/sp/fazenda/dsmd/ws/destinadas/br/gov/sp/fazenda/dsmd/common/util/DocumentoUtil400.java:1567:
consNFeDest.setVersao(br.gov.sp.fazenda.dsmd.schemas.mdnfe.v100.TVerDistDFe.X_1_35);
---> br/gov/sp/fazenda/dsmd/ws/destinadas/br/gov/sp/fazenda/dsmd/schemas/mdnfe/v100/TVerDistDFe.java:26:
public static final Enum X_1_35 = Enum.forString("1.35");

O mesmo para TVerResEvento e TVerResNFe, então encontrei os 'xsd"s da versão 1.35 e comparando com a 1.01 do pacote PL v1.02, alterou-se o xsd dos tipos de "tiposDistDFe_v1.01.xsd" para "tiposBasico_v1.03.xsd" contendo agora TNSU e TVerDistDFe, cUFAutor obrigatório, consChNFe não existe nessa versão, cSitConf agora existe no resNFe.

Bom, a princípio alterei a versão na consulta por NSU para versão 1.35 para testar e funcionou bem, veio o cSitConf.

Não sei se fiz tudo isso "à toa", mas como eu não encontrei a solução em lugar nenhum, resolvi ir a fundo, encontrar a solução e colocar aqui.

 

v1.35.zip

Editado por JuniorPolegato
Faltou um arquivo no zip
  • Curtir 5
  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

  • Moderadores
22 horas atrás, JuniorPolegato disse:

Não sei se fiz tudo isso "à toa", mas como eu não encontrei a solução em lugar nenhum, resolvi ir a fundo, encontrar a solução e colocar aqui. 

Já temos a explicação de como o aplicativo gratuito consegue retornar a situação da manifestação: se trata de uma funcionalidade não documentada, a famosa gambiarra, por parte da SEFAZ-SP.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
Em 09/10/2018 at 12:12, JuniorPolegato disse:

Olá!

Fiquei caçando uma solução por dias na internet, em vão, e então peguei um dia fazendo inúmeros testes e monitorando o tráfego do Software Manifestador, para consulta ele somente acessa o IP 200.198.239.181, que é do domínio www1.nfe.fazenda.gov.br, que é do webservice do NFeDistribuicaoDFe.

Não consegui descriptografar o tráfego para ter certeza do caminho do webservice, então resolvi inspecionar os "jar" baixados pelo "jnlp", descompactei e tentei encontrar alguma string que me indicasse um webservice diferente... Sem sucesso.

Como eu já tinha todos os class, resolvi usar o "javap" e inspecionar os bytecodes... Sem sucesso.

Fui mais além e utilizei então dois descompiladores e encontrei algo que me chamou a atenção, pois encontrei nos arquivo XML de consulta estavam com a versão 1.35:
---> br/gov/sp/fazenda/dsmd/ws/destinadas/br/gov/sp/fazenda/dsmd/common/util/DocumentoUtil400.java:1567:
consNFeDest.setVersao(br.gov.sp.fazenda.dsmd.schemas.mdnfe.v100.TVerDistDFe.X_1_35);
---> br/gov/sp/fazenda/dsmd/ws/destinadas/br/gov/sp/fazenda/dsmd/schemas/mdnfe/v100/TVerDistDFe.java:26:
public static final Enum X_1_35 = Enum.forString("1.35");

O mesmo para TVerResEvento e TVerResNFe, então encontrei os 'xsd"s da versão 1.35 e comparando com a 1.01 do pacote PL v1.02, alterou-se o xsd dos tipos de "tiposDistDFe_v1.01.xsd" para "tiposBasico_v1.03.xsd" contendo agora TNSU e TVerDistDFe, cUFAutor obrigatório, consChNFe não existe nessa versão, cSitConf agora existe no resNFe.

Bom, a princípio alterei a versão na consulta por NSU para versão 1.35 para testar e funcionou bem, veio o cSitConf.

Não sei se fiz tudo isso "à toa", mas como eu não encontrei a solução em lugar nenhum, resolvi ir a fundo, encontrar a solução e colocar aqui.

 

v1.35.zip

Valeu por postar a solução. Não dá para saber se vai ser sempre assim, mas já é um começo! 

Colocando estes esquemas começou a aparecer o campo cSitConf no resumo. 

 

 

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

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

The popup will be closed in 10 segundos...