¡Guau! Crea tu integración de WhatsApp. Empieza gratis. Regístrate ahora
WhatsApp API

El alumno sale del grupo de WhatsApp cuando termina el acceso

Los alumnos dejan de ver las clases en el chat del grupo cuando se acaba su acceso. Cuando termina el acceso al curso, tu backend puede confirmar que el alumno sigue en el grupo y quitarlo a través de Whapi.Cloud. Este caso de uso muestra a los integradores cómo implementar ese flujo con la WhatsApp API.

Lo dispara tu backend o un webhook de pago El id del grupo de WhatsApp ya está guardado
Un teléfono con la lista de miembros de un grupo de curso en WhatsApp en el momento en que termina el acceso de un alumno.
Caso de uso

Cuándo usar este flujo

La plaza del curso es un grupo de WhatsApp

Usa este flujo cuando los alumnos están en un grupo de WhatsApp y la plaza que retiras es la membresía de ese grupo.

El id del grupo de WhatsApp ya está guardado

Usa este flujo cuando el id del grupo de WhatsApp ya está guardado y solo confirmas que el alumno sigue en la lista.

El fin del acceso sale de tus sistemas

Usa este flujo cuando tu backend o un webhook de pago marca que el curso terminó.

Un teléfono con la info de un grupo de WhatsApp donde el exalumno ya no está en la lista de miembros.
Experiencia del cliente

El alumno ya no está en el grupo

Antes de automatizar, los alumnos con acceso vencido siguen en el grupo, ven las clases y el chat, el contenido de pago se filtra y soporte recibe quejas.

Cuando termina el acceso, el alumno ya no está en el grupo de WhatsApp del curso. Los integradores construyen este resultado con la WhatsApp API.

Flujo

Del fin del acceso a la salida del grupo

1

Terminó el acceso al curso

Tu backend o el webhook de pago avisa que el acceso de este alumno terminó y nombra el grupo de WhatsApp en el que estaba.

2

Confirma que el alumno está en la lista

GET /groups/{GroupID}

getGroup devuelve el grupo y sus participantes para el id guardado, así puedes identificar al alumno antes de quitarlo.

3

Quita a ese participante

DELETE /groups/{GroupID}/participants

removeGroupParticipant quita al participante identificado. Envía el mismo id de grupo y ese id de contacto en participants.

Requisitos

Antes de ejecutar el flujo

El número de WhatsApp conectado a tu canal es el que quita al alumno. Cada solicitud usa el token de API de ese número. El canal debe estar autorizado y el número necesita permiso para quitar a un participante.

Opcional — profundiza en este flujo

Implementación de la API

Confirma al alumno y luego quítalo

El acceso al curso ya terminó fuera de Whapi.Cloud. Lee el grupo guardado para saber que el alumno sigue siendo participante y luego quítalo del grupo.

Obtén tu token de API gratis después de registrarte en whapi.cloud y usa ese token en el código en lugar de Your_Token de los ejemplos.

Confirma que el alumno está en la lista

Lee el grupo guardado y sus participantes para identificar al alumno antes de quitarlo.

curl --request GET \
     --url https://gate.whapi.cloud/groups/GROUP_ID \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Your_Token'
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/groups/GROUP_ID",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer Your_Token"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests

url = "https://gate.whapi.cloud/groups/GROUP_ID"
headers = {
    "accept": "application/json",
    "authorization": "Bearer Your_Token",
}

response = requests.get(url, headers=headers)
print(response.text)
const url = 'https://gate.whapi.cloud/groups/GROUP_ID';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer Your_Token',
  },
});

console.log(await response.text());
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/groups/GROUP_ID")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer Your_Token")
  .build();

Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/groups/GROUP_ID");
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);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://gate.whapi.cloud/groups/GROUP_ID", nil)
	req.Header.Set("accept", "application/json")
	req.Header.Set("authorization", "Bearer Your_Token")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}

Quita a ese participante

Quita al participante identificado para que ya no esté en el grupo del curso.

