# Webhooks de grupo WhatsApp

Dois eventos de webhook reportam atividade de solicitação de entrada em um [grupo](/docs/guides/whatsapp/groups) que exige aprovação. Ambos são ações do próprio solicitante, então nenhum aparece na resposta a qualquer chamada que você faz, e uma solicitação criada e cancelada entre duas leituras da lista não deixa rastro. Assine esses eventos e você não precisa fazer polling.

| Evento                                | Dispara quando                                          |
| ------------------------------------- | ------------------------------------------------------- |
| `whatsapp.group.join_request_created` | Alguém abre o link de convite e solicita participar     |
| `whatsapp.group.join_request_revoked` | A pessoa cancela essa solicitação antes de você decidir |

Decidir uma solicitação não dispara nenhum evento, porque o resultado já está na resposta da sua própria chamada. Nenhum dos eventos faz parte da linha do tempo de uma mensagem.

## Solicitação de entrada criada

```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` é quando a pessoa solicitou a entrada.

## Solicitação de entrada revogada

```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"
    }
  }
}
```

O `data` é o mesmo da solicitação que ele cancela, com o mesmo `join_request.id`. `timestamp` é quando a solicitação foi cancelada.

## Campos

| Campo                       | Significado                                                                                                                                                                                                                                                            |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `group_id`                  | O grupo ao qual a pessoa solicitou participar                                                                                                                                                                                                                          |
| `whatsapp_number_id`        | O número comercial que criou e administra o grupo                                                                                                                                                                                                                      |
| `workspace_id`              | O espaço de trabalho que possui o grupo                                                                                                                                                                                                                                |
| `join_request.id`           | A solicitação. O mesmo ID que a [lista de solicitações de entrada](/docs/guides/whatsapp/groups/management#3-let-people-into-the-group) retorna e que as operações em lote de aprovação e rejeição recebem, para que você possa decidir diretamente a partir do evento |
| `join_request.bsuid`        | O [ID de usuário com escopo de negócio](/docs/guides/whatsapp/business-scoped-user-ids) do solicitante. Toda solicitação inclui esse ID, e ele é transferido para `participants` se você aprovar, então use-o como chave nos seus próprios registros                   |
| `join_request.phone_number` | O número do solicitante no formato E.164, ou `null` se ele não o compartilhou com o seu negócio                                                                                                                                                                        |
| `join_request.username`     | O nome de usuário WhatsApp do solicitante, ou `null` se ele não escolheu um                                                                                                                                                                                            |

## Próximos passos

- [Gerenciando grupos WhatsApp](/docs/guides/whatsapp/groups/management#3-let-people-into-the-group): aprovar ou rejeitar uma solicitação
- [Webhooks WhatsApp](/docs/guides/whatsapp/webhooks): os outros eventos que você pode assinar
- [Guia de webhooks](/docs/guides/webhooks): endpoints, verificação de assinatura e tentativas de reenvio

## 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)
