Webhooks de entrada
Apps recebem eventos de serviços externos: Stripe webhooks, GitHub events, Typeform, Calendly, Zapier, Make, etc.
Como funciona
- Você registra um path único no app
- BeaDev gera URL pública:
https://v2.beadev.ai/api/hooks/<slug-do-app>/<seu-path> - Cola essa URL no painel do serviço externo (ex: Stripe webhooks)
- Quando o serviço externo dispara, BeaDev grava o evento
- Seu app lê os eventos via
Bea.inbound.list(...)
Registrar webhook
App → Configurações → Inbound webhooks → Novo:
- Path (slug-style, sem barras):
stripe,github,notification - Secret (opcional, recomendado): pra validar HMAC-SHA256 do body
- Descrição
URL gerada: https://v2.beadev.ai/api/hooks/<seu-app>/<path>
Ler eventos no app
// Últimos 50 eventos
const events = await Bea.inbound.list({ path: "stripe" });
// Filtros
const recent = await Bea.inbound.list({
path: "stripe",
since: new Date(Date.now() - 24 * 60 * 60 * 1000), // últimas 24h
limit: 100
});
events.forEach(e => {
console.log(e.receivedAt, e.body); // body é o JSON enviado pelo serviço
});
Validar assinatura (recomendado)
Se você setou Secret no registro:
- BeaDev valida automaticamente o header
X-BeaDev-Signature(HMAC-SHA256 hex do body) - Eventos sem assinatura válida são rejeitados (401)
Pra Stripe específico, use o secret deles e BeaDev valida pelo padrão Stripe.
Retenção
Eventos são guardados por 30 dias. Depois disso, são deletados automaticamente.
Casos de uso
- Stripe → registrar pagamento aprovado/falhado
- GitHub → notificar deploy pronto
- Typeform → pegar resposta de formulário externo
- Zapier/Make → integração com qualquer serviço