Entregas de Webhook
Cada notificação enviada a um endpoint é registrada como uma entrega, permitindo monitoramento e retry.
Status da Entrega
| Status | Descrição |
|---|---|
pending | Aguardando envio |
delivered | Entregue com sucesso (HTTP 2xx) |
failed | Falha na entrega |
retrying | Aguardando nova tentativa |
Campos da Entrega
| Campo | Descrição |
|---|---|
| Endpoint | Webhook de destino |
| Evento | Evento que gerou a entrega |
| Status HTTP | Código de resposta do destino |
| Headers da requisição | Headers enviados |
| Body da requisição | Payload enviado (JSON) |
| Headers da resposta | Headers recebidos |
| Body da resposta | Corpo da resposta (máx 2000 caracteres) |
| Erro | Mensagem de erro (se falhou) |
| Tentativas | Número de tentativas |
| Próximo retry | Data/hora da próxima tentativa |
| Entregue em | Timestamp 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