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.