Ir para conteúdo
  • Cadastre-se

dev botao

Distribuição DFe - Como usar


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

Recommended Posts

  • Membros Pro
Postado

Olá a todos,

Atualmente nos meus clientes eu uso o seguinte código para fazer a consulta das notas:

ACBrNFe1.DistribuicaoDFe( iso_estado, CNPJ, sUltimoNSU, '' )

Aonde o "sUltimoNSU" representa o ultNSU que armazenei no banco, capturado ao final de cada consulta com o comando ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU.

Está correto isso?

 

  • Membros Pro
Postado

Oi Juliomar, tudo bom?

Já tinha visto esse comando...

Mas esse que estou usando ainda funciona e tem um parâmetro ULTNSU, portanto creio que ele se baseia no ultimo NSU consultado que é a exigência da consulta.

Por isso queria saber se ele é equivalente ao "DistribuicaoDFePorUltNSU( <código da UF do destinatário>, <CNPJ do destinatário>, <numero do ultimo NSU> )" que você citou.

  • Membros Pro
Postado
15 horas atrás, Renato Rubinho disse:

Boa noite bnobre,

Passando apenas os três primeiros parâmetros na DistribuicaoDFe tem o mesmo efeito que chamar a DistribuicaoDFePorUltNSU, conforme abaixo.

Screenshot_20220927-220919_Chrome.jpg

Olá Renato, 

Beleza?

Obrigado pelo retorno.

Então estou usando o código correto, na verdade até imaginei que usava, pois outros clientes conseguem consultar normal.

Mas estou com um cliente que sempre que ele tenta consultar ele recebe o seguinte erro:

Rejeicao: Consumo Indevido (Deve ser utilizado o ultNSU nas solicitacoes subsequentes. Tente apos 1 hora)

A última consulta que ele conseguiu fazer foi dia 18/03/2022 e o ultNSU no sistema está gravado com o valor "000000000000961". Pra piorar a situação esse cliente usa nosso sistema em mais 2 CNPJs dele e nos mesmos a consulta funciona normal.

Alguém pode me dar uma luz do que pode estar acontecendo?

Desde já agradeço a atenção de todos

  • Consultores
Postado

Boa tarde bnobre,

Essa rejeição quer dizer que o ultNSU retornado pela Sefaz para alguma aplicação utilizando o CNPJ e certificado desta empresa é diferente do que você está usando ( 961 ).

Isso geralmente acontece quando a contabilidade também usa o webservice, fazendo com que o ultNSU recebido seja diferente do seu armazenado.

Junto deste retorno a Sefaz manda qual foi o ultNSU disponibilizado.

Você pode verificá-lo em ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU quando receber a rejeição e retomar as consultas a partir dele.

Outra opção é você passar o ultNSU = 0 para reprocessar todos os NSUs ainda disponíveis na Sefaz dos últimos 90 dias, recomeçando essa contagem na Sefaz.

  • Curtir 1
  • Membros Pro
Postado
Em 28/09/2022 at 17:34, Renato Rubinho disse:

Boa tarde bnobre,

Essa rejeição quer dizer que o ultNSU retornado pela Sefaz para alguma aplicação utilizando o CNPJ e certificado desta empresa é diferente do que você está usando ( 961 ).

Isso geralmente acontece quando a contabilidade também usa o webservice, fazendo com que o ultNSU recebido seja diferente do seu armazenado.

Junto deste retorno a Sefaz manda qual foi o ultNSU disponibilizado.

Você pode verificá-lo em ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU quando receber a rejeição e retomar as consultas a partir dele.

Outra opção é você passar o ultNSU = 0 para reprocessar todos os NSUs ainda disponíveis na Sefaz dos últimos 90 dias, recomeçando essa contagem na Sefaz.

Bom dia meu amigo...

Tudo bom?

Desculpa a demora, está um caos aqui. kkkkkkkkkkkkk

