NfeDownloadNF - Erro 109 Serviço Paralisado sem Previsão

1,628 views
Skip to first unread message

Miquéias Ferreira

unread,
Jun 5, 2017, 9:45:05 AM6/5/17
to NFePHP
Senhores,

Faço muito o uso do serviço de download do XML disponibilizado pela SEFAZ, mas desde quinta (eu acho) não estamos mais conseguindo baixar nenhuma NFe.

Alguém aqui sabe de alguma coisa sobre isso?
De fato não tem mais como baixar o XML via webservice?

Obrigado.

Roberto Machado

unread,
Jun 5, 2017, 9:53:31 AM6/5/17
to nfe...@googlegroups.com
Srs.

Conforme NOTA TÉCNICA da SEFAZ  este serviço JÁ foi desativado, como havia sido anunciado anteriormente

Roberto

Ricardo

unread,
Jun 5, 2017, 10:02:28 AM6/5/17
to nfe...@googlegroups.com
Roberto, isso foi publicado na última nota técnica?


--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+unsubscribe@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Miquéias Ferreira

unread,
Jun 5, 2017, 10:11:31 AM6/5/17
to NFePHP
Hunm... deixei passar essa NT então, desculpe.
Obrigado pela resposta...

E existe alguma alternativa para isso? 

Ricardo

unread,
Jun 5, 2017, 10:14:01 AM6/5/17
to nfe...@googlegroups.com
pois é....agora parece que só com DFe né?

Lucas Junqueira

unread,
Jun 5, 2017, 5:22:19 PM6/5/17
to NFePHP
Sim, pela nota técnica só é possível agora via "NfeDistribuicaoDFe". O item 3.7 da nota ténica fala sobre esse processo. Como fazer esse download, então, usando o nfephp?


Em segunda-feira, 5 de junho de 2017 11:14:01 UTC-3, Ricardo Marques escreveu:
pois é....agora parece que só com DFe né?
Em 5 de junho de 2017 11:11, Miquéias Ferreira <mique...@gmail.com> escreveu:
Hunm... deixei passar essa NT então, desculpe.
Obrigado pela resposta...

E existe alguma alternativa para isso? 


Em segunda-feira, 5 de junho de 2017 10:53:31 UTC-3, linux.rlm escreveu:
Srs.

Conforme NOTA TÉCNICA da SEFAZ  este serviço JÁ foi desativado, como havia sido anunciado anteriormente

Roberto

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com

Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.

Walber Sales

unread,
Jun 6, 2017, 2:38:15 AM6/6/17
to nfe...@googlegroups.com
Olá,

Utilizei a função

   public function sefazDistDFe
  
   $servico = 'NfeDistribuicaoDFe';

O serviço agora contempla, consultar pela chave.

