Documento técnico
abdatabase.com
INTEGRACIONES · ALTA DE API

Conectar WhatsApp Business a un bot propio

Procedimiento completo en Meta for Developers para dar de alta una cuenta de WhatsApp Business, generar credenciales estables y conectarla a un servidor propio que reciba y responda mensajes automáticamente.
📅 Agosto 2026 ✍️ abDatabase

Qué se construye

Tres piezas conectadas entre sí. Meta aloja la app y la cuenta de WhatsApp; tu servidor aloja la lógica del bot. La conexión entre ambos es el webhook, y suele ser el punto donde más tiempo se pierde si se salta algún paso.

Meta for Developers
App registrada + caso de uso "Conectar en WhatsApp"
WABA
Cuenta de WhatsApp Business, con el número de teléfono real
Tu servidor
Webhook propio (HTTPS) que recibe y responde mensajes

Resumen rápido

1. Cuenta de desarrollador en Meta

Todo empieza con una cuenta de Meta for Developers vinculada a un perfil personal de Facebook.

  1. Entra en developers.facebook.com con una cuenta de Facebook (personal o de la empresa).
  2. Acepta la política de desarrolladores si es la primera vez que accedes a la plataforma.
  3. Verifica tu cuenta con un número de teléfono si Meta te lo pide — es un requisito de seguridad, no específico de WhatsApp.
A tener en cuenta No hace falta una cuenta de empresa (Business Manager) todavía para este primer paso — se crea más adelante, ligada a la app.

2. Crear la app

La app es el contenedor técnico: aquí viven las credenciales, los permisos y, más adelante, el webhook.

  1. Desde el panel, Mis apps → Crear app.
  2. Elige el tipo "Otro" y, en el siguiente paso, "Empresa" como caso de uso general.
  3. Dale un nombre reconocible — por ejemplo MiApp Bot — y asócialo a un portafolio de empresa (Meta puede crear uno nuevo automáticamente si no tienes ninguno).
  4. Anota el ID de la app que aparece en el panel — se usa constantemente a partir de aquí.

3. Añadir WhatsApp a la app

Con la app creada, se añade el caso de uso de mensajería.

  1. En el panel de la app, ve a Casos de uso → Agregar caso de uso y elige "Conectar en WhatsApp".
  2. Meta crea automáticamente una cuenta de WhatsApp Business de prueba (sandbox), con un número de EE. UU. de ejemplo — sirve para probar el flujo técnico, pero solo puede escribir a un puñado de números de destino que verifiques tú a mano.
  3. En Personalizar → Configuración de la API puedes ver ese número de prueba y su identificador técnico (phone_number_id).
Sandbox vs. producción El número de prueba es perfecto para validar que el webhook funciona antes de complicarse con un número real. No hace falta verificación de negocio para usarlo.

4. Verificación del negocio

Para usar un número de teléfono real (no el de pruebas), Meta exige verificar la identidad del negocio.

  1. En Configuración del negocio → Verificación del negocio, aporta los datos legales de la empresa (nombre, dirección, NIF/CIF o equivalente).
  2. Meta puede pedir un documento acreditativo (registro mercantil, factura de suministro a nombre de la empresa, etc.).
  3. La revisión suele tardar de minutos a un par de días — evita repetir la solicitud si tarda, puede reiniciar la cola.
Trampa habitual Crear o navegar por primera vez el portafolio comercial usando herramientas de automatización de navegador (bots de clics, extensiones de "agente IA" sobre el propio navegador) puede hacer que el sistema antifraude de Meta marque la cuenta como creada de forma irregular, y deniegue la verificación sin más explicación. Este primer alta conviene hacerlo siempre a mano, navegador normal.

5. Dar de alta el número de teléfono real

Con el negocio verificado, ya se puede añadir el número que va a atender de verdad a los clientes.

  1. En el Administrador de WhatsApp (business.facebook.com/latest/whatsapp_manager), dentro de la cuenta de WhatsApp Business correspondiente, ve a Números de teléfono → Agregar número de teléfono.
  2. Introduce el número real y el nombre visible del negocio.
  3. Verifica por SMS o llamada de voz — el código llega al propio teléfono.
  4. Anota el nuevo phone_number_id que aparece junto al número — es distinto del de prueba y es el que se usará en producción.
Antes de dar de alta el número Ese número no puede tener ya una cuenta activa en la app normal de WhatsApp o WhatsApp Business (la del móvil). Si la tiene, hay que eliminar esa cuenta desde el propio teléfono antes de continuar, o Meta bloqueará el alta.

6. Generar un token de acceso permanente

El token temporal de 24 horas que ofrece la propia pantalla de configuración no sirve para producción — hace falta uno que no caduque.

  1. En Configuración del negocio → Usuarios → Usuarios del sistema, crea uno nuevo (o usa uno existente) con rol Administrador.
  2. Asígnale acceso a los activos que necesita: la app y la cuenta de WhatsApp Business concretas.
  3. Con el usuario del sistema seleccionado, pulsa Generar token: elige la app, marca caducidad "Nunca", y confirma los permisos whatsapp_business_messaging y whatsapp_business_management.
  4. Copia el token en cuanto se genere — Meta solo lo muestra una vez.

7. Preparar tu servidor

El webhook necesita dos comportamientos distintos en la misma URL, según el método HTTP: verificación y recepción de mensajes.

  1. Certificado HTTPS válido reconocido por una autoridad pública — un certificado autofirmado no sirve, Meta rechaza la conexión.
  2. GET en la URL del webhook: responde con el valor de hub.challenge si hub.verify_token coincide con un token secreto que tú mismo eliges.
  3. POST en la misma URL: aquí llegan los mensajes reales, en formato JSON.
