📱 WhatsApp Cloud API
WhatsApp se conecta a través de la API Cloud de Meta — la API oficial, disponible en nivel gratuito, que te permite enviar y recibir mensajes de WhatsApp desde tu propio servidor. No se requiere un BSP (Proveedor de Soluciones Empresariales) de terceros.
Requisitos Previos
- Una cuenta de desarrollador de Meta en developers.facebook.com
- Una cuenta Meta Business (también conocida como Business Manager)
- Un número de teléfono para WhatsApp que no esté registrado en WhatsApp personal (puedes usar una SIM, un número virtual o un teléfono fijo)
Pasos de Configuración
1. Crear una App de Meta
- Ve a developers.facebook.com/apps
- Haz clic en Crear App
- Elige el tipo Business
- Completa un nombre y conecta tu cuenta Business
2. Agregar el Producto WhatsApp
- En el panel de tu app, desplázate a Agregar Productos a Tu App
- Haz clic en Configurar en WhatsApp
- Selecciona tu cuenta Business
3. Obtener Tus Credenciales
Navega a WhatsApp → Configuración de API en el panel de tu app:
| Credencial | Dónde Encontrarla |
|---|---|
| Phone Number ID | Listado en la sección "From" — un ID numérico como 123456789012345 |
| Access Token | El token temporal mostrado en esta página. Para producción, genera un token permanente vía System Users. |
| App Secret | Panel de la App → Configuración → Básica → App Secret |
| Verify Token | Una cadena que tú inventas — cualquier cadena aleatoria, ej. my_secret_verify_token_2024 |
4. Agregar el Canal en PulseHub
- Ve a Canales → Agregar Canal
- Selecciona WhatsApp
- Completa los cuatro campos
- Haz clic en Guardar Canal
- Copia la URL del Webhook mostrada en la tarjeta del canal
5. Configurar el Webhook en Meta
- En tu app de Meta, ve a WhatsApp → Configuración
- Haz clic en Editar junto a la sección de Webhook
- URL de Callback: pega tu URL de webhook de PulseHub
- Verify Token: ingresa la misma cadena que pusiste en PulseHub
- Haz clic en Verificar y Guardar
Meta hará una solicitud GET a tu URL de webhook con ?hub.mode=subscribe&hub.verify_token=...&hub.challenge=.... PulseHub verifica el token y devuelve el challenge.
- En Campos de Webhook, suscríbete a: messages
6. Probar
Envía un mensaje de WhatsApp a tu número de negocio. Debería aparecer como una nueva conversación en la bandeja de PulseHub en segundos.
Verificación de Firma
Meta incluye un header X-Hub-Signature-256 en cada webhook:
X-Hub-Signature-256: sha256=abc123...
PulseHub lo verifica usando HMAC-SHA256 con tu App Secret. Si la verificación falla, el webhook devuelve 401 Signature mismatch.
Envío de Mensajes
Cuando un agente envía una respuesta desde la bandeja, PulseHub llama a la API de WhatsApp Cloud:
POST https://graph.facebook.com/v18.0/{phone_number_id}/messages
Authorization: Bearer {access_token}
{
"messaging_product": "whatsapp",
"to": "{recipient_phone}",
"type": "text",
"text": {"body": "Tu respuesta aquí"}
}
Acceso a Producción
La app de Meta por defecto está en modo Development — solo puede enviar mensajes a números agregados como números de prueba. Para salir en vivo:
- Completa la Verificación de Negocio en Meta Business Manager
- Envía tu caso de uso de WhatsApp para la revisión de Meta
- Una vez aprobado, tu app obtiene acceso para enviar mensajes a todos los usuarios de WhatsApp
Problemas Comunes
| Síntoma | Causa Probable |
|---|---|
| La verificación falla durante la configuración del webhook | El verify_token en PulseHub no coincide con lo que ingresaste en Meta |
| Error de firma no coincidente en los logs | app_secret incorrecto — cópialo desde Configuración de la App → Básica, no desde Configuración de API |
| Los mensajes no llegan | El campo de webhook messages no está suscrito en el panel de Meta |
Invalid phone number al enviar | El formato del número debe ser E.164 sin + (ej. 15551234567) |
| Error de app en modo Development | Solo los números de prueba verificados pueden recibir mensajes en modo dev |