






| Existing feature on the WhatsApp Business App | Changes to features on the WhatsApp Business App AFTER onboarding to Cloud API | Is the WhatsApp Business app feature supported on Cloud API? |
|---|---|---|
Individual (1:1) chats | Message Edit/Revoke is now supported. | Supported. All chat messages in the most recent 6 months can be synchronized. Messages sent and received are mirrored between the Cloud API and WhatsApp Business app. |
Contacts | No change. | Supported. All contacts with a WhatsApp number can be synchronized. |
Group chats | No change. | Not supported. Group chats will not be synchronized. |
Disappearing messages | Disappearing messages will be turned off for all individual (1:1) chats | Not supported. |
View once messages will be disabled for all individual (1:1) chats | Not supported. | |
Live location message | Live location messages will be disabled for all individual (1:1) chats | Not supported. |
Broadcast lists | Broadcast list will be disabled. Business will not be able to create new Broadcast Lists. Existing Broadcast Lists will become read-only. | Not supported. |
Voice and video calls | No change. | Not supported. |
Business tools (eg. catalog, orders, status) | No change. | Not supported. |
Messaging tools (e.g., marketing messages, greeting message, away message, quick replies, labels) | No change. | Not supported. |
Business profile (eg. business name, address, website) | No change. | Not supported. |
Channels | No change. | Not supported. |
featureType property set to whatsapp_business_app_onboarding to the extras object in the launch method and callback registration portion of the Embedded Signup implementation code.// Launch method and callback registration { "config_id": "<CONFIGURATION_ID>", "response_type": "code", "override_default_response_type": true, "extras": { setup: {}, "featureType": "whatsapp_business_app_onboarding", // set to 'whatsapp_business_app_onboarding' "sessionInfoVersion": "3" } }


