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