Integração via Webhook – Kiwify + Leavo
1. Visão Geral
A Kiwify é uma plataforma brasileira de venda e distribuição de produtos digitais, com foco em cursos online e e-books. A integração com o Leavo automatiza qualificação de compradores e gestão de assinaturas.
Casos de uso principais:
- Qualificar compradores após pagamento aprovado
- Reengajar clientes que cancelaram assinaturas
- Recuperar carrinhos abandonados
- Gerenciar boletos e PIX pendentes
Fluxos disponíveis:
- ✅ Kiwify → Leavo: Kiwify envia eventos para o Leavo
- ⚠️ Leavo → Kiwify: Via API REST com OAuth2 (não webhook direto)
Diferencial: API REST completa com OAuth2 e rate limit de 100 req/min.
2. Documentação Oficial
Kiwify:
Leavo:
3. Recursos disponíveis via Webhook
3.1 Eventos da Kiwify
A Kiwify suporta 10 eventos (triggers):
| Evento | Descrição | Recomendado Leavo |
|---|---|---|
compra_aprovada | Compra paga e aprovada | ✅ Sim |
compra_recusada | Pagamento recusado | ⚠️ Opcional |
compra_reembolsada | Reembolso realizado | ✅ Sim |
chargeback | Contestação | ✅ Sim |
boleto_gerado | Boleto criado | ⚠️ Opcional |
pix_gerado | PIX criado | ⚠️ Opcional |
carrinho_abandonado | Carrinho abandonado | ✅ Sim |
subscription_canceled | Assinatura cancelada | ✅ Sim |
subscription_late | Assinatura atrasada | ✅ Sim |
subscription_renewed | Renovação bem-sucedida | ⚠️ Opcional |
4. Como configurar webhooks
4.1 FLUXO 1: Kiwify enviando eventos para o Leavo
Passo 1: Criar Webhook de Entrada no Leavo
- Acesse https://app.leavo.ai/pt-BR/ai-settings/webhooks
- Clique na aba "Entrada"
- Clique em "+ Criar Webhook"
No modal:
- Nome:
Kiwify - Compradores [Produto] - Descrição:
Recebe compradores da Kiwify - Webhook ativo: LIGADO
- Clique em "Criar Webhook"
Passo 2: Configurar Webhook na Kiwify
2.1 Acessar Apps:
- No painel Kiwify, vá em Apps
- Selecione Webhooks
- Clique em "Criar Webhook"
2.2 Configurar:
| Campo | Valor |
|---|---|
| Nome | Integração Leavo - Vendas |
| URL | https://api.leavo.ai/api/webhooks/[UUID] |
| Produto | Selecione produtos OU "Todos" |
| Eventos (Triggers) | Marque: compra_aprovada |
2.3 Token de segurança:
- A Kiwify gera automaticamente um Token
- GUARDE ESTE TOKEN - será enviado no payload
Passo 3: Estrutura do Payload da Kiwify
Exemplo de compra_aprovada:
{
"order_id": "7f7e2b76-6339-49af-8788-e753e76b61c1",
"order_ref": "UOcHGBY",
"order_status": "paid",
"payment_method": "credit_card",
"installments": 12,
"card_type": "mastercard",
"created_at": "2025-12-11 15:16",
"Product": {
"product_id": "2a14ad80-7edc-4f06-a237-aa4ae3d0f2c8",
"product_name": "Curso Completo de Marketing"
},
"Customer": {
"full_name": "João Silva",
"email": "joao.silva@example.com",
"mobile": "+5511999999999",
"CPF": "12345678900"
},
"Commissions": {
"charge_amount": "49700",
"product_base_price": "49700"
},
"TrackingParameters": {
"utm_source": "google",
"utm_campaign": "black-friday"
}
}
Campos disponíveis:
Customer.full_nameCustomer.emailCustomer.mobileProduct.product_nameCommissions.charge_amount
Passo 4: Mapear Campos no Leavo
4.1 Mapeamento:
| Campo Leavo | Campo Payload | Preview |
|---|---|---|
| Nome * | Customer.full_name | "João Silva" |
Customer.email | "joao.silva@example.com" | |
| Telefone * | Customer.mobile | "+5511999999999" |
⚠️ Atenção: Kiwify usa maiúscula: Customer., Product., Subscription.
4.2 Campos Personalizados:
| Campo | Payload | Preview |
|---|---|---|
Produto | Product.product_name | "Curso de Marketing" |
Valor | Commissions.charge_amount | "49700" (em centavos) |
Forma_Pagamento | payment_method | "credit_card" |
Parcelas | installments | "12" |
UTM_Source | TrackingParameters.utm_source | "google" |
5. Observações e Limitações
5.1 Limitações da Kiwify
| Aspecto | Limitação |
|---|---|
| Token | Enviado no payload - validar sempre |
| API Token expira | A cada 96 horas (4 dias) |
| Rate limit API | 100 chamadas/minuto |
| Webhook entrada | NÃO SUPORTA |
5.2 Campos com Maiúscula
⚠️ CRÍTICO: A Kiwify usa maiúscula nos objetos:
Customer.nãocustomer.Product.nãoproduct.Subscription.nãosubscription.
6. Troubleshooting
6.1 Campos vazios
| Causa | Solução |
|---|---|
| Maiúscula incorreta | ✅ Use Customer.full_name |
| Minúscula usada | ✅ Não use customer.full_name |
| Campo não existe | ✅ Verifique payload real |
6.2 Valores incorretos
Problema: Valor aparece como "49700" ao invés de "497.00"
Causa: Kiwify envia em centavos
Solução: Divida por 100: 49700 / 100 = 497.00
7. Casos de Uso
7.1 Onboarding Pós-Compra
Fluxo:
- Cliente compra (
compra_aprovada) - Lead criado no Leavo
- Agente IA envia boas-vindas
- Qualifica satisfação
- Oferece produtos relacionados
7.2 Carrinho Abandonado
Fluxo:
- Carrinho abandonado
- Lead criado no Leavo
- Após 1 hora, agente IA envia mensagem
- Oferece desconto
- Cliente finaliza compra


