Pular para o conteúdo
Docs

Guia prático

Crie um endpoint de webhook, escolha os eventos dele, adicione filtros de payload, envie um evento de teste e ative, desative ou faça a rotação do segredo.

Atualizado em 1 de out. de 2026

Este guia cria um webhook, restringe-o aos eventos de que você precisa e confirma que o seu endpoint recebe requisições assinadas. Você pode fazer tudo no painel ou com a API de webhooks.

Antes de começar

  • Uma URL pública que aceite requisições POST. Recomendamos fortemente usar HTTPS. URLs em localhost ou em faixas de IP privadas são rejeitadas; para desenvolvimento local, use um túnel, como ngrok ou Cloudflare Tunnel.
  • Um endpoint que preserve o corpo bruto da requisição para poder verificar a assinatura.
  • Para a API, uma chave com Full Access.
  • Uma vaga de webhook livre. O Pay as you go inclui 3 endpoints, o Pro 10, e o Business e o Custom 100.

Criar o webhook

  1. Abra a página Webhooks. Acesse Email APIWebhooks e selecione Add webhook.

  2. Informe um nome e uma URL. O nome deve ser único no workspace, por exemplo Production events. A URL é o seu endpoint, por exemplo https://acme.com/webhooks/emailit. Selecione Create.

  3. Copie o segredo. A caixa de diálogo mostra o segredo do webhook, que começa com whsec_, junto com o aviso “You can see the webhook secret only once. Store it safely.” Copie-o para o ambiente da sua aplicação, por exemplo como EMAILIT_WEBHOOK_SECRET, e selecione Done.

Um webhook criado no painel fica inscrito em todos os tipos de evento. A aba Settings do webhook é aberta para que você possa restringi-lo.

Escolher os eventos

Um webhook recebe todos os tipos de evento ou apenas os tipos que você selecionar.

Na aba Settings do webhook, desative All events e selecione os tipos no card Events. Os eventos são agrupados por recurso (Emails, Domains, Audiences, Subscribers, Contacts, Templates, Suppressions, Email Verifications, Email Verification Lists), e cada grupo tem uma caixa Select all. Selecione Save.

O seletor não lista todos os tipos que o Emailit envia. email.canceled, email.held, email.unsubscribed, email.resubscribed, subscriber.resubscribed e os eventos campaign.* chegam aos webhooks que têm All events ativado, ou você pode adicioná-los à lista pela API. O grupo Deprecated reúne nomes de eventos antigos que não são mais enviados. Consulte Tipos de evento.

Filtrar eventos por payload

Pay as you goProBusinessCustom

Um filtro de payload entrega um evento apenas quando os dados dele correspondem às suas regras. Os filtros se somam à seleção de eventos: um evento precisa estar na seleção e corresponder ao filtro.

Use-o para dividir o tráfego entre endpoints, por exemplo um webhook por linha de produto, ou para descartar eventos que você ignoraria no código de qualquer forma.

  • Modo de correspondência: All rules match (all) ou Any rule matches (any).
  • Regras: até 25. Cada regra tem um campo, um operador e um valor.
  • Campo: um caminho com pontos dentro do data.object do evento, por exemplo to, status, meta.plan ou, para eventos de clique, link.url. O prefixo payload. é opcional, então payload.from e from são equivalentes.
  • As comparações diferenciam maiúsculas de minúsculas e comparam os valores como texto, exceto greater_than e less_than, que comparam números.
Operador Corresponde quando o campo
equals / not_equals É / não é exatamente o valor.
contains / not_contains Contém / não contém o valor.
starts_with / ends_with Começa / termina com o valor.
greater_than / less_than É um número maior / menor que o valor.
is_set / is_not_set Tem um valor não vazio / está ausente ou vazio. Não precisa de valor.
in / not_in É igual / não é igual a um dos valores de um array. Envie o array pela API, como no exemplo abaixo.

Na aba Settings do webhook, localize o card Filter. Escolha o modo de correspondência, adicione regras com campo, operador e valor e selecione Save. Deixe as regras vazias para entregar todos os eventos inscritos. No Pay as you go, o card fica bloqueado e mostra Upgrade.

Mais exemplos:

Objetivo Regra
Apenas e-mails recebidos em um endereço to equals support@inbound.acme.com
Apenas um domínio de remetente from ends_with @billing.acme.com
Apenas e-mails que você marcou com metadados meta.source equals checkout
Apenas cliques na sua página de preços link.url starts_with https://acme.com/pricing
Apenas e-mails que trazem um ID de cliente meta.customer_id is_set

Se um workspace passar para o Pay as you go, os filtros existentes continuam salvos, mas são ignorados, e todos os eventos inscritos são entregues.

Enviar um evento de teste

Um teste envia imediatamente um evento de exemplo para a sua URL, assinado com o segredo atual do webhook. Os eventos inscritos e os filtros são ignorados, a requisição não recebe novas tentativas e não aparece na aba Requests. Cada webhook permite 5 testes por minuto.

Na página do webhook, abra o menu de ações (…) e selecione Send test. Escolha um tipo de evento e selecione Send test. A caixa de diálogo mostra “Your endpoint returned 200” (ou o status que o seu endpoint retornou) e o corpo da resposta. “Could not reach the endpoint” significa que a requisição não recebeu uma resposta HTTP, por exemplo por causa de um erro de DNS, um timeout ou um redirecionamento.

Os eventos de teste usam dados de exemplo, com um event_id que começa com evt_test_, e o formato deles pode diferir um pouco do formato dos eventos reais. Construa o seu handler com base na referência de eventos e confirme com um envio real.

Ativar ou desativar um webhook

Desative um webhook para interromper as entregas sem perder as configurações dele, por exemplo durante uma manutenção.

  • Painel: abra o menu de ações e selecione Disable webhook ou Enable webhook. A página do webhook mostra o status Enabled ou Disabled.
  • API: chame Atualizar um webhook com {"enabled": false} ou {"enabled": true}.

Enquanto um webhook está desativado, novos eventos não entram na fila dele, e as requisições que já aguardavam uma nova tentativa ficam pausadas. Os eventos que acontecem enquanto ele está desativado não são entregues depois; se precisar deles, leia-os com a API de eventos. O Emailit também desativa webhooks automaticamente após 3 dias de falhas; consulte Novas tentativas e falhas.

Excluir um webhook descarta todos os eventos pendentes dele.

Fazer a rotação do segredo

Faça a rotação do segredo se ele puder ter vazado ou como medida de segurança de rotina.

O segredo antigo deixa de funcionar imediatamente, e todas as requisições a partir de então, incluindo as novas tentativas de eventos mais antigos, são assinadas com o novo. Para fazer a rotação sem rejeitar requisições, faça o seu endpoint aceitar qualquer um dos dois segredos por alguns minutos, redefina o segredo, faça deploy do novo valor e depois remova o antigo.

Confirmar que funcionou

  1. Envie um evento de teste e confirme que o seu endpoint retorna 2xx.
  2. Envie um e-mail real ou dispare o evento em que você se inscreveu.
  3. Na aba Requests do webhook, a requisição aparece como Delivered. O horário Last used do webhook é atualizado.

Esta página foi útil?

Obrigado pelo feedback.

Obrigado, lemos todas as mensagens.