event set to FINISH_WHATSAPP_BUSINESS_APP_ONBOARDING:{ data: { waba_id: "<CUSTOMER_WABA_ID>" }, type: "WA_EMBEDDED_SIGNUP", event: "FINISH_WHATSAPP_BUSINESS_APP_ONBOARDING", version: 3 }
is_on_biz_app and platform_type fields on the business phone number ID:curl 'https://graph.facebook.com/v25.0/106540352242922?fields=is_on_biz_app,platform_type' \
-H 'Authorization: Bearer EAAJB...'
is_on_biz_app is true and platform_type is CLOUD_API, the business phone number is able to use Cloud API and the WhatsApp Business app:{ "is_on_biz_app": true, "platform_type": "CLOUD_API", "id": "106540352242922" }
curl -X POST \ 'https://graph.facebook.com/<API_VERSION>/<BUSINESS_PHONE_NUMBER_ID>/smb_app_data \ -H 'Authorization: <ACCESS_TOKEN>' \ -H 'Content-Type: application/json' \ -d ' { "messaging_product": "whatsapp", "sync_type": "smb_app_state_sync" }'
{ "messaging_product": "whatsapp", "request_id" : "<REQUEST_ID>" }
request_id value in case you need to contact support.2593109 will be triggered instead.curl -X POST \ 'https://graph.facebook.com/<API_VERSION>/<BUSINESS_PHONE_NUMBER_ID>/smb_app_data \ -H 'Authorization: <ACCESS_TOKEN>' \ -H 'Content-Type: application/json' \ -d ' { "messaging_product": "whatsapp", "sync_type": "history" }'
{ "messaging_product": "whatsapp", "request_id" : "<REQUEST_ID>" }
request_id value in case you need to contact support.PARTNER_REMOVED event is triggered.131060. One possible reason for this is a WhatsApp user with an unsupported companion device sends or receives a message to or from the business. If you receive this webhook, instruct the business to check the WhatsApp Business app for the message.{ "object": "whatsapp_business_account", "entry": [ { "id": "<WABA_ID>", "time": <WEBHOOK_TIMESTAMP>, "changes": [ { "value": { "phone_number": "<BUSINESS_PHONE_NUMBER>", "event": "<EVENT>", }, "field": "account_update" } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "time": 1739212624, "changes": [ { "value": { "phone_number": "15550783881", "event": "PARTNER_REMOVED", }, "field": "account_update" } ] } ] }
{ "entry": [ { "id": "<WABA_ID>", "time": "<WEBHOOK_TIMESTAMP>", "changes": [ { "value": { "event": "ACCOUNT_OFFBOARDED" }, "field": "account_update" } ] } ], "object": "whatsapp_business_account" }
{ "entry": [ { "id": "862475293675413", "time": 1768477204, "changes": [ { "value": { "event": "ACCOUNT_OFFBOARDED" }, "field": "account_update" } ] } ], "object": "whatsapp_business_account" }
{ "entry": [ { "id": "<WABA_ID>", "time": "<WEBHOOK_TIMESTAMP>", "changes": [ { "value": { "event": "ACCOUNT_RECONNECTED" }, "field": "account_update" } ] } ], "object": "whatsapp_business_account" }
{ "entry": [ { "id": "862475293675413", "time": 1768477203, "changes": [ { "value": { "event": "ACCOUNT_RECONNECTED" }, "field": "account_update" } ] } ], "object": "whatsapp_business_account" }
{ "object": "whatsapp_business_account", "entry": [ { "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "<BUSINESS_DISPLAY_PHONE_NUMBER>", "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>" }, "contacts": [ { "profile": { "name": "<WHATSAPP_USER_PROFILE_NAME>" }, "wa_id": "<WHATSAPP_USER_ID>" } ], "messages": [ { "from": "<WHATSAPP_USER_PHONE_NUMBER>", "id": "<WHATSAPP_MESSAGE_ID>", "timestamp": "<WEBHOOK_TRIGGER_TIMESTAMP>", "type": "edit", "edit": { "original_message_id": "<ORIGINAL_WHATSAPP_MESSAGE_ID>", "message": { "context": { "id": "<CONTEXT_ID>" }, "type": "image", "image": { "caption": "<MEDIA_ASSET_CAPTION>", "mime_type": "<MEDIA_ASSET_MIME_TYPE>", "sha256": "<MEDIA_ASSET_SHA256_HASH>", "id": "<MEDIA_ASSET_ID>", "url": "<MEDIA_ASSET_URL>" } } } } ] }, "field": "messages" } ] } ] }
| Placeholder | Description | Example value |
|---|---|---|
<BUSINESS_DISPLAY_PHONE_NUMBER> | Business display phone number. | 15550783881 |
<BUSINESS_PHONE_NUMBER_ID> | Business phone number ID. | 106540352242922 |
<WHATSAPP_USER_PROFILE_NAME> | WhatsApp user’s profile name. | Sheena Nelson |
<WHATSAPP_USER_ID> | WhatsApp user ID. | 16505551234 |
<WHATSAPP_USER_PHONE_NUMBER> | WhatsApp user phone number. | 16505551234 |
<WHATSAPP_MESSAGE_ID> | WhatsApp message ID for the edit event. | wamid.HBgLMTY1MDM4Nzk0MzkV... |
<WEBHOOK_TRIGGER_TIMESTAMP> | Unix timestamp when the webhook was triggered. | 1739321024 |
<ORIGINAL_WHATSAPP_MESSAGE_ID> | ID of the original message being edited. | wamid.HBgLMTQxMjU1NTA4MjkV... |
<CONTEXT_ID> | Contextual message ID (if applicable). | M0 |
<MEDIA_ASSET_CAPTION> | Caption for the media asset. | Updated image caption |
<MEDIA_ASSET_MIME_TYPE> | MIME type of the media asset. | image/jpeg |
<MEDIA_ASSET_SHA256_HASH> | SHA256 hash of the media asset. | a1b2c3d4e5f6... |
<MEDIA_ASSET_ID> | Media asset ID. | 1234567890 |
<MEDIA_ASSET_URL> | URL to the media asset. | https://media.example.com/... |
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550783881", "phone_number_id": "106540352242922" }, "contacts": [ { "profile": { "name": "Sheena Nelson" }, "wa_id": "16505551234" } ], "messages": [ { "from": "16505551234", "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUFERjg0NDEzNDdFODU3MUMxMAA=", "timestamp": "1749854575", "type": "edit", "edit": { "original_message_id": "wamid.HBgLMTQxMjU1NTA4MjkVAgASGBQzQUNCNjk5RDUwNUZGMUZEM0VBRAA=", "message": { "context": { "id": "M0" }, "type": "image", "image": { "caption": "Updated image caption", "mime_type": "image/jpeg", "sha256": "a1b2c3d4e5f6...", "id": "1234567890", "url": "https://media.example.com/updated-image.jpg" } } } } ] }, "field": "messages" } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "<BUSINESS_DISPLAY_PHONE_NUMBER>", "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>" }, "contacts": [ { "profile": { "name": "<WHATSAPP_USER_PROFILE_NAME>" }, "wa_id": "<WHATSAPP_USER_ID>" } ], "messages": [ { "from": "<WHATSAPP_USER_PHONE_NUMBER>", "id": "<WHATSAPP_MESSAGE_ID>", "timestamp": "<WEBHOOK_TRIGGER_TIMESTAMP>", "type": "revoke", "revoke": { "original_message_id": "<ORIGINAL_WHATSAPP_MESSAGE_ID>" } } ] }, "field": "messages" } ] } ] }
| Placeholder | Description | Example value |
|---|---|---|
<BUSINESS_DISPLAY_PHONE_NUMBER> | Business display phone number. | 15550783881 |
<BUSINESS_PHONE_NUMBER_ID> | Business phone number ID. | 106540352242922 |
<WHATSAPP_USER_PROFILE_NAME> | WhatsApp user’s profile name. | Sheena Nelson |
<WHATSAPP_USER_ID> | WhatsApp user ID. | 16505551234 |
<WHATSAPP_USER_PHONE_NUMBER> | WhatsApp user phone number. | 16505551234 |
<WHATSAPP_MESSAGE_ID> | WhatsApp message ID for the revoke event. | wamid.HBgLMTY1MDM4Nzk0MzkV... |
<WEBHOOK_TRIGGER_TIMESTAMP> | Unix timestamp when the webhook was triggered. | 1739321024 |
<ORIGINAL_WHATSAPP_MESSAGE_ID> | ID of the original message being revoked (deleted). | wamid.HBgLMTQxMjU1NTA4MjkV... |
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550783881", "phone_number_id": "106540352242922" }, "contacts": [ { "profile": { "name": "Sheena Nelson" }, "wa_id": "16505551234" } ], "messages": [ { "from": "16505551234", "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUFERjg0NDEzNDdFODU3MUMxMAA=", "timestamp": "1749854575", "type": "revoke", "revoke": { "original_message_id": "wamid.HBgLMTQxMjU1NTA4MjkVAgASGBQzQUNCNjk5RDUwNUZGMUZEM0VBRAA=" } } ] }, "field": "messages" } ] } ] }
chunk_order parameter value to arrange these chunks in their sequential order, as they may not be delivered sequentiallyphase parameter value to monitor phase progress. A value of 2 indicates that the current phase is complete.progress parameter value to monitor the overall progress. A value of 100 indicates that synchronization is complete.{ "object": "whatsapp_business_account", "entry": [ { "id": "<WABA_ID>", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "<BUSINESS_PHONE_NUMBER>", "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>" }, "history": [ { "metadata": { "phase": <PHASE>, "chunk_order": <CHUNK_ORDER>, "progress": <PROGRESS> }, "threads": [ /* First chat history thread object */ { "id": "<WHATSAPP_USER_PHONE_NUMBER>", "messages": [ /* First message object in thread */ { "from": "<BUSINESS_OR_WHATSAPP_USER_PHONE_NUMBER>", "to": "<WHATSAPP_USER_PHONE_NUMBER>", // only included if SMB message echo "id": "<WHATSAPP_MESSAGE_ID>", "timestamp": "<DEVICE_TIMESTAMP>, "type": "<MESSAGE_TYPE>", "<MESSAGE_TYPE>": { <MESSAGE_CONTENTS> }, "history_context": { "status": "<MESSAGE_STATUS>" } }, /* Additional message objects in thread would follow, if any */ ] }, /* Additional chat history thread objects would follow, if any */ ] } ] }, "field": "history" } ] } ] }
| Placeholder | Description | Example value |
|---|---|---|
<WABA_ID>String | The business customer’s WhatsApp Business Account ID. | 102290129340398 |
<BUSINESS_PHONE_NUMBER>String | The business customer’s business phone number. | 15550783881 |
<BUSINESS_PHONE_NUMBER_ID>String | The business customer’s business phone number ID. | 106540352242922 |
<PHASE>Integer | Indicates history phase. Values can be:
| 1 |
<CHUNK_ORDER>Integer | Indicates chunk number, which you can use to order sets of webhooks sequentially. | 1 |
<PROGRESS>Integer | Indicates percentage total of synchronization progress. Minimum 0, maximum 100. | 55 |
<WHATSAPP_USER_PHONE_NUMBER>String | The WhatsApp user’s phone number. | 16505551234 |
<BUSINESS_OR_WHATSAPP_USER_PHONE_NUMBER>String | The business customer’s phone number, or the WhatsApp user’s phone number. If the value is the business’s phone number, the message object describes a message sent by the business to a WhatsApp user. If the value is the WhatsApp user’s phone number, the message object describes a message sent by the WhatsApp user to the business. | 15550783881 |
<WHATSAPP_USER_PHONE_NUMBER>String | The WhatsApp user’s phone number. The to property is only included if the message object represents an SMB message echo. | 16505551234 |
<WHATSAPP_MESSAGE_ID>String | WhatsApp message ID. | wamid.HBgLMTY0NjcwNDM1OTUVAgARGBIyNDlBOEI5QUQ4NDc0N0FCNjMA |
<DEVICE_TIMESTAMP>String | Unix timestamp indicating when the message was received by the recipient’s device. | 1738796547 |
<MESSAGE_TYPE>String | Message type. Note that this placeholder appears twice in the syntax above, as it serves as a placeholder for the type property’s value and its matching property name. See the example payload below for a thread with various message types.If this value is set to media_placeholder, the message object describes a message that contained a media asset. In this case, the message contents will be omitted. Instead, a separate history webhook will follow, describing the content of the message and the media asset ID, but only if the message was sent within the last two weeks of your query. See the example payload below describing a media message’s contents. | text |
<MESSAGE_CONTENTS>Object | An object describing the message’s contents. This value will vary based on the message type, as well as the contents message. For example, if a business sends an image message without a caption, the object would not include the caption property.See Sending messages for examples of payloads for each message type. | {"body":"Here's the info you requested! https://www.meta.com/quest/quest-3/"} |
<MESSAGE_STATUS>String | Indicates the message’s most recent delivery stats. Values can be:
| READ |
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550783881", "phone_number_id": "106540352242922" }, "history": [ { "metadata": { "phase": 0, "chunk_order": 1, "progress": 55 }, "threads": [ { "id": "16505551234", "messages": [ { "from": "15550783881", "id": "wamid.HBgLMTY0NjcwNDM1OTUVAgARGBIyNDlBOEI5QUQ4NDc0N0FCNjMA", "timestamp": "1739230955", "type": "text", "text": { "body": "Here's the info you requested! https://www.meta.com/quest/quest-3/" }, "history_context": { "status": "READ" } }, { "from": "15550783881", "id": "wamid.QyNUEHBgLMTY0NjcwNDM1OTUVAgARGBI1Rj3NEYxMzAzMzQ5MkEA", "timestamp": "1739230970", "type": "media_placeholder", "history_context": { "status": "PLAYED" } }, { "from": "16505551234", "id": "wamid.N0FCNjMAHBgLMTY0NjcwNDM1OTUVAgARGBIyNDlBOEI5QUQ4NDc0", "timestamp": "1739230970", "type": "text", "text": { "body": "Thanks!" }, "history_context": { "status": "READ" } } ] }, { "id": "12125557890", "messages": [ { "from": "15550783881", "id": "wamid.BIyNDlBOEI5N0FCNjMAHBgLMTY0NjcwNDM1OTUVAgARGQUQ4NDc0", "timestamp": "1739230970", "type": "text", "text": { "body": "Thanks for your order! As a thank you, use code THANKS30 to get 30% of your next order." }, "history_context": { "status": "DELIVERED" } } ] } ] } ] }, "field": "history" } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550783881", "phone_number_id": "106540352242922" }, "messages": [ { "from": "16505551234", "id": "wamid.QyNUEHBgLMTY0NjcwNDM1OTUVAgARGBI1Rj3NEYxMzAzMzQ5MkEA", "timestamp": "1738796547", "type": "image", "image": { "caption": "Black Prince echeveria", "mime_type": "image/jpeg", "sha256": "3f9d94d399fa61c191bc1d4ca71375a035cd9b9f5b1128e1f0963a415c16b0cc", "id": "24230790383178626" } } ] }, "field": "history" } ] } ] }
{ "messaging_product": "whatsapp", "metadata": { "display_phone_number": "<BUSINESS_PHONE_NUMBER>", "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>" }, "history": [ { "errors": [ { "code": 2593109, "title": "History sync is turned off by the business from the WhatsApp Business App", "message": "History sync is turned off by the business from the WhatsApp Business App", "error_data": { "details": "History sharing is turned off by the business" } } ] } ] }
{ "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550783881", "phone_number_id": "106540352242922" }, "history": [ { "errors": [ { "code": 2593109, "title": "History sync is turned off by the business from the WhatsApp Business App", "message": "History sync is turned off by the business from the WhatsApp Business App", "error_data": { "details": "History sharing is turned off by the business" } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "<WABA_ID>", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "<BUSINESS_PHONE_NUMBER>", "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>" }, "state_sync": [ { "type": "contact", "contact": { "full_name": "<CONTACT_FULL_NAME>", "first_name": "<CONTACT_FIRST_NAME>", "phone_number": "<CONTACT_PHONE_NUMBER>" }, "action": "<ACTION>", "metadata": { "timestamp": "<WEBHOOK_TIMESTAMP>" } }, * Additional contacts would follow, if any */ ] }, "field": "smb_app_state_sync" } ] } ] }
| Placeholder | Description | Example value |
|---|---|---|
<WABA_ID>String | The business customer’s WhatsApp Business Account ID. | 102290129340398 |
<BUSINESS_PHONE_NUMBER>String | The business customer’s business phone number. | 15550783881 |
<BUSINESS_PHONE_NUMBER_ID>String | The business customer’s business phone number ID. | 106540352242922 |
<CONTACT_FULL_NAME>String | The contact’s full name, as it appears in the business customer’s WhatsApp Business app phone address book. Not included when the business customer removes a contact from their WhatsApp Business app phone address book. | Pablo Morales |
<CONTACT_FIRST_NAME>String | The contact’s first name, as it appears in the business customer’s WhatsApp Business app phone address book. Not included when the business customer removes a contact from their WhatsApp Business app phone address book. | Pablo |
<CONTACT_PHONE_NUMBER>String | The contact’s WhatsApp phone number. | 16505551234 |
<ACTION>String | Indicates if the business customer added, edited, or deleted a contact from their WhatsApp Business app phone address book. Values can be:
| add |
<CONTACT_CHANGE_TIMESTAMP>String | Unix timestamp indicated when the contact was added, edited, or removed. | 1738346006 |
{ "object": "whatsapp_business_account", "entry": [ { "id": "<WABA_ID>", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "<BUSINESS_PHONE_NUMBER>", "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>" }, "message_echoes": [ { "from": "<BUSINESS_PHONE_NUMBER>", "to": "<WHATSAPP_USER_PHONE_NUMBER>", "id": "<WHATSAPP_MESSAGE_ID>", "timestamp": "<WEBHOOK_TIMESTAMP>", "type": "<MESSAGE_TYPE>", "<MESSAGE_TYPE>": { <MESSAGE_CONTENTS> } } ] }, "field": "smb_message_echoes" } ] } ] }
| Placeholder | Description | Example value |
|---|---|---|
<WABA_ID>String | The business customer’s WhatsApp Business Account ID. | 102290129340398 |
<BUSINESS_PHONE_NUMBER>String | The business customer’s business phone number. | 15550783881 |
<BUSINESS_PHONE_NUMBER_ID>String | The business customer’s business phone number ID. | 106540352242922 |
<WHATSAPP_USER_PHONE_NUMBER>String | The WhatsApp user’s phone number. | 16505551234 |
<WHATSAPP_MESSAGE_ID>String | WhatsApp message ID. | wamid.HBgLMTY0NjcwNDM1OTUVAgARGBIyNDlBOEI5QUQ4NDc0N0FCNjMA |
<WEBHOOK_TIMESTAMP>String | Unix timestamp indicated when the webhook was triggered. | 1738796547 |
<MESSAGE_TYPE>String | Message type. Note that this placeholder appears twice in the syntax above, as it serves as a placeholder for the type property’s value and its matching property name. | text |
<MESSAGE_CONTENTS>Object | An object describing the message’s contents. This value will vary based on the message type, as well as the contents of the message.For example, if a business sends an image message without a caption, the object would not include the caption property.See Sending messages for examples of payloads for each message type. | {"body":"Here's the info you requested! https://www.meta.com/quest/quest-3/"} |
type is text) sent to a WhatsApp user by a business customer with the WhatsApp Business app.{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550783881", "phone_number_id": "106540352242922" }, "message_echoes": [ { "from": "15550783881", "to": "16505551234", "id": "wamid.HBgLMTY0NjcwNDM1OTUVAgARGBIyNDlBOEI5QUQ4NDc0N0FCNjMA", "timestamp": "1700255121", "type": "text" "text": { "body": "Here's the info you requested! https://www.meta.com/quest/quest-3/" } } ] }, "field": "smb_message_echoes" } ] } ] }