curl --request DELETE \
     --url https://gate.whapi.cloud/groups/GROUP_ID/participants \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Your_Token' \
     --header 'content-type: application/json' \
     --data '
{
  "participants": ["12345678901"]
}'
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/groups/GROUP_ID/participants",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_POSTFIELDS => "{\"participants\":[\"12345678901\"]}",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer Your_Token",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests

url = "https://gate.whapi.cloud/groups/GROUP_ID/participants"
payload = {"participants": ["12345678901"]}
headers = {
    "accept": "application/json",
    "authorization": "Bearer Your_Token",
    "content-type": "application/json",
}

response = requests.delete(url, json=payload, headers=headers)
print(response.text)
const url = 'https://gate.whapi.cloud/groups/GROUP_ID/participants';

const response = await fetch(url, {
  method: 'DELETE',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer Your_Token',
    'content-type': 'application/json',
  },
  body: JSON.stringify({
    participants: ['12345678901'],
  }),
});

console.log(await response.text());
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"participants\":[\"12345678901\"]}");
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/groups/GROUP_ID/participants")
  .delete(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer Your_Token")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/groups/GROUP_ID/participants");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
request.AddHeader("content-type", "application/json");
request.AddStringBody("{\"participants\":[\"12345678901\"]}", DataFormat.Json);
var response = await client.DeleteAsync(request);

Console.WriteLine("{0}", response.Content);
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"participants":["12345678901"]}`)
	req, _ := http.NewRequest("DELETE", "https://gate.whapi.cloud/groups/GROUP_ID/participants", body)
	req.Header.Set("accept", "application/json")
	req.Header.Set("authorization", "Bearer Your_Token")
	req.Header.Set("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
Cuando algo falla

Gestiona los fallos en cada paso

Cuando termina el acceso, el alumno puede seguir en el grupo si falta el grupo, no se encuentra al participante o falla la llamada. Reintenta ese paso o avisa a tu equipo.

¿Terminó el acceso y el alumno sigue en el grupo?

Puede faltar el grupo, no encontrarse al participante o fallar la llamada. Reintenta la eliminación o avisa a tu equipo para que el alumno no siga viendo el grupo. Los clientes suelen decir que nuestro soporte responde. No dudes en pedir ayuda.

Contacta a soporte si algo salió mal

Revisa por paso de API

Estado Qué significa Qué hacer
400 Wrong request parameters
404 Specified group not found
500 Internal Error
Estado Qué significa Qué hacer
400 Wrong request parameters
401 Need channel authorization for remove participant
403 You do not have permissions for this action
404 Specified group or participant not found
500 Internal Error
FAQ

Preguntas de operadores

Reintenta la eliminación o avisa a tu equipo. Puede faltar el grupo, no encontrarse al participante o haber fallado la llamada. No des por quitado al alumno hasta que ese paso tenga éxito.
No. El resultado es que el alumno ya no está en el grupo de WhatsApp. El flujo lee los participantes de ese grupo y quita a una persona.
No. El id del grupo de WhatsApp ya está guardado. getGroup confirma que el alumno está entre los participantes. removeGroupParticipant luego quita a ese participante.
No. Este flujo corre cuando termina el acceso al curso y la rama es quitarlo del grupo. No aprueba una solicitud de ingreso ni envía un enlace de invitación.
Lo decide tu backend o un webhook de pago. Whapi.Cloud quita al participante después de ese evento. No decide que el curso terminó.
Funciones compatibles de WhatsApp

Todo lo que necesitas para crear automatizaciones en WhatsApp

Whapi.Cloud te da acceso a un conjunto completo de funciones de WhatsApp — mensajería, multimedia, grupos, canales, webhooks y más. Crea bots, automatizaciones e integraciones sin limitaciones de funciones.

Elegido por desarrolladores

Confiado por más de 3.300 desarrolladores y equipos SaaS

Desarrolladores de todo el mundo confían en Whapi.Cloud para crear automatizaciones, bots, integraciones con CRM, herramientas de mensajería masiva y flujos avanzados de WhatsApp. Nuestra infraestructura procesa millones de solicitudes API con alta estabilidad, y este número crece cada mes.

Icono de característica

5,5K+

canales API activos

Icono de característica

21M+

solicitudes API al mes

“Todo es simple, intuitivo y fácil de usar. La documentación es clara y toda la información está justo donde la necesito. Excelente trabajo.”

Roberto K. / Desarrollador Web

“Conectamos WhatsApp a nuestros flujos en n8n en solo unos minutos. Sin código, sin complicaciones — todo funcionó a la primera.”

Martin P. / Desarrollador

“Whapi.Cloud se convirtió en una parte clave de nuestra comunicación con clientes. Automatizamos actualizaciones de productos, notificaciones de pedidos y mensajes de soporte — sin plantillas ni aprobaciones de Meta.”

Oscar T. / CTO

Burbuja decorativa