Teve uma reviravolta, copiei o banco de dados do cliente agora e testei em minha máquina, aqui consultou normal. Com o mesmo ultNSU (961).

Não sei porque lá estava dando erro esse tempo todo...

Terei que acompanhar... Tem idéia do que poderia ser?

Desde já agradeço a atenção

  • Membros Pro
Postado

PS: Outra coisa que achei interessante, na consulta, a última nota carrega tem o NSU 000000000001051, mas o componente retornou como ultNSU (ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU) o valor 000000000001077.

É isso mesmo? O ultNSU não teria que ser o NSU da última nota carregada?

  • Membros Pro
Postado
Em 30/09/2022 at 10:54, Italo Giurizzato Junior disse:

Bom dia,

Você tem o XML de retorno que consta que o ultNSU e um e o NSU do último documento retornado é outro?

Oi Italo, tudo bom?

Segunda vou consultar no micro do escritório e posto aqui.

  • Membros Pro
Postado
Em 30/09/2022 at 10:54, Italo Giurizzato Junior disse:

Bom dia,

Você tem o XML de retorno que consta que o ultNSU e um e o NSU do último documento retornado é outro?

Oi @Italo Giurizzato Junior...

Tudo bom?

Segue os arquivos de log do momento em que realizei a consulta em anexo.

Como pode ver o ultNSU é o 000000000001077.

Conforme tinha falado, a última nota retornada na consulta tem o NSU de número 000000000001051.

Daí a minha dúvida... É isso mesmo? O ultNSU não teria que ser o NSU da última nota carregada?

20220930093111-con-dist-dfe.xml 20220930093111-dist-dfe.xml 20220930093108-con-dist-dfe.xml

  • Consultores
Postado

Bom dia,

as 09:31:08 você executou o método DistribuicaoDFePorUltNSU informando o ultNSU igual a 961.

*** e o retorno dessa execução?

as 09:31:11 você executou o método novamente informando o ultNSU igual a 1077

as 09:31:11 chegou o retorno acusando que não tem mais nenhum documento (status = 137) e ultNSU igual a maxNSU (1077)

Foi nesse retorno (***) que está faltando que o último documento baixado é o de NSU = 1051, mas o valor de ultNSU é 1077 ?

Eu preciso desse retorno.

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 Giurizzato Junior disse:

Bom dia,

as 09:31:08 você executou o método DistribuicaoDFePorUltNSU informando o ultNSU igual a 961.

*** e o retorno dessa execução?

as 09:31:11 você executou o método novamente informando o ultNSU igual a 1077

as 09:31:11 chegou o retorno acusando que não tem mais nenhum documento (status = 137) e ultNSU igual a maxNSU (1077)

Foi nesse retorno (***) que está faltando que o último documento baixado é o de NSU = 1051, mas o valor de ultNSU é 1077 ?

Eu preciso desse retorno.

Oi

Basicamente no dia 30-09-2022 eu executei a consulta começando com o 961. Então executei o código abaixo:

