Baixar XML contra meu CNPJ

166 views
Skip to first unread message

Luiz Carlos Ferreira

unread,
Nov 11, 2024, 6:26:41 PM11/11/24
to nfe...@googlegroups.com

Olá!

Existe alguma classe que eu consiga usar para baixar o XML completo de uma NF-e (utilizando a chave de acesso ou o NSU) vinculada ao meu CNPJ? Já tentei várias classes, como sefazDistDFe, sefazDownload, sefazConsultaRecibo, sefazConsultaChave, mas não obtive o resultado esperado. Preciso do XML completo relacionado ao meu CNPJ, pois sou o destinatário da nota.

Denis Brandl

unread,
Nov 12, 2024, 8:36:00 AM11/12/24
to nfe...@googlegroups.com
A solução Integra Notas (https://www.integranotas.com.br/) tem esse recurso e nem custa tanto assim.

Mas se quiser desenvolver do zero, o Roberto chegou a fazer um protótipo uns anos atras e disponibilizou em https://github.com mas não sei o quanto isto ainda está funcional.

On Mon, Nov 11, 2024 at 8:26 PM Luiz Carlos Ferreira <luiz.t...@gmail.com> wrote:

Olá!

Existe alguma classe que eu consiga usar para baixar o XML completo de uma NF-e (utilizando a chave de acesso ou o NSU) vinculada ao meu CNPJ? Já tentei várias classes, como sefazDistDFe, sefazDownload, sefazConsultaRecibo, sefazConsultaChave, mas não obtive o resultado esperado. Preciso do XML completo relacionado ao meu CNPJ, pois sou o destinatário da nota.

--
--
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órios: https://github.com/nfephp-org
---
You received this message because you are subscribed to the Google Groups "NFePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nfephp+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/nfephp/CAGxZD4wq4LketTzNvARhMVA0VrRzY20gZp6e4giLbFaKb_29tA%40mail.gmail.com.


--
Denis Brandl
den...@gmail.com
-----------------------------------------------------------
Ter problemas na vida é Inevitável, ser derrotado por eles é Opcional

Luiz Carlos Ferreira

unread,
Nov 12, 2024, 9:05:16 AM11/12/24
to nfe...@googlegroups.com

Obrigado Denise!! Já tenho meu sistema próprio usando os protótipo do Roberto, já consigo emitir, cancelar, imprimir e baixar os XMLs e PDFs n as notas, até consegui pegar todas chaves das notas metidas conta meu CNPJ, mas não estou conseguindo o XML completo, conteúdos os dados do emitente e dos produtos


Anderson Machado

unread,
Nov 12, 2024, 9:15:38 AM11/12/24
to nfe...@googlegroups.com
Para você baixar o xml completo, voce precisa manifestar a nota.

Luiz Carlos Ferreira

unread,
Nov 12, 2024, 9:51:18 AM11/12/24
to nfe...@googlegroups.com

Anderson, obrigado pela resposta, eu quero é baixar um XML completo de uma nota emitida contra meu CNPJ


Rangel Almeida

unread,
Nov 12, 2024, 10:42:38 AM11/12/24
to NFePHP
Não sei como vc esta fazendo, mas existem duas etapas e duas formas.

1 - Controlar por NSU vc baixa os dados. vc faz a ciencia da operação. na proxima chamada ele baixa o os xmls que ja estão disponíveis. A chamada é a mesma a diferença é que ele traz um xml com todos os dados

2 - Após ja ter os dados basicos, vc pode baixar pela chave


É um resumo bem grotesco... mas se olhar aqui no fórum, vai achar outras explicações do Roberto, bem detalhadas.

O Principal é olhar o manual e entender como funciona o processo.

Att,
Rangel.

Luiz Carlos Ferreira

unread,
Nov 12, 2024, 6:08:02 PM11/12/24
to nfe...@googlegroups.com

Olá, Rangel, boa noite!

Estou enviando uma parte do código PHP puro que estou testando. 

Nele, estou capturando a chave de acesso via parâmetro GET.

Estou incluindo comentários detalhados no código para facilitar a compreensão dos passos, e por questão de privacidade alterei algumas informações pelo XXXXXX.

Caso tenha sugestões ou melhorias, ficarei grato pelo feedback!

<?php
require 'vendor/autoload.php';  // Inclua o autoload do NFePHP
use NFePHP\NFe\Tools;
use NFePHP\Common\Certificate;
use NFePHP\NFe\Common\Standardize;



try {

    // Defina a chave de acesso e os detalhes do certificado
    $chave = $_GET['chave']; // A chave de acesso da NF-e que você quer consultar
    $pfxcontent = file_get_contents('certificado.pfx'); // Caminho para o seu certificado
    $password = "xxxxx";  // Senha do seu certificado digital

    $configJson = file_get_contents('config.json');

    $tools = new Tools($configJson, Certificate::readPfx($pfxcontent, $password));
    //só funciona para o modelo 55
    $tools->model('55');
    //este serviço somente opera em ambiente de produção
    $tools->setEnvironment(1); // Ambiente de produção
    $response = $tools->sefazDownload($chave);
    try {
        $stz = new Standardize($response);
        $std = $stz->toStd();
        if ($std->cStat != 138) {
            echo "Erro: Documento não retornado. Código: [$std->cStat] - Motivo: $std->xMotivo";
            echo "<pre>";
            print_r($std);  // Exibe o objeto completo para depuração
            echo "</pre>";
            die;
        }
        $zip = $std->loteDistDFeInt->docZip;
        $xml = gzdecode(base64_decode($zip));

        echo "<pre>" . htmlspecialchars($xml) . "</pre>";
    } catch (\Exception $e) {
        echo str_replace("\n", "<br/>", $e->getMessage());
    }
} catch (\Exception $e) {
    echo str_replace("\n", "<br/>", $e->getMessage());
}

Esta me retornando, achei que deveria me retornar o XML completo:

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" versao="1.01"
    <chNFe>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</chNFe>
    <CNPJ>xxxxxxxxxxxxx</CNPJ>
    <xNome>GRUPO xxxxxxx</xNome>
    <IE>xxxxxxxxxxxx</IE>
    <dhEmi>2024-11-09T10:38:00-03:00</dhEmi>
    <tpNF>1</tpNF>
    <vNF>213.08</vNF>
    <digVal>/CQCrl38OypmDKZjB+I9Ts7Xfj4=</digVal>
    <dhRecbto>2024-11-09T10:36:24-03:00</dhRecbto>
    <nProt>13124628xxxxxx</nProt>
    <cSitNFe>1</cSitNFe>
</resNFe>

Rangel Almeida

unread,
Nov 12, 2024, 7:43:53 PM11/12/24
to nfe...@googlegroups.com
Nesse trecho abaixo

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" versao="1.01"
    <chNFe>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</chNFe>
    <CNPJ>xxxxxxxxxxxxx</CNPJ>
    <xNome>GRUPO xxxxxxx</xNome>
    <IE>xxxxxxxxxxxx</IE>
    <dhEmi>2024-11-09T10:38:00-03:00</dhEmi>
    <tpNF>1</tpNF>
    <vNF>213.08</vNF>
    <digVal>/CQCrl38OypmDKZjB+I9Ts7Xfj4=</digVal>
    <dhRecbto>2024-11-09T10:36:24-03:00</dhRecbto>
    <nProt>13124628xxxxxx</nProt>
    <cSitNFe>1</cSitNFe>
</resNFe>

Você precisa salvar esse retorno. depois precisa manifestar essa nota
somente depois disso, vai conseguir baixar o xml completo.

Att,

Marcus Vinicius Brasizza

unread,
Nov 13, 2024, 5:28:08 AM11/13/24
to nfe...@googlegroups.com
Opa blz!?
Esse cSitNfe = 1, significa que a nota nao foi manifestada ainda, ai ele so traz as informações basicas. Vc precisa dar ciência da nota e aí sim a nota  vem completa


Em ter., 12 de nov. de 2024 às 20:07, Luiz Carlos Ferreira <luiz.t...@gmail.com> escreveu:
Reply all
Reply to author
Forward
0 new messages