Group Webhook events
This section covers event callbacks related to Group. To receive notifications of group metadata changes, enable the following fields in your WebHook subscription (each corresponds to the event types in the subsections below):group_lifecycle_update(group creation / deletion);group_participants_update(group member changes: join via invite link / request to join / cancel request / join request approved / removed / leave voluntarily);group_settings_update(group settings: topic / description / profile picture update);group_status_update(group suspended / suspension cleared). The events in this section all use the InnoPaas public envelope (id、type、eventTime、body) and the 5 InnoPaas event types in this section:whatsapp_group_lifecycle_update、whatsapp_group_participants_update、whatsapp_group_settings_update、whatsapp_group_status_update、whatsapp_group_message_status_updated。
The public fields below apply to all events in this section (consistent with the common parameters above; only fields unique to group events or easily confused are listed here):
Field
Data type
Required
Description
group_id
String
Yes
Group ID, the group_id returned by the Groups API
type
String
Yes
Sub-event type, see each subsection
timestamp
String
Yes
Event trigger time, UTC format yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
request_id
String
No
Request ID, used for troubleshooting and correlating API calls
Group lifecycle (whatsapp_group_lifecycle_update)
This event is triggered when a group is created or deleted:whatsapp_group_lifecycle_update, corresponding subscription field group_lifecycle_update。type The fields distinguish sub-events:group_create(success / failure),group_delete(success / failure).
Field
Data type
Required
Description
group_id
String
Yes
Group ID
type
String
Yes
Sub-event type, possible values:group_create、group_delete
subject
String
No
Group topic;returned when type=group_createis returned;returned when type=group_createTopic used on failure
invite_link
String
No
Group invite link,returned when type=group_createand returned on success
join_approval_mode
String
No
Group join approval mode:auto_approve(no approval required) /approval_required(approval required),returned when type=group_createand returned on success
request_id
String
No
Request ID
timestamp
String
Yes
Event trigger time
errors
Array
No
Error array returned on failure (structure same as the errors in the upstream message)
group_create success: Response example
group_create failed: Response example
group_delete failed: Response example
group_delete succeeded JSON payload example: data to be added (the successful create/delete payloads are missing key fields for verification; they will be completed after alignment with upstream; see above for the successful create payload).
Group participant changes (whatsapp_group_participants_update)
This event is triggered when group members undergo the following changes:whatsapp_group_participants_update, corresponding subscription field group_participants_updateCommon sub-events: users join the group via invite link (reason=invite_link); users submit a join request (reason=join_request,group_request_type=group_join_request_created); users revoke a join request (group_request_type=group_join_request_revoked); one or more join requests approved (reason=invite_link,type=group_participants_add,added_participants[]); remove group members:type=group_participants_remove, may partially succeed / fully succeed / fully fail; group members leave voluntarily:initiated_by and removed_participants[].wa_id point to the departing member.
Field
Data type
Required
Description
group_id
String
Yes
Group ID
type
String
Yes
Sub-event type, possible values:group_participants_add、group_participants_removeetc.
reason
String
No
Trigger reason, for exampleinvite_link(join via invite link / join request approved)
group_request_type
String
No
Join request type:group_join_request_created(requested),group_join_request_revoked(revoked)
added_participants
Array
No
List of added members, each item{"input": "phone_or_id", "wa_id": "WHATSAPP_USER_ID"}
removed_participants
Array
No
List of removed members, each item{"input": "phone_or_id", "wa_id": "WHATSAPP_USER_ID"}; when leaving voluntarilyinitiated_byand thewa_idboth point to the departing member
initiated_by
String
No
WhatsApp user ID that initiated this change (removal / leave scenario)
request_id
String
No
Request ID
timestamp
String
Yes
Event trigger time
errors
Array
No
Error array returned on failure
Join request approved (bulk multiple members): Response example
JSON payload example for other sub-events (users joining via invite link, join/cancel request, member removal success / partial failure / failure, member leaving voluntarily): data to be added (type The values and field order follow the mirrored source documentation; the complete JSON will be added after alignment with upstream; the trigger conditions and field definitions are based on the table above).
Group settings update (whatsapp_group_settings_update)
This event is triggered when group settings (topic / description / profile picture) are updated:whatsapp_group_settings_update, corresponding subscription field group_settings_update。update_successful This field indicates whether this update was successful; on failure it is accompanied by the errors array. The overall update may succeed / partially fail / completely fail.
Field
Data type
Required
Description
group_id
String
Yes
Group ID
type
String
Yes
Fixed value:group_settings_update
profile_picture
Object
No
Profile picture update result:mime_type(e.g. image/jpeg),sha256(returned on success),update_successful(Boolean),errors(returned only on failure)
group_subject
Object
No
Topic update result:text、update_successful(Boolean),errors(returned only on failure)
group_description
Object
No
Description update result:text、update_successful(Boolean),errors(returned only on failure)
request_id
String
No
Request ID
timestamp
String
Yes
Event trigger time
errors
Array
No
Top-level error array returned when the update overall fails / partially fails
All successful: Response example
Partial failure: Response example
Complete failure: Response example
Group status changes (whatsapp_group_status_update)
This event is triggered when a group you manage is suspended or unsuspended:whatsapp_group_status_update, corresponding subscription field group_status_update。type The fields distinguish sub-events:group_suspend(suspended),group_suspend_cleared(suspension cleared).
Field
Data type
Required
Description
group_id
String
Yes
Group ID
type
String
Yes
Sub-event type, possible values:group_suspend、group_suspend_cleared
timestamp
String
Yes
Event trigger time
group_suspend: Response example
group_suspend_cleared: Response example
Group message status (whatsapp_group_message_status_updated)
When sending a group message, this event is triggered according to the message lifecycle (sent / send failed / delivered / read):whatsapp_group_message_status_updated, corresponding to whatsapp_message_status_updated under the event recipient_type=group subset. This event is also used foraggregationreceipts: receipts of the same message and same status type within a close time window are merged; each receipt only relates tosingle message + single group + single status type. Billing categories are group_marketing / group_utility / group_service,PRICING_MODEL is PMP,IS_BILLABLE indicates whether it is billable.
Note: inbound receipts for receiving group user messages still go through whatsapp_mo_message_received, only in message object does it additionally carry the group_id field, and from points to the sending participant.
Field
Data type
Required
Description
id
String
Yes
Message Id
accountName
String
Yes
API account
wabaId
String
Yes
Waba Id
wamid
String
Yes
Group message ID
status
String
Yes
Sending status:sent、failed、delivered、read
recipient_id
String
Yes
Group ID (distinguished from one-to-one receiptssendPhone)
recipient_type
String
Yes
Fixed value:group
recipient_participant_id
String
No
The WhatsApp number of the group member corresponding to a single receipt (when aggregated, the same receipt may include multiple members; see the note in the field table for recipient_participant_ids)
conversation
JSON
No
Conversation info, present when status=delivered; includesid、initiateType、expireAt
errorData
JSON
No
Error info, present when status=failed; includeserrorCode、errorMessage
billable
Boolean
Yes
Whether billable: true / false
category
String
Yes
Group message type:group_marketing、group_utility、group_service
price
String
Yes
Unit price, keep 5 decimal places
currency
String
Yes
Currency
pricing_model
String
No
Fixed value:PMP
is_billable
Boolean
No
Whether billable (synonymous withbillableand the naming follows the upstream field)
conversation_category
String
No
Billing category (withcategoryand the naming follows the upstream field)
uid
String
No
customer batch number
sent: Response example
failed: Response example
JSON payload example for aggregated delivered / read receipts for group messages: data to be added (statuses[] array, billing category group_marketing / group_utility / group_service、PRICING_MODEL=PMP、IS_BILLABLE etc. The field arrangement follows the mirrored source documentation; the aggregation rules for multiple participants for one message or multiple messages for one participant are described in the table; the complete JSON will be added after alignment with upstream).
Receiving group user message (inbound): Response example
Receiving unsupported group message (inbound): Response example
最后更新于