Webhooks
Configure webhooks para receber eventos de pedidos em tempo real do Guru e Yampi.
Webhooks
Rafobase usa webhooks para receber eventos de pedidos da sua plataforma de checkout. Quando um cliente usa um cupom de indicação, o checkout envia um webhook que ativa o processo de atribuição e recompensa.
Plataformas Suportadas
| Plataforma | Eventos | Status |
|---|---|---|
| Guru | transaction.approved, transaction.refunded | ✅ Suportado |
| Yampi | order.paid, order.status.updated | ✅ Suportado |
Como Funciona
Cliente Checkout Rafobase
│ │ │
│ Usa código de cupom │ │
│───────────────────────►│ │
│ │ │
│ Pagamento aprovado │ Webhook POST │
│◄──────────────────────│────────────────────►│
│ │ │
│ │ │ Extraia cupom
│ │ │ Encontre membro
│ │ │ Crie indicação
│ │ │ Credite carteira
│ │ │
│ │ 200 OK │
│ │◄────────────────────│Guia de Configuração
Configure a URL do Webhook
No seu painel de administração do Guru:
- Vá para Configurações → Webhooks
- Clique em Adicionar Webhook
- Digite a URL:
https://api.rafobase.com/webhooks/guru
Selecione Eventos
Ative os seguintes eventos:
- ✅
transaction.approved- Quando o pagamento é confirmado - ✅
transaction.refunded- Quando o pedido é reembolsado
O evento transaction.approved dispara a atribuição de indicação. O evento
transaction.refunded cancela créditos pendentes.
Configure o Segredo
- Copie o segredo do webhook do Guru
- No Painel do Rafobase, vá para Configurações → Integrações → Guru
- Cole o segredo do webhook
- Salve
Teste a Integração
- Crie um pedido de teste com um cupom de indicação
- Verifique Painel Rafobase → Webhooks para o evento
- Verifique se a indicação foi criada
Configure a URL do Webhook
No seu painel de administração do Yampi:
- Vá para Configurações → Integrações → Webhooks
- Adicione um novo endpoint de webhook:
https://api.rafobase.com/webhooks/yampi
Selecione Eventos
Ative os seguintes eventos:
- ✅
order.paid- Quando o pagamento é confirmado - ✅
order.status.updated- Para reembolsos e cancelamentos
Configure o Segredo
- Gere ou copie o segredo do webhook do Yampi
- No Painel do Rafobase, vá para Configurações → Integrações → Yampi
- Cole o segredo do webhook
- Salve
Teste a Integração
- Faça um pedido de teste usando um cupom de indicação
- Monitore Painel Rafobase → Webhooks
- Confirme que a indicação aparece corretamente
Exemplos de Carga de Webhook
Guru - Transação Aprovada
{
"event": "transaction.approved",
"data": {
"id": "trx_xxxxx",
"status": "approved",
"amount": 20000,
"currency": "BRL",
"customer": {
"email": "newcustomer@example.com",
"name": "Novo Cliente",
"document": "12345678900"
},
"coupon": {
"code": "NUT-JOHN-A7X"
},
"subscription_id": "sub_xxxxx",
"created_at": "2024-01-15T10:30:00Z"
}
}Yampi - Pedido Pago
{
"event": "order.paid",
"data": {
"id": 123456,
"status": "paid",
"total": 20000,
"customer": {
"email": "newcustomer@example.com",
"name": "Novo Cliente",
"cpf": "123.456.789-00"
},
"coupon_code": "NUT-JOHN-A7X",
"created_at": "2024-01-15T10:30:00Z"
}
}Segurança de Webhook
Verificação de Assinatura
Todos os webhooks incluem um cabeçalho de assinatura para verificação:
X-Rafobase-Signature: sha256=xxxxxxxxxxxxxxxxVerifique assinaturas em seu código:
import crypto from 'crypto'
function verifySignature(payload, signature, secret) {
const expected = `sha256=${crypto.createHmac('sha256', secret).update(payload).digest('hex')}`
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))
}