Webhooks — conceito e funcionamento
Webhook é notificação enviada pela evob para outro sistema quando um evento ocorre.
Onde acessar
Plataforma > Configurações > WebhooksOu por loja: Loja > Configurações > Webhooks
O que é um webhook
Webhook é uma URL que você cadastra na evob para receber notificações em tempo real quando algo acontece — uma venda, uma matrícula, um cancelamento. Quando o evento ocorre, a evob faz uma requisição HTTP POST para essa URL com os dados do evento em JSON.
Analogia: é como assinar uma notificação. Em vez de ficar checando se houve uma nova venda (polling), a evob te avisa automaticamente.Como funciona
``` Evento na evob Webhook disparado Sistema externo (ex: compra aprovada) → POST /sua-url recebe os dados { "event": "purchase.completed", "data": { ... } } ```
Fluxo:- Aluno compra um curso
- Gateway confirma o pagamento
- evob dispara POST para a URL cadastrada
- Seu sistema (CRM, automação, planilha via Zapier) recebe os dados
- Seu sistema executa a ação (cria contato, envia e-mail, atualiza planilha)
Webhook vs. polling vs. integração nativa
| | Webhook | Polling (verificação periódica) | Integração nativa | |---|---|---|---| | Tempo de resposta | Imediato | Depende do intervalo | Imediato | | Configuração | Requer endpoint | Script periódico | Chave de API | | Flexibilidade | Alta | Alta | Limitada ao que a integração oferece | | Custo | Depende do receptor | Mais chamadas de API | Geralmente zero |
Casos de uso comuns
| O que você quer fazer | Evento a ouvir | |---|---| | Adicionar aluno ao LeadLovers quando comprar | `purchase.completed` | | Criar tag no ActiveCampaign quando concluir curso | `course.completed` | | Notificar equipe no Slack sobre nova venda | `purchase.completed` | | Atualizar planilha de alunos via Zapier | `enrollment.created` | | Enviar dados para CRM próprio | `student.created` + `purchase.completed` |
Boas práticas
✅ Faça
- Valide a assinatura HMAC na URL receptora antes de processar o payload — isso garante que a requisição veio da evob e não de terceiros maliciosos
- Responda com HTTP 200 em até 5 segundos — se a URL demorar mais, a evob considera o envio como falha e aciona o retry
- Registre os payloads recebidos em log — quando uma integração falha, o log é o único lugar para entender o que chegou
❌ Não faça
- Processar o webhook de forma síncrona (fazer tudo antes de retornar 200) — retorne 200 imediatamente e processe em background; processamento lento causa timeout e retries desnecessários
- Usar a mesma URL para webhooks de ambientes de teste e produção — payloads de teste podem poluir dados reais; use URLs separadas por ambiente
- Ignorar os eventos de falha de cobrança — `charge.failed` é tão importante quanto `purchase.completed` para manter o CRM sincronizado
Erros comuns
"O webhook está configurado mas não está recebendo nada"
Verifique se o evento correto está selecionado na configuração do webhook e se a URL está acessível publicamente (não pode ser localhost ou IP interno). Use a função de teste disponível em Webhooks > [webhook] > Enviar teste.
"A URL recebe o webhook mas o sistema não processa"
O problema está no receptor, não na evob. Verifique os logs do servidor que recebe a requisição. A evob apenas garante o envio — o processamento é responsabilidade do sistema receptor.
"Estou recebendo webhooks duplicados"
Pode ser efeito do retry automático quando o receptor demorou mais de 5s para responder 200 na primeira tentativa. Implemente verificação de idempotência usando o campo `event_id` do payload para ignorar duplicatas.
"Como testar o webhook sem fazer uma compra real?"
Acesse Configurações > Webhooks > [webhook] > Enviar teste. A evob envia um payload de exemplo para a URL configurada, permitindo testar o receptor sem movimentação financeira real.
Próximos passos
- 📖 Eventos disponíveis para webhooks
- 📖 Configurar e testar um webhook
- 📖 Retry e depuração de webhooks
- 📖 Segurança e autenticação de webhooks (HMAC)
Foi útil este artigo? 👍 👎 Falar com CS (em produção) · Pergunte ao Vob 🤖 (em produção) Última atualização: 2026-05-07