Download the PHP package scriptdevelop/whatsapp-manager without Composer
On this page you can find all versions of the php package scriptdevelop/whatsapp-manager. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download scriptdevelop/whatsapp-manager
More information about scriptdevelop/whatsapp-manager
Files in scriptdevelop/whatsapp-manager
Package whatsapp-manager
Short Description Paquete para manejo de WhatsApp Business API en Laravel
License MIT
Informations about the package whatsapp-manager
WhatsApp Business API Manager for Laravel
LARAVEL WHatsapp Manager
🌐 Language / Idioma
🇪🇸 Español
scriptdevelop/whatsapp-api-manager
Introducción
@djdang3r/whatsapp-api-manager
es un paquete diseñado para facilitar la integración y gestión de la API de WhatsApp en tus proyectos. Su objetivo es simplificar la comunicación, el envío y la recepción de mensajes, así como la administración de sesiones y contactos a través de una interfaz intuitiva y fácil de usar.
Descripción
Con este paquete podrás:
- Conectarte fácilmente a la API de WhatsApp.
- Enviar y recibir mensajes de texto, multimedia y archivos.
- Gestionar múltiples sesiones de WhatsApp simultáneamente.
- Administrar contactos, plantillas y mensajes.
- Integrar tu aplicación o servicio con flujos automatizados de mensajes.
- Recibir eventos en tiempo real para reaccionar ante mensajes, cambios de estado y notificaciones.
@djdang3r/whatsapp-api-manager
está pensado para desarrolladores que buscan una solución robusta y flexible para interactuar con WhatsApp de manera eficiente, segura y escalable.
📢 Políticas de WhatsApp
🚫 Importante: 🚫
- Asegúrate de cumplir siempre con las Políticas de WhatsApp y sus términos de uso al utilizar este paquete.
- El uso indebido puede resultar en la suspensión de tu cuenta o acciones legales por parte de WhatsApp.
- Revisa periódicamente las actualizaciones de las políticas para evitar inconvenientes.
⚠️ Advertencia: ⚠️
- Este paquete se encuentra actualmente en versión alpha. Esto significa que está en desarrollo activo, puede contener errores y su API está sujeta a cambios importantes.
- Próximamente se lanzará la versión beta. Se recomienda no usarlo en entornos de producción por el momento.
Documentación
- Introducción
- Qué es el paquete
- Objetivos principales
- Descripción
- Funcionalidades clave
- Instalación
- Prerequisitos (cuenta WhatsApp API Cloud)
- Pasos básicos
- Configuración inicial
- Migraciones y seeders
- Directorios multimedia
- Configuración de webhooks en Meta
- Estructura del Paquete
- Diagrama de directorios
- Componentes principales
- Guía de Usuario
- Gestión de cuentas
- Registro de cuentas de negocio
- Obtener detalles de números
- Obtener cuentas de negocio
- Envío de mensajes
- Texto simple
- Texto con enlaces
- Respuestas a mensajes
- Reacciones
- Multimedia (imágenes, stickers, audio, documentos)
- Ubicación
- Botones interactivos
- Listas desplegables
- Plantillas
- Obtener plantillas
- Eliminar plantillas
- Editar plantillas
- Crear plantillas (utilidad, marketing, con imágenes, con botones)
- Enviar mensajes con plantillas
- Eventos
- Configuración
- Eventos disponibles
- Pruebas
- Bots (próximamente en paquete separado)
- Laravel Reverb
- Instalación
- Configuración
- Uso con eventos
- Contribución
- Cómo colaborar
- Guía de estilo
- Soporte y Contacto
- Canales de soporte
- Información de desarrollo
- Licencia
❤️Apóyanos con una donación en GitHub Sponsors
Me puedes apoyar como desarrollador open source en GitHub Sponsors:
-
Si este proyecto te ha sido útil, puedes apoyarlo con una donación a través de
- O tambien por Mercadopago Colombia.
Gracias por tu apoyo 💙
🚀 Características Principales
- Envía mensajes de texto, multimedia, interactivos y de plantilla.
- Gestion de Templates para Crear, Listar, Eliminar y Probar plantillas.
- Webhooks integrados para recibir mensajes y actualizaciones.
- Gestión de conversaciones con métricas de cobro.
- Bots conversacionales con flujos dinámicos.
- Sincronización automática de números telefónicos y perfiles.
- Soporte para campañas masivas programadas.
- 100% compatible con Laravel Echo y Reverb para notificaciones en tiempo real.
🚀 Instalación
Necesitaras una cuenta de Whatsapp API CLoud
Si quieres saber como obtener una completamente GRATIS mira estos dos videos:
-
https://www.youtube.com/watch?v=of6dEsKSh-0&ab_channel=AdBoostPro
- https://www.youtube.com/watch?v=gdD_0ernIqM&ab_channel=BismarckArag%C3%B3n
-
Instala el paquete vía Composer:
-
Publica la configuración (opcional):
-
Configuración
-
Configuración principal (config/whatsapp.php):
-
Configuración de logs (config/logging.php):
-
Configuración principal del paquete:
Añadir el canal whatsapp.
-
-
Publica las migraciones (opcional): Este comando publicará las migraciones del paquete en tu directorio
database/migrations
. Puedes personalizarlas según tus necesidades antes de ejecutarlas. -
Publica las rutas (OBLIGATORIO):
-
Se necesita para el webhook.
-
Excluir rutas del webhook de CSRF:
Al publicar las rutas es importante anexar las rutas del webhook a las excepciones del CSRF. En bootstrap/app.php:
-
-
Configura tus credenciales en .env: Variables de configuracion necesarias en el archivo
.env
-
Migraciones
-
Ejecuta las migraciones para crear las tablas necesarias:
- Esto ejecutará las migraciones necesarias para crear las tablas requeridas por el paquete en tu base de datos.
-
-
Seeder de idiomas para plantillas Puedes publicar el seeder que incluye todos los idiomas compatibles con plantillas de WhatsApp con el siguiente comando:
⚠️ ¡Advertencia! ⚠️ Los seeders son necesarios para trabajar con plantillas. Debes tomarlo en cuenta. Luego de publicarlo, puedes ejecutarlo con:
-
Publicar directorios multimedia para WhatsApp. Para almacenar mensajes multimedia entrantes (audios, imágenes, documentos, etc.) necesitas crear los siguientes directorios en storage/app/public/whatsapp:
-
Puedes crearlos automáticamente ejecutando:
- O, si no se crean automáticamente, puedes hacerlo manualmente:
-
-
Crear enlace simbólico del storage. Para que los archivos sean accesibles públicamente, ejecuta:
Esto crea el enlace public/storage apuntando a storage/app/public, requerido por Laravel para servir archivos correctamente.
Configuración de Webhooks en Meta
Para que tu aplicación reciba notificaciones en tiempo real de WhatsApp (mensajes entrantes, cambios de estado, etc.), debes configurar correctamente el webhook en la plataforma de Meta Developers. Sigue estos pasos:
a) Accede a Meta Developers
- Ingresa a Meta for Developers.
- Selecciona tu aplicación o crea una nueva si aún no la tienes.
b) Configura el Webhook
- Ve al menú Productos y selecciona WhatsApp > Configuración.
- Busca la sección Webhooks y haz clic en Configurar o Editar.
c) Define la URL del Webhook
-
La URL debe apuntar a la ruta publicada por el paquete, por ejemplo:
- Asegúrate de que esta ruta sea accesible públicamente (puedes usar ngrok para pruebas locales).
d) Establece el Token de Verificación
- El Token debe coincidir exactamente con el valor de la variable
WHATSAPP_VERIFY_TOKEN
que definiste en tu archivo.env
. - Ejemplo:
e) Selecciona los Eventos a Suscribir
- Marca los siguientes eventos para recibir notificaciones relevantes:
messages
message_statuses
- Puedes agregar otros eventos según tus necesidades (por ejemplo,
message_template_status_update
).
f) Guarda y Verifica
- Al guardar, Meta enviará una solicitud de verificación a tu endpoint. El paquete responderá automáticamente si la configuración es correcta.
- Si usas HTTPS, asegúrate de que tu certificado SSL sea válido.
Resumen de configuración:
Parámetro | Valor recomendado |
---|---|
URL del Webhook | https://tudominio.com/whatsapp-webhook |
Token | El valor de WHATSAPP_VERIFY_TOKEN en tu .env |
Eventos | messages , message_statuses |
Tip: Si desarrollas localmente, puedes exponer tu servidor con ngrok:
Usa la URL pública generada por ngrok como URL del webhook en Meta.
NROCK
ngrok es una utilidad que te permite exponer tu servidor local a Internet de forma segura mediante túneles. Es ideal para pruebas, desarrollo y para compartir tu aplicación local con servicios externos (por ejemplo, para recibir webhooks de WhatsApp o Meta).
Cómo usar ngrok:
- Descarga ngrok desde https://ngrok.com/.
- Instálalo siguiendo las instrucciones de la página oficial.
- Ejecuta el siguiente comando para exponer tu servidor local (por ejemplo, en el puerto 8000):
Esto generará una URL pública que podrás compartir para acceder a tu aplicación local desde cualquier lugar, útil para pruebas de webhooks y desarrollo remoto.
🧩 Estructura del Paquete
❤️Apóyanos con una donación en GitHub Sponsors
Me puedes apoyar como desarrollador open source en GitHub Sponsors:
-
Si este proyecto te ha sido útil, puedes apoyarlo con una donación a través de
- O tambien por Mercadopago Colombia.
Gracias por tu apoyo 💙
Guía de Usuario
1. Registro de Cuentas de Negocios.
Registra una cuenta de negocios en WhatsApp Business API.
- Se hace la peticion a la API de whatsapp, se obtienen los datos de la cuenta y se almacenan en la base de datos. Este metodo obtiene los datos de la cuenta, los telefonos de whatsapp asociados a la cuenta y el perfil de cada numero de telefono.
- Se usa para Obtener los datos desde la API y alojarlos en la base de datos.
2. Obtener Detalles de Números de Teléfono
Obtén información detallada sobre un número de teléfono registrado.
- Se hace la peticion a la API de whatsapp para obtener detalles del numero de whatsapp y se almacenan en la base de datos, si el numero ya existe actualiza la informacion.
3. Obtener Cuentas de Negocios
Obtén información sobre una cuenta de negocios específica. Se hace la peticion a la API de whatsapp para obtener informacion sobre una cuenta en especifico, se almacenan los datos en la base de datos.
4. Enviar Mensajes.
-
Envía mensajes de texto simples.
-
Enviar Mensajes de Texto con Enlaces Envía mensajes de texto simples con link o enlace.
-
Enviar Respuestas a Mensajes Responde a un mensaje existente.
-
Enviar Reacciones a Mensajes Envía una reacción a un mensaje existente.
Sintaxis Unicode requerida
- Usa la codificación \u{código_hex} para emojis:
-
Enviar Mensajes Multimedia Enviar mensajes con Imágenes
⚠️ Advertencia: Asegúrate de que la imagen que envíes cumpla con los requisitos de WhatsApp:
- Formato soportado: JPEG, PNG
- Tamaño máximo recomendado: 5 MB
- Dimensiones recomendadas: al menos 640x640 px
Si la imagen no cumple con estos requisitos, el envío puede fallar.
-
Enviar Imágenes por URL Enviar mensaaje con url de imagen.
-
Enviar Sticker Enviar mensajes con sticker.
⚠️ Advertencia: Asegúrate de que el sticker que envíes cumpla con los requisitos de WhatsApp:
- Formato soportado: WEBP
- Tamaño máximo recomendado: 100 KB
Si el sticker no cumple con estos requisitos, el envío puede fallar.
-
Enviar Audio Enviar mensajes con archivo de audio.
⚠️ Advertencia: Asegúrate de que el archivo de audio que envíes cumpla con los requisitos de WhatsApp:
- Formato soportado: AAC, MP4, MPEG, AMR, OGG.
- Tamaño máximo recomendado: 16 MB
Si el archivo de audio no cumple con estos requisitos, el envío puede fallar.
-
Enviar Audio por URL Enviar mensaje con Enlace de audio
-
Enviar Documentos Enviar mensaje con Documento
⚠️ Advertencia: Asegúrate de que el archivo de documento que envíes cumpla con los requisitos de WhatsApp:
- Formatos soportados: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, CSV, ZIP, RAR, entre otros.
- Tamaño máximo recomendado: 100 MB
Si el archivo no cumple con estos requisitos, el envío puede fallar.
-
Enviar Documentos por URL Enviar mensaje de enlace de documento.
-
Enviar Mensajes de Ubicación Envía un mensaje con coordenadas de ubicación.
-
Mensajes con Botones Interactivos Enviar mensajes con botones interactivos:
-
Listas Desplegables Interactivas Enveria mensajes con Listas desplegables interactivas:
-
Mensaje de Producto Individual Enviar mensaje de Producto Simple.
-
Mensaje con Múltiples Productos Enviar mensaje de Multiples Productos.
-
Mensaje de Catálogo Completo Enviar mensaje de Catalogo completo.
-
Mensaje de Producto como Respuesta o Replica Enviar mensaje de Producto simple con replica o contecto.
- Mensaje Interactivo con Productos (Avanzado) Enviar mensaje de Productos Interactivos Avanzados y con Replica o contexto.
5. Marcar mensaje como leido
Se encarga de marcar el mensaje recibido como leido, con los dos checks azules.
❤️Apóyanos con una donación en GitHub Sponsors
Me puedes apoyar como desarrollador open source en GitHub Sponsors:
6. Administracion de Plantillas
-
Obtener todas las plantillas de una cuenta de whatsapp Se obtienen todas las plantillas de una cuenta de whatsapp y se almacenan en la base de datos. Se hace la peticion a la API de whatsapp para obtener todas las plantillas que estan asociadas a la cuenta de whatsapp.
-
Obtener una plantilla por el nombre. Se hace la peticion a la API de whatsapp para obtener una plantilla por el nombre y se almacena en la base de datos.
-
Obtener una plantilla por el ID. Se hace la peticion a la API de whatsapp para obtener una plantilla por el ID y se almacena en la base de datos.
-
Eliminar plantilla de la API y de la base de datos al mismo tiempo. Se hace la peticion a la API de whatsapp para obtener una plantilla por el ID y se elimina la plantilla seleccionada, Existen dos maneras de eliminar Soft Delete y Hard Delete.
-
Editar plantilla de la API y de la base de datos al mismo tiempo. Se hace la peticion a la API de whatsapp para editar la plantilla seleccionada.
Agregar componentes a plantillas que no lo tenian:
Eliminar componentes existentes:
Trabajar con componentes específicos:
Características Clave del Edit Template
1.- Gestión completa de componentes:
- Métodos add, change, remove para cada tipo de componente
- Métodos has para verificar existencia
- Métodos get para obtener datos
2.- Validaciones robustas:
- Unicidad de componentes (solo un HEADER, BODY, etc.)
- Componentes obligatorios (BODY siempre requerido)
- Límites de botones (máximo 10)
- Restricciones de modificación (no cambiar categoría, no modificar aprobadas)
3.- Operaciones atómicas:
- removeButtonAt: Elimina un botón específico
- removeAllButtons: Elimina todos los botones
- getButtons: Obtiene todos los botones actuales
4.- Manejo de errores:
- Excepciones específicas para problemas de componentes
- Excepciones para fallos en la actualización
- Mensajes de error claros y descriptivos
5.- Flujo intuitivo:
- $template->edit() inicia la edición
- Encadenamiento de métodos para modificaciones
- update() aplica los cambios
❤️Apóyanos con una donación en GitHub Sponsors
Me puedes apoyar como desarrollador open source en GitHub Sponsors:
-
Si este proyecto te ha sido útil, puedes apoyarlo con una donación a través de
-
O tambien por Mercadopago Colombia.
Gracias por tu apoyo 💙
Crear las plantillas en una cuenta de whatsapp
-
Crear Plantillas de Utilidad
Las plantillas transaccionales son ideales para notificaciones como confirmaciones de pedidos, actualizaciones de envío, etc.
-
Crear Plantillas de Marketing
Las plantillas de marketing son útiles para promociones, descuentos y campañas masivas.
-
Crear Plantillas de Marketing con Imágenes
Las plantillas de marketing también pueden incluir imágenes en el encabezado para hacerlas más atractivas.
-
Crear Plantillas de Marketing con Botones de URL
Puedes agregar botones de URL personalizados para redirigir a los usuarios a páginas específicas.
-
Crear Variaciones de Plantillas de Marketing
Puedes crear múltiples variaciones de plantillas para diferentes propósitos.
Notas
- Verifica que las imágenes usadas en las plantillas cumplan con los requisitos de la API de WhatsApp: formato (JPEG, PNG), tamaño máximo permitido y dimensiones recomendadas.
- Los botones de tipo URL pueden aceptar parámetros dinámicos mediante variables de plantilla (
{{1}}
,{{2}}
, etc.), lo que permite personalizar los enlaces para cada destinatario. - Si experimentas problemas al crear plantillas, consulta los archivos de log para obtener información detallada sobre posibles errores y su solución.
❤️Apóyanos con una donación en GitHub Sponsors
Me puedes apoyar como desarrollador open source en GitHub Sponsors:
-
Si este proyecto te ha sido útil, puedes apoyarlo con una donación a través de
-
O tambien por Mercadopago Colombia.
Gracias por tu apoyo 💙
Enviar Mensajes a partir de Plantilla creada.
-
Enviar mensajes de plantillas
Puedes enviar diferentes mensajes de plantillas segun la estructura de la plantilla.
❤️Apóyanos con una donación en GitHub Sponsors
Me puedes apoyar como desarrollador open source en GitHub Sponsors:
-
Si este proyecto te ha sido útil, puedes apoyarlo con una donación a través de
- O tambien por Mercadopago Colombia.
Gracias por tu apoyo 💙
📦 Instalación de Laravel Reverb
1. Instala Laravel Reverb vía Composer
En una nueva terminal, ejecuta el siguiente comando:
2. Publica los archivos de configuración de Reverb
Esto generará el archivo config/reverb.php y ajustará tu broadcasting.php para incluir el driver reverb.
3. Configura tu archivo .env
Agrega o ajusta las siguientes variables:
⚠️ Estos valores deben coincidir con los definidos en config/reverb.php.
4. Configura config/broadcasting.php
Asegúrate de que el driver predeterminado sea reverb:
Y dentro del array connections, asegúrate de tener esto:
🚀 Levantar el servidor Reverb
En una nueva terminal, ejecuta el siguiente comando:
Deberías ver algo como:
El servidor WebSocket quedará activo en 127.0.0.1:8080.
🌐 Configurar Laravel Echo (Frontend)
1. Instala las dependencias de frontend:
Instalar Laravel Echo y PusherJS
2. Configura Echo en resources/js/bootstrap.js o donde inicialices tu JS:
3. Asegúrate de tener las variables necesarias en tu .env frontend (Vite):
📡 Escuchar eventos (ejemplo en JS)
📁 Configuración en el paquete
En tu archivo config/whatsapp.php asegúrate de tener:
Y en tu .env:
Recuerde que si decide utilizar canales privados debe utilizar los caneles en routes-channel.php
🧪 Prueba de Eventos
Puedes emitir manualmente un evento de prueba con:
🖥️ Escuchar desde el frontend
Canal Privado
Canal publico
📡 Eventos del Paquete
El paquete incluye una serie de eventos que se disparan automáticamente en diferentes situaciones. Estos eventos son compatibles con Laravel Echo y Laravel Reverb, lo que permite escuchar y reaccionar a ellos en tiempo real desde el frontend.
Configuración de Eventos
-
Configurar el tipo de canal de transmisión: En el archivo whatsapp.php, asegúrate de definir el tipo de canal (
public
oprivate
):En tu archivo
.env
: -
Configurar Laravel Echo o Laravel Reverb:
-
Instala Laravel Echo y PusherJS:
-
Configura Echo en
resources/js/bootstrap.js
: - Asegúrate de tener las variables necesarias en tu
.env
frontend:
-
Eventos Disponibles
A continuación, se describen los eventos disponibles en el paquete, cómo se configuran y cómo escucharlos desde el frontend.
Evento | Canal | Alias |
---|---|---|
BusinessSettingsUpdated | whatsapp.business | business.settings.updated |
MessageReceived | whatsapp.messages | message.received |
MessageDelivered | whatsapp.status | message.delivered |
MessageRead | whatsapp.status | message.read |
TemplateCreated | whatsapp.templates | template.created |
TemplateApproved | whatsapp.templates | template.approved |
TemplateRejected | whatsapp.templates | template.rejected |
InteractiveMessageReceived | whatsapp.messages | interactive.received |
MediaMessageReceived | whatsapp.messages | media.received |
1. BusinessSettingsUpdated
- Descripción: Se dispara cuando se actualizan los ajustes de la cuenta empresarial.
- Canal:
whatsapp.business
- Alias:
business.settings.updated
Ejemplo de uso en el frontend:
2. MessageReceived
- Descripción: Se dispara cuando se recibe un mensaje de texto.
- Canal:
whatsapp.messages
- Alias:
message.received
Ejemplo de uso en el frontend:
3. MessageDelivered
- Descripción: Se dispara cuando un mensaje es entregado.
- Canal:
whatsapp.status
- Alias:
message.delivered
Ejemplo de uso en el frontend:
4. MessageRead
- Descripción: Se dispara cuando un mensaje es leído.
- Canal:
whatsapp.status
- Alias:
message.read
Ejemplo de uso en el frontend:
5. TemplateCreated
- Descripción: Se dispara cuando se crea una plantilla.
- Canal:
whatsapp.templates
- Alias:
template.created
Ejemplo de uso en el frontend:
6. TemplateApproved
- Descripción: Se dispara cuando una plantilla es aprobada.
- Canal:
whatsapp.templates
- Alias:
template.approved
Ejemplo de uso en el frontend:
7. TemplateRejected
- Descripción: Se dispara cuando una plantilla es rechazada.
- Canal:
whatsapp.templates
- Alias:
template.rejected
Ejemplo de uso en el frontend:
8. InteractiveMessageReceived
- Descripción: Se dispara cuando se recibe un mensaje interactivo (botones o listas).
- Canal:
whatsapp.messages
- Alias:
interactive.received
Ejemplo de uso en el frontend:
9. MediaMessageReceived
- Descripción: Se dispara cuando se recibe un mensaje multimedia (imagen, video, audio, documento, sticker).
- Canal:
whatsapp.messages
- Alias:
media.received
Ejemplo de uso en el frontend:
Prueba de Eventos
Puedes emitir manualmente un evento de prueba con Laravel Tinker:
Con esta configuración, puedes escuchar y reaccionar a los eventos del paquete desde tu frontend utilizando Laravel Echo o Laravel Reverb. Esto te permite implementar funcionalidades en tiempo real como notificaciones, actualizaciones de estado y más.
Configuración de Eventos
Configurar el tipo de canal de transmisión: En el archivo whatsapp.php, asegúrate de definir el tipo de canal (public o private):
En tu archivo .env:
Configurar Laravel Echo o Laravel Reverb:
Instala Laravel Echo y PusherJS:
Configura Echo en resources/js/bootstrap.js:
Asegúrate de tener las variables necesarias en tu .env frontend:
Eventos Disponibles
A continuación, se describen los eventos disponibles en el paquete, cómo se configuran y cómo escucharlos desde el frontend.
-
BusinessSettingsUpdated Descripción: Se dispara cuando se actualizan los ajustes de la cuenta empresarial. Canal: whatsapp.business Alias: business.settings.updated Ejemplo de uso en el frontend:
-
MessageReceived Descripción: Se dispara cuando se recibe un mensaje de texto. Canal: whatsapp.messages Alias: message.received Ejemplo de uso en el frontend:
-
MessageDelivered Descripción: Se dispara cuando un mensaje es entregado. Canal: whatsapp.status Alias: message.delivered Ejemplo de uso en el frontend:
-
MessageRead Descripción: Se dispara cuando un mensaje es leído. Canal: whatsapp.status Alias: message.read Ejemplo de uso en el frontend:
-
TemplateCreated Descripción: Se dispara cuando se crea una plantilla. Canal: whatsapp.templates Alias: template.created Ejemplo de uso en el frontend:
-
TemplateApproved Descripción: Se dispara cuando una plantilla es aprobada. Canal: whatsapp.templates Alias: template.approved Ejemplo de uso en el frontend:
-
TemplateRejected Descripción: Se dispara cuando una plantilla es rechazada. Canal: whatsapp.templates Alias: template.rejected Ejemplo de uso en el frontend:
-
InteractiveMessageReceived Descripción: Se dispara cuando se recibe un mensaje interactivo (botones o listas). Canal: whatsapp.messages Alias: interactive.received Ejemplo de uso en el frontend:
- MediaMessageReceived Descripción: Se dispara cuando se recibe un mensaje multimedia (imagen, video, audio, documento, sticker). Canal: whatsapp.messages Alias: media.received Ejemplo de uso en el frontend:
Prueba de Eventos Puedes emitir manualmente un evento de prueba con Laravel Tinker:
⚠️ Importante: Cambios en el Bot Builder
El módulo de creación de bots (Bot Builder) será migrado a un nuevo paquete independiente:
whatsapp-bot
(aún en desarrollo).¿Qué significa esto?
- Las funcionalidades relacionadas con la creación y gestión de bots serán eliminadas de este paquete.
- Para crear bots y flujos automatizados, deberás instalar y utilizar el nuevo paquete cuando esté disponible.
Mantente atento a futuras actualizaciones y revisa el repositorio del nuevo paquete para más información.
Puedes diferentes tipos de Bots para whatsapp.
Bot con flujo de conversacion y pasos de pruebas
🤝 ¡Contribuye con el Proyecto!
¿Te gustaría mejorar este paquete? ¡Tu colaboración es fundamental para seguir creciendo!
🚀 ¿Cómo contribuir?
-
Haz un Fork
- Haz clic en el botón
Fork
en la parte superior derecha de este repositorio para crear tu propia copia.
- Haz clic en el botón
-
Crea una Rama para tu Funcionalidad
-
Realiza tus Cambios y Haz Commit
-
Haz Push a tu Rama
- Abre un Pull Request
- Ve a la pestaña
Pull Requests
y haz clic enNew Pull Request
. - Describe brevemente tu aporte y por qué es útil.
- Ve a la pestaña
💡 Sugerencias para contribuir
- Sigue la guía de estilo de código de Laravel.
- Escribe comentarios claros y útiles.
- Incluye pruebas si es posible.
- Si encuentras un bug, abre un Issue antes de enviar el PR.
🙌 ¡Gracias por tu apoyo!
Cada contribución, por pequeña que sea, ayuda a mejorar el proyecto y a la comunidad.
¡No dudes en participar, proponer ideas o reportar problemas!
Descargo de responsabilidad
Este paquete es un proyecto independiente y no está afiliado, respaldado ni soportado por Meta Platforms, Inc.
Todas las marcas registradas, marcas de servicio y logotipos utilizados en esta documentación, incluidos "WhatsApp" y "Facebook", son propiedad de Meta Platforms, Inc.
📄 Licencia
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
👨💻 Soporte y Contacto
¿Tienes dudas, problemas o sugerencias?
¡Estamos aquí para ayudarte!
-
📧 Email:
[email protected]
[email protected] -
🐞 Reporta un Issue:
Abrir un Issue en GitHub - 💬 ¿Ideas o mejoras?
¡Tus comentarios y sugerencias son bienvenidos para seguir mejorando este proyecto!
❤️Apóyanos con una donación en GitHub Sponsors
Me puedes apoyar como desarrollador open source en GitHub Sponsors:
-
Si este proyecto te ha sido útil, puedes apoyarlo con una donación a través de
-
O tambien por Mercadopago Colombia.
Gracias por tu apoyo 💙
WhatsApp Business API Manager for Laravel
LARAVEL WHatsapp Manager
🇺🇸 English
WhatsApp Business API Manager for Laravel
LARAVEL WHATSAPP MANAGER
🇺🇸 English
scriptdevelop/whatsapp-api-manager
Introduction
@djdang3r/whatsapp-api-manager
is a package designed to facilitate the integration and management of the WhatsApp API in your projects. Its goal is to simplify communication, sending and receiving messages, as well as managing sessions and contacts through an intuitive and easy-to-use interface.
Description
With this package you can:
- Easily connect to the WhatsApp API
- Send and receive text, multimedia, and file messages
- Manage multiple WhatsApp sessions simultaneously
- Manage contacts, templates, and messages
- Integrate your application or service with automated message flows
- Receive real-time events to react to messages, status changes, and notifications
@djdang3r/whatsapp-api-manager
is designed for developers looking for a robust and flexible solution to interact with WhatsApp efficiently, securely, and scalably.
📢 WhatsApp Policies
🚫 Important: 🚫
- Always ensure compliance with WhatsApp Business Policy and their terms of use when using this package.
- Misuse may result in suspension of your account or legal action by WhatsApp.
- Periodically review policy updates to avoid issues.
⚠️ Warning: ⚠️
- This package is currently in alpha version. This means it's under active development, may contain bugs, and its API is subject to significant changes.
- The beta version will be released soon. It is not recommended for production environments at this time.
Documentation
- Introduction
- What the package is
- Main objectives
- Description
- Key features
- Warnings (alpha version)
- WhatsApp policies
- Installation
- Prerequisites (WhatsApp API Cloud account)
- Basic steps
- Initial configuration
- Migrations and seeders
- Media directories
- Webhook setup on Meta
- Package Structure
- Directory diagram
- Core components
- User Guide
- Account management
- Business account registration
- Get phone number details
- Get business accounts
- Sending messages
- Simple text
- Text with links
- Message replies
- Reactions
- Media (images, stickers, audio, documents)
- Location
- Interactive buttons
- Interactive lists
- Templates
- Get templates
- Delete templates
- Edit templates
- Create templates (utility, marketing, with images, with buttons)
- Send template messages
- Events
- Configuration
- Available events
- Testing
- Bots (coming soon in separate package)
- Laravel Reverb
- Installation
- Configuration
- Usage with events
- Contribution
- How to collaborate
- Style guide
- Support & Contact
- Support channels
- Development information
- License
❤️ Support Us with a GitHub Sponsors Donation
You can support me as an open source developer on GitHub Sponsors:
-
If this project has been useful to you, you can support it with a donation through:
- Or via Mercadopago Colombia:
Thank you for your support 💙
🚀 Key Features
- Send messages: text, media, interactive, and templates
- Template management: Create, List, Delete and Test templates
- Integrated webhooks: for receiving messages and updates
- Conversation management: with billing metrics
- Conversational bots: with dynamic flows
- Automatic synchronization: of phone numbers and profiles
- Campaign support: scheduled mass campaigns
- 100% compatible with Laravel Echo and Reverb for real-time notifications
🚀 Installation
You will need a WhatsApp API Cloud Account
If you want to know how to get one completely FREE, watch these two videos:
- https://www.youtube.com/watch?v=of6dEsKSh-0&ab_channel=AdBoostPro
- https://www.youtube.com/watch?v=gdD_0ernIqM&ab_channel=BismarckArag%C3%B3n
-
Install the package via Composer:
-
Publish configuration (optional):
-
Configuration
-
Main configuration (config/whatsapp.php):
-
Log configuration (config/logging.php):
Add the whatsapp channel:
-
-
Publish migrations (optional):
-
Publish routes (REQUIRED):
-
Exclude webhook routes from CSRF:
In bootstrap/app.php:
-
-
Configure credentials in .env:
-
Run Migrations:
-
Template Language Seeder:
Then run:
-
Create WhatsApp media directories:
-
Create storage link:
-
Configure Webhooks on Meta: Go to Meta Developers Console
Webhook URL: https://yourdomain.com/whatsapp-webhook
Verify Token: YOUR_VERIFY_TOKEN_FROM_ENV
Subscribe to: messages, message_statuses
❤️ Support Us with a GitHub Sponsors Donation
You can support me as an open source developer on GitHub Sponsors:
-
If this project has been useful to you, you can support it with a donation through:
- Or via Mercadopago Colombia:
Thank you for your support 💙
User Guide
1. Business Account Registration
Register a business account on WhatsApp Business API.
2. Get Phone Number Details
3. Get Phone Number Details
4. Send Messages
-
Send simple text messages
-
Send text messages with links
-
Reply to messages
-
Send reactions to messages
Note: Use Unicode syntax for emojis, e.g.
\u{2764}\u{FE0F}
for ❤️ -
Send media messages (images)
Warning: Make sure your image meets WhatsApp requirements:
- Supported formats: JPEG, PNG
- Max size: 5 MB
- Recommended dimensions: at least 640x640 px
-
Send images by URL
-
Send stickers
Warning: Make sure your sticker meets WhatsApp requirements:
- Supported format: WEBP
- Max size: 100 KB
-
Send audio messages
Warning: Make sure your audio file meets WhatsApp requirements:
- Supported formats: AAC, MP4, MPEG, AMR, OGG
- Max size: 16 MB
-
Send audio by URL
-
Send documents
Warning: Make sure your document meets WhatsApp requirements:
- Supported formats: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, CSV, ZIP, RAR, etc.
- Max size: 100 MB
-
Send documents by URL
-
Send location messages
-
Send interactive button messages
- Send interactive list messages
5. Mark Message as Read
❤️ Support Us with a GitHub Sponsors Donation
You can support me as an open source developer on GitHub Sponsors:
-
If this project has been useful to you, you can support it with a donation through:
- Or via Mercadopago Colombia:
Thank you for your support 💙
6. Template Management
-
Get all templates for a WhatsApp business account:
-
Get template by name:
-
Get template by ID:
-
Delete template:
- Edit template:
Create Templates
-
Create Utility Template
Utility templates are ideal for notifications such as order confirmations, shipping updates, etc.
-
Create Marketing Template
Marketing templates are useful for promotions, discounts, and mass campaigns.
-
Create Marketing Template with Image
Marketing templates can also include images in the header to make them more attractive.
❤️ Support Us with a GitHub Sponsors Donation
You can support me as an open source developer on GitHub Sponsors:
-
If this project has been useful to you, you can support it with a donation through:
- Or via Mercadopago Colombia:
Thank you for your support 💙
📦 Laravel Reverb Installation
1. Install Laravel Reverb via Composer
In a new terminal, run the following command:
2. Publish Reverb Configuration Files
This will generate the config/reverb.php
file and update your broadcasting.php
to include the reverb
driver.
3. Configure Your .env File
Add or update the following variables:
⚠️ These values must match those defined in config/reverb.php
.
4. Configure config/broadcasting.php
Ensure the default driver is set to reverb
:
And within the connections
array, make sure you have:
🚀 Start the Reverb Server
In a new terminal, run:
You should see something like:
The WebSocket server will be active at 127.0.0.1:8080.
🌐 Configure Laravel Echo (Frontend)
1. Install Frontend Dependencies:
Install Laravel Echo and PusherJS
2. Configure Echo in resources/js/bootstrap.js
or wherever you initialize your JS:
3. Make sure you have the necessary variables in your frontend .env
(Vite):
📡 Listen to Events (Example in JS)
📁 Package Configuration
In your config/whatsapp.php
file, make sure you have:
And in your .env
:
🧪 Event Testing
You can manually trigger a test event with:
🖥️ Listen from the Frontend
📡 Package Events
The package includes a set of events that are automatically triggered in different situations. These events are compatible with Laravel Echo and Laravel Reverb, allowing you to listen and react to them in real time from the frontend.
Event Configuration
-
Set the broadcast channel type:
In yourwhatsapp.php
config file, make sure to define the channel type (public
orprivate
):In your
.env
file: -
Configure Laravel Echo or Laravel Reverb:
-
Install Laravel Echo and PusherJS:
-
Configure Echo in
resources/js/bootstrap.js
: - Make sure you have the necessary variables in your frontend
.env
:
-
Available Events
Below are the available events in the package, how they are configured, and how to listen for them from the frontend.
Event | Channel | Alias |
---|---|---|
BusinessSettingsUpdated | whatsapp.business | business.settings.updated |
MessageReceived | whatsapp.messages | message.received |
MessageDelivered | whatsapp.status | message.delivered |
MessageRead | whatsapp.status | message.read |
TemplateCreated | whatsapp.templates | template.created |
TemplateApproved | whatsapp.templates | template.approved |
TemplateRejected | whatsapp.templates | template.rejected |
InteractiveMessageReceived | whatsapp.messages | interactive.received |
MediaMessageReceived | whatsapp.messages | media.received |
1. BusinessSettingsUpdated
- Description: Triggered when the business account settings are updated.
- Channel:
whatsapp.business
- Alias:
business.settings.updated
Frontend Example:
2. MessageReceived
- Description: Triggered when a text message is received.
- Channel:
whatsapp.messages
- Alias:
message.received
Frontend Example:
3. MessageDelivered
- Description: Triggered when a message is delivered.
- Channel:
whatsapp.status
- Alias:
message.delivered
Frontend Example:
4. MessageRead
- Description: Triggered when a message is read.
- Channel:
whatsapp.status
- Alias:
message.read
Frontend Example:
5. TemplateCreated
- Description: Triggered when a template is created.
- Channel:
whatsapp.templates
- Alias:
template.created
Frontend Example:
6. TemplateApproved
- Description: Triggered when a template is approved.
- Channel:
whatsapp.templates
- Alias:
template.approved
Frontend Example:
7. TemplateRejected
- Description: Triggered when a template is rejected.
- Channel:
whatsapp.templates
- Alias:
template.rejected
Frontend Example:
8. InteractiveMessageReceived
- Description: Triggered when an interactive message (buttons or lists) is received.
- Channel:
whatsapp.messages
- Alias:
interactive.received
Frontend Example:
9. MediaMessageReceived
- Description: Triggered when a media message (image, video, audio, document, sticker) is received.
- Channel:
whatsapp.messages
- Alias:
media.received
Frontend Example:
🧪 Event Testing
You can manually emit a test event using Laravel Tinker:
🤝 Contribute to the Project!
Would you like to help improve this package? Your collaboration is essential for continued growth!
🚀 How to Contribute?
-
Fork the Repository
- Click the
Fork
button at the top right of this repository to create your own copy.
- Click the
-
Create a Branch for Your Feature
-
Make Your Changes and Commit
-
Push Your Branch
- Open a Pull Request
- Go to the
Pull Requests
tab and clickNew Pull Request
. - Briefly describe your contribution and why it is useful.
- Go to the
💡 Contribution Tips
- Follow the Laravel code style guide.
- Write clear and helpful comments.
- Include tests if possible.
- If you find a bug, open an Issue before submitting a PR.
🙌 Thank You for Your Support!
Every contribution, no matter how small, helps improve the project and the community.
Don’t hesitate to participate, propose ideas, or report issues!
Disclaimer
This package is an independent project and is not affiliated with, endorsed, or supported by Meta Platforms, Inc.
All trademarks, service marks, and logos used in this documentation, including "WhatsApp" and "Facebook," are the property of Meta Platforms, Inc.
📄 License
This project is licensed under the MIT license. See the LICENSE file for more details.
👨💻 Support & Contact
Do you have questions, problems, or suggestions?
We’re here to help!
-
📧 Email:
[email protected]
[email protected] -
🐞 Report an Issue:
Open an Issue on GitHub - 💬 Ideas or Improvements?
Your feedback and suggestions are welcome to help make this project even better!
❤️ Support Us with a Donation on GitHub Sponsors
You can support me as an open source developer on GitHub Sponsors:
-
If this project has been useful to you, you can support it with a donation through:
- Or also via Mercadopago Colombia.
Thank you for your support 💙
WhatsApp Business API Manager for Laravel
LARAVEL WHatsapp Manager