Todos os sistemas operando

Bem-vindo à evob.
Como podemos ajudar?

Tudo que você precisa para tirar o máximo da sua plataforma — guias, vídeos, dúvidas frequentes e suporte humano.

Comece por aqui

Trilha sob medida pra você

Roteiros passo a passo conforme seu papel na plataforma.

Explore por área

Tudo que sua plataforma faz, organizado em pastinhas.

Os mais buscados

Atualizados recentemente

Não achou o que procurava?

Nosso time de Customer Success responde em até 30 minutos nos planos Pro e superiores.

Eventos disponíveis para webhooks

Eventos de webhook definem quais ações na evob disparam notificação para o sistema externo.

Onde acessar

Plataforma > Configurações > Webhooks > [webhook] > Eventos

Lista completa de eventos

Aluno

| Evento | Quando dispara | |---|---| | `student.created` | Novo aluno criou conta na loja | | `student.updated` | Dados do aluno foram alterados |

Matrícula

| Evento | Quando dispara | |---|---| | `enrollment.created` | Matrícula criada (por compra ou manualmente) | | `enrollment.cancelled` | Matrícula cancelada pelo admin ou por reembolso | | `enrollment.completed` | Aluno marcou todos os módulos como concluídos |

Compras e cobranças

| Evento | Quando dispara | |---|---| | `purchase.completed` | Pagamento aprovado (cartão, Pix, boleto compensado) | | `purchase.refunded` | Reembolso processado | | `charge.failed` | Cobrança recusada (cartão ou renovação de assinatura) | | `chargeback.created` | Chargeback iniciado pelo banco |

Assinatura

| Evento | Quando dispara | |---|---| | `subscription.created` | Nova assinatura criada | | `subscription.cancelled` | Assinatura cancelada | | `subscription.renewed` | Renovação de assinatura aprovada | | `subscription.suspended` | Acesso suspenso por inadimplência |

Conteúdo

| Evento | Quando dispara | |---|---| | `course.completed` | Aluno concluiu o curso | | `certificate.issued` | Certificado gerado e disponível | | `nps.answered` | Aluno respondeu ao NPS | | `comment.posted` | Aluno postou comentário em aula |


Estrutura do payload

Todos os eventos seguem a mesma estrutura base:

```json { "event": "purchase.completed", "event_id": "evt_a1b2c3d4e5f6", "timestamp": "2026-05-07T14:30:00Z", "store_id": 123, "data": { // dados específicos do evento } } ```

O campo `event_id` é único por disparo — use-o para implementar idempotência (ignorar duplicatas).


Dados incluídos por evento

`purchase.completed`

```json { "transaction_id": 456789, "student": { "id": 111, "name": "João Silva", "email": "joao@email.com" }, "offer": { "id": 22, "name": "Curso Completo", "price": 29700 }, "payment_method": "credit_card", "installments": 3, "coupon_code": null } ```

`enrollment.created`

```json { "enrollment_id": 789, "student": { "id": 111, "name": "João Silva", "email": "joao@email.com" }, "course": { "id": 5, "name": "Curso Completo" }, "classroom": { "id": 9, "name": "Turma 2026.1" }, "created_by": "purchase" } ```


Boas práticas

✅ Faça

  • Assine apenas os eventos que o seu sistema vai consumir — receber todos os eventos quando você só usa `purchase.completed` gera tráfego desnecessário e aumenta o risco de erro
  • Use o `event_id` para deduplicação no receptor — o mesmo evento pode ser entregue mais de uma vez em cenário de retry; o receptor deve ignorar duplicatas
  • Documente internamente quais eventos cada webhook da loja está assinando — sem documentação, fica difícil saber o que desligar quando uma integração for desativada

❌ Não faça

  • Ouvir `student.updated` para sincronizar CRM sem filtrar o que mudou — esse evento dispara em qualquer alteração de dados do aluno (inclusive internas); verifique o campo alterado antes de processar
  • Usar `enrollment.created` como confirmação de pagamento — matrícula manual não gera `purchase.completed`; para confirmação financeira, use `purchase.completed`
  • Ignorar o evento `charge.failed` em assinaturas — sem esse evento, o CRM não saberá que o aluno está inadimplente e continuará recebendo comunicações de cliente ativo

Erros comuns

"Não encontro o evento que preciso na lista"

A lista de eventos disponíveis pode variar por plano ou por configuração da plataforma. Se precisar de um evento que não está disponível, entre em contato com o suporte para verificar o roadmap.

"O evento `purchase.completed` não dispara para compras via boleto"

Para boleto, o evento dispara quando o boleto é compensado (1–3 dias úteis após o pagamento). Imediatamente após a geração do boleto, nenhum evento de compra é disparado.

"Recebi `enrollment.created` mas não recebi `purchase.completed`"

Pode ser matrícula manual (admin matriculou sem compra) ou cortesia. Nesse caso, `enrollment.created` é disparado mas não há transação financeira, portanto `purchase.completed` não ocorre.

"Quero filtrar eventos por curso ou oferta específicos"

Filtragem por curso/oferta no disparo não está disponível — o webhook recebe todos os eventos do tipo assinado. O filtro deve ser implementado no receptor, verificando o `course.id` ou `offer.id` no payload.


Próximos passos


Foi útil este artigo? 👍 👎 Falar com CS (em produção) · Pergunte ao Vob 🤖 (em produção) Última atualização: 2026-05-07


Este artigo foi útil?
Sugerir uma melhoria
Ainda com dúvida?

Nosso time responde em até 30 minutos nos planos Pro e superiores.

✎ Revisão Navegue para um artigo
✨ Gemini — Editor de Ajuda

⚙ Configurações — Modo Revisão

Bunny Storage API Key (evob-docs)
Para salvar artigos diretamente no CDN
Gemini API Key
Chaves salvas no localStorage deste browser