# Groups

# Groups API | Developer Documentation

<div id="bkmrk-groups-apiupdated%3A-n">## Groups API

<div><span>Updated: Nov 14, 2025</span></div><div><span></span><div>**Eligibility for Groups API**</div><div>The Groups API is now open to all businesses with an [Official Business Account (OBA)](/books/meta-whatsapp/page/official-business-accounts-developer-documentation)</div></div><div>The Groups API enables you to programmatically create groups for messaging and collaboration.</div><div id="bkmrk-how-it-works"><div id="bkmrk-how-it-works-1"><div>### How it works

</div></div></div><div>Groups are an invite-only experience where participants join using a group invite link you send them. This invite link provides context about the group, helping the user decide whether they want to join.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-hm3mfcul.png)</div><div id="bkmrk-get-started"><div id="bkmrk-get-started-1"><div>### Get Started

</div></div></div><div>When you are ready to start using the Groups API, head on over to our “Get Started” guide for more information:</div><div>[Get Started with Groups API](/books/meta-whatsapp/page/get-started-with-groups-api-developer-documentation)</div><div id="bkmrk-quick-facts"><div id="bkmrk-quick-facts-1"><div>### Quick Facts

</div></div></div>
<span>**Max group participants:** 8</span><span>**Supported message types:** Text, media, text-based templates, and media-based templates</span><span>**Max groups you can create:** 10,000 per business number</span><span>**Max Cloud API businesses per group:** 1</span><div id="bkmrk-analytics"><div id="bkmrk-analytics-1"><div>### Analytics

</div></div></div><div><span></span><div>**Performance metrics are not available for message templates used in Groups.**</div><div>Please create new templates specifically for Groups use instead of repurposing templates used for one-to-one messaging.</div></div><div id="bkmrk-limits"><div id="bkmrk-limits-1"><div>### Limits

</div></div></div><div><span></span><div>**Eligibility for Groups API**</div><div>To qualify for groups features, your business must be an [Official Business Account (OBA)](/books/meta-whatsapp/page/official-business-accounts-developer-documentation)</div></div><div>*Groups are **not available** for [Coexistence users](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation) and phone numbers onboarded to [Multi-solution Conversations](/books/meta-whatsapp/page/how-to-use-multi-solution-conversations-msc-developer-documentation)*.</div><div>*The [Calling API](/books/meta-whatsapp/page/cloud-api-calling-developer-documentation) is not supported in groups.*</div>
<span>**Non-supported message types:**</span>
<span>Calling</span><span>Disappearing messages</span><span>View-once</span><span>Auth</span><span>Commerce messages</span><span>Interactive messages   
</span><span>**Non-supported actions:**</span>
<span>Admin hide group participant list</span><span>Edit message</span><span>Delete message</span><span>Marking message as read</span><div id="bkmrk-pricing"><div id="bkmrk-pricing-1"><div>### Pricing

</div></div></div><div>The Groups API uses [per-message pricing](/books/meta-whatsapp/page/pricing-on-the-whatsapp-business-platform-developer-documentation).</div><div>[Learn more about Groups API pricing here](/books/meta-whatsapp/page/groups-api-pricing-developer-documentation)</div><div id="bkmrk-features-and-referen"><div id="bkmrk-features-and-referen-1"><div>### Features and reference

</div></div></div><div id="bkmrk-group-management-fea"><div id="bkmrk-group-management-fea-1"><div>#### Group management features

</div></div></div>
<span>[Create and delete group](/books/meta-whatsapp/page/groups-api-developer-documentation)</span><span>[Groups with join requests enabled](/books/meta-whatsapp/page/groups-api-developer-documentation)</span><span>[Get and reset group invite link](/books/meta-whatsapp/page/groups-api-developer-documentation)</span><span>[Send group invite link template message](/books/meta-whatsapp/page/groups-api-developer-documentation)</span><span>[Remove group participants](/books/meta-whatsapp/page/groups-api-developer-documentation)</span><span>[Get group info](/books/meta-whatsapp/page/groups-api-developer-documentation)</span><span>[Get active groups](/books/meta-whatsapp/page/groups-api-developer-documentation)</span><span>[Update group settings](/books/meta-whatsapp/page/groups-api-developer-documentation)</span><div>[*View Group Management reference*](/books/meta-whatsapp/page/groups-api-developer-documentation)</div><div id="bkmrk-group-messaging-feat"><div id="bkmrk-group-messaging-feat-1"><div>#### Group messaging features

</div></div></div>
<span>[Send group messages](/books/meta-whatsapp/page/group-messaging-developer-documentation)</span><span>[Receive group messages](/books/meta-whatsapp/page/group-messaging-developer-documentation)</span><span>[Pin and unpin group message](/books/meta-whatsapp/page/group-messaging-developer-documentation)</span><div>[*View Group Messaging reference*](/books/meta-whatsapp/page/group-messaging-developer-documentation)</div></div>

# Get started with Groups API | Developer Documentation

<div id="bkmrk-get-started-with-gro">## Get started with Groups API

<div><span>Updated: Nov 14, 2025</span></div><div><span></span><div>**Eligibility for Groups API**</div><div>To qualify for groups features, your business must be an [Official Business Account (OBA)](/books/meta-whatsapp/page/official-business-accounts-developer-documentation)</div></div><div id="bkmrk-overview"><div id="bkmrk-overview-1"><div>### Overview

