Dashboard
Resumen de tu cuenta
Sesiones Activas
Cargando...
Últimos Mensajes
Cargando...
Sesiones WhatsApp
Gestiona tus conexiones de WhatsApp
Cargando...
Escanea el QR con WhatsApp
Esperando QR...
El código tiene formato XXXX-XXXX. Escribilo en WhatsApp → Configuración → Dispositivos vinculados → Vincular con número de teléfono.
Mensajes
Entrantes y salientes de la API · actualización en vivo
auto 5s
Cargando...
Dominios
Dominios y subdominios con SSL automático
| Dominio | Tipo | Ruta Destino | SSL | Acciones |
|---|---|---|---|---|
| Cargando... | ||||
Analytics
Métricas privacy-friendly de los sitios de tus clientes
Cargando...
Apps
Deploya tus apps desde un repo git — con CI/CD automático
Cargando...
Correo
Buzones IMAP/SMTP en tu dominio
Cargando...
Billing & Plan
Cargando...
Configuración
🔑 Tu API Key
Header x-api-key en cada request a /api/v1/*. No la compartas.
👤 Perfil
🪝 Webhook
CloudWapp te hará POST a esta URL cada vez que ocurra un evento (mensaje recibido, sesión conectada, etc.).
Si dejás la URL vacía, no enviamos webhooks.
📋 Ver eventos que vas a recibir + ejemplo de payload
| Evento | Cuándo se dispara |
|---|---|
message.received | Llegó un mensaje entrante a una de tus sesiones |
message.sent | Tu mensaje saliente fue aceptado por WhatsApp |
message.delivered | WhatsApp confirma entrega (✓✓ gris) |
message.read | El destinatario abrió el mensaje (✓✓ azul) |
message.failed | Tras 3 reintentos no se pudo enviar |
session.connected | Una sesión completó el pareo |
session.disconnected | Una sesión se cerró |
// Headers que vas a recibir Content-Type: application/json User-Agent: CloudWapp-Webhook/1.0 X-CloudWapp-Event: message.received X-CloudWapp-Delivery: <jobId> X-CloudWapp-Signature: sha256=<hex> // si configuraste secret // Body { "event": "message.received", "userId": "...", "timestamp": "2026-05-19T...", "data": { "accountId":"...", "from":"...", "text":"hola", "waMessageId":"..." } } // Verificar firma en Node.js const sig = req.headers['x-cloudwapp-signature']; const expected = 'sha256=' + crypto .createHmac('sha256', SECRET) .update(req.rawBody) .digest('hex'); if (!crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected))) { return res.status(401).end(); }