# Verificación (una sola vez, cuando registras el webhook)
GET /webhook/whatsapp?hub.mode=subscribe&hub.verify_token=TU_TOKEN_SECRETO&hub.challenge=123456
→ responde "123456" en texto plano, si el token coincide

# Cada mensaje entrante
POST /webhook/whatsapp
Content-Type: application/json
X-Hub-Signature-256: sha256=... ← firma HMAC del cuerpo, verificar antes de procesar
Verificar la firma Cada petición llega firmada con el App Secret de la app (HMAC-SHA256 sobre el cuerpo crudo). Comprobarla antes de procesar nada evita que alguien mande peticiones falsas a tu endpoint suplantando a Meta.

8. Registrar el webhook en la app

Con el servidor ya respondiendo, se le dice a Meta dónde está.

  1. En Casos de uso → Conectar en WhatsApp → Personalizar → Configuración, busca la sección Webhooks.
  2. Rellena la URL de devolución de llamada (tu endpoint público) y el token de verificación — el mismo string secreto que tu servidor espera recibir en hub.verify_token.
  3. Pulsa Verificar y guardar — Meta hace en ese momento la petición GET de verificación contra tu servidor.
  4. En la lista de campos del webhook, activa la suscripción al campo messages — es el único imprescindible para un bot conversacional básico.

9. El paso que casi todo el mundo se salta

Verificar el webhook y activar messages en la app no es suficiente. Falta un paso que no está en ningún sitio visible de la interfaz de configuración: suscribir la propia cuenta de WhatsApp Business a la app.

Síntoma El webhook se verifica sin error, messages aparece como suscrito, y aun así nunca llega ningún mensaje real al servidor — ni una sola petición POST, por más que se le escriba al número. Es fácil perder horas revisando certificados, firewalls y DNS cuando el problema está en otro sitio.

La comprobación y la corrección se hacen con dos llamadas directas a la Graph API, usando el token permanente del paso 6:

# 1. Comprobar si la WABA ya está suscrita a la app
GET https://graph.facebook.com/v21.0/{waba_id}/subscribed_apps
Authorization: Bearer {token}

# Si la respuesta es {"data": []} -- vacía -- ese es el problema.

# 2. Suscribirla
POST https://graph.facebook.com/v21.0/{waba_id}/subscribed_apps
Authorization: Bearer {token}

# Respuesta esperada: {"success": true}

El waba_id (identificador de la cuenta de WhatsApp Business, distinto del phone_number_id) se encuentra en el Administrador de WhatsApp, en la URL o en el selector de cuentas de la parte superior.

10. Probar el flujo completo

  1. Desde un teléfono con WhatsApp, manda un mensaje de texto simple ("hola") al número dado de alta.
  2. En los logs del servidor debería verse una petición POST nueva, con el cuerpo JSON del mensaje.
  3. Si el bot responde, comprueba que el mensaje de salida se envía con una llamada a POST /{phone_number_id}/messages usando el mismo token permanente.
  4. Prueba también el caso de un número que escribe por primera vez, y el de una conversación que se retoma tras un rato de inactividad — son los dos escenarios donde más suelen aparecer fallos de estado.

11. Gestionar cuentas de terceros

Todo lo anterior sirve para conectar el número de tu propio negocio. Si el bot se va a ofrecer como servicio a otros negocios (cada uno con su propia marca y número), el modelo correcto no es meter el número de cada cliente dentro de tu propio portafolio — es registrarse como proveedor de tecnología (antes llamado BSP).

Con ese modelo, cada cliente verifica y es dueño de su propia cuenta de WhatsApp Business, y autoriza a tu app a gestionarla vía un flujo de alta alojado por el propio Meta (Embedded Signup). Tu servidor sigue siendo uno solo, pero cada cliente conserva su identidad de marca de cara a Meta y a sus propios usuarios finales, en vez de aparecer como una cuenta más dentro de tu negocio.

12. Errores más comunes

Síntoma Causa habitual Cómo resolverlo
El webhook se verifica bien, pero no llega ningún mensaje real La WABA nunca se suscribió a la app Ver §9 — POST /{waba_id}/subscribed_apps
hub.challenge nunca se acepta al guardar el webhook El token de verificación no coincide, o el servidor no responde con texto plano Comparar el token carácter a carácter; comprobar el Content-Type de la respuesta
No se puede registrar el número real Ese número ya tiene una cuenta activa en la app normal de WhatsApp Eliminar la cuenta desde el propio móvil antes de darlo de alta
El portafolio comercial queda restringido al crearlo, sin explicación Se creó o navegó con automatización de navegador en el primer acceso Recrearlo a mano, sin herramientas de automatización, en un navegador limpio
El token deja de funcionar a las 24 h Se usó el token temporal de la pantalla de configuración rápida, no uno permanente Generar uno de verdad desde un Usuario del sistema (§6)

13. Glosario rápido

Término Significado
App Contenedor técnico en Meta for Developers que aloja las credenciales y la configuración del webhook.
WABA WhatsApp Business Account — la cuenta que contiene uno o varios números de teléfono reales.
phone_number_id Identificador técnico de un número concreto dentro de una WABA; distinto del número visible.
Usuario del sistema Identidad técnica (no una persona) usada para generar tokens de acceso permanentes con permisos concretos.
Verify token Cadena secreta, elegida por quien monta el servidor, que Meta envía en la verificación del webhook para confirmar que la URL es legítima.
Proveedor de tecnología Modelo para gestionar, desde una sola app, las cuentas de WhatsApp de varios clientes distintos sin ser dueño de ellas.