Introducción
¿A quién va dirigido?:
- Para desarrolladores que integran funciones de WhatsApp en sistemas empresariales;
- Para usuarios low-code que automatizan flujos de trabajo con Make, Zapier, N8N, IFTTT o Pabbly;
Casos de uso:
- Creación automática de grupos para nuevos clientes o eventos;
- Agregar o eliminar miembros según actualizaciones en el CRM;
- Enviar anuncios o recordatorios en chats grupales;
- Conectar bots de IA a conversaciones grupales de WhatsApp;
Requisitos previos:
- Un número registrado en WhatsApp estándar (no en la API Business de Meta);
- Conocimientos básicos de programación o acceso a una plataforma low-code como Make;
Qué puedes hacer con Grupos de WhatsApp vía API
- Enviar mensajes a grupos: Envía actualizaciones, anuncios o recordatorios directamente a cualquier grupo.
- Crear nuevos grupos de WhatsApp: Genera grupos automáticamente según eventos como la incorporación de nuevos clientes o inscripciones a cursos.
- Agregar miembros a un grupo: Invita contactos al grupo de forma programática, sin aprobación manual.
- Promover miembros a administradores: Asigna o revoca derechos de administrador a participantes seleccionados.
- Obtener participantes del grupo: Recupera la lista completa de miembros para análisis o sincronización con el CRM.
- Detectar eventos en el grupo: Monitorea mensajes, ingresos y salidas usando webhooks.
- Conectar bots a grupos: Permite que los bots lean y respondan mensajes grupales según la lógica definida.
Cómo vincular tu WhatsApp y empezar a usar la API
- 1) Ve a tu panel y abre el Canal Predeterminado —ya está creado para ti.
- 2) En el Paso 1 verás un código QR con instrucciones.
- 3) En tu teléfono, abre WhatsApp → Configuración → Dispositivos vinculados → Vincular un dispositivo, luego escanea el código QR.
- 4) Una vez conectado, ponle un nombre a tu canal (por ejemplo, "Mi Chatbot") para identificarlo fácilmente.
- 5) Serás redirigido a la pantalla de configuración del canal, puedes omitir este paso y volver más tarde.




