Envía tu primer mensaje con la WhatsApp Cloud API de Meta
Crea una app en Meta, añade WhatsApp, usa el número de prueba y envía tu primer mensaje con la API oficial.
Tutorial paso a paso para enviar tu primer mensaje de WhatsApp con la Cloud API oficial de Meta, sin intermediarios ni código de servidor. Creas una app en Meta for Developers, le añades el producto WhatsApp, usas el número de prueba y el token temporal, y disparás el mensaje con un request HTTP.
Dejar enviado tu primer mensaje de WhatsApp con la API oficial de Meta usando el número y el token de prueba.
Requisitos
- Una cuenta de Facebook/Meta para entrar a Meta for Developers
- Un teléfono con WhatsApp para recibir el mensaje de prueba
- Una terminal con curl (o un cliente HTTP como Postman)
- Nociones básicas de requests HTTP (headers, JSON)
Pasos
- 1. Crea una app en Meta for Developers
Entra a developers.facebook.com, inicia sesión y crea una app nueva de tipo Business. Esta app va a alojar el producto de WhatsApp.
- 2. Añade el producto WhatsApp
Dentro de la app, añade el producto WhatsApp. Meta te crea automáticamente un número de prueba y una cuenta de WhatsApp Business asociada para que pruebes sin dar de alta un número real.
- 3. Copia el Phone Number ID y el token temporal
En la sección de inicio rápido de la API vas a ver el ID del número de teléfono (Phone Number ID) y un token de acceso temporal. El token temporal sirve para probar y vence en unas horas.
🪟🍎 Windows y macOSAnota el Phone Number ID y el token; los vas a usar en el request. - 4. Añade tu número como destinatario de prueba
En la misma pantalla, carga tu propio número de WhatsApp como destinatario de prueba. Meta solo deja enviar a números verificados mientras estás en modo de prueba.
- 5. Envía el mensaje con la API
Reemplaza PHONE_NUMBER_ID, ACCESS_TOKEN y el número de destino (formato internacional, sin signos) y corre el request. La versión del endpoint (v23.0 aquí) va cambiando; usa la vigente que muestre la doc.
🪟🍎 Windows y macOScurl -X POST \ 'https://graph.facebook.com/v23.0/PHONE_NUMBER_ID/messages' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "messaging_product": "whatsapp", "to": "5491122334455", "type": "template", "template": { "name": "hello_world", "language": { "code": "en_US" } } }' - 6. Verifica la entrega
Si el request devuelve un id de mensaje, debería llegarte el mensaje al WhatsApp del número que cargaste como destinatario de prueba.
Al terminar vas a haber enviado tu primer mensaje de WhatsApp con la API oficial de Meta, usando el número de prueba y el token temporal. Es el punto de partida para automatizar de verdad: una vez que mandás un mensaje con un request, puedes conectarlo a tu backend, a un bot o a un orquestador y armar flujos completos.
Qué tener en cuenta
El primer mensaje conviene mandarlo como plantilla (en el ejemplo, la plantilla hello_world que Meta ya trae aprobada). Esto es porque WhatsApp impone la ventana de 24 horas: para iniciar una conversación, o para escribir fuera de las 24 horas desde el último mensaje del usuario, tienes que usar una plantilla aprobada, no texto libre. El texto libre solo funciona dentro de esa ventana, una vez que el usuario te escribió.
El token temporal vence rápido: sirve para esta prueba, pero para un servidor real necesitás un token permanente (System User). Y el número de prueba de Meta solo envía a destinatarios que cargaste y verificaste; no sirve para clientes reales. Para producción tienes que registrar tu propio número y verificar el negocio.
Sobre costos: Meta ofrece una capa de conversaciones gratuitas por mes y cobra por encima de ese tope. El esquema de precios cambia, así que confirmalo en la web oficial antes de calcular nada; no asumas un número.
Si algo falla
- El request devuelve error 190 o de token. El token temporal venció (dura pocas horas). Vuelve a la consola de la app y genera uno nuevo.
- Error “recipient not in allowed list” o similar. En modo de prueba solo se puede enviar a números cargados como destinatario de prueba. Añade y verifica tu número en la pantalla de inicio rápido.
- No llega el mensaje aunque el request salió bien. Si usaste texto libre para iniciar la conversación, no va a entregarse: usa una plantilla aprobada (como
hello_world) para el primer contacto. - Error de versión del endpoint. La versión de la API (
v23.0en el ejemplo) cambia con el tiempo. Revisa en la doc oficial cuál es la vigente y reemplazala en la URL. - Número de destino rechazado. Tiene que ir en formato internacional sin ”+”, espacios ni guiones (por ejemplo,
5491122334455).
Siguiente nivel
- Genera un token permanente con un System User para que tu servidor pueda enviar sin que se venza.
- Configura un Webhook (una URL pública con HTTPS) para recibir mensajes entrantes y estados de entrega, y así responder automáticamente.
- Crea tus propias plantillas y mandalas a aprobar para tus casos reales (avisos, OTP, seguimiento de pedidos).
- Registra un número propio y verifica el negocio para pasar de prueba a producción.
- Conecta la API a un orquestador (n8n, Make) o a tu backend para armar bots y flujos completos.
Recursos y repos
Actualizado: 28 de mayo de 2026