Pular para o conteúdo principal

Notas fiscais de produto (NF-e)

$nfe->productInvoices cobre o ciclo de vida completo da NF-e (modelo 55) no host api.nfse.io, sob /v2: emissão, listagem por cursor, consulta, cancelamento, carta de correção (CC-e), inutilização e downloads.

A emissão segue o contrato 202 discriminado (assíncrona; conclusão via webhook): create() / createWithStateTax() devolvem ProductInvoicePending|ProductInvoiceIssued. Não há createAndWait() nem createBatch().

Prefira webhooks para NF-e

Diferente da NFS-e, productInvoices não tem getStatus(). A conclusão da emissão é orientada a webhook — configure um alvo em Webhooks. Se precisar de polling, use retrieve() e leia o campo de fluxo do DTO.

Métodos

MétodoDescriçãoRetorno
create($companyId, $data)Emite a NF-e.ProductInvoicePending|ProductInvoiceIssued
createWithStateTax($companyId, $stateTaxId, $data)Emite vinculada a uma inscrição estadual.ProductInvoicePending|ProductInvoiceIssued
list($companyId, $options)Lista por cursor; $options obrigatório com environment.ListResponse
retrieve($companyId, $invoiceId)Consulta por id.ProductInvoice
cancel($companyId, $invoiceId, $reason = null)Cancela; reason opcional vai na query.ProductInvoice
listItems($companyId, $invoiceId)Lista os itens da nota.array (arrays crus)
listEvents($companyId, $invoiceId)Lista os eventos fiscais.array (arrays crus)
downloadPdf($companyId, $invoiceId)DANFE PDF.string (bytes crus)
downloadXml($companyId, $invoiceId)XML autorizado.string
downloadRejectionXml($companyId, $invoiceId)XML de rejeição.string
downloadEpecXml($companyId, $invoiceId)XML de contingência EPEC.string
sendCorrectionLetter($companyId, $invoiceId, $correction)Emite CC-e.array
downloadCorrectionLetterPdf($companyId, $invoiceId)PDF da CC-e.string
downloadCorrectionLetterXml($companyId, $invoiceId)XML da CC-e.string
disable($companyId, $invoiceId, $data)Inutiliza uma nota específica.array
disableRange($companyId, $data)Inutiliza uma faixa de numeração.array

Emitir uma NF-e

use Nfe\Response\Pending;

$result = $nfe->productInvoices->create('55df4dc6b6cd9007e4f13ee8', [
'buyer' => [
'federalTaxNumber' => 11111111111111,
'name' => 'Cliente Exemplo LTDA',
],
'items' => [
['code' => '001', 'description' => 'Produto X', 'quantity' => 1, 'unitAmount' => 99.9],
],
]);

if ($result instanceof Pending) {
$result->invoiceId(); // acompanhe via webhook ou retrieve()
} else {
$result->resource(); // Nfe\ProductInvoice
}

Para emitir vinculada a uma inscrição estadual específica (veja Inscrições estaduais):

$result = $nfe->productInvoices->createWithStateTax($companyId, $stateTaxId, $data);

Listar com environment obrigatório

A paginação é por cursor e o argumento $options é obrigatório — precisa conter environment (string "Production" ou "Test").

$pagina = $nfe->productInvoices->list($companyId, [
'environment' => 'Production',
'limit' => 50,
]);

foreach ($pagina->data as $nf) {
echo $nf->id, PHP_EOL;
}

// Próxima página:
$proxima = $nfe->productInvoices->list($companyId, [
'environment' => 'Production',
'startingAfter' => $pagina->page->startingAfter,
'limit' => 50,
]);
environment é o ambiente da SEFAZ

Este environment (string) é um parâmetro real de ambiente da SEFAZ, separado da configuração produção/teste da conta (definida em app.nfe.io). O enum Nfe\Environment do cliente está reservado para uso futuro.

Baixar arquivos (bytes crus)

Todos os downloads devolvem a string de bytes — grave com file_put_contents():

file_put_contents('danfe.pdf', $nfe->productInvoices->downloadPdf($companyId, $invoiceId));
file_put_contents('nfe.xml', $nfe->productInvoices->downloadXml($companyId, $invoiceId));

Carta de correção (CC-e)

Um texto vazio ou só com espaços lança Nfe\Exception\InvalidRequestException antes de qualquer HTTP.

$nfe->productInvoices->sendCorrectionLetter(
$companyId,
$invoiceId,
'Correção do endereço de entrega do destinatário',
);

file_put_contents(
'cce.pdf',
$nfe->productInvoices->downloadCorrectionLetterPdf($companyId, $invoiceId),
);

Cancelar e inutilizar

// Cancelamento (com justificativa opcional na query):
$nfe->productInvoices->cancel($companyId, $invoiceId, 'Pedido cancelado pelo cliente');

// Inutilizar uma nota específica:
$nfe->productInvoices->disable($companyId, $invoiceId, [
'reason' => 'Numeração não utilizada',
]);

// Inutilizar uma faixa de numeração:
$nfe->productInvoices->disableRange($companyId, [
'environment' => 'Production',
'serie' => 1,
'state' => 'SP',
'beginNumber' => 100,
'lastNumber' => 110,
'reason' => 'Falha de impressão',
]);

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.