</div></div></div><div>Groups on are invite-only, meaning that potential group participants are ultimately in control of wether they want to join the group or not.</div><div>When you create a group, a unique invite link that is generated which you can share to potential group participants. This link includes information about the group, enabling users to make an informed decision about wether or not they want to join the group.</div><div>Once a user joins the group, a webhook is triggered, signaling that you are now eligible to send messages to the group.</div><div>For a complete overview of available features, see the [Groups API Features](/books/meta-whatsapp/page/get-started-with-groups-api-developer-documentation) below.</div><div id="bkmrk-how-to-start-using-g"><div id="bkmrk-how-to-start-using-g-1"><div>### How to start using groups

</div></div></div><div id="bkmrk-prerequisites"><div id="bkmrk-prerequisites-1"><div>#### Prerequisites

</div></div></div><div>Before you get started with the Groups API, ensure that:</div>
<span>Your business number is in use with Cloud API (not the WhatsApp Business app).</span><span>Your webhook server is set up for use with Cloud API.</span><span>Your app is subscribed to the following groups webhook fields: </span>
<span>`group_lifecycle_update`</span><span>`group_participants_update`</span><span>`group_settings_update`</span><span>`group_status_update`</span><span>Your app is subscribed to the WhatsApp Business Account of your business phone number.</span><span>Your app has the `whatsapp_business_messaging` permission for the business number.</span><div id="bkmrk-step-2%3A-create-a-gro"><div id="bkmrk-step-2%3A-create-a-gro-1"><div>#### Step 2: Create a group

</div></div></div><div>Use the [Create Group endpoint](/books/meta-whatsapp/page/groups-api-developer-documentation) to create a group, providing a subject and an optional description. Once a group has been successfully created, a [`group_lifecycle_update` webhook for successful group creation](/books/meta-whatsapp/page/group-messages-webhook-reference-developer-documentation) will be returned. This webhook will include a `invite_link` field with the invite link that you can now share with potential group participants.</div><div id="bkmrk-step-3%3A-invite-whats"><div id="bkmrk-step-3%3A-invite-whats-1"><div>#### Step 3: Invite WhatsApp users to the group

</div></div></div><div id="bkmrk-3.1-add-a-group-invi"><div id="bkmrk-3.1-add-a-group-invi-1"><div>##### 3.1 Add a group invite link template in [Template Library<span>⁠</span>](https://business.facebook.com/wa/manage/template-library) to your account templates:

