Saltar al contenido principal

Qué es

La WhatsApp Groups API de YCloud permite a tu empresa crear grupos de WhatsApp solo por invitación. Envías un enlace de invitación a cada persona y esa persona decide si unirse. Si el grupo requiere aprobación, puedes revisar la solicitud de unión de la persona antes de permitirle entrar al grupo. Esta guía cubre la configuración y gestión de grupos. El envío de mensajes a grupos y la recuperación de mensajes de grupo aún no están disponibles. Las conversaciones de grupo no aparecen en Inbox.

Antes de empezar

Antes de realizar la integración, asegúrate de que tu número de teléfono comercial de WhatsApp cumpla estos requisitos:
  • La empresa tiene una Official Business Account (OBA).
  • El número de teléfono utiliza la WhatsApp Cloud API, no la aplicación WhatsApp Business.
  • El número de teléfono no utiliza Multi-solution Conversations.
  • Tu cuenta de YCloud tiene acceso al número de teléfono.
  • Dispones de una URL pública HTTPS donde YCloud pueda enviar eventos de webhook.
  • Antes de enviar enlaces de invitación a través de un mensaje de plantilla, dispones de una plantilla de mensaje de invitación al grupo aprobada.
YCloud gestiona las suscripciones requeridas a la plataforma de WhatsApp. Solo necesitas configurar un endpoint de webhook de YCloud y seleccionar los eventos de grupo de YCloud que deseas recibir.
YCloud y WhatsApp comprueban si el número de teléfono es apto. Si no lo es, verifica su estado de OBA, la configuración de la Cloud API y el acceso en YCloud.

Funcionalidades admitidas y límites

Actualmente YCloud admite:
  • Crear, listar, recuperar y eliminar grupos.
  • Recuperar y restablecer enlaces de invitación.
  • Enviar una plantilla aprobada de enlace de invitación a un usuario individual de WhatsApp.
  • Listar, aprobar y rechazar solicitudes de unión.
  • Eliminar participantes.
  • Actualizar el asunto y la descripción del grupo.
  • Actualizar la foto de perfil del grupo con un archivo JPEG.
  • Recibir webhooks sobre el ciclo de vida del grupo, participantes, configuración y suspensión.
La plataforma de WhatsApp aplica estos límites:
  • Un grupo puede tener hasta 8 participantes.
  • Un número de teléfono comercial puede crear hasta 10.000 grupos.
  • Un grupo solo puede contener un número de teléfono comercial de la Cloud API.
  • Una sola solicitud de YCloud puede eliminar hasta 8 participantes.
  • El asunto de un grupo puede contener hasta 128 caracteres.
  • La descripción de un grupo puede contener hasta 2.048 caracteres.
Estas API no admiten fijar ni desfijar mensajes.

Cómo funciona

  1. Elige qué eventos de grupo debe enviar YCloud a tu endpoint de webhook.
  2. Envía una solicitud para crear un grupo. YCloud devuelve inmediatamente un requestId.
  3. Espera el webhook de ciclo de vida que informa si la creación se realizó con éxito.
  4. Si la creación tiene éxito, guarda el groupId devuelto y el enlace de invitación. Almacena y utiliza el groupId exactamente como lo devuelve YCloud.
  5. Envía el enlace de invitación a una persona a la vez.
  6. Si el grupo requiere aprobación, aprueba o rechaza cada solicitud de unión.
  7. Usa los eventos de participantes y la API para recuperar grupos para mantener tu lista de miembros actualizada.
  8. Usa eventos de webhook para confirmar la eliminación de grupos, la salida de participantes y los cambios de configuración.
Una respuesta 200 con status: "pending" solo significa que YCloud recibió la solicitud. La operación finaliza más tarde. Usa el evento de webhook correspondiente para saber si tuvo éxito.

Configurar webhooks

Suscribe tu endpoint de webhook de YCloud a estos eventos antes de crear un grupo: Cuando YCloud envíe un evento, verifica YCloud-Signature, guarda el evento y devuelve una respuesta 2xx con prontitud. Luego puedes procesarlo en segundo plano. YCloud puede enviar el mismo evento más de una vez, y diferentes eventos podrían llegar en desorden. Usa el id del evento para reconocer una entrega que ya hayas procesado. Para una operación iniciada a través de la API, vincula el webhook con la solicitud original mediante requestId. Las acciones iniciadas por un participante, como unirse o salir, podrían no incluir un requestId. En ese caso, usa el tipo de evento, groupId, el identificador del participante y la hora del evento.

Crear un grupo

Elige el modo de aprobación de unión:
La creación del grupo finaliza de forma asíncrona. La primera respuesta solo confirma que YCloud recibió la solicitud:
Espera a whatsapp.group.lifecycle_update. Un evento group_create exitoso contiene los valores finales de groupId y inviteLink.
Guarda y usa groupId exactamente como aparece en el evento exitoso. Distingue entre mayúsculas y minúsculas. No lo decodifiques, modifiques ni generes tú mismo.

Invitar a participantes

Puedes usar el enlace de invitación del webhook de creación o recuperarlo más adelante con el endpoint de enlace de invitación. Restablece el enlace solo cuando necesites que todos los enlaces compartidos anteriormente dejen de funcionar. Tras un restablecimiento, las personas no podrán unirse con el enlace anterior. Para enviar el enlace a través de WhatsApp, prepara primero una plantilla de invitación aprobada. Luego, envía esa plantilla a un usuario individual:
Este endpoint envía un mensaje de plantilla a la persona especificada por to o recipient. No envía un mensaje al grupo. Si proporcionas ambos campos, YCloud usa to.

