Pular para o conteúdo principal

Downloads

Os recursos de nota expõem métodos para baixar PDF e XML. No SDK PHP o contrato é um só: todo método download*() / getPdf() / getXml() retorna os bytes crus do arquivo como uma string PHP — não um stream, não um objeto de arquivo, não uma URI.

Salvando um arquivo

file_put_contents(
'nota.pdf',
$nfe->serviceInvoices->downloadPdf($companyId, $invoiceId),
);

file_put_contents(
'nota.xml',
$nfe->serviceInvoices->downloadXml($companyId, $invoiceId),
);

O mesmo padrão vale para todos os recursos:

// NF-e (DANFE) emitida pela sua empresa:
$pdf = $nfe->productInvoices->downloadPdf($companyId, $invoiceId);

// NF-e de terceiros, por chave de acesso (44 dígitos):
$danfe = $nfe->productInvoiceQuery->downloadPdf($accessKey);

// XML de CT-e recebido:
$xml = $nfe->transportationInvoices->downloadXml($companyId, $accessKey);

// Documentos de entrada (DF-e):
$pdf = $nfe->inboundProductInvoices->getPdf($companyId, $accessKey);
Diferença em relação aos SDKs Node.js e Ruby

No SDK Ruby, os downloads de product_invoices devolvem um objeto com a URI do arquivo; no Node, um Buffer. No PHP não há exceção: todos os downloads — inclusive os de productInvoices — devolvem a string de bytes pronta para gravar. Não portar esse detalhe cegamente de outro SDK.

Métodos de download por recurso

RecursoMétodos
serviceInvoicesdownloadPdf, downloadXml
productInvoicesdownloadPdf, downloadXml, downloadRejectionXml, downloadEpecXml, downloadCorrectionLetterPdf, downloadCorrectionLetterXml
consumerInvoicesdownloadPdf, downloadXml, downloadRejectionXml
transportationInvoicesdownloadXml, downloadEventXml
inboundProductInvoicesgetPdf, getXml, getEventXml
productInvoiceQuerydownloadPdf, downloadXml
consumerInvoiceQuerydownloadXml

Como o SDK segue o redirecionamento para o CDN

Alguns endpoints de download respondem com um redirect (302/303/307) para um CDN (por exemplo, S3). O SDK segue o redirecionamento em uma segunda requisição sem o header Authorization — sua chave de API nunca chega ao host do CDN. Isso é transparente: você recebe os bytes finais.

Memória

Como o retorno é uma string em memória, arquivos muito grandes (ZIPs de período inteiro, por exemplo) ocupam RAM proporcional ao tamanho. Para volumes altos, baixe em lotes menores.

Próximos passos

NFE.io

A NFE.io é uma empresa de tecnologia que fornece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas. Com suas ferramentas, as empresas podem economizar tempo e reduzir erros, aumentando a eficiência e precisão do processo de emissão de notas fiscais.

Um dos principais cases de sucesso da NFE.io é a implementação da solução na empresa de transporte Rodonaves. Com a automatização da emissão e gestão de notas fiscais eletrônicas, a Rodonaves conseguiu reduzir em até 80% o tempo gasto nesse processo, o que se traduziu em uma significativa melhoria na eficiência operacional. Além disso, a empresa também conseguiu eliminar erros e atrasos na emissão de notas fiscais, o que melhorou a relação com seus clientes e aumentou a confiança dos órgãos fiscais.

Outro exemplo é a implementação da NFE.io na empresa de comércio eletrônico, a Loja Integrada. Com a automatização da emissão de notas fiscais, a Loja Integrada conseguiu aumentar a velocidade de emissão de notas em até 10 vezes, o que permitiu que a empresa atendesse a uma maior quantidade de clientes e, consequentemente, aumentar as suas vendas.

Além desses exemplos, a NFE.io também tem outros cases de sucesso com empresas de setores como indústria, construção, varejo e serviços, mostrando a versatilidade e eficácia da sua solução.

Em resumo, a NFE.io é uma empresa de tecnologia que oferece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas, ajudando as empresas a economizar tempo e reduzir erros, melhorando a eficiência e precisão do processo. Com cases de sucesso em diferentes setores, a NFE.io tem se destacado como uma empresa líder em automação fiscal.