Qué necesitas
- Una cuenta de desarrollador de Meta y una app Business con el producto WhatsApp.
- Una URL HTTPS pública que responda GET (verificación) y POST (mensajes).
- Un token de acceso de System User: el token temporal del panel expira.
Pasos
- Descarga la plantilla de Node.js o la de Python/FastAPI.
- Despliégala: en Railway conecta el repo, agrega WHATSAPP_TOKEN, APP_SECRET, VERIFY_TOKEN y PORT=8080, y genera un dominio. En un VPS de Vultr pon Caddy o nginx con TLS delante del puerto 8080.
- En el App Dashboard define la callback URL como
https://<dominio>/webhookcon el mismo VERIFY_TOKEN y suscríbete al campomessages. - Envía un mensaje desde tu número de prueba y revisa los logs. Las plantillas responden 200 primero y contestan después, y rechazan peticiones con X-Hub-Signature-256 inválida.
Opciones de hosting
| Hosting | Precio de entrada | Modelo de cobro | Esfuerzo de administración |
|---|---|---|---|
| Railway | Hobby $5 USD/mes con $5 de uso; plan Free con $1 USD/mes de uso | Por uso (RAM, CPU, tráfico) | Baja |
| Vultr | $5 USD/mes (1 GB); $3.50 USD/mes (0.5 GB) | Mensual fijo | Alta |
| DigitalOcean | $4 USD/mes (512 MiB); $6 USD/mes (1 GiB) | Mensual fijo | Alta |
Precios verificados el 2026-10-19 en las páginas oficiales de precios de cada proveedor. Cambian: revísalos antes de contratar. Un plan gratuito que se duerme no conviene: Meta reintenta entregas fallidas y los arranques en frío lentos causan duplicados.
Costos de mensajes
Meta cobra algunos mensajes de plantilla según categoría y país; el hosting es un costo aparte. No copiamos las tarifas de Meta porque cambian por mercado: estima tu volumen con la Calculadora de costos de la API de WhatsApp usando las tarifas de la página oficial de precios de Meta.
Guías y herramientas relacionadas
- Calculadora de costos de la API de WhatsApp
- Railway vs Vultr para bots
- Guía de seguridad para bots
- Plantillas iniciales
- Webhook vs polling: impacto en el hosting
Preguntas frecuentes
¿Puedo usar un número personal de WhatsApp?
La Cloud API usa un número de empresa registrado en tu app de Meta. Las librerías no oficiales que automatizan la app personal pueden violar los términos de WhatsApp y hacer que bloqueen el número.
¿Por qué no se verifica mi webhook?
El GET debe devolver hub.challenge tal cual cuando hub.verify_token coincide; revisa la ruta, el HTTPS y el valor de VERIFY_TOKEN.
¿Necesito un servidor 24/7?
Necesitas un endpoint que responda rápido cada vez que Meta llame; un servicio pequeño siempre encendido es lo más confiable.