Catálogo de eventos de webhook — Documentos recebidos
Esta página é a referência completa dos 4 eventTypes de entrada — documentos que terceiros emitem contra o seu CNPJ e que a NFE.io captura para você. Para o guia didático desses eventos, veja Payloads de webhooks de documentos recebidos.
Todos os eventos de entrada entregam os campos achatados na raiz, sem envelope.
Política de entrega
- Entrega: at-least-once. Garanta idempotência por
X-Hook-Ide, quando disponível,nsu. - Retry: reentrega automática em falha de rede ou resposta não-2xx.
- Timeout: responda 2xx rápido e processe de forma assíncrona.
- Assinatura: valide o HMAC do cabeçalho antes de processar. Veja Dúvidas frequentes.
Os 4 tipos
| eventType | Documento | Quando dispara |
|---|---|---|
product_invoice_inbound | NF-e completa | NF-e autorizada contra seu CNPJ, com XML disponível |
product_invoice_inbound_summary | Resumo de NF-e | Só metadados — XML completo ainda não liberado pela SEFAZ |
transportation_invoice_inbound | CT-e | CT-e em que sua empresa é destinatária, tomadora, remetente ou emitente |
service_invoice_inbound | NFS-e recebida | NFS-e capturada contra seu CNPJ |
Como event_raised_successfully e input_event_raised_successfully se distinguem
Ambas as ações representam um evento vinculado a uma NF-e já recebida — não a nota em si. A diferença está no código do evento da SEFAZ:
input_event_raised_successfullydispara para os 4 eventos de Manifestação do Destinatário: código210200(Confirmação da Operação),210210(Ciência da Operação),210220(Desconhecimento da Operação) e210240(Operação não Realizada).event_raised_successfullydispara para qualquer outro evento — Carta de Correção, Cancelamento, EPEC, e os demais eventos do layout da NF-e.
Para o tipo resumo (product_invoice_inbound_summary), a ação de evento é sempre event_raised_successfully — não existe input_event_raised_successfully no shape de resumo.
Eventos de NF-e (product_invoice_inbound)
product_invoice_inbound.issued_successfully
Quando dispara: uma NF-e completa foi recebida contra o seu CNPJ, com XML disponível.
Payload:
{
"accessKey": "20067692631216642359468835243948726939910022",
"createdOn": "2026-08-18T00:48:02.58Z",
"parentAccessKey": "",
"company": {
"id": "fb487ff47f108587",
"federalTaxNumber": "44338200330345"
},
"issuer": {
"federalTaxNumber": "44338200330345",
"name": "Papelaria Horizonte LTDA"
},
"buyer": {
"federalTaxNumber": "44338200330345",
"name": "Tecnologia Meridiano LTDA"
},
"transportation": {
"federalTaxNumber": "44338200330345",
"name": "Grafica Estrela do Sul LTDA"
},
"links": {
"xml": "https://exemplo.nfe.io/xml/nota.xml",
"pdf": "https://exemplo.nfe.io/pdf/nota.pdf"
},
"blobUrl": "b2://dfenfe/exemplo/documento.xml",
"type": "productInvoice",
"nsu": "000000012345678",
"nsuParent": "",
"nfeNumber": "53145",
"nfeSerialNumber": "0",
"issuedOn": "2026-08-17T15:56:40+00:00",
"totalInvoiceAmount": "1258.60",
"operationType": "Incoming",
"environmentType": 0,
"direction": "Received"
}
Idempotency key: accessKey + nsu.
product_invoice_inbound.event_raised_successfully
Quando dispara: um evento não-manifestação foi registrado contra uma NF-e já recebida — por exemplo, Carta de Correção (código 610130 no exemplo abaixo).
Payload: mesmo shape base, campo type vira productInvoiceEvent, e ganha o bloco event:
{
"accessKey": "20067692631216642359468835243948726939910022",
"createdOn": "2026-08-18T00:56:44.68Z",
"parentAccessKey": "20067692631216642359468835243948726939910099",
"company": { "id": "fb487ff47f108587", "federalTaxNumber": "44338200330345" },
"issuer": { "federalTaxNumber": "44338200330345", "name": "Papelaria Horizonte LTDA" },
"buyer": { "federalTaxNumber": "44338200330345", "name": "Tecnologia Meridiano LTDA" },
"transportation": { "federalTaxNumber": "44338200330345", "name": "Grafica Estrela do Sul LTDA" },
"links": { "xml": "https://exemplo.nfe.io/xml/evento.xml", "pdf": "" },
"blobUrl": "b2://dfenfe/exemplo/evento.xml",
"type": "productInvoiceEvent",
"nsu": "000000012345679",
"nsuParent": "000000012345678",
"nfeNumber": "665779",
"nfeSerialNumber": "1",
"issuedOn": "2026-08-13T13:29:00+00:00",
"totalInvoiceAmount": "50713",
"operationType": "Incoming",
"environmentType": 0,
"event": {
"id": "e87a03a3152b73f1",
"code": 610130,
"sequence": 1,
"receiptOn": "2026-08-17T23:49:02+00:00"
}
}
nsuParent aponta para o nsu do documento original — use-o para relacionar o evento à NF-e que ele modifica.
Idempotency key: accessKey + nsu.
product_invoice_inbound.input_event_raised_successfully
Quando dispara: você (ou seu sistema) registrou uma Manifestação do Destinatário — Confirmação, Ciência, Desconhecimento ou Operação Não Realizada.
Payload: mesmo shape de event_raised_successfully, com event.code sendo um dos 4 valores de manifestação:
{
"event": {
"id": "e87a03a3152b73f1",
"code": 210200,
"sequence": 1,
"receiptOn": "2026-08-17T23:49:02+00:00"
}
}
event.code | Manifestação |
|---|---|
210200 | Confirmação da Operação |
210210 | Ciência da Operação |
210220 | Desconhecimento da Operação |
210240 | Operação não Realizada |
Idempotency key: accessKey + nsu.
Eventos de resumo de NF-e (product_invoice_inbound_summary)
O resumo chega quando a SEFAZ ainda não liberou o XML completo. Comparado ao tipo completo, faltam buyer, transportation, nfeSerialNumber e links.pdf; e issuedOn aqui reflete a data de recebimento na distribuição (não a data de emissão do XML original).
issuedOn no resumo não é a data de emissãoNo tipo completo, issuedOn vem do XML da nota. No resumo, issuedOn vem do recebimento na distribuição SEFAZ — pode ser dias depois da emissão real. Não trate como data de emissão sem conferir.
product_invoice_inbound_summary.issued_successfully
Payload:
{
"accessKey": "20067692631216642359468835243948726939910022",
"createdOn": "2026-08-18T00:48:02.52Z",
"company": {
"id": "fb487ff47f108587",
"federalTaxNumber": "44338200330345"
},
"issuer": {
"federalTaxNumber": "44338200330345",
"name": "Papelaria Horizonte LTDA"
},
"links": {
"xml": "https://exemplo.nfe.io/xml/resumo.xml"
},
"blobUrl": "b2://dfenfe/exemplo/resumo.xml",
"type": "productInvoiceSummary",
"nsu": "000000012345680",
"nfeNumber": "000207820",
"issuedOn": "2026-08-17T20:35:37+00:00",
"totalInvoiceAmount": "2786.00",
"operationType": "Outgoing",
"environmentType": 0,
"direction": "Received"
}
Idempotency key: accessKey + nsu.
product_invoice_inbound_summary.event_raised_successfully
Payload: mesmo shape do resumo, com type: "productInvoiceSummaryEvent" e bloco event — sempre event_raised_successfully, nunca input_event_raised_successfully, mesmo para manifestação:
{
"accessKey": "20067692631216642359468835243948726939910022",
"createdOn": "2026-08-18T00:56:44.68Z",
"parentAccessKey": "20067692631216642359468835243948726939910099",
"company": { "id": "fb487ff47f108587", "federalTaxNumber": "44338200330345" },
"issuer": { "federalTaxNumber": "44338200330345", "name": "Papelaria Horizonte LTDA" },
"links": { "xml": "https://exemplo.nfe.io/xml/evento-resumo.xml", "pdf": "" },
"blobUrl": "b2://dfenfe/exemplo/evento-resumo.xml",
"type": "productInvoiceSummaryEvent",
"nsu": "000000012345679",
"nfeNumber": "665779",
"issuedOn": "2026-08-13T13:29:00+00:00",
"totalInvoiceAmount": "50713",
"operationType": "Incoming",
"environmentType": 0,
"event": {
"id": "e87a03a3152b73f1",
"code": 610130,
"sequence": 1,
"receiptOn": "2026-08-17T23:49:02+00:00"
}
}
Idempotency key: accessKey + nsu.
Eventos de CT-e (transportation_invoice_inbound)
transportation_invoice_inbound.issued_successfully
Quando dispara: um CT-e foi recebido em que sua empresa é destinatária, tomadora ou remetente (direction: "Received").
Payload:
{
"recipient": { "federalTaxNumber": "44338200330345", "name": "Industria Ponta Norte S.A." },
"sender": { "federalTaxNumber": "44338200330345", "name": "Grafica Estrela do Sul LTDA" },
"taker": { "federalTaxNumber": "44338200330345", "name": "Metalurgica Boa Vista LTDA" },
"dispatcher": { "federalTaxNumber": "44338200330345", "name": "Atacado Ferreira & Filhos LTDA" },
"issuedOn": "2026-08-17T20:00:31+00:00",
"productInvoices": [{ "accessKey": "77838944273181403097002144935518350097110030" }],
"totalAmount": "6.71",
"direction": "Received",
"id": "9945c26da840f80a",
"createdOn": "2026-08-18T00:49:20.01Z",
"accessKey": "20067692631216642359468835243948726939910022",
"parentAccessKey": "",
"nsu": "000000012345678",
"company": { "id": "fb487ff47f108587" },
"type": "transportationInvoice",
"xmlUrl": "https://exemplo.nfe.io/xml/cte.xml"
}
productInvoices[] lista as NF-e vinculadas ao CT-e, quando houver.
Idempotency key: accessKey + nsu.
transportation_invoice_inbound.outbound_successfully
Quando dispara: um CT-e retornado pela distribuição SEFAZ tem sua própria conta como emitente (direction: "Issued") — não é um documento de terceiro chegando, é seu próprio CT-e aparecendo no canal de distribuição.
Payload: mesmo shape base, com direction: "Issued":
{
"recipient": { "federalTaxNumber": "44338200330345", "name": "Industria Ponta Norte S.A." },
"sender": { "federalTaxNumber": "44338200330345", "name": "Grafica Estrela do Sul LTDA" },
"taker": { "federalTaxNumber": "44338200330345", "name": "Metalurgica Boa Vista LTDA" },
"dispatcher": { "federalTaxNumber": "44338200330345", "name": "Atacado Ferreira & Filhos LTDA" },
"issuedOn": "2026-08-17T18:35:17+00:00",
"productInvoices": [{ "accessKey": "77838944273181403097002144935518350097110030" }],
"totalAmount": "15.60",
"direction": "Issued",
"id": "9945c26da840f80a",
"createdOn": "2026-08-18T01:32:28.00Z",
"accessKey": "20067692631216642359468835243948726939910022",
"parentAccessKey": "",
"nsu": "000000012345678",
"company": { "id": "fb487ff47f108587", "federalTaxNumber": "44338200330345" },
"type": "transportationInvoice",
"xmlUrl": "https://exemplo.nfe.io/xml/cte.xml"
}
Esta ação foi observada até hoje apenas em CT-e. O mecanismo interno é genérico por direção do documento — se você emitir NF-e e ela retornar pela distribuição, o mesmo padrão pode se aplicar.
Idempotency key: accessKey + nsu.
transportation_invoice_inbound.event_raised_successfully
Quando dispara: um evento foi registrado contra um CT-e já recebido.
Payload:
{
"receiptOn": "2026-08-18T05:46:39+00:00",
"id": "9945c26da840f80a",
"createdOn": "2026-08-18T09:02:15.12Z",
"accessKey": "20067692631216642359468835243948726939910022",
"parentAccessKey": "20067692631216642359468835243948726939910099",
"nsu": "000000012345679",
"company": { "id": "fb487ff47f108587" },
"type": "transportationInvoiceEvent",
"xmlUrl": "https://exemplo.nfe.io/xml/evento-cte.xml"
}
Idempotency key: accessKey + nsu.
Eventos de NFS-e recebida (service_invoice_inbound)
Este eventType usa um shape diferente dos demais — envelope próprio com eventName, document aninhado e campos fiscais completos (taxes, amounts).
service_invoice_inbound.issued_successfully
Payload:
{
"eventName": "inbound.serviceInvoice.received",
"type": "serviceInvoice",
"accountId": "77b8ce7fc7e8f57e",
"document": {
"id": "32698345792ade4c",
"direction": "Received",
"accessKey": "07027571856179777714472370526884045867942652",
"generatedOn": "2026-08-17T20:18:07Z",
"issuedOn": "2026-08-17T17:18:07-03:00",
"provider": {
"federalTaxNumber": "44338200330345",
"name": "Transportes Rio Claro LTDA",
"state": "RJ"
},
"borrower": {
"federalTaxNumber": "44338200330345",
"name": "Grafica Estrela do Sul LTDA",
"state": null
},
"servicesAmount": 1799.20,
"federalServiceCode": "010501",
"cityServiceCode": "001",
"amounts": {
"amountNet": 1799.20
},
"taxes": {
"regime": { "simplesNacionalOption": "1", "specialTaxRegime": "0" },
"issqn": { "situationCode": "1", "retentionType": "1", "base": 1799.20, "rate": 2.90, "amount": 52.17 },
"ibsCbs": {
"situationCode": "000",
"classCode": "000001",
"operationIndicator": "100501",
"incidenceCity": { "code": "2927408", "name": "Salvador" },
"basis": 1747.02,
"ibs": { "state": { "rate": 0.10, "amount": 1.74 }, "municipal": { "rate": 0.00, "amount": 0.00 }, "totalAmount": 1.75 },
"cbs": { "rate": 0.90, "amount": 15.72 }
}
},
"environment": "Production",
"xmlUrl": "https://exemplo.nfe.io/xml/nfse.xml",
"pdfUrl": "https://exemplo.nfe.io/pdf/nfse.pdf"
}
}
Campos nulos (como provider.state quando a prefeitura não informa) são enviados como null neste eventType — diferente do padrão de emissão, que costuma omitir o campo.
Idempotency key: document.id ou document.accessKey.
service_invoice_inbound.event_raised_successfully
Quando dispara: um evento foi registrado contra uma NFS-e recebida — por exemplo, cancelamento pelo prestador.
Payload:
{
"eventName": "inbound.serviceInvoice.event.received",
"accountId": "77b8ce7fc7e8f57e",
"document": {
"id": "32698345792ade4c",
"type": "serviceInvoiceEvent",
"eventType": "Cancellation",
"eventCode": "101101",
"accessKey": "07027571856179777714472370526884045867942652",
"generatedOn": "2026-08-17T03:00:00Z",
"issuedOn": null,
"provider": null,
"borrower": null,
"environment": "Production",
"xmlUrl": "https://exemplo.nfe.io/xml/evento-nfse.xml",
"pdfUrl": null
}
}
Quando o evento não carrega dados fiscais completos (como um cancelamento), provider, borrower e os blocos de valores vêm null em vez de omitidos.
Idempotency key: document.id.
Como validar a assinatura
Veja o exemplo de validação de HMAC em Dúvidas frequentes.