Webhooks de saída
Receba no seu sistema, em tempo real, os eventos do seu programa. Configure em Integrações → Webhooks de saída.
Eventos
| Evento | Quando |
|---|---|
conversion.created | Um pagamento de cliente indicado foi registrado |
commission.accrued | Uma comissão entrou no extrato de um afiliado |
payout.completed | O Pix de um afiliado foi confirmado ou o pagamento manual foi marcado |
Cada entrega é um POST com JSON:
{
"id": "5f1c…",
"type": "conversion.created",
"created_at": "2026-09-28T13:05:00.000Z",
"data": { "id": "…", "program": "parceiros", "amount_cents": 19900, "first_payment": true }
}
Os campos de cada evento estão na referência da API.
Verificar a assinatura
O cabeçalho Filiafy-Signature traz t=<unix>,v1=<hex>, onde v1 é o HMAC-SHA256 de t.corpo com o segredo do endpoint (mostrado uma vez, ao criar). É o mesmo esquema do Stripe:
import { createHmac, timingSafeEqual } from 'node:crypto'
export function assinaturaValida(header, corpo, segredo) {
const partes = Object.fromEntries(header.split(',').map((p) => p.split('=')))
if (Math.abs(Date.now() / 1000 - Number(partes.t)) > 300) return false
const esperado = createHmac('sha256', segredo).update(`${partes.t}.${corpo}`).digest('hex')
return timingSafeEqual(Buffer.from(esperado), Buffer.from(partes.v1 ?? ''))
}
Use o corpo cru, antes de fazer parse do JSON.
Entregas e novas tentativas
- Responda com qualquer status
2xxem até 10 segundos. - Falhas são tentadas de novo por cerca de 24 horas (8 tentativas, com intervalos crescentes).
Filiafy-Event-Idé o mesmo em todas as tentativas: use para ignorar repetições.- Em Ver entregas você vê cada tentativa, o corpo enviado e pode reenviar.
Só aceitamos URLs https públicas; endereços de redes internas são recusados.