Gestionar solicitudes de unión

Para un grupo auto_approve, espera a un webhook de participante añadido antes de registrar al usuario como miembro. Para un grupo approval_required:
  1. Recibe group_join_request_created o recupera las solicitudes pendientes.
  2. Guarda el joinRequestId mientras la solicitud siga pendiente.
  3. Envía cada ID al endpoint de aprobación o rechazo.
  4. Comprueba tanto los elementos exitosos como los fallidos en la respuesta, incluidos failedJoinRequests y errors.
  5. Confirma que la persona se unió utilizando el webhook de participante añadido o recuperando el grupo.
Un usuario puede revocar una solicitud pendiente. Si una aprobación falla porque la solicitud ya no existe, actualiza la lista de solicitudes pendientes en lugar de reintentar el mismo ID indefinidamente.

Listar grupos y solicitudes de unión

La lista de grupos y la lista de solicitudes de unión devuelven resultados paginados. Un cursor es un valor temporal que marca tu posición en la lista. limit controla el tamaño de la página, va de 1 a 1024, y su valor predeterminado es 25. Pasa after para la página siguiente o before para la página anterior.
No guardes un cursor como ID permanente. Si no es válido o ha caducado, comienza de nuevo desde la primera página.

Mantener un grupo

Eliminar participantes

Puedes eliminar hasta ocho participantes en una sola solicitud. Elimina los identificadores de participantes duplicados antes de enviarla. Algunos participantes podrían eliminarse mientras que otros fallan, así que comprueba removedParticipants, failedParticipants[].errors y el errors de nivel superior en el webhook de participantes.

Actualizar la configuración

Puedes actualizar subject, description, un profile_picture_file JPEG o cualquier combinación de estos ajustes. Envía JSON cuando cambies únicamente texto. Envía multipart/form-data al subir una foto de perfil. La respuesta inicial solo confirma que YCloud aceptó la solicitud. Espera al webhook de configuración y revisa cada entrada de settings[] para ver qué se actualizó realmente.

Eliminar un grupo

La respuesta inicial de eliminación no confirma que el grupo haya sido eliminado. Espera un webhook de ciclo de vida con type: "group_delete" y un status final. Tras la eliminación, el grupo no podrá usarse de nuevo. Los eventos que ya estaban en curso aún podrían llegar.

Gestionar resultados asíncronos de forma segura

  • Guarda el requestId, la operación solicitada y tu propio ID de referencia juntos.
  • Si vuelves a recibir el mismo id del evento, no apliques el mismo cambio dos veces.
  • Asegúrate de que procesar el mismo evento de nuevo no genere datos duplicados ni efectos secundarios.
  • Espera que los eventos puedan repetirse o llegar fuera de orden.
  • Recupera el grupo nuevamente cuando un evento entre en conflicto con tus datos actuales.
  • Comprueba los errores de nivel superior y a nivel de elemento para operaciones parciales.
  • Oculta las claves de API, enlaces de invitación, identificadores de participantes y datos personales de los registros generales de la aplicación.

Errores y solución de problemas

Una solicitud a la API puede fallar inmediatamente o después de que YCloud la haya aceptado:
  • Para un fallo inmediato, consulta la respuesta de error estándar de YCloud. El error.code de nivel superior es un código general de YCloud como BAD_REQUEST o FORBIDDEN. error.whatsappApiError puede contener detalles adicionales de WhatsApp. No decidas qué debe hacer tu aplicación basándote en el texto legible por humanos de message.
  • Para un fallo reportado más adelante, revisa el webhook del grupo. Dependiendo de la operación, revisa whatsappGroup.errors, failedParticipants[].errors o settings[].errors.
Los fallos habituales del enlace de invitación también incluyen un enlace restablecido o caducado, un grupo lleno o un usuario que la empresa eliminó previamente. No reintentes solicitudes sin cambios indefinidamente.

Lista de comprobación de extremo a extremo

Antes de pasar a producción, usa un número de teléfono de prueba apto para completar este flujo completo:
  1. Suscribe un endpoint de webhook de prueba a los cuatro tipos de eventos de grupo.
  2. Crea un grupo approval_required y guarda el requestId devuelto.
  3. Espera al evento group_create coincidente y guarda su groupId y inviteLink.
  4. Envía la plantilla de invitación aprobada a un usuario de prueba.
  5. Haz que el usuario envíe una solicitud de unión.
  6. Recibe o lista la solicitud y, a continuación, aprueba su joinRequestId.
  7. Espera al evento de participante añadido.
  8. Recupera el grupo y confirma que el participante esté presente.
  9. Elimina al participante de prueba y confirma el resultado asíncrono.
  10. Elimina el grupo de prueba y confirma el evento de ciclo de vida.
Los ejemplos de esta guía siguen el contrato actual de la API de YCloud. Completa esta lista de comprobación con éxito antes de usar la integración en producción.

Referencia de la API

Ejemplos de webhook

Eventos de ciclo de vida

Gestiona los resultados de creación y eliminación de grupos.

Eventos de participantes

Gestiona uniones, solicitudes de unión, eliminaciones y errores a nivel de participante.

Eventos de configuración

Gestiona los resultados de actualización del asunto y la descripción.

Eventos de estado

Gestiona los eventos de suspensión y de anulación de suspensión de grupos.