Pular para o conteúdo principal

Emissão assíncrona e polling

A emissão fiscal costuma ser assíncrona. O SDK expõe isso de duas formas, dependendo do produto: polling (NFS-e) e webhook-driven (NF-e/NFC-e).

Retorno discriminado (NFS-e)

serviceInvoices.create (e serviceInvoicesRtc.create) devolvem uma união discriminada pela tag status:

const r = await nfe.serviceInvoices.create(companyId, data);
if (r.status === 'async') {
// HTTP 202 — enfileirada
r.response.invoiceId; // id para reconsultar
r.response.location; // header Location
} else {
// HTTP 201 — já materializada
r.invoice; // ServiceInvoiceData
}

createAndWait (polling embutido)

Combina create + polling com backoff exponencial e devolve a nota em estado terminal. Lança InvoiceProcessingError em IssueFailed/CancelFailed.

const invoice = await nfe.serviceInvoices.createAndWait(companyId, data, {
timeout: 120000, // total, ms (padrão 2 min)
initialDelay: 1000, // ms antes do 1º poll
maxDelay: 10000, // teto entre polls
backoffFactor: 1.5,
onPoll: (attempt, flowStatus) => console.log(attempt, flowStatus),
});

cancelAndWait faz o mesmo para cancelamento (também assíncrono).

Estados de FlowStatus

TerminalEm processamento
Issued, IssueFailed, Cancelled, CancelFailedWaitingCalculateTaxes, WaitingDefineRpsNumber, WaitingSend, WaitingSendCancel, WaitingReturn, WaitingDownload, PullFromCityHall

O polling encerra ao atingir um estado terminal.

Webhook-driven (NF-e / NFC-e)

productInvoices.create, productInvoicesRtc.create e consumerInvoices.create não fazem polling: um 202 indica que a nota foi enfileirada e a conclusão é notificada por webhook. Configure webhooks e reaja aos eventos em vez de consultar em loop.

Escolha o padrão certo
  • NFS-e: createAndWait (polling) para um fluxo síncrono simples.
  • NF-e/NFC-e: emita e trate a conclusão via Webhooks.

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.