A11 consChNFe  Grupo para consultar uma NF-e pela chave de acesso
A12 chNFe Chave de acesso específica.

 
Na versão 4.0 que esta congelada para alterações, consegui fazendo a seguinte adaptação na função,

   public function sefazDistDFe(
        $fonte = 'AN',
        $tpAmb = '2',
        $cnpj = '',
        $ultNSU = 0,
        $numNSU = 0,
        $chNFe='',
        &$aRetorno = array()
    ) {
...
$tagchNFe = "<consChNFe><chNFe>$chNFe</chNFe></consChNFe>";
 $cons = "<distDFeInt xmlns=\"$this->urlPortal\" versao=\"1.01\">"
            . "<tpAmb>$tpAmb</tpAmb>"
            . "<cUFAutor>$cUF</cUFAutor>"
            . "<CNPJ>$cnpj</CNPJ>".$tagchNFe."</distDFeInt>";

Lembre de colocar a versão 1.01 e a tag $tagchNFe

Na versão API 5.0 deve vir com esta tagchNFe atualizada.

retorno:
Array ( [bStat] => 1 [versao] => 1.01 [cStat] => 138 [xMotivo] => Documento localizado [dhResp] => 2017-06-06T03:37:27-03:00 [ultNSU] => [maxNSU] => [aDoc] => Array ( [0] => Array ( [NSU] => 000000000000603 [schema] => procNFe_v3.10.xsd [doc] =>...xml

Att.

Walber Sales
 


Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+unsubscribe@googlegroups.com.

andre...@grupocoqueiro.com.br

unread,
Jun 6, 2017, 10:56:50 AM6/6/17
to NFePHP
Bom dia,

Obrigado Walber, sua solução funcionou aqui.

Lucas Junqueira

unread,
Jun 6, 2017, 12:12:22 PM6/6/17
to NFePHP
Funcionou super bem aqui. Muito obrigado mesmo!

Walber Sales

unread,
Jun 6, 2017, 11:27:27 PM6/6/17
to nfe...@googlegroups.com
Olá,

Lucas , Andre : Lembrando que o ideal é migrar para 5.0

Na versão 5.0 o wsnfe_3.10_mod55.xml já esta atualizado para versão 1.01

 <NfeDistribuicaoDFe method="nfeDistDFeInteresse" operation="NFeDistribuicaoDFe" version="1.01">https://www1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx</NfeDistribuicaoDFe>       

Att:

Walber Sales

   


   


Em 6 de junho de 2017 11:56, <andrecosta@grupocoqueiro.com.br> escreveu:
Bom dia,

Obrigado Walber, sua solução funcionou aqui.

--

Fernando Moritz

unread,
Jun 9, 2017, 9:44:03 AM6/9/17
to NFePHP
Obrigado Walber, fiz aqui e deu certo, eu alterei a função sefazDownload utilizando essas alterações.

Agora também não é mais preciso dar ciência para fazer o download do xml.

Para quem interessar a função alterada por mim ficou assim:

    public function sefazDownload(
        $fonte = 'AN',
        $tpAmb = '2',
        $cnpj = '',
        $chNFe='',
        &$aRetorno = array()
    ) {
        if ($tpAmb == '') {
            $tpAmb = $this->aConfig['tpAmb'];
        }
        $siglaUF = $this->aConfig['siglaUF'];
        if ($cnpj == '') {
            $cnpj = $this->aConfig['cnpj'];
        }
        //carrega serviço
        $servico = 'NfeDistribuicaoDFe';
        $this->zLoadServico(
            'nfe',
            $servico,
            $fonte,
            $tpAmb
        );
        if ($this->urlService == '') {
            $msg = "A distribuição de documento DFe não está disponível na SEFAZ $fonte!!!";
            throw new Exception\RuntimeException($msg);
        }
        $cUF = self::zGetcUF($siglaUF);
        //monta a consulta
        $tagchNFe = "<consChNFe><chNFe>$chNFe</chNFe></consChNFe>";
$cons = "<distDFeInt xmlns=\"$this->urlPortal\" versao=\"1.01\">"
            . "<tpAmb>$tpAmb</tpAmb>"
            . "<cUFAutor>$cUF</cUFAutor>"
            . "<CNPJ>$cnpj</CNPJ>".$tagchNFe."</distDFeInt>";
        //montagem dos dados da mensagem SOAP
        $body = "<nfeDistDFeInteresse xmlns=\"$this->urlNamespace\">"
            . "<nfeDadosMsg xmlns=\"$this->urlNamespace\">$cons</nfeDadosMsg>"
            . "</nfeDistDFeInteresse>";
        //envia dados via SOAP e verifica o retorno este webservice não requer cabeçalho
        $this->urlHeader = '';
        $retorno = $this->oSoap->send(
            $this->urlService,
            $this->urlNamespace,
            $this->urlHeader,
            $body,
            $this->urlMethod
        );
        $lastMsg = $this->oSoap->lastMsg;
        $this->soapDebug = $this->oSoap->soapDebug;
//tratar dados de retorno
        $aRetorno = ReturnNFe::readReturnSefaz($servico, $retorno);
// baixar arquivo
// SO ME INTERESSA SALVAR ASSIM
if (strlen($aRetorno['aDoc'][0]['doc']) > 3000) { // só vai baixar se o retorno for com sucesso
$filename = "$chNFe.xml"; // eu salvo em pasta diferente
$this->zGravaFile('xml', $tpAmb, $filename, $aRetorno['aDoc'][0]['doc']);
}        
        return (string) $retorno;

Miquéias Ferreira

unread,
Jun 9, 2017, 10:20:27 AM6/9/17
to nfe...@googlegroups.com
Legal Fernando!
Vou testar aqui e te falo.

Aproveito para agradecer a todos que postaram aqui, muito obrigado mesmo!


--------------------------------------------------------------|
Miquéias F. Ferreira  
Analista de Sistemas
Desenvolvedor Web
--------------------------------------------------------------|
"O único lugar onde o sucesso vem antes do trabalho é no dicionário." - Albert Einstein

Você recebeu essa mensagem porque está inscrito em um tópico no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/nfephp/a7JTgfNvqJk/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para nfephp+unsubscribe@googlegroups.com.

cacio silva

unread,
Jun 9, 2017, 10:22:32 AM6/9/17
to NFePHP
Cara coloquei sua alteração , e me deparo com o seguinte erro,

<?xml version="1.0" encoding="utf-8"?><soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><soap12:Header></soap12:Header><soap12:Body><nfeDistDFeInteresse xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeDistribuicaoDFe"><nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeDistribuicaoDFe"><distDFeInt xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01"><tpAmb>2</tpAmb><cUFAutor>91</cUFAutor><CNPJ>97316293000152</CNPJ><consChNFe><chNFe>43170602723486000111550010000843471000843473</chNFe></consChNFe></distDFeInt></nfeDadosMsg></nfeDistDFeInteresse></soap12:Body></soap12:Envelope>

URL=https://hom.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx
CONTENT_TYPE=application/soap+xml; charset=utf-8
REDIRECT_URL=
PRIMARY_IP=189.9.67.78
LOCAL_IP=192.168.0.19

HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Content-Type: application/soap+xml; charset=utf-8
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 09 Jun 2017 14:15:54 GMT
Content-Length: 827

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><nfeDistDFeInteresseResponse xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeDistribuicaoDFe"><nfeDistDFeInteresseResult><retDistDFeInt xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" versao="1.01" xmlns="http://www.portalfiscal.inf.br/nfe"><tpAmb>2</tpAmb><verAplic>1.1.9</verAplic><cStat>215</cStat><xMotivo>Rejeicao: Falha no esquema xml</xMotivo><dhResp>2017-06-09T11:15:54-03:00</dhResp><ultNSU>000000000000000</ultNSU><maxNSU>000000000000000</maxNSU></retDistDFeInt></nfeDistDFeInteresseResult></nfeDistDFeInteresseResponse></soap:Body></soap:Envelope>

Array ( [bStat] => 1 [versao] => 1.01 [cStat] => 215 [xMotivo] => Rejeicao: Falha no esquema xml [dhResp] => 2017-06-09T11:15:54-03:00 [ultNSU] => 000000000000000 [maxNSU] => 000000000000000 [aDoc] => Array ( ) ) 

cacio silva

unread,
Jun 9, 2017, 10:42:04 AM6/9/17
to NFePHP
tive uma luz aqui e  que deu certo

Edwin Schissato

unread,
Jun 9, 2017, 11:07:33 AM6/9/17
to nfe...@googlegroups.com
Pessoal, tive uma certa dificuldade pra conseguir extrair a nota que vem em GZIP ao NfeDistribuicaoDFe por chave de acesso.

Segue o trecho de código que extrai o xml em gzip pra quem interessar:

            $retNFe_procNFeZip = $retNFe->getElementsByTagName('docZip')->item(0);

            if (isset($retNFe_procNFeZip)) {

                file_put_contents($this->tempDir."$chNFe-procNFe.gz",base64_decode($retNFe_procNFeZip->nodeValue));
                $buffer_size = 4096; // read 4kb at a time
                $file = gzopen($this->tempDir."$chNFe-procNFe.gz", 'rb');
                $out_file = fopen("".$this->recDir.$chNFe."-procNFe.xml", 'wb'); 
                while (!gzeof($file)) {
                    fwrite($out_file, gzread($file, $buffer_size));
                }
                fclose($out_file);
                gzclose($file);
                
                $xml = file_get_contents("".$this->recDir.$chNFe."-procNFe.xml");                
                
                unlink($this->tempDir."$chNFe-procNFe.gz");
            }


Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+unsubscribe@googlegroups.com.
Message has been deleted

Sebastiao Marcos

unread,
Jun 9, 2017, 4:23:05 PM6/9/17
to NFePHP
$strinZip = base64_decode($doc->getElementsByTagName('docZip')->item(0)->nodeValue);
$file = gzdecode($strinZip, 10000);
print_r($file);

Edwin isso pode melhorar mais um pouco o seu exemplo.

Sebastiao Marcos

unread,
Jun 9, 2017, 4:26:13 PM6/9/17
to NFePHP
Pessoal alguém teria um exemplo de como fazer um download notas emitidas contra seu cnpj ? porque ao realizar o teste do distDFe vem muitos eventos, ao qual preciso filtrar para pegar apenas as notas referentes a emissão contra minha empresa.

Edwin Schissato

unread,
Jun 9, 2017, 4:31:29 PM6/9/17
to nfe...@googlegroups.com
Obrigado Sebastiao, vou tentar dessa forma, mas eu tinha tentado sem gerar o arquivo gzip e não tinha dado certo.

Em 9 de junho de 2017 17:26, Sebastiao Marcos <bastin...@gmail.com> escreveu:
Pessoal alguém teria um exemplo de como fazer um download notas emitidas contra seu cnpj ? porque ao realizar o teste do distDFe vem muitos eventos, ao qual preciso filtrar para pegar apenas as notas referentes a emissão contra minha empresa.

--

Roberto Machado

unread,
Jun 9, 2017, 4:42:42 PM6/9/17
to nfe...@googlegroups.com
Sebastião;

Eu faço o seguinte:

1 - pego todos os NSU's (sem exceção)
2 - os eventos coloco em uma tabela a parte (eles poderão estar vinculados as minhas notas ou as notas destinadas)
3 - os resumos das NFe coloco em outra tabela, temporária (pois serão removidos depois de receber a nota)
4 - rodo um script que pega os resumos e manifesta (registro o resultado na tabela dos resumos)
5 - ao receber a NFe removo o resumo (se existir) a salvo a NFe em sua própria tabela

Note que caso um cliente declare que a operação foi realizada é o mesmo que assinar o canhoto da nota, tem validade jurídica. 

Roberto

Message has been deleted

Edwin Schissato

unread,
Jun 9, 2017, 4:55:47 PM6/9/17
to nfe...@googlegroups.com
Mas qual a desvantagem ou vantagem de fazer o manifesto? 

Em 9 de junho de 2017 17:53, Sebastiao Marcos <bastin...@gmail.com> escreveu:
Com essa nova forma de download, mesmo assim ainda preciso fazer o manifesto ?

Sebastiao Marcos

unread,
Jun 9, 2017, 5:08:01 PM6/9/17
to NFePHP
Roberto, eu posso rodar esse script de 5 em 5 minutos ? não estou encontrando essa informação na NT. A também quero agradecer pelo excelente trabalho.

Roberto Machado

unread,
Jun 9, 2017, 5:16:24 PM6/9/17
to nfe...@googlegroups.com
Sebastião;

Primeiro preciso entender o que você chama de script ?

um exemplo de uma aplicação essa é uma função de uma classe

    public function search($limit = 50)
    {
        $ultNSU = $this->nsus->getLastNSU($this->cad->id_empresa);
        $maxNSU = $ultNSU;
        $iCount = 0;
        //executa a busca de DFe em loop
        while ($ultNSU <= $maxNSU) {
            $iCount++;
            if ($iCount >= $limit) {
                break;
            }
            try {
                $this->tools->setEnvironment(1);
                /////AQUI A CHAMADA DA FUNCAO DA API NFEPHP v5.0
                $resp = $this->tools->sefazDistDFe($ultNSU);
            } catch (\Exception $e) {
                $error = $e->getMessage();
                $this->logger->error("Exception: $error");
            }
            //extrair e salvar os retornos
            $dom = new \DOMDocument();
            $dom->loadXML($resp);
            $node = $dom->getElementsByTagName('retDistDFeInt')->item(0);
            $tpAmb = $node->getElementsByTagName('tpAmb')->item(0)->nodeValue;
            $verAplic = $node->getElementsByTagName('verAplic')->item(0)->nodeValue;
            $cStat = $node->getElementsByTagName('cStat')->item(0)->nodeValue;
            $xMotivo = $node->getElementsByTagName('xMotivo')->item(0)->nodeValue;
            $dhResp = $node->getElementsByTagName('dhResp')->item(0)->nodeValue;
            $ultNSU = $node->getElementsByTagName('ultNSU')->item(0)->nodeValue;
            $maxNSU = $node->getElementsByTagName('maxNSU')->item(0)->nodeValue;
            $lote = $node->getElementsByTagName('loteDistDFeInt')->item(0);
            if (empty($lote)) {
                continue;
            }
            $docs = $lote->getElementsByTagName('docZip');
            $d = [];
            foreach ($docs as $doc) {
                $numnsu = $doc->getAttribute('NSU');
                $schema = $doc->getAttribute('schema');
                $content = gzdecode(base64_decode($doc->nodeValue));
                $tipo = substr($schema, 0, 6);
                $processo = "p$tipo";
                $nodom = new DOMDocument();
                $nodom->loadXML($content);
                //processa o conteudo do NSU
                $this->$processo($nodom, $numnsu, $content, $tipo);
            }
            sleep(5);
        }
        return true;
    }



Veja que esse processo ocorre em um loop com até 50 iterações e cada iteração a cada 5 segundos

Essa função é invocada com um intervalo de  2 ou 3 horas 

Roberto

Sebastiao Marcos

unread,
Jun 9, 2017, 5:41:39 PM6/9/17
to NFePHP
Muito bem, era essa a minha dúvida, no caso vou poder fazer tanto o download como manifesto com intervalos curtos, a questão é que eu não queria que demorasse mais que 5 ou 10 minutos para o meu sistema reconhecer uma nota que foi emitida contra meu cliente.

FerreiraH.

unread,
Jun 9, 2017, 5:46:24 PM6/9/17
to NFePHP

Eu encontrei este trecho na nota tecnica
A empresa deverá aguardar um tempo mínimo de uma hora para efetuar uma nova solicitação de
distribuição caso receba a indicação que não existem mais documentos a serem pesquisados na
base de dados do Ambiente Nacional. Se o NSU informado (tag:ultNSU) for igual ao maior NSU do
Ambiente Nacional (tag:maxNSU), então não existem mais documentos a serem pesquisados no
momento.


Em Sex, 9 de jun de 2017 18:41, Sebastiao Marcos <bastin...@gmail.com> escreveu:
Muito bem, era essa a minha dúvida, no caso vou poder fazer tanto o download como manifesto com intervalos curtos, a questão é que eu não queria que demorasse mais que 5 ou 10 minutos para o meu sistema reconhecer uma nota que foi emitida contra meu cliente.

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com

Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.

Leandro Alfredo

unread,
Jun 12, 2017, 10:49:24 AM6/12/17
to NFePHP
Comigo não deu certo, estou utilizando desta maneira o download. Pode dar uma luz?

 public function sefazDownload($chNFe = '', $tpAmb = '', $cnpj = '', &$aRetorno = array())
    {
        if ($tpAmb == '') {
            $tpAmb = $this->aConfig['tpAmb'];
        }
        if ($cnpj == '') {
            $cnpj = $this->aConfig['cnpj'];
        }
        //carrega serviço
        $servico = 'NfeDownloadNF';
        $this->zLoadServico(
            'nfe',
            $servico,
            'AN',
            $tpAmb
        );
        if ($this->urlService == '') {
            $msg = "O status n&atilde;o est&aacute; dispon&iacute;vel na SEFAZ !!!";
            throw new Exception\RuntimeException($msg);
        }
        $cons = "<downloadNFe xmlns=\"$this->urlPortal\" versao=\"1.01\">"
                . "<tpAmb>$tpAmb</tpAmb>"
                . "<xServ>DOWNLOAD NFE</xServ>"
                . "<CNPJ>$cnpj</CNPJ>"
                . "<chNFe>$chNFe</chNFe>"
                . "</downloadNFe>";
        //validar mensagem com xsd
        //if (! $this->validarXml($cons)) {
        //    $msg = 'Falha na validação. '.$this->error;
        //    throw new Exception\RuntimeException($msg);
        //}
        //montagem dos dados da mensagem SOAP
        $body = "<nfeDadosMsg xmlns=\"$this->urlNamespace\">$cons</nfeDadosMsg>";
        //consome o webservice e verifica o retorno do SOAP
        $retorno = $this->oSoap->send(
            $this->urlService,
            $this->urlNamespace,
            $this->urlHeader,
            $body,
            $this->urlMethod
        );
        $lastMsg = $this->oSoap->lastMsg;
        $this->soapDebug = $this->oSoap->soapDebug;
        $filename = "$chNFe-downnfe.xml";
        $this->zGravaFile('nfe', $tpAmb, $filename, $lastMsg);
        $filename = "$chNFe-retDownnfe.xml";
        $this->zGravaFile('nfe', $tpAmb, $filename, $retorno);
        //tratar dados de retorno
        $aRetorno = ReturnNFe::readReturnSefaz($servico, $retorno);
        return (string) $retorno;
    }

obrigado

Em sexta-feira, 9 de junho de 2017 10:44:03 UTC-3, Fernando Moritz escreveu:

marcelo...@gmail.com

unread,
Jun 21, 2017, 8:27:52 AM6/21/17
to NFePHP
Cacio, bom dia.

To com o mesmo problema. Pode dizer como fez pra corrigir?

Felipe Trindade

unread,
Jul 4, 2017, 4:44:24 PM7/4/17
to NFePHP
Cacio, desculpa voltar nesse assunto... Mas estou passando pelo mesmo problema... Poderia me dizer o que estava causando esse problema com você? Estou tendo exatamente o mesmo problema...

adriano Santos

unread,
Jul 12, 2017, 8:09:57 AM7/12/17
to NFePHP
Pessoal, preciso fazer o download do xml, sendo que já tenho a chave.

tentei as implementações mas não consegui, alguém poderia dar um exemplo mais claro.

adriano Santos

unread,
Jul 17, 2017, 11:00:21 AM7/17/17
to NFePHP
Edwin, pode me explicar melhor essa conversão?

FABIO MATEUS

unread,
Jul 18, 2017, 12:59:18 PM7/18/17
to NFePHP
Adriano, o que o Edwin quer dizer é que os DF-e's retornados são zipados, ele simplesmente está descompactando e salvando os documentos em arquivo xml para trata-los posteriormente.

o DF-e vem misturado notas fiscais(já manifestada) com somente resumos de notas fiscais, você tem que tratar cada documento separadamente. Porém essa é uma alternativa, eu descompacto e armazeno no banco de dados e depois trato cada retorno. Se for NFE salvo na tabela oficial de NFE se for só o resumo já manifesto e faço o download. Lembrando que existem normas para consumir a API da SEFAZ.

adriano Santos

unread,
Jul 18, 2017, 1:42:09 PM7/18/17
to NFePHP

esqueci de comentar, consegui desenvolver algo para descompactar o zip. Obrigado.

Jefferson

unread,
Jul 28, 2017, 7:48:05 AM7/28/17
to NFePHP
Oi Fabio,

No caso de já manifestar a NFe (resumo) não seria um problema nos casos de "Desconhecimento da Operação" e "Operação não Realizada"?
Outra dúvida é como tenho acesso a nota completa após a manifestação, sem ser durante a manifestação?


Em terça-feira, 18 de julho de 2017 13:59:18 UTC-3, FABIO MATEUS escreveu:

Roberto Machado

unread,
Jul 28, 2017, 8:19:32 AM7/28/17
to nfe...@googlegroups.com
Jefferson;

Pelo amor de DEUS leia a documentação da SEFAZ, antes de inferir !!!!

A manifestação de "Ciência da Operação" é feita sobre o resumo, justamente para poder receber a NFe completa !!!!!!!!!!!!!!! sem isso você NUNCA receberá a NFe completa !!!!!!!!!!!!

Roberto

Jefferson

unread,
Jul 28, 2017, 8:35:27 AM7/28/17
to NFePHP
Roberto, acho que você não entendeu a minha pergunta!

O Fabio disse que faz a manifestação automática, aí eu perguntei se isso não seria um problema uma vez que essa ação deve ser analisada nota a nota, estou errado? Penso que se for pra fazer de forma automática não tem necessidade de 04 opções diferentes.

É CLARO QUE EU SEI que a manifestação é feita sobre o resumo, a minha dúvida é como posso pegar a nota (manifestada) um outro dia por exemplo, se isso é possível.

Roberto Machado

unread,
Jul 28, 2017, 8:43:51 AM7/28/17
to nfe...@googlegroups.com
Sem duvida !!! eu entendi errado ! Acordei com o pé esquerdo hoje 🤒

Sim É MUITO RUIM fazer manifestações automáticas, eu mesmo não permito ISSO, nem mesmo a "CIÊNCIA DA OPERAÇÃO".

Mas dentre as manifestações de destinatário essa é a unica que pode ser feita dessa forma SEM grandes consequências, portanto é factível manifestar a "CIÊNCIA DA OPERAÇÃO" automaticamente, mesmo que não seja recomendado. 

Abraço
Roberto

Jefferson

unread,
Jul 28, 2017, 8:52:15 AM7/28/17
to NFePHP
Muito obrigado e por favor me desculpe por não ter sido claro inicialmente em minha pergunta.

FABIO MATEUS

unread,
Aug 3, 2017, 3:25:40 PM8/3/17
to NFePHP
1º não disse que a API faz a manifestação automática, o que fiz aqui na empresa onde trabalho é um processo onde o meu nfephp(v4.0) manifesta caso a nota não esteja manifestada e somente com a 'CIÊNCIA DA OPERAÇÃO' assim podemos remanifesta-la posteriormente, assim como o Roberto disse, não é aconselhável mas é a única forma de baixar o xml completo assim que a nfe é emitida pelo seu fornecedor.

pra pegar a nota já manifestada por outro software ou usuário, até onde eu sei, na versão 4.0 da API somente com o ultNSU, dê uma lida sobre o ultNSU(no arquivo de exemplo já dá pra ter uma ideia mas aconselho ler a NT) para mais informações pois se vc não tem o ultNSU ele retorna os documentos emitidos contra seu CNPJ nos ultimos 15 dias, a partir daí você que tem que armazenar os NSU's que lhe são fornecidos.

marcelo...@gmail.com

unread,
Oct 23, 2017, 8:31:40 AM10/23/17
to NFePHP

Desculpem "revisitar" esse assunto... Mas mais alguém com problema aqui?

Eu passei a receber novamente o erro:

    [cStat] => 215
    [xMotivo] => Rejeicao: Falha no esquema xml

Da primeira vez era o estado que estava esquecendo... Mas corrigi isso a meses atrás não mudei nada e o erro voltou. Desde semana passada assim... Já verifiquei aqui e aparentemente minha estrutura de XML está correta...


<nfeDistDFeInteresse xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeDistribuicaoDFe"><nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeDistribuicaoDFe"><distDFeInt xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01"><tpAmb>1</tpAmb><cUFAutor>XX</cUFAutor><CNPJ>88888888888888</CNPJ><consNSU><NSU>000000000000000</NSU></consNSU></distDFeInt></nfeDadosMsg></nfeDistDFeInteresse>


Roberto Machado

unread,
Oct 23, 2017, 8:34:22 AM10/23/17
to nfe...@googlegroups.com
Por favor !!! abra um POST com o titulo correto !!!! 

Evite usar outros posts que NADA tem haver o o seu problema !!!

Isso só causa CONFUSÃO !!!

Roberto

marcelo...@gmail.com

unread,
Oct 23, 2017, 8:39:04 AM10/23/17
to NFePHP
Desculpe... Farei isso agora mesmo...
Reply all
Reply to author
Forward
0 new messages