WhatsApp group webhooks
Two webhook events report join-request activity on a group that requires approval. Both are the requester's own doing, so neither shows up on the response to any call you make, and a request raised and cancelled between two reads of the list leaves nothing behind. Subscribe to them and you do not have to poll.
| Event | Fires when |
|---|---|
| whatsapp.group.join_request_created | Someone opens the invite link and asks to join |
| whatsapp.group.join_request_revoked | They cancel that request before you decide it |
Deciding a request fires no event, because the outcome is already on the response to your own call. Neither event is part of a message's timeline.
Join request created
Przykład kodu
{
"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 is when the person asked to join.
Join request revoked
Przykład kodu
{
"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"
}
}
}The data is the same as on the request it cancels, with the same join_request.id. timestamp is when the request was cancelled.
Fields
| Field | Meaning |
|---|---|
| group_id | The group the person asked to join |
| whatsapp_number_id | The business number that created and administers the group |
| workspace_id | The workspace that owns the group |
| join_request.id | The request. The same ID the join-request list returns and the batch approve and reject operations take, so you can decide straight from the event |
| join_request.bsuid | The requester's business-scoped user ID. Every request carries it, and it carries over to participants if you approve, so key your own records on it |
| join_request.phone_number | The requester's number in E.164 format, or null if they have not shared it with your business |
| join_request.username | The requester's WhatsApp username, or null if they have not chosen one |
Next steps
- Managing WhatsApp groups: approve or reject a request
- WhatsApp webhooks: the other events you can subscribe to
- Webhooks guide: endpoints, signature verification, and retries
Powiązane zasoby
Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.
Obejrzyj przewodnikConnecting WhatsApp to Bird: from buying a number to a live channelZrozum koncepcjęWhat is the 24-hour customer service window on WhatsApp?Użyj narzędziaWhatsApp message builderPoznaj możliwościWhatsApp
Wypróbuj ćwiczenie i uzyskaj brief wdrożeniowy