🚀 WhatsApp Tracking API

Documentação Completa - Sistema de Tracking de Conversões

🚀 Visão Geral

Sistema completo de tracking de conversões do WhatsApp usando Cloudflare Workers + Supabase.

URL Base: https://api.whatstracking.com

Worker URL: https://api.felipesoabreu16.workers.dev

🎯 Endpoints Principais

POST /tracking

Função: Receber e processar dados de tracking do site

https://api.whatstracking.com/tracking
curl -X POST https://api.whatstracking.com/tracking \
  -H "Content-Type: application/json" \
  -d '{
    "companie_id": "empresa-123",
    "page_url": "https://seusite.com/produto",
    "utm_source": "google",
    "utm_campaign": "black-friday"
  }'

POST /webhook/{companieId}

Função: Receber webhooks do Evolution API para processar conversões

https://api.whatstracking.com/webhook/empresa-123
curl -X POST https://api.whatstracking.com/webhook/empresa-123 \
  -H "Content-Type: application/json" \
  -d '{
    "event": "messages.upsert",
    "instance": "instancia-123",
    "data": {
      "key": {"id": "msg123", "remoteJid": "5511999999999@s.whatsapp.net"},
      "message": {"conversation": "Olá!"},
      "pushName": "João"
    }
  }'

GET /scripts/whatsapp-tracker.js

Função: Servir o script JavaScript de tracking

https://api.whatstracking.com/scripts/whatsapp-tracker.js
<script>
  window.whatsappcompanieId = 'sua-empresa-id';
</script>
<script src="https://api.whatstracking.com/scripts/whatsapp-tracker.js"></script>

🔧 Endpoints de Gerenciamento

POST /api/create-instance

Função: Criar nova instância no Evolution API

https://api.whatstracking.com/api/create-instance

Requer Autenticação

GET /api/instance-status

Função: Verificar status de uma instância

https://api.whatstracking.com/api/instance-status?instance=instancia-123

Requer Autenticação

DELETE /api/delete-instance

Função: Deletar instância do Evolution API

https://api.whatstracking.com/api/delete-instance

Requer Autenticação

POST /instance/restart

Função: Reiniciar instância (logout + reconnect)

https://api.whatstracking.com/instance/restart

Requer Autenticação

POST /instance/logout

Função: Fazer logout de uma instância

https://api.whatstracking.com/instance/logout

Requer Autenticação

DELETE /instance/delete

Função: Deletar instância (completo)

https://api.whatstracking.com/instance/delete

Requer Autenticação

🛠️ Endpoints de Utilidade

GET /qrcode/generate-qrcode

Função: Gerar QR Code para conectar WhatsApp

https://api.whatstracking.com/qrcode/generate-qrcode?instanceId=instancia-123
curl "https://api.whatstracking.com/qrcode/generate-qrcode?instanceId=instancia-123"

GET /public/get-connection

Função: Obter informações públicas de uma conexão

https://api.whatstracking.com/public/get-connection?connectionId=conexao-123
curl "https://api.whatstracking.com/public/get-connection?connectionId=conexao-123"

POST /webhook-ingest

Função: Processar webhooks genéricos com logs estruturados

https://api.whatstracking.com/webhook-ingest?token=seu-token

Requer Token

⚙️ Configuração

Secrets Necessários

# Configurar no Cloudflare Workers
npx wrangler secret put SUPABASE_URL
npx wrangler secret put SUPABASE_SERVICE_ROLE_KEY
npx wrangler secret put WEBHOOK_SHARED_TOKEN

Configuração do Evolution API

{
  "webhook": {
    "url": "https://api.whatstracking.com/webhook/sua-empresa-id",
    "events": ["MESSAGES_UPSERT", "CONNECTION_UPDATE", "QRCODE_UPDATED"]
  }
}

📝 Exemplos de Uso

Fluxo Completo de Tracking

1. Incluir Script no Site:
<script>
  window.whatsappcompanieId = 'empresa-123';
</script>
<script src="https://api.whatstracking.com/scripts/whatsapp-tracker.js"></script>

2. Configurar Evolution API:
curl -X POST https://api.whatstracking.com/api/create-instance \
  -H "Authorization: Bearer SEU_TOKEN" \
  -d '{"connectionId": "instancia-123"}'

3. Gerar QR Code:
curl "https://api.whatstracking.com/qrcode/generate-qrcode?instanceId=instancia-123"

4. Configurar Webhook:
{
  "webhook": "https://api.whatstracking.com/webhook/empresa-123"
}

❌ Códigos de Erro

HTTP Status Codes

  • 200 - Sucesso
  • 400 - Bad Request (verificar parâmetros)
  • 401 - Unauthorized (verificar token)
  • 404 - Not Found (recurso não existe)
  • 405 - Method Not Allowed (método incorreto)
  • 500 - Internal Server Error (verificar logs)

Erros Comuns

  • "No server configured" - Configurar servidor Evolution API
  • "Connection not found" - Verificar se connectionId existe
  • "Unauthorized" - Verificar token de autenticação
  • "Method not allowed" - Usar método HTTP correto