Webhooks são a forma da Cativa te avisar quando algo acontece — em vez de você ficar perguntando à API a cada minuto. Esta página é a visão de alto nível. Para o passo a passo de cadastro, veja Cadastrando webhooks.Documentation Index
Fetch the complete documentation index at: https://docs.cativa.digital/llms.txt
Use this file to discover all available pages before exploring further.
Como funciona
Quando algo relevante acontece num tenant (usuário recebe badge, post é criado, pagamento é confirmado), a Cativa monta o payload do evento e fazPOST no seu endpoint público com Content-Type: application/json.
X-Cativa-Execution-Id e X-Cativa-Automation-Id que você pode usar para correlacionar com os logs do Console.
Garantias de entrega
At-least-once
Cada evento é entregue pelo menos uma vez. Sempre use o ID do evento para idempotência no seu lado, evitando processar duas vezes em caso de duplicata.
Ordem NÃO garantida
Eventos podem chegar fora da ordem em que aconteceram. Não escreva código que depende de receber
user_created antes de user_received_badge — eles podem inverter.Por que sem ordem?
A Cativa entrega eventos em paralelo para chegar rápido ao seu endpoint. Forçar ordem reduziria o throughput em ordem de magnitude. Em vez disso, o payload de cada evento contém todos os dados que você precisa para processá-lo isoladamente.Formato do payload
Exemplo (payload deuser_received_badge):
| Campo | Descrição |
|---|---|
CustomerId | ID do tenant que originou o evento. Use para rotear quando seu endpoint recebe webhooks de múltiplos tenants. |
| Campos específicos | Cada evento adiciona seus próprios campos (ex: BadgeId, BadgeName, User, ReceivedAt para user_received_badge). Veja a página de cada evento para o shape exato. |
Catálogo de eventos
A Cativa expõe eventos para as ações principais da plataforma. Comece pelo evento canônico:user_received_badge
Disparado quando um badge é atribuído a um usuário. Página de referência completa com payload e exemplo de receiver.
user_created
Novo usuário cadastrado.
user_joined_group
Usuário entrou num grupo (manual ou via badge).
post_created
Novo post publicado num grupo.
paywall_payment_completed
Pagamento do paywall concluído com sucesso.
Antipattern: processar eventos síncronamente no endpoint
Idempotência no seu lado
Como entrega é at-least-once, você precisa detectar duplicatas. Use uma combinação de campos do payload (ex:CustomerId + BadgeId + User.Id + ReceivedAt para user_received_badge) ou correlacione com o header X-Cativa-Execution-Id recebido junto com o request:
Próximos passos
Cadastrando webhooks
Como cadastrar um listener no Console e auditar disparos.
user_received_badge
Página de referência completa de um evento — exemplo concreto de payload e receiver.
