Documentation Index
Fetch the complete documentation index at: https://docs.garu.com.br/llms.txt
Use this file to discover all available pages before exploring further.
Visão Geral
Acontece: o cliente jura que não recebeu o webhook do pagamento, ou seu endpoint ficou meia hora fora do ar e perdeu uma rajada de eventos. A Garu guarda todo evento de webhook emitido — entregue ou não — e a partir da v0.10.3 você pode listar, inspecionar e reenviar qualquer um pela API, SDK, CLI ou direto pelo seu agente de IA. O botão “Reenviar” do dashboard sempre existiu; agora ele tem irmãos:GET /api/webhook-events— lista com filtros (status, tipo de evento, endpoint).GET /api/webhook-events/:id— detalhes de um evento (payload completo, tentativas, código HTTP da última resposta).POST /api/webhook-events/:id/retry— reseta o evento parapendinge dispara a entrega imediatamente.
Os três endpoints aceitam chave de API do seller (
sk_test_… / sk_live_…) ou sessão JWT do dashboard. Use a chave de API para automação; o dashboard usa o JWT por baixo dos panos.Status do evento
Toda entrega de webhook tem um destes três status:| Status | Significado |
|---|---|
pending | Aguardando entrega ou retry agendado |
success | Seu endpoint respondeu 2xx |
failed | Esgotou as 6 tentativas (~26h36min) sem 2xx |
Fluxo: listar com falha → escolher → reenviar
O caminho de feliz é sempre o mesmo: pegue os que falharam, abra um para inspecionar (opcional), reenvie. Quatro formas de fazer:- cURL
- Node SDK
- CLI
- MCP (agente de IA)
Limite de chamadas
O endpoint de reenvio tem rate limit de 20 requisições por minuto por IP. É o suficiente para reprocessar um lote considerável sem pesar nos seus endpoints — e impede que um script em loop infinito martele um receiver que está fora do ar.O que acontece no reenvio
POST /api/webhook-events/:id/retry faz três coisas:
- Reseta o status para
pendinge zera o contador de tentativas falhas. - Reenvia o mesmo payload — o evento original não muda; sua aplicação recebe exatamente o que receberia na primeira tentativa.
- Aplica a retry policy padrão se a entrega falhar de novo — 1min, 5min, 30min, 2h, 8h, 16h até
failedpermanente.
Quando reenviar (e quando não)
Reenvie quando: seu endpoint ficou fora do ar
Reenvie quando: seu endpoint ficou fora do ar
Janelas de indisponibilidade curtas (deploy, restart, k8s drain) frequentemente passam dos 26h da retry policy se forem aninhadas a outros incidentes. Reenviar é a forma de recuperar a fila sem precisar de plumbing manual.
Reenvie quando: o cliente diz que não recebeu
Reenvie quando: o cliente diz que não recebeu
Suporte clássico. Localiza o evento via filtro
eventType + janela de tempo, confirma que o status está failed (ou success mas o cliente não processou), reenvia.Não reenvie quando: o evento já está success e seu sistema processou
Não reenvie quando: o evento já está success e seu sistema processou
Reenviar duplica a notificação. Se sua idempotência estiver correta o reenvio é inofensivo, mas é trabalho à toa.
Não reenvie quando: a falha é determinística
Não reenvie quando: a falha é determinística
Se seu endpoint devolve 4xx por bug ou validação, o reenvio vai falhar de novo. Corrija o handler primeiro e depois reenvie.
Permissões
Por papel padrão da Garu:- Owner / Administrator / Developer: listar, ver e reenviar.
- Support: listar e ver; reenvio depende de permissão
webhook:edit. - View Only: somente listar e ver.
Próximos passos
API: Eventos de Webhook
Referência completa dos três endpoints
Códigos de falha
Roteie falhas de pagamento pelo enum normalizado
MCP Server
Reenvie webhooks pelo chat do seu agente
CLI
Faça tudo direto do terminal