# Webhooks de grupos de WhatsApp

Dos eventos de webhook informan sobre la actividad de solicitudes de unión en un [grupo](/docs/guides/whatsapp/groups) que requiere aprobación. Ambos son acción del propio solicitante, así que ninguno aparece en la respuesta a las llamadas que tú hagas, y una solicitud creada y cancelada entre dos lecturas de la lista no deja rastro. Suscríbete a ellos y no tendrás que hacer polling.

| Evento                                | Se dispara cuando                                      |
| ------------------------------------- | ------------------------------------------------------ |
| `whatsapp.group.join_request_created` | Alguien abre el enlace de invitación y solicita unirse |
| `whatsapp.group.join_request_revoked` | Cancela esa solicitud antes de que tú la resuelvas     |

Resolver una solicitud no dispara ningún evento, porque el resultado ya está en la respuesta a tu propia llamada. Ninguno de los dos eventos forma parte de la línea temporal de un mensaje.

## Solicitud de unión creada

```json
{
  "type": "whatsapp.group.join_request_created",
  "timestamp": "2026-09-22T10:07:57Z",
  "data": {
    "group_id": "wag_01krdgeqd0abc5s7t44vh8rt9mg",
    "whatsapp_number_id": "wan_01krdgeqd1def5s7t44vh8rt9mg",
    "workspace_id": "ws_01krdgeqcxet5s7t44vh8rt9mg",
    "join_request": {
      "id": "wgj_01krdgeqcxet5s7t44vh8rt9mg",
      "bsuid": "US.1566655121691972",
      "phone_number": "+13124495648",
      "username": "john.doe"
    }
  }
}
```

`timestamp` es el momento en que la persona solicitó unirse.

## Solicitud de unión revocada

```json
{
  "type": "whatsapp.group.join_request_revoked",
  "timestamp": "2026-09-22T11:12:03Z",
  "data": {
    "group_id": "wag_01krdgeqd0abc5s7t44vh8rt9mg",
    "whatsapp_number_id": "wan_01krdgeqd1def5s7t44vh8rt9mg",
    "workspace_id": "ws_01krdgeqcxet5s7t44vh8rt9mg",
    "join_request": {
      "id": "wgj_01krdgeqcxet5s7t44vh8rt9mg",
      "bsuid": "US.1566655121691972",
      "phone_number": "+13124495648",
      "username": "john.doe"
    }
  }
}
```

El `data` es el mismo que el de la solicitud que cancela, con el mismo `join_request.id`. `timestamp` es el momento en que se canceló la solicitud.

## Campos

| Campo                       | Significado                                                                                                                                                                                                                                                          |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `group_id`                  | El grupo al que la persona solicitó unirse                                                                                                                                                                                                                           |
| `whatsapp_number_id`        | El número de negocio que creó y administra el grupo                                                                                                                                                                                                                  |
| `workspace_id`              | El espacio de trabajo propietario del grupo                                                                                                                                                                                                                          |
| `join_request.id`           | La solicitud. El mismo ID que devuelve la [lista de solicitudes de unión](/docs/guides/whatsapp/groups/management#3-let-people-into-the-group) y que aceptan las operaciones de aprobación y rechazo por lotes, así que puedes resolver directamente desde el evento |
| `join_request.bsuid`        | El [ID de usuario con alcance de negocio](/docs/guides/whatsapp/business-scoped-user-ids) del solicitante. Todas las solicitudes lo incluyen y se mantiene en `participants` si apruebas, así que úsalo como clave en tus propios registros                          |
| `join_request.phone_number` | El número del solicitante en formato E.164, o `null` si no lo ha compartido con tu negocio                                                                                                                                                                           |
| `join_request.username`     | El nombre de usuario de WhatsApp del solicitante, o `null` si no ha elegido uno                                                                                                                                                                                      |

## Próximos pasos

- [Gestión de grupos de WhatsApp](/docs/guides/whatsapp/groups/management#3-let-people-into-the-group): aprobar o rechazar una solicitud
- [Webhooks de WhatsApp](/docs/guides/whatsapp/webhooks): los demás eventos a los que puedes suscribirte
- [Guía de webhooks](/docs/guides/webhooks): endpoints, verificación de firma y reintentos

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/whatsapp-api) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