</div></div></div>
<span>Navigate to [Template Library<span>⁠</span>](https://business.facebook.com/wa/manage/template-library)</span><span>On the left, click the **Group invite link** dropdown, then click the **Group invite upon request** checkbox.</span><span>Select the template you want to use, give it a name, and click **Submit**</span><div id="bkmrk-3.2-send-the-invite-"><div id="bkmrk-3.2-send-the-invite--1"><div>##### 3.2 Send the invite link to potential group participants

</div></div></div><div>Once the template has been approved, use the template to invite members to the group using the invite link provided in the webhook from Step 2.</div><div>You can follow the instructions in the [Send Group Invite Link Template Message reference](/books/meta-whatsapp/page/groups-api-developer-documentation) to send the invite link with the template you just added to your account.</div><div id="bkmrk-3.3-notification-of-"><div id="bkmrk-3.3-notification-of--1"><div>##### 3.3 Notification of when participants join the group

</div></div></div><div>When a participant joins, a [`group_participants_update` webhook for a group participant joining webhook](/books/meta-whatsapp/page/group-messages-webhook-reference-developer-documentation) will be triggered.</div><div id="bkmrk-step-4%3A-send-and-rec"><div id="bkmrk-step-4%3A-send-and-rec-1"><div>#### Step 4: Send and receive messages

</div></div></div><div>You can now use the [Cloud API send message endpoint](/books/meta-whatsapp/page/group-messaging-developer-documentation) to send messages to the group.</div><div>[Sent, delivered, and read status webhooks](/books/meta-whatsapp/page/group-messages-webhook-reference-developer-documentation) will be triggered when there are updates in the group. Replies from participants will also trigger webhooks.</div><div>[Learn more about how to send and receive group messages](/books/meta-whatsapp/page/group-messaging-developer-documentation)</div><div id="bkmrk-features"><div id="bkmrk-features-1"><div>### Features

</div></div></div><div>To learn more about all the features available in groups:</div>
<span>Visit the [Group Management reference](/books/meta-whatsapp/page/groups-api-developer-documentation) to learn more about features available for managing groups.</span><span>Visit the [Group Messaging reference](/books/meta-whatsapp/page/group-messaging-developer-documentation) to understand sending, receiving, and other messaging functions in groups.</span></div>

# Group management | Developer Documentation

<div id="bkmrk-group-managementupda">## Group management

<div><span>Updated: Mar 25, 2026</span></div><div id="bkmrk-overview"><div id="bkmrk-overview-1"><div>### Overview

</div></div></div><div>The Groups API gives you simple functions to control groups through their lifecycle.</div><div>When you create a new group, an invite link is created for inviting participants to the group.</div><div>Since you cannot manually add participants to the group, simply send a message with your invite link to WhatsApp users who you would like to join the group.</div><div id="bkmrk-group-management-fea"><div id="bkmrk-group-management-fea-1"><div>### Group management features

</div></div></div><span>[Create and delete group](#bkmrk-create-group-1)</span><span>[Groups with join requests enabled](#bkmrk-groups-with-join-req-1)</span><span>[Get and reset group invite link](#bkmrk-get-and-reset-group--1)</span><span>[Send group invite link template message](#bkmrk-send-group-invite-li-1)</span><span>[Remove group participants](#bkmrk-remove-group-partici-1)</span><span>[Get group info](#bkmrk-get-group-info-1)</span><span>[Get active groups](#bkmrk-get-active-groups-1)</span><span>[Update group settings](#bkmrk-update-group-setting-1)</span><div>To learn how to message groups, view the [Group Messaging reference](/books/meta-whatsapp/page/group-messaging-developer-documentation).</div><div id="bkmrk-subscribe-to-groups-"><div id="bkmrk-subscribe-to-groups--1"><div>### Subscribe to groups metadata webhooks

</div></div></div><div>In order to receive webhook notifications for metadata about your groups, please subscribe to the following webhook fields:</div><span>`group_lifecycle_update`</span><span>`group_participants_update`</span><span>`group_settings_update`</span><span>`group_status_update`</span><div><div>For a full reference of webhooks for the Groups API, please visit our [Webhooks for Groups API reference](/books/meta-whatsapp/page/group-messages-webhook-reference-developer-documentation).</div></div><div id="bkmrk-groups-with-join-req"><div id="bkmrk-groups-with-join-req-1"><div>### Groups with join requests

</div></div></div><div>You can create groups that require join request approval. Once enabled, WhatsApp users who click the group invitation link can submit a request to join the group, or cancel a prior request:</div><div>When a WhatsApp user joins the group using a join request, a [`group_participants_update` webhook for a user accepting the join request] (/documentation/business-messaging/whatsapp/groups/webhooks#user-accepts-or-cancels-join-request) is triggered. You can also [get a list of open join requests via API](#bkmrk-get-join-requests-1). Use the contents of the webhook or API response to approve or reject requests.</div><div id="bkmrk-approve-join-request"><div id="bkmrk-approve-join-request-1"><div>#### Approve join requests

</div></div></div><div id="bkmrk-request-parameters-6"><div id="bkmrk-request-parameters-7"><div>##### Request parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Sample Value </span></th></tr></thead><tbody><tr><td><div><div>`<GROUP_ID>`</div><div>*String*</div></div></td><td><div><div>**Required.**</div><div>Group ID.</div></div></td><td><div><div>`Y2FwaV9ncm91cDoxNzA1NTU1MDEzOToxMjAzNjM0MDQ2OTQyMzM4MjAZD`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-response-parameters-3"><div id="bkmrk-response-parameters-4"><div>##### Response parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Sample Value </span></th></tr></thead><tbody><tr><td><div><div>`<JOIN_REQUEST_ID>`</div><div>*String*</div></div></td><td><div><div>ID of approved join request, or ID of failed join request, if we were unable to approve.</div></div></td><td><div><div>`MTY0NjcwNDM1OTU6MTIwMzYzNDA0Njk0MjMzODIw`</div></div></td></tr><tr><td><div><div>`<ERROR_CODE>`</div><div>*Integer*</div></div></td><td><div><div>Error code, if unable to approve.</div></div></td><td><div><div>`131203`</div></div></td></tr><tr><td><div><div>`<ERROR_MESSAGE>`</div><div>*String*</div></div></td><td><div><div>Error message, if unable to approve.</div></div></td><td><div><div>`(#131203) Recipient has not accepted our new Terms of Service and Privacy Policy.`</div></div></td></tr><tr><td><div><div>`<ERROR_TITLE>`</div><div>*String*</div></div></td><td><div><div>Error title, if unable to approve.</div></div></td><td><div><div>`Unable to add participant to group`</div></div></td></tr><tr><td><div><div>`<ERROR_DETAILS>`</div><div>*String*</div></div></td><td><div><div>Error details, if unable to approve.</div></div></td><td><div><div>`Recipient has not accepted our new Terms of Service and Privacy Policy.`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-reject-join-requests"><div id="bkmrk-reject-join-requests-1"><div>#### Reject join requests

</div></div></div><div id="bkmrk-request-parameters-9"><div id="bkmrk-request-parameters-10"><div>##### Request parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Sample Value </span></th></tr></thead><tbody><tr><td><div><div>`<GROUP_ID>`</div><div>*String*</div></div></td><td><div><div>**Required.**</div><div>Group ID.</div></div></td><td><div><div>`Y2FwaV9ncm91cDoxNzA1NTU1MDEzOToxMjAzNjM0MDQ2OTQyMzM4MjAZD`</div></div></td></tr><tr><td><div><div>`<JOIN_REQUEST_ID>`</div><div>*String*</div></div></td><td><div><div>**Required.**</div><div>ID of join request to reject.</div></div></td><td><div><div>`MTY0NjcwNDM1OTU6MTIwMzYzNDA0Njk0MjMzODIw`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-response-parameters-6"><div id="bkmrk-response-parameters-7"><div>##### Response parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Sample Value </span></th></tr></thead><tbody><tr><td><div><div>`<JOIN_REQUEST_ID>`</div><div>*String*</div></div></td><td><div><div>ID of rejected join request, or ID of failed join request, if we were unable to reject.</div></div></td><td><div><div>`MTY0NjcwNDM1OTU6MTIwMzYzNDA0Njk0MjMzODIw`</div></div></td></tr><tr><td><div><div>`<ERROR_CODE>`</div><div>*Integer*</div></div></td><td><div><div>Error code, if unable to reject.</div></div></td><td><div><div>`131203`</div></div></td></tr><tr><td><div><div>`<ERROR_MESSAGE>`</div><div>*String*</div></div></td><td><div><div>Error message, if unable to reject.</div></div></td><td><div><div>`(#131203) Recipient has not accepted our new Terms of Service and Privacy Policy.`</div></div></td></tr><tr><td><div><div>`<ERROR_TITLE>`</div><div>*String*</div></div></td><td><div><div>Error title, if unable to reject.</div></div></td><td><div><div>`Unable to add participant to group`</div></div></td></tr><tr><td><div><div>`<ERROR_DETAILS>`</div><div>*String*</div></div></td><td><div><div>Error details, if unable to reject.</div></div></td><td><div><div>`Recipient has not accepted our new Terms of Service and Privacy Policy.`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-delete-group"><div id="bkmrk-delete-group-1"><div>### Delete group

</div></div></div><div id="bkmrk-request-properties"><div id="bkmrk-request-properties-1"><div>#### Request properties

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Sample Value </span></th></tr></thead><tbody><tr><td><div><div>`<GROUP_ID>`</div><div>*String*</div></div></td><td><div><div>**Required**</div><div>  
The ID of the group you want to delete.</div></div></td><td><div><div>`Y2FwaV9ncm91cDoxOTUwNTU1MDA3OToxMjAzNjMzOTQzMjAdOTY0MTUZD`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-group-message-status"><div id="bkmrk-group-message-status-1"><div>### Group message status webhooks

</div></div></div><div>When you send a message to a group, you receive a status **messages** webhook when the message is delivered or read by group participants.</div><div>Status webhooks for individual group participants may be aggregated into a single webhook containing multiple `status` objects in the `statuses` array. However, aggregation is not guaranteed. If multiple participants' statuses are generated at approximately the same time, they may be combined into a single webhook. If statuses are generated at different times, you may receive separate webhooks for each participant.</div><div>Each webhook only ever references a single message sent to a single group and a single status type (for example, `delivered`). Statuses for different messages, groups, or status types are never combined into a single webhook.</div><div id="bkmrk-pricing-information"><div id="bkmrk-pricing-information-1"><div>#### Pricing information

</div></div></div><div>Status **messages** webhooks that contain pricing information will have `<CONVERSATION_CATEGORY>` set to one of:</div><span>`group_marketing` - Indicates a group marketing conversation.</span><span>`group_utility` - Indicates a group utility conversation.</span><span>`group_service` - Indicates a group service conversation.</span></div>

# Group messaging | Developer Documentation

<div id="bkmrk-group-messagingupdat">## Group messaging

<div><span>Updated: Nov 14, 2025</span></div><div id="bkmrk-overview"><div id="bkmrk-overview-1"><div>### Overview

</div></div></div><div>This document provides comprehensive information on the APIs and webhooks available for sending and receiving messages within groups. It details support for various message types, including:</div>
<span>Text messages</span><span>Media messages</span><span>Text-based templates</span><span>Media-based templates</span><div id="bkmrk-subscribe-to-groups-"><div id="bkmrk-subscribe-to-groups--1"><div>### Subscribe to groups metadata webhooks

</div></div></div><div>In order to receive webhook notifications for metadata about your groups, please subscribe to the following webhook fields:</div>
<span>`group_lifecycle_update`</span><span>`group_participants_update`</span><span>`group_settings_update`</span><span>`group_status_update`</span><div><span></span><div>For a full reference of webhooks for the Groups API, please visit our [Webhooks for Groups API reference](/books/meta-whatsapp/page/group-messages-webhook-reference-developer-documentation).</div></div><div id="bkmrk-receive-group-messag"><div id="bkmrk-receive-group-messag-1"><div>### Receive group messages

</div></div></div><div>You can use the following webhooks to receive statuses on messages received in the group.</div><div>The `message` object includes a `group_id` field to indicate this is a group message. The `from` field in the `message` object and the contact object point to the same participant who sends this message.</div><div id="bkmrk-group-message-status"><div id="bkmrk-group-message-status-1"><div>### Group message status webhooks

</div></div></div><div>When you send messages to a group, you will receive a webhook when the message is delivered or read.</div><div>Instead of sending multiple webhooks for each status update, we will send an aggregated webhook.</div><div>This means that if you send a message and are set to receive several `read` or `delivered` statuses, we will send you a single, aggregated webhook that contains multiple `status` objects.</div><div>Each webhook you receive is only ever in reference to a single message sent to a single group and a single status type.</div><div>[Learn more about the Group Message Status webhook](/books/meta-whatsapp/page/group-messages-webhook-reference-developer-documentation)</div></div>

# Webhooks for Groups API | Developer Documentation

<div id="bkmrk-webhooks-for-groups-">## Webhooks for Groups API

<div><span>Updated: Feb 11, 2026</span></div><div>In order to receive webhook notifications for metadata about your groups, please subscribe to the following webhook fields:</div><span>`group_lifecycle_update`</span><span>`group_participants_update`</span><span>`group_settings_update`</span><span>`group_status_update`</span><div id="bkmrk-group_lifecycle_upda"><div id="bkmrk-group_lifecycle_upda-1"><div>### `group_lifecycle_update` webhooks

</div></div></div><div>A `group_lifecycle_update` webhook is triggered when a group is either created or deleted.</div><div id="bkmrk-group-create-succeed"><div id="bkmrk-group-create-succeed-1"><div>#### Group create succeed

</div></div></div><div id="bkmrk-group-create-fail"><div id="bkmrk-group-create-fail-1"><div>#### Group create fail

</div></div></div><div id="bkmrk-delete-group-succeed"><div id="bkmrk-delete-group-succeed-1"><div>#### Delete group succeed

</div></div></div><div id="bkmrk-delete-group-fails"><div id="bkmrk-delete-group-fails-1"><div>#### Delete group fails

</div></div></div><div id="bkmrk-group_participants_u"><div id="bkmrk-group_participants_u-1"><div>### `group_participants_update` webhooks

</div></div></div><div>A `group_participants_update` webhook is triggered when a WhatsApp user joins a group with an invite link, requests to join a group, cancels their request, or when one or more join requests are approved.</div><div id="bkmrk-user-joined-group-us"><div id="bkmrk-user-joined-group-us-1"><div>#### User joined group using invite link succeed

</div></div></div><div id="bkmrk-user-accepts-or-canc"><div id="bkmrk-user-accepts-or-canc-1"><div>#### User accepts or cancels join request

</div></div></div><span>**For join requests:** `GROUP_REQUEST_TYPE` is set to `group_join_request_created`.</span><span>**For cancel requests:** `GROUP_REQUEST_TYPE` is set to `group_join_request_revoked`.</span><div id="bkmrk-group-participant-re"><div id="bkmrk-group-participant-re-1"><div>#### Group participant remove succeed

</div></div></div><div id="bkmrk-group-participant-re-3"><div id="bkmrk-group-participant-re-4"><div>#### Group participant remove with participants partially fails

</div></div></div><div id="bkmrk-group-participant-re-6"><div id="bkmrk-group-participant-re-7"><div>#### Group participant remove fails

</div></div></div><div id="bkmrk-group-participant-le"><div id="bkmrk-group-participant-le-1"><div>#### Group participant leaves webhook

</div></div></div><div>This webhook is sent when a group participant leaves the group. The `initiated_by` field and only the `wa_id` in the `removed_participants` list will point to the participant who left the group.</div><div id="bkmrk-group_settings_updat"><div id="bkmrk-group_settings_updat-1"><div>### `group_settings_update` webhooks

</div></div></div><div id="bkmrk-group-settings-updat"><div id="bkmrk-group-settings-updat-1"><div>#### Group settings update succeed

</div></div></div><div id="bkmrk-group-settings-updat-3"><div id="bkmrk-group-settings-updat-4"><div>#### Group settings update partial fail

</div></div></div><div id="bkmrk-group-settings-updat-6"><div id="bkmrk-group-settings-updat-7"><div>#### Group settings update total fail

</div></div></div><div id="bkmrk-group_status_update-"><div id="bkmrk-group_status_update--1"><div>### `group_status_update` webhooks

</div></div></div><div>WhatsApp uses advanced machine learning technology to evaluate group information including group subjects, profile photos, and group descriptions. We also provide simple options for users to make reports to us from any chat.</div><div>We may prevent further activity in chat groups to comply with our legal obligations. We may also prevent further chat activity when a group admin is in violation of our [Terms of Service<span>?</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.whatsapp.com%2Flegal%2Fterms-of-service&h=AT4BhNTA02QxnzNWjNYpK9p8jkgEN46tOTpiHDJN4M8lRopGlFDdLblJu1Pt0-Dbo9XXmlpxceMWD5CsznaZ6B2RWcczcam1C9B-SaXB_JkABwbsYV1lWEU9W7q0yq64rBbgtY-ozMOb4gxK-KdYdA).</div><div>You may receive a webhook if a group you manage is suspended. You may also receive a webhook if a suspended group you manage becomes clear of suspensions.</div><div id="bkmrk-group-suspended"><div id="bkmrk-group-suspended-1"><div>#### Group suspended

</div></div></div><div id="bkmrk-group-suspension-cle"><div id="bkmrk-group-suspension-cle-1"><div>#### Group suspension cleared

</div></div></div><div id="bkmrk-group-message-status"><div id="bkmrk-group-message-status-1"><div>### Group Message Status Webhooks

</div></div></div><div>When you send messages to a group, you will receive a status webhook when the message is sent, delivered, and read. Instead of sending multiple webhooks for each status update, we may send an aggregated webhook.</div><div>There are two types of aggregated message status webhooks you can receive.</div><div id="bkmrk-multiple-participant"><div id="bkmrk-multiple-participant-1"><div>#### Multiple Participants, Single Message

</div></div></div><div>If you send a message and are set to receive several `read` or `delivered` statuses from participants, we will send you a single, aggregated webhook that contains multiple `status` objects.</div><div>Each webhook you receive will be in reference to a single message sent to a single group and a single status type, i.e single group, single status by multiple participants for a single message.</div><div>**Aggregated group message status**</div><div id="bkmrk-multiple-messages%2C-s"><div id="bkmrk-multiple-messages%2C-s-1"><div>#### Multiple Messages, Single Participant

</div></div></div><div>If you send multiple messages to a group and are set to receive several 'read' or `delivered` statuses from a single participant, we may send you a single, aggregated webhook that contains multiple `status` objects.</div><div>Each webhook you receive will be in reference to multiple messages sent to a single group and a single status type, i.e single group, single status by single participant for multiple messages.</div><div>**Aggregated group message status**</div><div id="bkmrk-group-message-delive"><div id="bkmrk-group-message-delive-1"><div>#### Group message delivered

</div></div></div><div id="bkmrk-pricing-information"><div id="bkmrk-pricing-information-1"><div>#### Pricing information

</div></div></div><div>Status messages webhooks that contain pricing information will have:</div><span>`CONVERSATION_CATEGORY` set to one of: </span><span>`group_marketing` - Indicates a marketing conversation.</span><span>`group_utility` - Indicates a utility conversation.</span><span>`group_service` - Indicates a service conversation.</span><span>`IS_BILLABLE` set to one of: </span><span>`true` - Indicates a billable conversation.</span><span>`false` - Indicates a non-billable conversation.</span><span>`PRICING_MODEL` set to `PMP`.</span><div>[Learn more about Groups API pricing](/books/meta-whatsapp/page/groups-api-pricing-developer-documentation)</div><div id="bkmrk-group-message-read-%28"><div id="bkmrk-group-message-read-%28-1"><div>##### Group message read (*With pricing*)

</div></div></div><div id="bkmrk-group-message-read-%28-3"><div id="bkmrk-group-message-read-%28-4"><div>##### Group message read (*Without pricing*)

</div></div></div></div>

# Groups API Error Codes and Troubleshooting | Developer Documentation

<div id="bkmrk-groups-api-error-cod">## Groups API Error Codes and Troubleshooting

<div><span>Updated: Oct 31, 2025</span></div><div id="bkmrk-error-codes"><div id="bkmrk-error-codes-1"><div>### Error Codes

</div></div></div><div><table><thead><tr><th><span>Code </span></th><th><span>Description </span></th><th><span>HTTP Status Code </span></th></tr></thead><tbody><tr><td><div><div>`131020`</div><div>Bad Group</div></div></td><td><div><div>Cannot send messages to single member groups.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131041`</div><div>Group unknown</div></div></td><td><div><div>The group was not found, either because it doesn’t exist or you are not a member.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131059`</div><div>Invalid cursor</div></div></td><td><div><div>The cursor has either expired or become corrupted. Start pagination from the beginning again.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131201`</div><div>Request partially succeeded</div></div></td><td><div><div>Not all participant-level operations in the request succeeded.</div></div></td><td><div><div>`206`</div><div>Partial Content Success</div></div></td></tr><tr><td><div><div>`131202`</div><div>Duplicate participant</div></div></td><td><div><div>Duplicate participants in the participant array input.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131204`</div><div>Participant overlimit</div></div></td><td><div><div>Group participant size exceeds limit.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131207`</div><div>Group suspended</div></div></td><td><div><div>The group violates platform policies.</div></div></td><td><div><div>`403`</div><div>Forbidden</div></div></td></tr><tr><td><div><div>`131208`</div><div>Group Rate Limit Hit</div></div></td><td><div><div>Group operation failed because there were too many group operations from this phone number in a short period.</div></div></td><td><div><div>`429`</div><div>Too many requests</div></div></td></tr><tr><td><div><div>`131209`</div><div>Invalid Group Profile Picture Aspect Ratio</div></div></td><td><div><div>Width and height of the image must be equal.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131210`</div><div>Image is Too Small to Process</div></div></td><td><div><div>Image width and height must be greater than 192px.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131211`</div><div>Group create limit reached</div></div></td><td><div><div>Reached the limit for the maximum number of groups that can be created for this number.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131212`</div><div>Participant is not a part of the group.</div></div></td><td><div><div>Participant is not a part of the group.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131213`</div><div>Group join request does not exist.</div></div></td><td><div><div>Group join request does not exist.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131214`</div><div>Group creation is temporarily disabled</div></div></td><td><div><div>Group creation is temporarily disabled due to excessive marketing messages sent by the WABA in customer service window over the past 7 days.</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr><tr><td><div><div>`131215`</div><div>This phone number is not eligible to access Groups APIs</div></div></td><td><div><div>Groups APIs are only available for eligible phone numbers. Please check eligibility for Groups APIs in our documentation - /documentation/business-messaging/whatsapp/groups/get-started</div></div></td><td><div><div>`400`</div><div>Bad Request</div></div></td></tr></tbody></table>

</div></div>

# Groups API Pricing | Developer Documentation

<div id="bkmrk-groups-api-pricingup">## Groups API Pricing

<div><span>Updated: Oct 22, 2025</span></div><div id="bkmrk-per-message-pricing-"><div id="bkmrk-per-message-pricing--1"><div>### Per-message pricing on Groups API

</div></div></div><div>Groups API uses Cloud API's [per-message pricing model](/books/meta-whatsapp/page/pricing-on-the-whatsapp-business-platform-developer-documentation) to determine if a given message is billable. However, **you are charged each time a billable message is delivered to someone in the group.**</div><div>For example, if you send a (billable) marketing template message to a group with 5 WhatsApp users and it is delivered to all 5 users, you would be charged for 5 delivered messages at the going marketing message rate for each recipient's country calling code.</div><div>If the message was delivered to only 4 of the 5 users, you would only be charged for the 4 delivered messages.</div><div id="bkmrk-how-customer-service"><div id="bkmrk-how-customer-service-1"><div>### How customer service windows work with Groups API

</div></div></div><div>Customer service windows work differently when using Groups API.</div><div>When any WhatsApp user in the group messages you, a [customer service window](/books/meta-whatsapp/page/sending-messages-developer-documentation) is opened between you and the entire group (or is refreshed, if one already exists). This allows you to send utility and marketing template messages, or free form messages, for free.</div><div>This is different from 1:1 messaging, where when a WhatsApp user messages you, a [customer service window](/books/meta-whatsapp/page/sending-messages-developer-documentation) is opened between you and that customer (or is refreshed, if one already exists).</div><div>Everything else about [customer service windows](/books/meta-whatsapp/page/sending-messages-developer-documentation) remains the same.</div><div id="bkmrk-pricing-information-"><div id="bkmrk-pricing-information--1"><div>### Pricing information in Message Status webhook

</div></div></div><div>Pricing information for messages sent using Groups API is included in [messages status webhooks](/books/meta-whatsapp/page/group-messages-webhook-reference-developer-documentation).</div><div id="bkmrk-how-read-and-deliver"><div id="bkmrk-how-read-and-deliver-1"><div>#### How `read` and `delivered` message status webhooks are processed

</div></div></div><div>In order for a message status to be considered `read`, it must have been at least `delivered`.</div><div>In some scenarios, such as when a user is present in the chat thread when a message arrives, the message is marked `delivered` and `read` nearly simultaneously. In this and other similar scenarios, the `delivered` webhook is not sent back. This is because it is implied that the message was delivered since it has been read.</div><div id="bkmrk-how-pricing-data-is-"><div id="bkmrk-how-pricing-data-is--1"><div>#### How pricing data is displayed in the Message Status webhook

</div></div></div><div>Not all Message Status webhooks include pricing information.</div><div>With the introduction of [Per-message Pricing](/books/meta-whatsapp/page/pricing-on-the-whatsapp-business-platform-developer-documentation), pricing data can be present in `sent`, `delivered` or `read` status webhook. If a message is **charged**, you can expect that at least one webhook (`delivered` or `read`) will contain the pricing information.</div><div id="bkmrk-sent-message-status-"><div id="bkmrk-sent-message-status--1"><div>#### Sent message status webhook

</div></div></div><div></div><div id="bkmrk-delivered-%2F-read-mes"><div id="bkmrk-delivered-%2F-read-mes-1"><div>#### Delivered / Read message status webhook

</div></div></div><div></div><div id="bkmrk-parameters"><div id="bkmrk-parameters-1"><div>#### Parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th></tr></thead><tbody><tr><td><div><div>`<CONVERSATION_ID>`</div></div></td><td><div><div>Version 24.0 and higher:</div>
<span>The `conversation` object will be omitted entirely</span><div>Version 23.0 and lower:</div>
<span>Value will now be set to a unique ID per-message, instead of per-conversation.</span></div></td></tr><tr><td><div><div>`<CONVERSATION_CATEGORY>`</div></div></td><td><div><div>Not changing.</div></div></td></tr><tr><td><div><div>`<CONVERSATION_EXPIRATION_TIMESTAMP>`</div></div></td><td><div><div>Not changing.</div></div></td></tr><tr><td><div><div>`<IS_BILLABLE?>`</div></div></td><td><div><div>Not changing.</div><div>However, the `billable` property will be deprecated in a future [versioned release](https://developers.facebook.com/docs/graph-api/guides/versioning#calling_older_versions), so we recommend that you start using `pricing.type` and `pricing.category` together to determine if a message is billable, and if so, its [billing rate](#bkmrk-identifying-billable-1).</div></div></td></tr><tr><td><div><div>`<PRICING_TYPE>`</div></div></td><td><div><div>New property. Values can be:</div>
<span>`regular` - indicates the message is billable.</span><span>`free_group_customer_service` - indicates the message is free because it was either a utility template message or non-template message sent within a [customer service window](/books/meta-whatsapp/page/sending-messages-developer-documentation).</span></div></td></tr><tr><td><div><div>`<PRICING_CATEGORY>`</div></div></td><td><div><div>Values are not changing, but can now be interpreted as follows:</div>
<span>`group_marketing` - indicates a marketing template message.</span><span>`group_utility` - indicates a utility template message.</span><span>`group_service` - indicates a non-template message.</span></div></td></tr></tbody></table>

</div><div id="bkmrk-identifying-billable"><div id="bkmrk-identifying-billable-1"><div>#### Identifying billable messages

</div></div></div><div>Billable messages have `pricing.type` set to regular. The `pricing.category` value indicates the rate (`group_marketing` or `group_utility`).</div><div id="bkmrk-identifying-free-mes"><div id="bkmrk-identifying-free-mes-1"><div>#### Identifying free messages

</div></div></div><div>Free messages have `pricing.type` set to `free_group_customer_service`. The `pricing.category` value tells you why it was free:</div>
<span>`group_utility` - the message was sent within an open group customer service window.</span><span>`group_service` - all non-templates messages are free.</span><div id="bkmrk-messaging-analytics-"><div id="bkmrk-messaging-analytics--1"><div>### Messaging analytics for Groups API

</div></div></div><div>The `analytics` field provides the number and type of messages sent and delivered by the phone numbers associated with a specific WABA - for conversation metrics, see Conversation Analytics.</div><div>You can use the following endpoint to retrieve analytics for messages sent using Groups API:</div><div>```
/<WHATSAPP_BUSINESS_ACCOUNT_ID>?fields=analytics.<FILTER_PARAMETER>.<FILTER_PARAMETER>...

```

</div><div id="bkmrk-filter-parameters-fo"><div id="bkmrk-filter-parameters-fo-1"><div>#### Filter parameters for messaging analytics

</div></div></div><div>For a full list of messaging analytics filter parameters, view the [Messaging Analytics reference](/books/meta-whatsapp/page/analytics-developer-documentation).</div><div id="bkmrk-changes-to-filter-pa"><div id="bkmrk-changes-to-filter-pa-1"><div>#### Changes to filter parameters for Groups API

</div></div></div><div><table><thead><tr><th><span>Name </span></th><th><span>Description </span></th></tr></thead><tbody><tr><td><div><div>`product_types`</div><div>type: Array</div></div></td><td><div><div>*Optional.*</div><div>The types of messages (notification messages and/or customer support messages) for which you want to retrieve notifications.</div><div>Provide an array and include:</div>
<span>`101` for group notification messages</span><span>`102` for group customer support messages.</span><span>`103` for inbound group messages</span><div>If the above values are not provided, the API call will be return analytics for all messages together.</div><div>Inbound product type cannot be queried together with other product types, or you will see an error similar to the one below:</div><div></div></div></td></tr></tbody></table>

</div><div id="bkmrk-response-value"><div id="bkmrk-response-value-1"><div>#### Response value

</div></div></div><div>Successful responses to the analytics API when querying Groups API message data will return an object similar to the following:</div><div>**Note: The country code filter is not supported for group sent messages.**</div><div></div><div id="bkmrk-pricing-analytics-fo"><div id="bkmrk-pricing-analytics-fo-1"><div>### Pricing analytics for Groups API

</div></div></div><div>The `pricing_analytics` field allows you to get pricing breakdowns for any messages delivered within a specified date range.</div><div>```
GET /<WABA_ID>
?fields=pricing_analytics
.start(<START>)
.end(<END>)
.granularity(<GRANULARITY>)
.phone_numbers(<PHONE_NUMBERS>)
.country_codes(<COUNTRY_CODES>)
.metric_types(<METRIC_TYPES>)
.pricing_types(<PRICING_TYPES>)
.pricing_categories(<PRICING_CATEGORIES>)
.dimensions(<DIMENSIONS>)

```

</div><div id="bkmrk-filter-parameters-fo-3"><div id="bkmrk-filter-parameters-fo-4"><div>#### Filter parameters for pricing analytics

</div></div></div><div>For a full list of messaging analytics filter parameters, view the [Messaging Analytics reference](/books/meta-whatsapp/page/analytics-developer-documentation).</div><div id="bkmrk-changes-to-filter-pa-3"><div id="bkmrk-changes-to-filter-pa-4"><div>#### Changes to filter parameters for Groups API

</div></div></div><div><table><thead><tr><th><span>Name </span></th><th><span>Description </span></th></tr></thead><tbody><tr><td><div><div>`<PRICING_CATEGORIES>`</div><div>*Array of strings*</div></div></td><td><div><div>*Optional.*</div><div>Array of pricing categories. If you send an empty array, we return results for all pricing categories.</div><div>Values can be:</div>
<span>`GROUP_MARKETING`: Group messages charged the marketing rate.</span><span>`GROUP_SERVICE`: Group messages that were not charged. Includes all non-template messages and utility messages sent inside of a customer service window.</span><span>`GROUP_UTILITY`: Group messages charged the utility rate.</span></div></td></tr><tr><td><div><div>`<PRICING_TYPES>`</div><div>*Array of strings*</div></div></td><td><div><div>*Optional.*</div><div>Array of pricing types. If you send an empty array, we return results for all pricing types.</div><div>Values can be:</div>
<span>`FREE_GROUP_CUSTOMER_SERVICE`: Free group messages. These are non-template messages and utility messages sent within group customer service windows.</span><span>`REGULAR`: Billable messages. Includes all authentication and marketing template messages, and any utility template messages sent outside of a customer service window.</span></div></td></tr></tbody></table>

</div><div id="bkmrk-rate-cards"><div id="bkmrk-rate-cards-1"><div>### Rate cards

</div></div></div><div><span></span><div>Group utility messages are not eligible for volume tiers.</div></div><div>Messaging rates for Groups API are the same as per-messaging pricing rates for 1 to 1 messaging.</div><div>[View per-message pricing rate cards](/books/meta-whatsapp/page/pricing-on-the-whatsapp-business-platform-developer-documentation)</div></div>

# Groups API FAQ | Developer Documentation

<div id="bkmrk-groups-api-faqupdate">## Groups API FAQ

<div><span>Updated: Oct 22, 2025</span></div><div id="bkmrk-what-happens-when-i-"><div id="bkmrk-what-happens-when-i--1"><div>#### What happens when I delete a group?

</div></div></div>
<span>No members, including you, will be able to message the group.</span><span>If any messages or statuses were received by Cloud API before the group was deleted, you may still receive webhooks for those.</span><div id="bkmrk-why-can%E2%80%99t-a-particip"><div id="bkmrk-why-can%E2%80%99t-a-particip-1"><div>#### Why can’t a participant join the group using my invite link?

</div></div></div><div>Some possible reasons include:</div>
<span>The invite link may have been deleted.</span><span>You may have removed the participant from the group previously.</span><span>The group may already be full.</span><div id="bkmrk-how-can-i-send-my-in"><div id="bkmrk-how-can-i-send-my-in-1"><div>#### How can I send my invite link to users?

</div></div></div>
<span>You can send the invite link over a 1:1 conversation.</span><span>A new utility template is available in the [Template Library<span>⁠</span>](https://business.facebook.com/wa/manage/template-library) to [send group invite links](/books/meta-whatsapp/page/groups-api-developer-documentation).</span><span>You may also create custom, free-form marketing templates.</span><div id="bkmrk-what-countries-is-gr"><div id="bkmrk-what-countries-is-gr-1"><div>#### What countries is Groups available in?

</div></div></div>
<span>Groups is available in [all countries Cloud API is available in](/books/meta-whatsapp/page/faqs-developer-documentation).</span></div>