Pular para o conteúdo principal

Catálogo de eventos de webhook

A NFE.io publica eventos de webhook em duas famílias: eventos de saída — o que a sua conta emite (NFS-e, NF-e, NFC-e, guias e regras fiscais) — e eventos de entrada — documentos de terceiros que a NFE.io captura contra o seu CNPJ (NF-e, CT-e, NFS-e recebidas). Esta página indexa as duas.

Política de entrega​

  • Entrega: at-least-once. Garanta idempotência — nunca assuma que um evento chega uma única vez.
  • Retry: reentrega automática em falha de rede ou resposta HTTP fora da faixa 2xx, até 16 tentativas com intervalo exponencial — exceto nos códigos de recusa definitiva, que não geram reentrega (veja abaixo).
  • Timeout: 10 segundos nas três primeiras tentativas e 100 segundos a partir da quarta. Responda 2xx rápido e processe de forma assíncrona — retornar erro faz a NFE.io reenviar o mesmo evento, desde que o código não seja de recusa definitiva (veja abaixo).
  • Assinatura: todo evento é assinado por HMAC no cabeçalho. Valide antes de processar — veja Dúvidas frequentes.

Quantas tentativas e em que intervalo​

Em condições normais são 16 tentativas de entrega, contando a primeira. O intervalo cresce exponencialmente, e a última tentativa acontece cerca de 45 horas e 30 minutos depois do evento.

Os tempos da tabela contam só o intervalo entre tentativas. Se o seu endpoint não responde (em vez de recusar), some o timeout de cada tentativa — cerca de 20 minutos no total, o que empurra a última para perto de 45 h 50 min.

TentativaTempo desde o eventoTentativaTempo desde o evento
1imediato920 min 35 s
2imediato1041 min 50 s
35 s111 h 24 min
420 s122 h 50 min
555 s135 h 40 min
62 min 10 s1411 h 22 min
74 min 45 s1522 h 44 min
810 min1645 h 29 min

O cabeçalho X-Hook-Attempts traz quantas tentativas já falharam antes desta — ou seja, é 0 na primeira entrega, 1 na primeira reentrega e 15 na décima sexta e última. Para distinguir uma reentrega da entrega original, teste X-Hook-Attempts > 0.

Esgotadas as tentativas, o evento para de ser reenviado automaticamente — ele fica retido internamente, e um reenvio manual depende de acionar o suporte. O cadastro do webhook não é desativado — não existe desativação automática por falhas consecutivas, e os eventos seguintes continuam sendo entregues normalmente.

Respostas que interrompem a reentrega​

Nem toda resposta fora da faixa 2xx gera nova tentativa. Estes códigos são tratados como recusa definitiva e o evento é descartado na hora, sem retentativa:

CódigoSignificado
400 Bad Requesto endpoint rejeitou o corpo do evento
401 Unauthorizedcredencial ausente ou inválida
403 Forbiddenacesso negado ao endpoint
404 Not Founda URL cadastrada não existe
405 Method Not Allowedo endpoint não aceita POST
422 Unprocessable Entityo endpoint entendeu o corpo e o recusou
Responder 422 numa falha temporária custa o evento

Se o seu endpoint responde 422 quando não consegue processar um evento, ele não será reenviado. Para que a reentrega aconteça, responda 500 — ou outro código de erro fora da lista acima — nas falhas temporárias do seu lado.

O código 410 Gone é a exceção no sentido oposto: é contabilizado como entrega aceita, e não como falha.

Valores sujeitos a ajuste operacional

O cronograma e os timeouts acima são os vigentes hoje. São parâmetros de operação e podem ser ajustados — dimensione com margem e trate a janela como ordem de grandeza, não como garantia contratual.

Como descobrir qual evento chegou​

OrigemO que traz
Cabeçalho X-Hook-Evento eventType (ex.: service_invoice), sem a ação
Cabeçalho X-Hook-Ididentificador único da entrega — use para deduplicar
Cabeçalho X-Hook-Attemptsquantas tentativas já falharam antes desta — 0 na primeira entrega
Corpo (action)a ação do evento, sem o prefixo do tipo (ex.: issued_successfully) — use para saber o que aconteceu
Corpo (flowStatus/status)o estado da nota

Os dois envelopes​

Todo corpo traz o campo action na raiz, com a ação do evento sem o prefixo do tipo (ex.: issued_successfully, não service_invoice.issued_successfully). Isso vale para todos os eventTypes. O que muda entre eles é onde ficam os campos do documento:

eventTypeFamíliaEnvelope
service_invoiceSaída (NFS-e){"action": "...", "payload": {...}}
product_invoiceSaída (NF-e)achatado na raiz
consumer_invoiceSaída (NFC-e)achatado na raiz
product_tax, tax_payment_formSaída (outros)achatado na raiz
product_invoice_inbound, *_summaryEntradaachatado na raiz
transportation_invoice_inboundEntradaachatado na raiz
service_invoice_inboundEntradaachatado na raiz (envelope próprio com document)

Nos tipos achatados, action é mais uma chave da raiz, ao lado dos campos do documento. Se o webhook tiver properties cadastradas, elas chegam na chave properties, também na raiz. O ping (PUT /v2/webhooks/{id}/pings) chega com "action": "ping" e os dados do webhook na chave webHook.

Eventos de saída​

O que a sua conta emite. 24 eventos cobertos, agrupados por produto:

PáginaProdutoEventos
Catálogo de saída — NFS-eNota Fiscal de Serviço7 — emissão, cancelamento (sucesso e falha)
Catálogo de saída — NF-eNota Fiscal Eletrônica11 — emissão, cancelamento, inutilização, Carta de Correção
Catálogo de saída — NFC-eNota Fiscal de Consumidor5 — emissão, cancelamento
Catálogo de saída — Outros eventosRegras fiscais e guias4 — product_tax, tax_payment_form

Eventos de entrada​

O que a NFE.io captura contra o seu CNPJ. 10 eventos, em uma única página de referência:

PáginaCobre
Catálogo de entrada — Documentos recebidosNF-e, resumo de NF-e, CT-e e NFS-e recebidos, incluindo manifestação do destinatário

Para o guia didático dos eventos de entrada — com contexto de uso e exemplos de parsing — veja Payloads de webhooks de documentos recebidos.

Como validar a assinatura​

Veja o exemplo de validação de HMAC em Dúvidas frequentes.

Veja também​

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.