Skip to main content

Como funciona

As sete plataformas abaixo se conectam ao Vistum pelo mesmo mecanismo inbound: o gatilho de automação “Webhook recebido” gera uma URL única + token, a plataforma faz POST nessa URL e a automação faz o field mapping do payload. Veja o mecanismo completo em Webhooks de Entrada. As diferenças entre plataformas são apenas o nome do evento (compra aprovada / reembolso) e o formato do payload. Os exemplos abaixo são representativos — o mapeamento exato é definido na automação, conforme o payload real que a plataforma enviar.
Os nomes de campos e a estrutura podem variar entre versões e configurações de cada plataforma. Sempre confira o payload real recebido (use o histórico de execuções da automação ou uma ferramenta como Webhook.site durante a configuração) antes de finalizar o mapeamento.

Eventos a configurar

PlataformaEvento “compra aprovada”Evento “reembolso / cancelamento”
HotmartCompra aprovada (PURCHASE_APPROVED)Reembolso / chargeback (PURCHASE_REFUNDED, PURCHASE_CHARGEBACK)
KiwifyCompra aprovada (order_approved / paid)Reembolso (order_refunded)
EduzzFatura pagaFatura reembolsada / cancelada
BraipPagamento aprovadoReembolso / estorno
MonetizzeVenda aprovadaReembolso / cancelamento
Perfect PayVenda aprovada (approved)Reembolso / estorno (refunded)
KirvanoCompra aprovada (SALE_APPROVED)Reembolso (SALE_REFUNDED)
Configure, em cada plataforma, o disparo do webhook apontando para a URL do gatilho da sua automação. O nome exato do evento aparece no painel de webhooks/notificações de cada plataforma.

Payloads e mapeamento por plataforma

Payload representativo:
{
  "event": "PURCHASE_APPROVED",
  "data": {
    "buyer": {
      "name": "João Ferreira",
      "email": "joao@empresa.com",
      "checkout_phone": "5511999887766"
    },
    "product": { "name": "Curso Avançado" },
    "purchase": {
      "status": "APPROVED",
      "price": { "value": 497.00, "currency_value": "BRL" }
    }
  }
}
Mapeamento sugerido:
Campo VistumOrigem
Nomedata.buyer.name
E-maildata.buyer.email
Telefonedata.buyer.checkout_phone
Produtodata.product.name
Valordata.purchase.price.value
Statusevent / data.purchase.status
Payload representativo:
{
  "order_status": "paid",
  "Customer": {
    "full_name": "Ana Costa",
    "email": "ana@email.com",
    "mobile": "5521988776655"
  },
  "Product": { "product_name": "Mentoria Premium" },
  "Commissions": { "charge_amount": 1997.00 }
}
Mapeamento sugerido:
Campo VistumOrigem
NomeCustomer.full_name
E-mailCustomer.email
TelefoneCustomer.mobile
ProdutoProduct.product_name
ValorCommissions.charge_amount
Statusorder_status
Payload representativo:
{
  "event": "invoice_paid",
  "data": {
    "customer": {
      "name": "Carlos Souza",
      "email": "carlos@email.com",
      "cel": "5531987654321"
    },
    "product": { "name": "Plano Anual" },
    "amount": 890.00,
    "status": "paid"
  }
}
Mapeamento sugerido:
Campo VistumOrigem
Nomedata.customer.name
E-maildata.customer.email
Telefonedata.customer.cel
Produtodata.product.name
Valordata.amount
Statusdata.status / event
Payload representativo:
{
  "trans_status": "pago",
  "client_name": "Mariana Lima",
  "client_email": "mariana@email.com",
  "client_cel": "5541999112233",
  "product_name": "Combo Completo",
  "trans_value": "297.00"
}
Mapeamento sugerido:
Campo VistumOrigem
Nomeclient_name
E-mailclient_email
Telefoneclient_cel
Produtoproduct_name
Valortrans_value
Statustrans_status
Payload representativo:
{
  "venda": {
    "status": { "descricao": "Finalizada" },
    "valor": 347.00
  },
  "comprador": {
    "nome": "Pedro Alves",
    "email": "pedro@email.com",
    "telefone": "5551988221133"
  },
  "produto": { "nome": "Treinamento Pro" }
}
Mapeamento sugerido:
Campo VistumOrigem
Nomecomprador.nome
E-mailcomprador.email
Telefonecomprador.telefone
Produtoproduto.nome
Valorvenda.valor
Statusvenda.status.descricao
Payload representativo:
{
  "sale_status_enum": "approved",
  "customer": {
    "full_name": "Beatriz Rocha",
    "email": "beatriz@email.com",
    "phone_number": "5562988445566"
  },
  "product": { "name": "Curso de Tráfego" },
  "sale_amount": 597.00
}
Mapeamento sugerido:
Campo VistumOrigem
Nomecustomer.full_name
E-mailcustomer.email
Telefonecustomer.phone_number
Produtoproduct.name
Valorsale_amount
Statussale_status_enum
Payload representativo:
{
  "event": "SALE_APPROVED",
  "customer": {
    "name": "Rafael Dias",
    "email": "rafael@email.com",
    "phone_number": "5571999778866"
  },
  "products": [{ "name": "Pacote Premium" }],
  "total_price": "R$ 1.297,00",
  "status": "APPROVED"
}
Mapeamento sugerido:
Campo VistumOrigem
Nomecustomer.name
E-mailcustomer.email
Telefonecustomer.phone_number
Produtoproducts[0].name
Valortotal_price
Statusstatus / event

Idempotência

O Vistum faz upsert por telefone: se o mesmo comprador disparar mais de um evento (ex: “compra aprovada” e depois “reembolso”), os eventos caem no mesmo contato, desde que o phone enviado seja o mesmo. Use isso para, por exemplo, adicionar a tag cliente na compra aprovada e a tag reembolso no evento de reembolso, sem duplicar o contato. Detalhes em Webhooks de Entrada.

Tratando reembolso / cancelamento

Crie uma segunda automação (ou um segundo gatilho “Webhook recebido”) apontando a plataforma para o evento de reembolso/cancelamento. Como o upsert é por telefone, a automação atualiza o contato existente — você pode mover o card, trocar tags ou registrar o evento sem criar um lead novo.

Próximos passos

Webhooks de Entrada

O mecanismo inbound completo: URL + token e field mapping.

Integrações

Visão geral e lista de plataformas suportadas.