Skip to main content
A WhatsApp group here is a real group chat your business number runs: up to 8 people besides you, who join by tapping an invite link. Useful for a project with a customer’s family, a class, or a small VIP club. It is not a contact segment for broadcasts. You cannot add people yourself. You share an invite link; people choose to join.

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:
This reads Meta’s 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:
You can also paste the link into a 1:1 chat while the 24-hour window is open.

Approve join requests

For approval_required groups, people who tap the link ask to join. You get group.join_requested.
Approve or reject one or many:
/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

Use POST /v1/messages with the group as the recipient:
  • Messages from members arrive as message.received with data.message.group set (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

Pins last 1 to 30 days; send "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} with subject and/or description.
  • POST /v1/groups/{uuid}/photo with a multipart photo: a square JPEG, at least 192 × 192 pixels, at most 5 MB.
  • DELETE /v1/groups/{uuid} deletes the group for everyone, including you. It shows deleting until 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.

Webhooks

Errors in plain words

In the console

Groups lists your groups with their status and members. Open one to chat with the group, approve join requests, remove people, copy or reset the invite link, rename it, change its photo, pin messages and delete it.