Ir al contenido principal

API de Grupos de WhatsApp: Crear, gestionar y eliminar grupos

Resumen

Utilice la API de Grupos de WhatsApp para crear y gestionar grupos de WhatsApp de forma programática. Puede crear grupos, enviar invitaciones a contactos pendientes, eliminar participantes, borrar grupos y obtener una lista de grupos activos.

Nota: La API de Grupos de WhatsApp está disponible en el plan Business.

Instrucciones

Antes de empezar

Antes de utilizar la API de Grupos de WhatsApp:

  • Asegúrese de que su cuenta de Wati esté en el plan Business.

  • Genere un token de API de Wati y manténgalo seguro.

  • Utilice la URL base de la API proporcionada en la documentación de la API de Wati.

Para obtener más información, consulte Autenticación. Las API de Wati utilizan autenticación mediante Bearer Token, y las solicitudes deben incluir el token de API en el encabezado Authorization.

Autenticación

Incluya los siguientes encabezados en sus solicitudes de API:

Authorization: Bearer <su_token_de_api>
Content-Type: application/json

Por ejemplo:

curl --location 'https://live-mt-server.wati.io/xxxxxx/api/ext/v3/conversations/groups' \
--header 'Authorization: Bearer <su_token_de_api>' \
--header 'Content-Type: application/json'

Nota: Utilice la URL base de la API que se muestra en su cuenta de Wati (Connectors > API Docs > API Endpoint) en lugar de la URL de ejemplo anterior.

Seguridad: Nunca comparta su token de API ni lo suba a código público. Wati recomienda almacenar las credenciales de la API en variables de entorno o en un gestor de secretos.

Endpoints disponibles

Método

Endpoint

Descripción

POST

/api/ext/v3/conversations/groups

Crear un grupo de WhatsApp

DELETE

/api/ext/v3/conversations/groups/{groupId}

Eliminar un grupo de WhatsApp

POST

/api/ext/v3/conversations/groups/{groupId}/invites

Enviar invitaciones a contactos pendientes

DELETE

/api/ext/v3/conversations/groups/{groupId}/participants

Eliminar participantes de un grupo

POST

/api/ext/v3/conversations/groups/list

Listar grupos de WhatsApp activos

1. Crear un grupo de WhatsApp

POST /api/ext/v3/conversations/groups

Crea un nuevo grupo de WhatsApp.

Puede especificar opcionalmente un canal. Si no lo hace, se utilizará el canal predeterminado. Los operadores se identifican por su dirección de correo electrónico, mientras que los contactos se identifican por número de teléfono o destino de contacto admitido.

Cuerpo de la solicitud

{
"channel": "MyChannel",
"name": "VIP Support Group",
"description": "Group for VIP customers",
"owner_email": "[email protected]",
"operator_emails": [
"[email protected]"
],
"contact_targets": [
"14155551234",
"14155555678"
],
"join_approval_mode": "auto_approve"
}

Parámetros del cuerpo de la solicitud

Campo

Tipo

Descripción

channel

string

El canal a utilizar. Si se omite, se utiliza el canal predeterminado.

name

string

El nombre del grupo de WhatsApp.

description

string

La descripción del grupo de WhatsApp.

owner_email

string

Dirección de correo electrónico del propietario del grupo.

operator_emails

array

Direcciones de correo electrónico de los operadores a añadir al grupo.

contact_targets

array

Número de teléfono, BSUID o ContactId de los contactos a añadir al grupo. Máximo 7 contactos por grupo.

join_approval_mode

string

Especifica el modo de aprobación para unirse al grupo.

Respuesta

Una solicitud exitosa devuelve 201 Created y los detalles del grupo recién creado.

{
"group": {
"id": "6828abc123def456789012ab",
"name": "VIP Support Group",
"description": "Group for VIP customers",
"invite_link": "",
"channel_id": "ch_123",
"conversation_id": "conv_456",
"operators": [
{
"id": "682800000000000000000001",
"operator_id": "op_id",
"name": "Owner Name",
"role": "owner",
"added_at": "2026-08-13T08:27:00.8447035Z"
}
],
"contacts": [
{
"id": "682800000000000000000003",
"contact_id": "contact_id",
"wa_id": "+14155551234",
"name": "Contact Name",
"join_status": "pending"
}
],
"created_at": "2026-08-13T08:27:00.8448051Z"
}
}

Códigos de respuesta

Código

Descripción

201

El grupo se creó correctamente.

400

La solicitud no es válida.

401

La solicitud no está autorizada.

403

La solicitud está prohibida.

429

Demasiadas solicitudes.

500

Ocurrió un error inesperado.

2. Eliminar un grupo de WhatsApp

DELETE /api/ext/v3/conversations/groups/{groupId}

Elimina el grupo de WhatsApp especificado.

Si el grupo ya ha sido eliminado, el endpoint sigue devolviendo 200 OK.

Parámetros de ruta

Parámetro

Tipo

Requerido

Descripción

groupId

string

El ID del grupo a eliminar.

Respuesta

Una solicitud exitosa devuelve 200 OK.

{
"result": true
}

Códigos de respuesta

Código

Descripción

200

El grupo se eliminó correctamente.

400

La solicitud no es válida.

401

La solicitud no está autorizada.

403

La solicitud está prohibida.

429

Demasiadas solicitudes.

500

Ocurrió un error inesperado.

3. Enviar invitaciones de grupo

POST /api/ext/v3/conversations/groups/{groupId}/invites

Envía una invitación de grupo a todos los contactos que aún están pendientes.

La API verifica los contactos en el grupo, identifica aquellos con un estado de unión pendiente y envía la plantilla de invitación de grupo a la conversación 1:1 de cada contacto.

