Pular para o conteúdo
Docs

Referência

Como o Emailit faz novas tentativas de requisições de webhook com falha, quando envia e-mails para você e desativa um endpoint, e como inspecionar e reenviar requisições com falha.

Atualizado em 1 de out. de 2026

Quando o seu endpoint não aceita uma requisição de webhook, o Emailit guarda os eventos e tenta de novo seguindo um cronograma que dura pouco mais de três dias. Esta página lista esse cronograma, explica os e-mails que o Emailit envia e quando ele desativa um endpoint, e mostra como inspecionar e reenviar requisições com falha.

O que conta como falha

Uma requisição falha quando o seu endpoint:

  • Retorna qualquer status fora de 200–299, incluindo redirecionamentos (3xx).
  • Não responde em até 30 segundos.
  • Não pode ser alcançado: erros de DNS, conexões recusadas, erros de TLS ou uma URL que resolve para um endereço IP privado.

A falha vale para o lote inteiro: todos os eventos da requisição recebem novas tentativas juntos.

Cronograma de novas tentativas

Após cada tentativa com falha, o Emailit espera antes de tentar de novo:

Tentativa Espera após a tentativa anterior Tempo desde a primeira tentativa
1 Enviada poucos segundos após o evento 0
2 5 minutos 5 minutos
3 30 minutos 35 minutos
4 2 horas 2 horas e 35 minutos
5 5 horas 7 horas e 35 minutos
6 12 horas 19 horas e 35 minutos
7 12 horas 1 dia e 7 horas
8 12 horas 1 dia e 19 horas
9 12 horas 2 dias e 7 horas
10 12 horas 2 dias e 19 horas
11 12 horas 3 dias e 7 horas

Se a tentativa 11 falhar, a requisição é marcada como Failed e não recebe mais novas tentativas automáticas. Você ainda pode reenviá-la por 7 dias.

Cada tentativa é assinada de novo com um timestamp novo. Os eventos que chegam enquanto requisições anteriores aguardam uma nova tentativa são enviados em lotes próprios, então um evento problemático não bloqueia os mais recentes.

E-mails de notificação

O Emailit envia um e-mail ao proprietário do workspace em dois momentos:

Quando E-mail
Uma requisição falha pela terceira vez (cerca de 35 minutos após a primeira falha) O webhook está falhando. Enviado uma vez por incidente. Você só recebe outro depois de uma entrega bem-sucedida seguida de novas falhas, ou após 4 dias.
O webhook é desativado automaticamente O webhook foi desativado, com o último código de status.

Desativação automática

Se um webhook passar 3 dias sem nenhuma entrega bem-sucedida desde a requisição com falha mais antiga, o Emailit o desativa na próxima tentativa com falha. Na prática, isso acontece por volta da 11ª tentativa da primeira requisição com falha, ou antes, se novos eventos continuarem falhando.

Enquanto um webhook está desativado:

  • Novos eventos não entram na fila dele. Eles continuam sendo registrados no fluxo de eventos.
  • As requisições que aguardavam uma nova tentativa ficam pendentes e são retomadas quando você o ativa.
  • A página do webhook mostra o status Disabled.

Para reativá-lo, selecione Enable webhook no menu de ações do webhook ou chame Atualizar um webhook com {"enabled": true}. Retry failed e tentar de novo uma única requisição também ativam o webhook.

A aba Requests

Abra um webhook em Email APIWebhooks para ver a aba Requests dele, com as mais recentes primeiro:

Coluna Descrição
Event type O evento da requisição.
Event ID O ID evt_, o mesmo valor que o seu endpoint recebe como event_id.
Created Quando a requisição foi colocada na fila.
Attempts Quantas tentativas de entrega falharam até agora.
Status Pending (ainda não tentada), Attempting (falhou pelo menos uma vez e receberá novas tentativas), Delivered ou Failed (as novas tentativas se esgotaram).

Filtre por Status code, Event ou Created. Os eventos de teste de Send test não aparecem aqui.

Em uma requisição Failed, selecione View para abrir Failure reason: o código de status que o seu endpoint retornou (0 quando não houve resposta HTTP), quando a requisição foi criada e quando falhou, e os primeiros 2.000 caracteres do corpo da resposta.

Reenviar requisições com falha

Você pode reenviar requisições marcadas como Failed cuja última falha ocorreu nos últimos 7 dias. As requisições reenviadas voltam para Pending e começam um novo ciclo de novas tentativas a partir da tentativa 1. A entrega não é instantânea: a próxima rodada de entregas as pega em poucos segundos.

Tentar de novo uma requisição

Na aba Requests, selecione Retry em uma linha com falha. O botão só aparece em requisições com falha dos últimos 7 dias.

O endpoint da API é Tentar de novo uma requisição, POST /v2/webhooks/{id}/requests/{request_id}/retry, que retorna {"retried": 1, "id": "whr_…"}. Ele só aceita requisições marcadas como Failed e retorna 400 para as demais. Os IDs de requisição (whr_…) não são listados por nenhum endpoint público, então, para automação pela API, use Retry failed.

Tentar de novo as requisições com falha

Abra o menu de ações do webhook e selecione Retry failed. Todas as requisições que falharam nos últimos 7 dias voltam para a fila, e o painel mostra “Queued 3 failed request(s) for retry” com a contagem real, ou “No failed requests in the last 7 days”.

Pela API, chame Tentar de novo as requisições com falha:

Terminal
curl -X POST https://api.emailit.com/v2/webhooks/wh_2xGk8Hd3RvN6qT1mWsB9cL4pZ7e/retry-failed \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{ "retried": 42 }

Recuperar-se de uma interrupção

  1. Corrija o endpoint. Use View em uma requisição com falha para ver o que o seu endpoint retornou.

  2. Confirme que ele funciona. Use Send test no menu de ações, ou Enviar um evento de teste pela API, e confira se a resposta é 2xx.

  3. Ative o webhook se o Emailit o tiver desativado.

  4. Reenvie as falhas. Selecione Retry failed para colocar de volta na fila todas as requisições que falharam nos últimos 7 dias. As requisições ainda marcadas como Attempting recebem novas tentativas no próprio cronograma.

  5. Preencha as lacunas. Os eventos que aconteceram enquanto o webhook estava desativado nunca entraram na fila, e as falhas com mais de 7 dias não podem ser reenviadas. Leia-os com a API de eventos para o período afetado e processe os que estiverem faltando.

Como as novas tentativas reenviam lotes inteiros, torne o seu handler idempotente: armazene cada event_id e ignore os que você já processou. Consulte Requisições de webhook.

Retenção

As requisições de webhook seguem o período de retenção de Logs, então as linhas mais antigas somem da aba Requests com o tempo.

Pay as you goProBusinessCustom
Retenção dos logs de requisições7 dias30 dias30 diasFlexível

Esta página foi útil?

Obrigado pelo feedback.

Obrigado, lemos todas as mensagens.