CNPJ := Emitente_CNPJCPF;
docs := 0;
repeat
  try
    ACBrNFe1.DistribuicaoDFe( iso_estado, CNPJ, sUltimoNSU, '' ); //UltimoNSU = Começou com 961

    sStat   := IntToStr(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat);
    sMotivo := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo;

    if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then
      sTemMais := 'N'
    else sTemMais := 'S';

    sUltimoNSU := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU;

    ...//armazeno o valor acima no banco

    if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 138 then
     begin
       j := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count - 1;

         for i := 0 to j do
           begin
             sSerie   := '';
             sNumero  := '';
             sCNPJ    := '';
             sNome    := '';
             sIEst    := '';
             sNSU     := '';
             sEmissao := '';
             sTipoNFe := '';
             Valor    := 0.0;
             Impresso := ' ';

             if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.chDFe <> '' then
               begin
                 // Conjunto de informações resumo da NF-e localizadas.
                 // Este conjunto de informação será gerado quando a NF-e for autorizada ou denegada.

                 sChave := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.chDFe;

                 sSerie  := Copy(sChave, 23, 3);
                 sNumero := Copy(sChave, 26, 9);
                 sCNPJ := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.CNPJCPF;
                 sNome := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.xNome;
                 sIEst := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.IE;
                 case ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.tpNF of
                   tnEntrada: sTipoNFe := '0';
                   tnSaida:   sTipoNFe := '1';
                 end;
                 sNSU  := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].NSU;
                 sEmissao := DateToStr(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.dhEmi);
                 Valor := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.vNF;

                 case ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.cSitDFe of
                   snAutorizado: Impresso := 'AUTORIZADO';
                   snDenegado:   Impresso := 'DENEGADO';
                   snCancelado:  Impresso := 'CANCELADO';
                 end;
               end;

             ...// Registro no Banco de Dados as Notas Retornadas pela Consulta
              
           end;
     end;
    except
        on E : Exception do
          begin
            messageBox(handle,Pchar(e.message),'Erro!',MB_ICONERROR+mb_OK);
            Exit;
          end;
    end;
  until (sTemMais = 'N');

 

Com esse código os únicos arquivos de LOG que foram gerados foram esses...

Citar

*** e o retorno dessa execução?

Como assim o retorno dessa execução? Algum outro log? Devo especificar algo há mais no meu código para ter esse retorno? 

Citar

 

Foi nesse retorno (***) que está faltando que o último documento baixado é o de NSU = 1051, mas o valor de ultNSU é 1077 ?

Eu preciso desse retorno.

 

Não entendi que retorno seria esse... seria um arquivo de log?

  • Consultores
Postado

Boa tarde,

Você anexou dois XML referente a execução do Distribuição do DFe e somente um XML de retorno.

Onde foi para o XML de retorno da primeira execução (quando você informou o ultNSU igual a 961 ?

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

Como eu sei qual é o da distribuição e qual é de retorno? Qual a diferença entre eles?

De qualquer forma estou conectado no cliente agora e estou tentando fazer a consulta no mesmo.

Como eu disse, eu copiei a base do cliente para a minha máquina e consegui consultar aqui. O último documento consultado tem o NSU 000000000001051, já o ultNSU foi o 000000000001077.

Agora estou tentando realizar uma nova consulta, isso na máquina do cliente, mas diz: Rejeicao: Consumo Indevido (Deve ser aguardado 1 hora para efetuar nova solicitacao caso nao existam mais documentos a serem pesquisados. Tente apos 1 hora))

Porque esse erro? Estou utilizando o ultNSU corretamente.

Segue os arquivos de logs gerados hoje.

20221004110746-con-dist-dfe.xml 20221004110746-dist-dfe.xml 20221004114841-con-dist-dfe.xml 20221004134530-con-dist-dfe.xml 20221004134532-dist-dfe.xml

  • Consultores
Postado

Boa tarde,

O arquivo *-con-dist-dfe.xml se refere a consulta, já o arquivo *-dist-dfe.xml é o retorno.

Notou a diferença na nomenclatura dos arquivos?

Sabendo agora quais são os XMLs de consulta e de retorno, você não acha que a partir do momento que tem 3 consultas, não deveria ter 3 retornos?

O prefixo do nome desses arquivos é a data/hora.

Veja: 20221004110746

2022-10-04 11:07:46

Analisando os prefixos dos arquivos que você anexou temos:

A primeira consulta realizada as 11:07:46 e o retorno as 11:07:46

A segunda consulta realizada as 11:48:41 e onde foi parar o retorno?

A terceira consulta realizada as 13:45:30 e o retorno as 13:45:32

No que se refere a rejeição de Consumo indevido, ou o usuário está tentando várias vezes mesmo recebendo a rejeição ou tem outra aplicação consultando as notas desse CNPJ.

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
Citar

 

O arquivo *-con-dist-dfe.xml se refere a consulta, já o arquivo *-dist-dfe.xml é o retorno.