Cómo enviar mensajes grupales de WhatsApp vía API (con ejemplos de código)
- 1) Primero, obtén el ID del grupo. Usa el endpoint
GET /groups
para obtener una lista de tus grupos de WhatsApp con sus identificadores únicos. Para más detalles, consulta la documentación: Get groups. - 2) Una vez que tengas el ID del grupo, puedes enviar un mensaje. Genera grupos automáticamente según eventos como la incorporación de nuevos clientes. Usa el endpoint
POST /messages/text
, especificando el ID del grupo en el parámetroto
y el contenido del mensaje enbody
. Para más detalles, consulta: Send text message.
Puedes obtener el ID del grupo usando el endpoint Get groups o revisando conversaciones recientes a través del endpoint chats.
- 1) Al crear un grupo, el ID aparecerá en la respuesta de la API. Más abajo mostramos cómo hacerlo;
- 2) Endpoint Get a list of groups;
- 3) Endpoint Get a list of all chats;
curl --request POST \
--url https://gate.whapi.cloud/messages/text \
--header 'accept: application/json' \
--header 'authorization: Bearer YOUR_API_TOKEN' \
--header 'content-type: application/json' \
--data '
{
"to": "[email protected]",
"body": "Hello, this message was sent via API!"
}
'
// composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://gate.whapi.cloud/messages/text', [
'body' => '{"to":"[email protected]","body":"Hello, this message was sent via API!"}',
'headers' => [
'accept' => 'application/json',
'authorization' => 'Bearer YOUR_API_TOKEN',
'content-type' => 'application/json',
],
]);
echo $response->getBody();
# python -m pip install requests
import requests
url = "https://gate.whapi.cloud/messages/text"
payload = {
"to": "[email protected]",
"body": "Hello, this message was sent via API!"
}
headers = {
"accept": "application/json",
"content-type": "application/json",
"authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
// npm install axios --save
import axios from 'axios';
const options = {
method: 'POST',
url: 'https://gate.whapi.cloud/messages/text',
headers: {
accept: 'application/json',
'content-type': 'application/json',
authorization: 'Bearer YOUR_API_TOKEN'
},
data: {to: '[email protected]', body: 'Hello, this message was sent via API!'}
};
axios
.request(options)
.then(res => console.log(res.data))
.catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"to\":\"[email protected]\",\"body\":\"Hello, this message was sent via API!\"}");
Request request = new Request.Builder()
.url("https://gate.whapi.cloud/messages/text")
.post(body)
.addHeader("accept", "application/json")
.addHeader("content-type", "application/json")
.addHeader("authorization", "Bearer YOUR_API_TOKEN")
.build();
Response response = client.newCall(request).execute();
//dotnet add package RestSharp
using RestSharp;
var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer YOUR_API_TOKEN");
request.AddJsonBody("{\"to\":\"[email protected]\",\"body\":\"Hello, this message was sent via API!\"}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
Cómo enviar mensajes grupales usando herramientas no-code como Make o n8n
GET https://gate.whapi.cloud/groups

POST https://gate.whapi.cloud/messages/text
to
: el ID del grupo.body
: el contenido del mensaje


Cómo crear un grupo de WhatsApp vía API
- 1) Usa el método
POST
con el endpointhttps://gate.whapi.cloud/groups
para crear un nuevo grupo. Proporciona el nombre del grupo en el parámetro subject e incluye al menos un número en el parámetro participants —esto es necesario para crear el grupo exitosamente. - 2) Al crearse exitosamente, la API devolverá un ID de grupo. Necesitarás este identificador para enviar mensajes al grupo.
- 3) Para enviar un mensaje al grupo, usa el método estándar de envío de mensajes. Especifica el ID del grupo en el parámetro
to
y el contenido enbody
.
participants
para asegurar la creación exitosa.
curl --request POST \
--url https://gate.whapi.cloud/groups \
--header 'accept: application/json' \
--header 'authorization: Bearer Your_Token' \
--header 'content-type: application/json' \
--data '
{
"participants": [
"498935516106",
"4915155985667"
],
"subject": "SEO Common GmbH"
}
'
// composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://gate.whapi.cloud/groups', [
'body' => '{"participants":["498935516106","4915155985667"],"subject":"SEO Common GmbH"}',
'headers' => [
'accept' => 'application/json',
'authorization' => 'Bearer Your_Token',
'content-type' => 'application/json',
],
]);
echo $response->getBody();
# python -m pip install requests
import requests
url = "https://gate.whapi.cloud/groups"
payload = {
"participants": ["498935516106", "4915155985667"],
"subject": "SEO Common GmbH"
}
headers = {
"accept": "application/json",
"content-type": "application/json",
"authorization": "Bearer Your_Token"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
// npm install axios --save
import axios from 'axios';
const options = {
method: 'POST',
url: 'https://gate.whapi.cloud/groups',
headers: {
accept: 'application/json',
'content-type': 'application/json',
authorization: 'Bearer Your_Token'
},
data: {participants: ['498935516106', '4915155985667'], subject: 'SEO Common GmbH'}
};
axios
.request(options)
.then(res => console.log(res.data))
.catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"participants\":[\"498935516106\",\"4915155985667\"],\"subject\":\"SEO Common GmbH\"}");
Request request = new Request.Builder()
.url("https://gate.whapi.cloud/groups")
.post(body)
.addHeader("accept", "application/json")
.addHeader("content-type", "application/json")
.addHeader("authorization", "Bearer Your_Token")
.build();
Response response = client.newCall(request).execute();
//dotnet add package RestSharp
using RestSharp;
var options = new RestClientOptions("https://gate.whapi.cloud/groups");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
request.AddJsonBody("{\"participants\":[\"498935516106\",\"4915155985667\"],\"subject\":\"SEO Common GmbH\"}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
Cómo crear un grupo de WhatsApp usando una plataforma no-code
POST
a https://gate.whapi.cloud/groups
con el subject
(nombre del grupo) y participants
(array de números).{
"participants": [
"498935516106",
"4915155985667"
],
"subject": "SEO Common GmbH"
}

Cómo agregar participantes a un grupo de WhatsApp
- 1) Asegúrate de tener el ID del grupo al que deseas agregar miembros. Es un parámetro obligatorio. Arriba explicamos cómo obtener el ID.
- 2) Envía una petición
POST
ahttps://gate.whapi.cloud/groups/{GroupID}/participants
para agregar nuevos miembros. Debes incluir el ID del grupo en la URL y proporcionar un array de números de teléfono para los participantes que deseas agregar.
curl --request POST \
--url https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants \
--header 'accept: application/json' \
--header 'authorization: Bearer Your_Token' \
--header 'content-type: application/json' \
--data '
{
"participants": [
"373983445541",
"373983445542",
"373983445543"
]
}
'
// composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants', [
'body' => '{"participants":["373983445541","373983445542","373983445543"]}',
'headers' => [
'accept' => 'application/json',
'authorization' => 'Bearer Your_Token',
'content-type' => 'application/json',
],
]);
echo $response->getBody();
# python -m pip install requests
import requests
url = "https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants"
payload = { "participants": ["373983445541", "373983445542", "373983445543"] }
headers = {
"accept": "application/json",
"content-type": "application/json",
"authorization": "Bearer Your_Token"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
// npm install axios --save
import axios from 'axios';
const options = {
method: 'POST',
url: 'https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants',
headers: {
accept: 'application/json',
'content-type': 'application/json',
authorization: 'Bearer Your_Token'
},
data: {participants: ['373983445541', '373983445542', '373983445543']}
};
axios
.request(options)
.then(res => console.log(res.data))
.catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"participants\":[\"373983445541\",\"373983445542\",\"373983445543\"]}");
Request request = new Request.Builder()
.url("https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants")
.post(body)
.addHeader("accept", "application/json")
.addHeader("content-type", "application/json")
.addHeader("authorization", "Bearer Your_Token")
.build();
Response response = client.newCall(request).execute();
//dotnet add package RestSharp
using RestSharp;
var options = new RestClientOptions("https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
request.AddJsonBody("{\"participants\":[\"373983445541\",\"373983445542\",\"373983445543\"]}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
Cómo agregar participantes a un grupo usando herramientas no-code
https://gate.whapi.cloud/groups/[email protected]/participants
.@
por %40
.{
"participants": [
"373983445541",
"373983445542",
"373983445543"
]
}
Cómo obtener los participantes de un grupo de WhatsApp vía API
- 1) Asegúrate de ser miembro del grupo al que deseas acceder. Sin ser parte del grupo, no podrás obtener la lista de participantes.
- 2) Usa el método de la API Get Groups para obtener una lista de todos los grupos asociados a tu cuenta de WhatsApp. Si ya conoces el ID del grupo deseado, consúltalo directamente usando el endpoint Get group.
- 3) La respuesta incluirá un array de objetos grupo, cada uno con información como el ID, nombre y un campo participants con la lista de miembros. Ejemplo de respuesta:
{
"id": "[email protected]",
"name": "A group of researchers",
"participants": [
{ "id": "972558557032", "rank": "member" },
{ "id": "14409416972", "rank": "creator" },
{ "id": "905589461962", "rank": "member" }
]
}
curl --request GET \
--url 'https://gate.whapi.cloud/groups?count=100' \
--header 'accept: application/json' \
--header 'authorization: Bearer Your_Token'
// composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://gate.whapi.cloud/groups?count=100', [
'headers' => [
'accept' => 'application/json',
'authorization' => 'Bearer Your_Token',
],
]);
echo $response->getBody();
# python -m pip install requests
import requests
url = "https://gate.whapi.cloud/groups?count=100"
headers = {
"accept": "application/json",
"authorization": "Bearer Your_Token"
}
response = requests.get(url, headers=headers)
print(response.text)
// npm install axios --save
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://gate.whapi.cloud/groups?count=100',
headers: {accept: 'application/json', authorization: 'Bearer Your_Token'}
};
axios
.request(options)
.then(res => console.log(res.data))
.catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://gate.whapi.cloud/groups?count=100")
.get()
.addHeader("accept", "application/json")
.addHeader("authorization", "Bearer Your_Token")
.build();
Response response = client.newCall(request).execute();
//dotnet add package RestSharp
using RestSharp;
var options = new RestClientOptions("https://gate.whapi.cloud/groups?count=100");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
Cómo obtener miembros de un grupo de WhatsApp vía no-code
GET
a https://gate.whapi.cloud/groups
para obtener una lista de todos los grupos de los que eres miembro, junto con detalles de cada grupo, incluyendo los participantes.GET https://gate.whapi.cloud/groups/{GroupID}
para obtener los datos de un grupo específico.Cómo conectar un bot a un grupo de WhatsApp
- Crear un bot de WhatsApp en Node.js;
- Crear un bot de WhatsApp en Python;
- Crear un bot de WhatsApp en PHP;
- Crear un bot de WhatsApp en Java;
chat_id
, que tendrá el formato [email protected]
(a diferencia de un número de teléfono en chats privados). El campo from
indicará el número del remitente dentro del grupo.Consejos, limitaciones y mejores prácticas
- No agregues usuarios a grupos sin su consentimiento. Respeta la privacidad y evita invitaciones no solicitadas;
- Evita enviar spam o contenido no deseado, ya que tu cuenta puede ser marcada o bloqueada permanentemente;
- Aunque no hay límites estrictos, recomendamos imitar el comportamiento humano: no crees decenas de grupos ni envíes muchos mensajes por segundo. Añade pausas y usa retrasos razonables entre acciones al automatizar tareas grupales;
Promote to Group Admin
. Para detalles de implementación, consulta la documentación aquí.Solución de problemas
El bot no responde a mensajes entrantes
- Asegúrate de que estás enviando mensajes al número en el que se ejecuta el bot desde otro teléfono. El bot no podrá reaccionar a los mensajes enviados desde el mismo número.
- Si el bot no reacciona a los mensajes de otros números, verifica el funcionamiento de los webhooks. Utiliza servicios para simular webhooks, por ejemplo, Webhook.site, para asegurarte de por dónde llegan las solicitudes de callback. Luego, verifica que el camino coincide con lo que configuraste. Además, asegúrate de que tu servidor responde con 200Ok.
El bot envía mensajes sin parar
¿No puedes agregar un usuario al grupo?
- Debes ser administrador del grupo. Solo los admins pueden agregar nuevos miembros.
- El usuario puede tener restringidas las invitaciones a grupos en su configuración de privacidad. Si es así, no se puede agregar automáticamente vía API.
- El grupo puede haber alcanzado el tamaño máximo de 1024 participantes. En ese caso, elimina miembros inactivos o considera crear un nuevo grupo.
- Las políticas anti-spam de WhatsApp pueden bloquear ciertos números —especialmente si el contacto no está guardado o no ha interactuado contigo. Puedes intentar sincronizar contactos vía nuestra integración con Google Contacts, pero incluso así puede que WhatsApp lo bloquee por sus filtros internos.
¿Mensaje no entregado?
- Verifica el ID del grupo —IDs incorrectos o expirados causarán fallos de entrega.
- Si el mensaje se envía pero no aparece en el grupo, revisa el formato. Por ejemplo, los grupos de WhatsApp pueden no mostrar ciertos tipos de contenido, como imágenes webp o botones interactivos.
¿Permiso denegado?
- Tu número no es reconocido como administrador del grupo.
- La API puede no haber sincronizado correctamente tu estado de admin o número. En ese caso, intenta reautorizar tu canal API para refrescar permisos y metadatos.
¿No se muestran los miembros del grupo?
GET /groups
o GET /group
, los datos del grupo se ponen en cola para sincronización.¿Qué significa @lid en la lista de participantes?
Despliegue y uso de servidores
Firebase
- Crea un proyecto en Firebase Console;
- Instala Firebase CLI, siguiendo las instrucciones;
- Inicializa Firebase en el directorio de tu proyecto con el comando firebase init;
- Despliega tu bot usando el comando firebase deploy --only functions.
AWS (Amazon Web Services)
- Regístrate o inicia sesión en AWS Management Console;
- Crea una nueva función Lambda a través de la consola de AWS, eligiendo API Gateway como desencadenante;
- Sube el código de tu bot a la función Lambda;
- Configura API Gateway para que tu bot interactúe con el mundo exterior.
Heroku
- Crea una cuenta en Heroku;
- Instala Heroku CLI e inicia sesión;
- Crea una nueva aplicación en Heroku a través de la consola o usando el comando heroku create;
- Conecta tu repositorio Git con Heroku y realiza el despliegue con los comandos git push heroku master;
- Configura la URL del webhook proporcionada por Heroku.