Before you start
Meta offers groups only to an Official Business Account (the blue tick) on a Cloud API number. Numbers that also use the WhatsApp Business app (coexistence) cannot use groups. Check, and switch the feature on for a number:is_official_business_account flag and turns the groups and messages.group capabilities on or off to match. In the console, Groups shows the same check when a number is not eligible yet.
Meta confirms most group changes on its group webhooks. LazyApp listens to
group_lifecycle_update, group_participants_update, group_settings_update and group_status_update and keeps your groups in step; you get the matching LazyApp events.Limits
Create a group
The group starts as
pending. When Meta confirms, it becomes active and gets its provider_group_id and invite_link (you also get group.created).
Invite people
POST /v1/groups/{uuid}/invite-link/reset makes a new link; every old link stops working.
To invite by message, Meta’s Template Library has a Group invite link utility template. Add it to your account (in WhatsApp Manager), then send it with the group id as a body parameter. WhatsApp turns it into the invite link on delivery:
Approve join requests
Forapproval_required groups, people who tap the link ask to join. You get group.join_requested.
/join-requests/reject works the same way and answers with rejected. Meta answers per request, so a partial failure (for example a full group) is listed in failed with a plain message instead of failing the whole call.
Members
GET /v1/groups/{uuid}/participants lists who is in the group (?include_left=1 adds people who left or were removed; ?refresh=1 re-reads the list from Meta first).
Remove people (they cannot rejoin with the invite link):
Send to the group
UsePOST /v1/messages with the group as the recipient:
- Messages from members arrive as
message.receivedwithdata.message.groupset (uuid,provider_group_id). They belong to the group, not to a 1:1 chat with that person. - Statuses come per member and may be grouped together by Meta.
- Pricing: WhatsApp charges each delivered copy, so a billable message to a group of 5 costs up to 5 messages. When any member messages the group, a customer-service window opens for the whole group.
Pin a message
"action": "unpin" to remove one. Only three messages can be pinned; a fourth unpins the oldest.
Change or delete the group
PATCH /v1/groups/{uuid}withsubjectand/ordescription.POST /v1/groups/{uuid}/photowith a multipartphoto: a square JPEG, at least 192 × 192 pixels, at most 5 MB.DELETE /v1/groups/{uuid}deletes the group for everyone, including you. It showsdeletinguntil Meta confirms (group.deleted).
POST /v1/groups/sync loads groups that exist on the number but not yet in LazyApp, for example ones created before you connected.