O nome interno do evento (usado nos cadastros de webhook do Console) é
paywall_payment_completed.Assinar este evento
Aponte um listener para a sua URL informandoEventName: "paywall_payment_completed". Auth, secret e verificação em Cadastrando e verificando webhooks.
Quando dispara
- Gateway de pagamento (Asaas, Stripe) envia callback de confirmação para o Cativa
- Pagamento PIX é compensado
- Cobrança de boleto é compensada
- Cobrança de cartão de crédito é capturada com sucesso
- Pagamento manual é marcado como confirmado no admin
Quando NÃO dispara
- Pagamento criado mas ainda pendente (PIX gerado e não pago, boleto não vencido, etc.)
- Pagamento falho ou cancelado pelo gateway
- Pagamento estornado / refundado depois de já ter sido confirmado
- Pagamento sem
UserIdresolvido (ex: PIX onde o pagador ainda não foi associado a um usuário do tenant), entrega é pulada - Paywall ou pagamento não encontrados no enriquecimento do payload (entrega é pulada)
Payload
O payload é serializado em PascalCase e enviado no body doPOST com Content-Type: application/json. O payload tem três objetos aninhados, User, Paywall e Payment:
Campos do payload
Raiz
User
Paywall
Paywall.ActionType segue o enum:
Payment
Os nomes em português (
ValorPago, ValorOriginal, Desconto, TipoPagamento, IdTransacao) são herdados da v1 da plataforma e mantidos para compatibilidade com integrações Make/Zapier existentes. Não vão ser renomeados.Headers do request
A explicação completa de como verificar
X-Cativa-Signature, lidar com retries e garantir idempotência (com exemplos em Node, Python, Go e C#) está em Cadastrando e verificando webhooks.
Casos de uso
- Liberar acesso em plataforma externa, se você ainda hospeda parte do conteúdo fora do Cativa (área de membros legada, Hotmart, Memberkit), use
Payment.PaymentId+User.Idpara liberar acesso lá assim que o pagamento for confirmado. - Conciliação financeira, registrar
Payment.IdTransacao+Payment.Gateway+Payment.ValorPagono seu ERP/contabilidade para fechar o caixa por gateway. - Disparar email transacional, enviar recibo, NF-e ou boas-vindas de “compra confirmada” usando
User.Email,Paywall.Name,Payment.ValorPagoePayment.Installments.
Reagindo ao evento
Depois de verificar a assinatura, libere o acesso na sua plataforma externa. OPayment.PaymentId é único por pagamento confirmado, então serve de chave de idempotência. O Paywall.ActionType diz o que a compra concede (ver a tabela do enum acima):
Eventos relacionados
user_received_badge
Disparado quando o paywall concede badge, útil para casar a permissão recebida com o pagamento.
user_joined_group
Disparado quando o paywall adiciona o comprador a um grupo (ActionType 3 ou 5).
Cadastrando webhooks
Como cadastrar listeners, verificar HMAC e lidar com retries.
Webhooks (visão geral)
Por que webhooks, garantias de entrega e formato dos payloads.
