Pular para o conteúdo principal

Entregas de Webhook

Cada notificação enviada a um endpoint é registrada como uma entrega, permitindo monitoramento e retry.

Status da Entrega

StatusDescrição
pendingAguardando envio
deliveredEntregue com sucesso (HTTP 2xx)
failedFalha na entrega
retryingAguardando nova tentativa

Campos da Entrega

CampoDescrição
EndpointWebhook de destino
EventoEvento que gerou a entrega
Status HTTPCódigo de resposta do destino
Headers da requisiçãoHeaders enviados
Body da requisiçãoPayload enviado (JSON)
Headers da respostaHeaders recebidos
Body da respostaCorpo da resposta (máx 2000 caracteres)
ErroMensagem de erro (se falhou)
TentativasNúmero de tentativas
Próximo retryData/hora da próxima tentativa
Entregue emTimestamp de sucesso

Pipeline de Processamento

Etapa 1: Criação do Evento

Operação no recurso (ex: pagamento criado)
→ Evento criado no banco de dados
→ Job enfileirado: EVENT_DISPATCH

Etapa 2: Despacho do Evento

Worker processa EVENT_DISPATCH
→ Busca webhooks ativos da organização
→ Filtra por eventos inscritos
→ Para cada webhook correspondente:
→ Cria registro de WebhookDelivery
→ Enfileira job: WEBHOOK_DELIVERY

Etapa 3: Entrega

Worker processa WEBHOOK_DELIVERY
→ Gera payload + assinatura
→ POST para URL do webhook (timeout: 30s)
→ Sucesso (2xx): marca como delivered, reseta contador de falhas
→ Falha: atualiza stats, agenda retry
→ Após 10 falhas consecutivas: desativa endpoint

Retry Automático

  • Entregas falhas são retentadas automaticamente
  • Backoff exponencial (1s, 2s, 4s, 8s...)
  • Máximo de tentativas configurável por job

Retry Manual

Entregas individuais podem ser retentadas manualmente pelo dashboard.

Monitoramento

Para cada organização:

  • Total de webhooks ativos/inativos
  • Total de entregas
  • Entregas com falha
  • Contadores de falhas consecutivas