Parámetros de ruta

Parámetro

Tipo

Requerido

Descripción

groupId

string

El ID del grupo para el que se enviarán las invitaciones.

Respuesta

Una solicitud exitosa devuelve el resultado de la invitación para cada contacto pendiente.

{
"total_pending": 3,
"sent": 2,
"failed": 1,
"results": [
{
"contact_name": "Alice",
"phone": "14155551234",
"success": true
},
{
"contact_name": "Bob",
"phone": "14155555678",
"success": true
},
{
"contact_name": "Charlie",
"phone": "",
"success": false,
"error": "BSUID-only contact, no phone number"
}
]
}La respuesta incluye:
  • total_pending: Número de contactos con estado de unión pendiente.

  • sent: Número de invitaciones enviadas correctamente.

  • failed: Número de invitaciones que no pudieron ser enviadas.

  • results: Resultado de la invitación para cada contacto pendiente.

Códigos de respuesta

Código

Descripción

200

Los resultados de la invitación fueron devueltos correctamente.

400

La solicitud no es válida.

401

La solicitud no está autorizada.

403

La solicitud está prohibida.

429

Demasiadas solicitudes.

500

Ocurrió un error inesperado.

4. Eliminar participantes de un grupo de WhatsApp

DELETE /api/ext/v3/conversations/groups/{groupId}/participants

Elimina operadores y/o contactos de un grupo de WhatsApp.

Debe proporcionar al menos un correo electrónico de operador o un destino de contacto.

Parámetros de ruta

Parámetro

Tipo

Requerido

Descripción

groupId

string

El ID del grupo del que se eliminarán los participantes.

Cuerpo de la solicitud

{
"operator_emails": [
"[email protected]"
],
"contact_targets": [
"14155551234"
]
}

Parámetros del cuerpo de la solicitud

Campo

Tipo

Descripción

operator_emails

array

Direcciones de correo electrónico de los operadores a eliminar del grupo.

contact_targets

array

Número de teléfono, BSUID o ContactId de los contactos a añadir al grupo. Máximo 7 contactos por grupo.

Puede proporcionar operator_emails, contact_targets, o ambos. Se debe proporcionar al menos uno.

Respuesta

Una solicitud exitosa devuelve 200 OK.

{
"result": true
}

Códigos de respuesta

Código

Descripción

200

Los participantes se eliminaron correctamente.

400

La solicitud no es válida.

401

La solicitud no está autorizada.

403

La solicitud está prohibida.

429

Demasiadas solicitudes.

500

Ocurrió un error inesperado.

5. Listar grupos de WhatsApp activos

POST /api/ext/v3/conversations/groups/list

Devuelve una lista paginada por cursor de grupos de WhatsApp activos.

Puede filtrar opcionalmente los resultados por canal o por IDs de grupo específicos. Si no especifica un canal, se utiliza el canal predeterminado.

Cuerpo de la solicitud

{
"channel": "MyChannel",
"limit": 20
}

Parámetros del cuerpo de la solicitud

Campo

Tipo

Descripción

channel

string

El canal a utilizar. Si se omite, se utiliza el canal predeterminado.

limit

integer

El número de grupos a devolver en la respuesta.

Respuesta

Una solicitud exitosa devuelve 200 OK con los grupos activos e información de paginación.

{
"groups": [
{
"id": "6828abc123def456789012ab",
"name": "VIP Support Group",
"description": "Group for VIP customers",
"invite_link": "https://chat.whatsapp.com/abc123",
"channel_id": "ch_123",
"conversation_id": "conv_456",
"operators": [
{
"id": "682800000000000000000001",
"operator_id": "op_id",
"name": "Owner",
"role": "owner",
"added_at": "2026-08-13T08:27:00.8595387Z"
}
],
"contacts": [
{
"id": "682800000000000000000003",
"contact_id": "contact_id",
"wa_id": "+14155551234",
"name": "Alice",
"join_status": "joined",
"joined_at": "2026-08-13T08:27:00.8595402Z"
}
],
"created_at": "2026-08-13T08:27:00.8595404Z"
}
],
"continuous_token": "eyJsIjoiNjgyOGFiYzEyM2RlZjQ1Njc4OTAxMmFiIn0=",
"total": 5
}

Paginación

El endpoint List Groups devuelve resultados en páginas.

Si hay más grupos disponibles, la respuesta incluye un continuous_token. Utilice este token para recuperar páginas posteriores.

Cuando continuous_token está ausente o es null, no hay más resultados.

Códigos de respuesta

Código

Descripción

200

La lista de grupos activos fue devuelta correctamente.

400

La solicitud no es válida.

401

La solicitud no está autorizada.

403

La solicitud está prohibida.

429

Demasiadas solicitudes.

500

Ocurrió un error inesperado.

Respuestas de error

Los siguientes códigos de estado HTTP pueden ser devueltos por los endpoints de la API de Grupos de WhatsApp:

Código

Descripción

400

La solicitud no es válida.

401

La solicitud no está autorizada.

403

La solicitud está prohibida.

429

Demasiadas solicitudes.

500

Ocurrió un error inesperado.

Para las respuestas 400, 403 y 500, la API puede devolver detalles adicionales como un código de error, un mensaje y una marca de tiempo.

Ejemplo de respuesta de error

{
"details": "string",
"code": 0,
"message": "string",
"timestamp": "2026-08-13T09:01:03.204Z"
}

Para errores relacionados con la autenticación, verifique que su solicitud incluya un token de API válido en el encabezado Authorization. Consulte Autenticación para obtener más información.

¿Ha quedado contestada tu pregunta?