Notou a diferença na nomenclatura dos arquivos?

 

Show... Agora sim :-)

Citar

A segunda consulta realizada as 11:48:41 e onde foi parar o retorno?

Verdade, agora que entendi como funciona também fiquei intrigado. Você pode dar uma olhada no meu código de consulta? Será que tem algo errado que não está fazendo retornar?

Citar

No que se refere a rejeição de Consumo indevido, ou o usuário está tentando várias vezes mesmo recebendo a rejeição ou tem outra aplicação consultando as notas desse CNPJ.

Está não... Ele ficou 24 horas sem nem tentar consultar, mas sempre dá erro nele. Aí o que eu faço... Copio a base dele e tento consultar pela minha máquina (que por estar com o banco dele é como se fosse a dele nesse momento) e consulta de boa. O problema é só lá. Além desse computador, tem outros 2 com outros 2 CNPJs e certificados na mesma rede, e neles consulta normal. O que poderá ser esse mistério?

  • Consultores
Postado

Boa noite bnobre,

O mesmo ultNSU que consultou no cliente e deu rejeição, ao consultar no seu cenário funcionou?

Confirmando, foi o mesmo ultNSU? 

Quando você consultou no seu cenário, a sequência de ultNSU foi alterada e você atualizou o ultNSU no cliente para seguir a partir do ultNSU mais recente recebido no seu cenário?

Se o ambiente é via parâmetro, veja se no cliente não está como Homologação.

Tente no cliente fazer uma consulta com ultNSU zero para baixar novamente todos os NSUs disponíveis do período e "reiniciar" a contagem do ultNSU.

  • Consultores
Postado

Boa tarde bnobre,

Me explica isso: "O problema é só lá. Além desse computador, tem outros 2 com outros 2 CNPJs e certificados na mesma rede, e neles consulta normal." ?

O CNPJ base (8 primeiros dígitos) que está ocorrendo o problema é diferente desses outros 2 CNPJ que não ocorre o problema?

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

Oi @Renato Rubinho... Tudo bom meu amigo?

Vamos lá...

Citar

O mesmo ultNSU que consultou no cliente e deu rejeição, ao consultar no seu cenário funcionou?

Sim

Citar

Confirmando, foi o mesmo ultNSU? 

Sim

Citar

Quando você consultou no seu cenário, a sequência de ultNSU foi alterada e você atualizou o ultNSU no cliente para seguir a partir do ultNSU mais recente recebido no seu cenário?

Sim, tivesse esse cuidado.

Agora irei realizar o seguinte teste, acabo de fazer a consulta no cliente, que está desde ontem sem tentar consultar, e como esperado deu o erro de Consumo Indevido. Gerou corretamente (conforme o @Italo Giurizzato Junior explicou) os arquivos de consulta e retorno, que estão em anexo.

Agora copiei a base de dados do cliente e daqui a 2 horas irei tentar fazer a consulta pelo meu computador, para saber se irei conseguir, como aconteceu da primeira vez...

Vou postando os resultados.

20221005133427-con-dist-dfe.xml 20221005133429-dist-dfe.xml

12 minutos atrás, Italo Giurizzato Junior disse:

Boa tarde bnobre,

Me explica isso: "O problema é só lá. Além desse computador, tem outros 2 com outros 2 CNPJs e certificados na mesma rede, e neles consulta normal." ?

O CNPJ base (8 primeiros dígitos) que está ocorrendo o problema é diferente desses outros 2 CNPJ que não ocorre o problema?

Boa tarde Italo, tudo bom?

Sim... São CNPJs completamente diferentes, o cliente tem comércios diferentes.

Aí no mesmo lugar ele tem 3 micros, com 3 sistemas e CNPJs diferentes e gerencia a emissão de notas todas de lá.

  • Consultores
Postado
4 minutos atrás, bnobre disse:

Oi pessoal, tudo bom?

