API REST para envío de mensajes de WhatsApp mediante whatsapp-web.js y Express
WhatsApp Bot API es un servidor que expone una API REST para enviar mensajes de WhatsApp de forma programática. Ideal para sistemas de notificaciones, confirmaciones de citas, alertas y más.
- 📨 Envío de mensajes vía API REST
- 🔐 Autenticación persistente con LocalAuth (sesión guardada)
- 📱 Escaneo QR en terminal para vincular WhatsApp
- ✅ Validación de números antes de enviar
- 🐳 Docker Ready con Chrome/Puppeteer preconfigurado
- 🔄 CORS habilitado para integración con frontend
| Tecnología | Uso |
|---|---|
| Node.js | Runtime de JavaScript |
| Express | Framework web para la API |
| whatsapp-web.js | Cliente de WhatsApp Web |
| Puppeteer | Automatización del navegador |
| Docker | Containerización |
- Node.js o superior
- npm o yarn
# Clonar el repositorio
git clone https://github.com/haderrenteria13/whatsapp-bot.git
cd whatsapp-bot
# Instalar dependencias
npm install
# Iniciar el servidor
npm start# Construir la imagen
docker build -t whatsapp-bot .
# Ejecutar el contenedor
docker run -p 3001:3001 -v $(pwd)/.wwebjs_auth:/usr/src/app/.wwebjs_auth whatsapp-bot💡 El volumen
-vpersiste la sesión de WhatsApp entre reinicios del contenedor.
- Inicia el servidor con
npm start - Aparecerá un código QR en la terminal
- Abre WhatsApp en tu teléfono → Dispositivos vinculados → Vincular dispositivo
- Escanea el código QR
- ¡Listo! Verás el mensaje:
✅ ¡El Bot de WhatsApp está listo y conectado!
POST /enviar-mensaje
Content-Type: application/json{
"phone": "573001234567",
"message": "¡Hola! Este es un mensaje de prueba 👋"
}
⚠️ El número debe incluir el código de país sin el signo+(ej:57para Colombia)
✅ Éxito (200)
{
"success": true,
"message": "Mensaje enviado correctamente"
}❌ Datos faltantes (400)
{
"error": "Faltan datos (phone, message)"
}❌ Número no registrado (404)
{
"error": "El número no está registrado en WhatsApp"
}❌ Error interno (500)
{
"error": "Error interno al enviar mensaje"
}| Variable | Descripción | Default |
|---|---|---|
PORT |
Puerto del servidor | 3001 |
whatsapp-bot/
├── index.js # Servidor Express y cliente WhatsApp
├── package.json # Dependencias y scripts
├── Dockerfile # Configuración Docker
├── .wwebjs_auth/ # Sesión de WhatsApp (ignorar en git)
└── README.md # Documentación
- 🔒 No compartas la carpeta
.wwebjs_auth/- contiene tu sesión de WhatsApp - 📵 WhatsApp puede banear cuentas que envíen spam o mensajes masivos no solicitados
- 🕐 Usa con moderación para evitar restricciones de WhatsApp
- 📱 Mantén tu teléfono conectado a internet para que el bot funcione
Hader Renteria
- GitHub: @haderrenteria13
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
Hecho con ❤️ por Hader Renteria