Webhooks

A Emitfy notifica as URLs configuradas quando o status de uma nota fiscal muda. Você pode cadastrar vários webhooks na assinatura — cada um com URL, eventos e headers próprios. Os eventos cobrem todas as empresas da assinatura; o payload inclui companyId e taxId (CNPJ) para identificar a origem. Configure no painel (Painel → API & Webhooks) ou via API.

Gerenciar via API

Prefixo: /v1/webhooks. Autenticação com X-Api-Key / X-Api-Secret da conta (sem companyId na URL).

MétodoRotaDescrição
GET/v1/webhooksLista os webhooks da assinatura
POST/v1/webhooksCria um novo webhook
PUT/v1/webhooks/:idAtualiza URL, nome, eventos ou headers
PATCH/v1/webhooks/:id/activeAtiva ou desativa ({ "active": true })
DELETE/v1/webhooks/:idRemove o webhook

Body de criação / atualização

JSON
{
  "name": "Meu ERP",
  "url": "https://seu-sistema.com/webhooks/emitfy",
  "headers": [
    { "key": "Authorization", "value": "Bearer seu-token" }
  ],
  "events": {
    "invoice": [
      "nfse.authorized",
      "nfse.cancelled",
      "nfse.rejected",
      "nfe.authorized",
      "nfe.cancelled",
      "nfe.rejected"
    ],
    "cte": []
  }
}

Exemplo — listar

Shell
curl -X GET "https://api.emitfy.com/v1/webhooks" \
  -H "X-Api-Key: sua-chave" \
  -H "X-Api-Secret: seu-secret"

Exemplo — criar

Shell
curl -X POST "https://api.emitfy.com/v1/webhooks" \
  -H "X-Api-Key: sua-chave" \
  -H "X-Api-Secret: seu-secret" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Meu ERP",
    "url": "https://seu-sistema.com/webhooks/emitfy",
    "events": {
      "invoice": ["nfse.authorized", "nfe.authorized"],
      "cte": []
    }
  }'

Payload

JSON
{
  "id": "01JXEVENT...",
  "event": "nfse.authorized",
  "createdAt": "2026-07-06T10:30:00.000Z",
  "data": {
    "id": "01JXINVOICE...",
    "saleId": "01JXSALE...",
    "externalId": "pedido-100",
    "companyId": "01JXCOMPANY...",
    "taxId": "00.000.000/0001-00",
    "status": "authorized",
    "type": "nfse",
    "amount": 1500.0,
    "invoiceNumber": "001234",
    "pdfUrl": "https://api.emitfy.com/v1/...",
    "xmlUrl": "https://api.emitfy.com/v1/...",
    "issuedAt": "2026-07-06T10:30:00.000Z",
    "createdAt": "2026-07-06T10:28:00.000Z",
    "updatedAt": "2026-07-06T10:30:00.000Z"
  }
}

Eventos disponíveis

EventoDescrição
nfse.authorizedNFS-e autorizada
nfse.cancelledNFS-e cancelada
nfse.rejectedNFS-e rejeitada na emissão
nfe.authorizedNF-e autorizada
nfe.cancelledNF-e cancelada
nfe.rejectedNF-e rejeitada na emissão
cte.authorizedCT-e autorizado (quando habilitado)
cte.cancelledCT-e cancelado
cte.rejectedCT-e rejeitado na emissão

Headers customizados

No cadastro do webhook você pode adicionar headers HTTP (ex.: Authorization) que a Emitfy envia em cada notificação, além de Content-Type e User-Agent: Emitfy/1.0.0.

Retentativa

Se sua URL retornar um status HTTP diferente de 2xx, a Emitfy tentará reenviar o evento até 5 vezes com backoff exponencial.