Acabou que não tive tempo de testar ontem e acabei realizando a consulta agora em minha máquina, funcionou perfeitamente. Não achou nenhum documento, mas consultou normal.

Segue em anexo os arquivos.

O que será que tem de errado nesse micro desse cliente?

 

20221006102831-dist-dfe.xmlUnavailable 20221006102830-con-dist-dfe.xmlUnavailable

envie os arquivos novamente por favor

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Consultores
Postado
14 minutos atrás, Daniel Simoes disse:

Você não conseguiu baixar, @Victor H. Gonzales - Panda ?

agora consegui...

 

1 hora atrás, bnobre disse:

Oi pessoal, tudo bom?

Acabou que não tive tempo de testar ontem e acabei realizando a consulta agora em minha máquina, funcionou perfeitamente. Não achou nenhum documento, mas consultou normal.

Segue em anexo os arquivos.

O que será que tem de errado nesse micro desse cliente?

 

20221006102831-dist-dfe.xml 437 B · 2 downloads 20221006102830-con-dist-dfe.xml 264 B · 2 downloads

Bom dia

06/10/2022 as 10:28:31 -03:00 você recebeu (137 sem documentos) e NSU 1077 (mesmo que o maxnsu), sendo assim as próximas consultas suas devem continuar deste.

e no dia 05/10/2022 você já tinha recebido também o mesmo NSU 1077, só que recebeu (656 como consumo indevido), se você está com o mesmo CNPJ 2, 3, 4 estações consumindo isso de forma descentralizada, você terá consumo indevido.
sugiro a leitura da NT2014.002, onde ela mostra todo o fluxo de trabalho e as regras de consumo indevido, como por exemplo se você em uma razão de 60 minutos tentar efetuar 2 consultas para o mesmo CNPJ tendo recebido CSTAT 137 (sem documentos) terá retorno (656 consumo indevido) e se insistir no consumo indevido o bloqueio é renovado em 1hora a cada penalidade.

Tudo indica que está havendo uma concorrência de aplicações.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado (editado)
1 hora atrás, Victor H. Gonzales - Panda disse:

envie os arquivos novamente por favor

Os da consulta que eu fiz hoje com sucesso? Se for, segue.

20221006102831-dist-dfe.xml 20221006102830-con-dist-dfe.xml

8 minutos atrás, Victor H. Gonzales - Panda disse:

agora consegui...

 

Bom dia

06/10/2022 as 10:28:31 -03:00 você recebeu (137 sem documentos) e NSU 1077 (mesmo que o maxnsu), sendo assim as próximas consultas suas devem continuar deste.

e no dia 05/10/2022 você já tinha recebido também o mesmo NSU 1077, só que recebeu (656 como consumo indevido), se você está com o mesmo CNPJ 2, 3, 4 estações consumindo isso de forma descentralizada, você terá consumo indevido.
sugiro a leitura da NT2014.002, onde ela mostra todo o fluxo de trabalho e as regras de consumo indevido, como por exemplo se você em uma razão de 60 minutos tentar efetuar 2 consultas para o mesmo CNPJ tendo recebido CSTAT 137 (sem documentos) terá retorno (656 consumo indevido) e se insistir no consumo indevido o bloqueio é renovado em 1hora a cada penalidade.

Tudo indica que está havendo uma concorrência de aplicações.

Olá...

Então meu amigo, ninguém consome esse WS além do cliente. Só ele faz essa consulta com o meu aplicativo.

O problema é que ao consultar na máquina dele dá esse erro. Aí eu copio o BD que tem tudo, certificado, dados da consulta, etc e reproduzo na minha máquina, e funciona.

Esse do dia 05/10/22 foi na dele, esse no dia 06/10/22 foi na minha. E eu só fiz hoje porque me enrolei ontem, se eu tivesse esperado passar 1 hora e tentasse na minha máquina, iria funcionar.

Não entendo o que está acontecendo lá. 

Editado por bnobre
  • Este tópico foi criado há 767 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.