> ## Documentation Index
> Fetch the complete documentation index at: https://whatsapp-docs.kap.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Onboarding business app users

# Onboarding WhatsApp Business app users (aka "Coexistence")

Updated: Dec 8, 2025

You can configure Embedded Signup to allow business customers to onboard using their existing [WhatsApp Business app](https://l.facebook.com/l.php?u=https%3A%2F%2Fbusiness.whatsapp.com%2Fproducts%2Fbusiness-app\&h=AT3G3LQAZaOdYFBv86Oi46NvXvukksgKi95bWnoD-hWyUJH7rYS3567iRw9PKkAVrWK4IMUVzNzKJiyK6WXxDRD_z_dqNbPS7ACxWdXasvC_Uzku4mXTR2lNVog2abw3kwxVLfjFkQKvtA) account and phone number. Customers who are successfully onboarded after choosing this option will then be able to use your app to message their customers at scale, but still have the ability to send messages on a one-to-one basis using the WhatsApp Business app, while keeping messaging history between both apps in sync.

## How it works

When you configure Embedded Signup for WhatsApp Business app phone numbers, a business customer who goes through the flow will be given the option to connect their existing WhatsApp Business app account to Cloud API:

![](https://scontent-lax3-1.xx.fbcdn.net/v/t39.2365-6/594963134_868478475878739_1087736207670610686_n.png?_nc_cat=104\&ccb=1-7&_nc_sid=e280be&_nc_ohc=VoLt1hVWhroQ7kNvwF5yjiw&_nc_oc=Admpljkm7b6vP9N3yL0GCHAMlegHWbVyF4p-jqNxYkVVffT_GXfzo9oxzuKUG8iPRgs&_nc_zt=14&_nc_ht=scontent-lax3-1.xx&_nc_gid=h-D4apxfQr92KqVrUKxpjQ\&oh=00_AfnWIHM-uGaeszf7bjfmbs2JzmLn6rfF58UHrlquvgBZSw\&oe=6955056A)

If they choose this option and enter their WhatsApp Business app phone number, they will be presented a verification code to enter.

![](https://scontent-lax7-1.xx.fbcdn.net/v/t39.2365-6/597395987_869663325479495_9037141925476479232_n.png?_nc_cat=105\&ccb=1-7&_nc_sid=e280be&_nc_ohc=cMZLJU_Kyw8Q7kNvwENLV_G&_nc_oc=Adla9_MNXbRAyfpNdIFKSJC6CmqZy0tz3UWRMwrC9Dy8HCjn6C5WJox8Pw683uNXWNs&_nc_zt=14&_nc_ht=scontent-lax7-1.xx&_nc_gid=h-D4apxfQr92KqVrUKxpjQ\&oh=00_Afm_6ySZXrfQOz1GBKB0cshG58i47zjiMqOFrfHax484Ng\&oe=69550C39)

The message instructs the business to copy the verification code and follow the steps:

![](https://scontent-lax3-2.xx.fbcdn.net/v/t39.2365-6/594964209_9901262313331817_1729648792793400624_n.png?_nc_cat=106\&ccb=1-7&_nc_sid=e280be&_nc_ohc=aB7KMck41x0Q7kNvwGkmpGf&_nc_oc=Adma6SU5cHHw8wVfrcd81nUaqhkvcNBtvcNYy17sme8Vh_xLWURQL8M4MEDSuNrgHuw&_nc_zt=14&_nc_ht=scontent-lax3-2.xx&_nc_gid=h-D4apxfQr92KqVrUKxpjQ\&oh=00_AfnT6iRaFpvYsDHY4YLrlEM1tff8P71tk3UipBuMN6cC9g\&oe=69553655)

Expect to receive a message from the official Facebook Business Account. Click Connect:

![](https://scontent-lax3-1.xx.fbcdn.net/v/t39.2365-6/594961051_1373101364351984_5370676390334015719_n.png?_nc_cat=110\&ccb=1-7&_nc_sid=e280be&_nc_ohc=vZM_uee_uIYQ7kNvwF_fk-d&_nc_oc=AdkoyyW2UD2deKPkawf37tHSwpoe4e1vFcac7oc4eKO8UuypAbZtuGhoATxlIM1t5Rk&_nc_zt=14&_nc_ht=scontent-lax3-1.xx&_nc_gid=h-D4apxfQr92KqVrUKxpjQ\&oh=00_AfmHG8_Hqvm8SU6okkYC1WvWqu2LdO6dQVwRsFXxhy7eTA\&oe=69551EC7)

Tap the Connect to the Business Platform button to continue the onboarding process.

![](https://scontent-lax7-1.xx.fbcdn.net/v/t39.2365-6/597170039_2568406460203291_8926108086902613098_n.png?_nc_cat=105\&ccb=1-7&_nc_sid=e280be&_nc_ohc=CuP1qB4vNrsQ7kNvwHxqnhV&_nc_oc=AdnKrowJWynDic-wTMtFYj_ma1k9rNNVe0f1THuITS0Ocf2u27oYvi6ItA93xw0WN4I&_nc_zt=14&_nc_ht=scontent-lax7-1.xx&_nc_gid=h-D4apxfQr92KqVrUKxpjQ\&oh=00_AfmRP8W6YyUZif51X505b3I1sC_voWpzGb2TZs3oaD0_0A\&oe=69552E56)

Tap the Confirm button in the app to give the business the option to share their chat history with you.

![](https://scontent-lax3-1.xx.fbcdn.net/v/t39.2365-6/598069231_2034072847437945_6021154947158300647_n.png?_nc_cat=102\&ccb=1-7&_nc_sid=e280be&_nc_ohc=RbkPONbS0dgQ7kNvwEOb4W1&_nc_oc=AdnYcVhKAMWq2segrgYIEJykKUqVlHLo9WRiwSUNXpTMyASHEvooL_X6qEtMX3w8__E&_nc_zt=14&_nc_ht=scontent-lax3-1.xx&_nc_gid=h-D4apxfQr92KqVrUKxpjQ\&oh=00_AfmGWqjpbHi1Bhn5yBDQZ3Wm6_4KnMpk9yHF32fZIEKt2g\&oe=69552AB0)

Paste the verification code.

![](https://scontent-lax3-2.xx.fbcdn.net/v/t39.2365-6/594972252_819348487750100_262170023760155076_n.png?_nc_cat=100\&ccb=1-7&_nc_sid=e280be&_nc_ohc=0PFuan7IHWMQ7kNvwGnyYQv&_nc_oc=AdnBh7BMu2IuOpriQLCz2u5cslczlikrfOFlgtSu3jWgFEi9-E_3kVQZ2HUV9azArZ4&_nc_zt=14&_nc_ht=scontent-lax3-2.xx&_nc_gid=h-D4apxfQr92KqVrUKxpjQ\&oh=00_AfmIMMt3Dg_5eC142aRJ3sUqm7Qk6BNoRpSYF1J1LkpDDg\&oe=695530C4)

They can complete the remainder of the Embedded Signup flow. This returns their [asset IDs](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/implementation#session-logging-message-event-listener) and [exchangeable token code](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/implementation#response-callback) to the spawning window, as normal. You can then use that information in API calls to (1) onboard the business customer the same way you would any other business customer and (2) synchronize their contacts and messaging history (if permitted by the business) so you can populate it in your app.

## Requirements

the business customer must be using WhatsApp Business app version **2.24.17** or higher.
the business customer’s phone number country code must be supported
you must already be a [Solution Partner](https://developers.facebook.com/documentation/business-messaging/whatsapp/solution-providers/get-started-for-solution-partners) or [Tech Provider](https://developers.facebook.com/documentation/business-messaging/whatsapp/solution-providers/get-started-for-tech-providers)
you must know how to use [Cloud API](https://developers.facebook.com/documentation/business-messaging/whatsapp/about-the-platform#whatsapp-cloud-api)
your webhook callback must be be able successfully accept and digest webhooks
you must be using Embedded Signup with [session logging](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/implementation#session-logging-message-event-listener)

## Limitations

In order to remain compatible with the WhatsApp Business app, business phone numbers that are in use with both the WhatsApp Business app and Cloud API have a fixed throughput of 20 mps.
If your business customer worked with a partner in the past and still shares the previous credit line, they may see an error when attempting to switch to a new partner. Follow the [guide](https://developers.facebook.com/documentation/business-messaging/whatsapp/solution-providers/support/business-customer-support) to resolve the error.

## Unsupported countries

WhatsApp Business account phone numbers with country codes from the following countries are not supported:

Nigeria
South Africa

## Pricing

After a business customer has been onboarded to Cloud API, messages sent by the business via the WhatsApp Business app will continue to be free, but messages sent via API will be subject to [Cloud API pricing](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing).

See our [API Solutions for WhatsApp Business App Users](https://developers.facebook.com/resources/API-solutions-for-WhatsApp-Business-App-users.pdf) pricing explainer PDF for breakdowns of common pricing scenarios.

## Customer service window

[Customer service windows](https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/send-messages#customer-service-windows) will only be opened when a WhatsApp user messages a business customer who is already onboarded onto Cloud API. If a WhatsApp user messages a business just prior to the business being onboarded onto Cloud API, the business can only respond with a template message, since no customer service was opened. If the user messages the business after it has been onboarded onto Cloud API, a customer service window will be opened as normal, and the business can then respond with a non-template message.

## Feature comparison

The following table describes features available to business customers who have been onboarded to Cloud API, as well as any changes to WhatsApp Business app functionality post-onboarding.

| 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 no longer supported.                                                                                                         | Supported.<br />All chat messages in the most recent 6 months can be synchronized.<br />Messages sent and received are mirrored between the Cloud API and WhatsApp Business app. |
| Contacts                                                                                                                                                                                                                                                | No change.                                                                                                                                          | Supported.<br />All contacts with a WhatsApp number can be synchronized.                                                                                                         |
| Group chats                                                                                                                                                                                                                                             | No change.                                                                                                                                          | Not supported.<br />Group chats will not be synchronized.                                                                                                                        |
| Disappearing messages                                                                                                                                                                                                                                   | Disappearing messages will be turned off for all individual (1:1) chats                                                                             | Not supported.                                                                                                                                                                   |
| [View once message](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F1077018839582332\&h=AT3G3LQAZaOdYFBv86Oi46NvXvukksgKi95bWnoD-hWyUJH7rYS3567iRw9PKkAVrWK4IMUVzNzKJiyK6WXxDRD_z_dqNbPS7ACxWdXasvC_Uzku4mXTR2lNVog2abw3kwxVLfjFkQKvtA) | 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.<br />Business will not be able to create new Broadcast Lists.<br />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.                                                                                                                                                                   |

## Linked devices

Businesses can link up to four WhatsApp “companion” clients to their WhatsApp Business app account on other devices (described as “ [linked devices](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F378279804439436%2F\&h=AT3G3LQAZaOdYFBv86Oi46NvXvukksgKi95bWnoD-hWyUJH7rYS3567iRw9PKkAVrWK4IMUVzNzKJiyK6WXxDRD_z_dqNbPS7ACxWdXasvC_Uzku4mXTR2lNVog2abw3kwxVLfjFkQKvtA)” in our Help Center).

All companion clients are supported, except for [WhatsApp for Windows](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F1317564962315842%2F%3Fcms_platform%3Dwindows-desktop\&h=AT3G3LQAZaOdYFBv86Oi46NvXvukksgKi95bWnoD-hWyUJH7rYS3567iRw9PKkAVrWK4IMUVzNzKJiyK6WXxDRD_z_dqNbPS7ACxWdXasvC_Uzku4mXTR2lNVog2abw3kwxVLfjFkQKvtA) and [WhatsApp for WearOS](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F564431798835071%2F\&h=AT3G3LQAZaOdYFBv86Oi46NvXvukksgKi95bWnoD-hWyUJH7rYS3567iRw9PKkAVrWK4IMUVzNzKJiyK6WXxDRD_z_dqNbPS7ACxWdXasvC_Uzku4mXTR2lNVog2abw3kwxVLfjFkQKvtA).

Once a business customer onboards to Cloud API with an existing WhatsApp Business app account and number, all companion apps will be unlinked from the account, and the business can then re-link any supported companion apps.

WhatsApp users who use an unsupported companion client to message an onboarded business can do so, but the message will not trigger [messages](https://developers.facebook.com/documentation/business-messaging/whatsapp/webhooks/reference/messages) webhooks, so the business won’t be able to mirror the message in their own app.

Messages sent from an onboarded business (by any means) that are viewed in an unsupported companion device will appear with placeholder text, instructing the WhatsApp user to view the message in their primary device.

## Setting up your app

### Step 1: Subscribe to webhooks

Navigate to the [**App Dashboard**](https://developers.facebook.com/apps) > **WhatsApp** > **Configuration** panel and subscribe your app to the following WhatsApp Business Account webhook topic fields, and make sure your app’s callback code can digest payloads for each of them. Note that these fields are in addition to any fields you are already subscribed to as a solution provider.

[history](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#history) — describes past messages the business customer has sent/received
[smb\_app\_state\_sync](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#smb-app-state-sync) — describes the business customer’s current and new contacts
[smb\_message\_echoes](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#smb-message-echoes) — describes any new messages the business customer sends with the WhatsApp Business app after having been onboarded

### Step 2: Customize Embedded Signup

Add a `featureType` property set to `whatsapp_business_app_onboarding` to the `extras` object in the [launch method and callback registration](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/implementation#launch-method-and-callback-registration) portion of the Embedded Signup implementation code.

```
// Launch method and callback registration
  {
  "config_id": "&lt;CONFIGURATION_ID&gt;",
  "response_type": "code",
  "override_default_response_type": true,
  "extras": {
    setup: {},
    "featureType": "whatsapp_business_app_onboarding", // set to 'whatsapp_business_app_onboarding'
    "sessionInfoVersion": "3"
  }
}
```

To verify that you have enabled the feature correctly, access your implementation of Embedded Signup. If the [WABA selection screen](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/default-flow#business-asset-selection-screen) has been replaced with a screen that gives you the option to connect your existing WhatsApp Business account, the feature is enabled:

![](https://scontent-lax3-1.xx.fbcdn.net/v/t39.2365-6/583640207_829673969692795_3749727619181245789_n.png?_nc_cat=108\&ccb=1-7&_nc_sid=e280be&_nc_ohc=o4aXWcuRX2cQ7kNvwGnjYqW&_nc_oc=Adn27iPnnGomjkAwH6OHlbSChz3s2HUBG2Ob-ZVsZoZUvKZZipUCxGfDs7M8M79QVN8&_nc_zt=14&_nc_ht=scontent-lax3-1.xx&_nc_gid=h-D4apxfQr92KqVrUKxpjQ\&oh=00_Afm3TNa2Vs6XPCC67rLakcPmg_-VeXM5MGEbFRp3-BcKHA\&oe=69550565)

### Step 3: Surface Embedded Signup to customers

Once you have confirmed that the feature has been enabled, surface Embedded Signup to your business customers.

Note that when a business completes the flow and you [onboard the customer](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#onboarding-business-customers), you have 24 hours to [synchronize their messaging history](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#synchronizing-whatsapp-business-app-data), otherwise they must be offboarded and they must complete the flow again. For this reason, we recommend that you:

onboard and synchronize as soon as the business completes the flow
inform the business that you are synchronizing their WhatsApp Business app data
advise them to keep the WhatsApp Business app open to facilitate the synchronization process

Onboarding and synchronization can take several minutes, depending on a number of factors such as the size of the business’s messaging history, their internet speed, how quickly you can digest webhooks, etc.

When you complete the **onboarding** process, the WhatsApp Business app will automatically refresh and indicate to the business that their number is now connected to the API:

![](https://scontent-lax3-1.xx.fbcdn.net/v/t39.2365-6/476788868_1168860751914222_5506074718266109385_n.jpg?_nc_cat=104\&ccb=1-7&_nc_sid=e280be&_nc_ohc=emqHoAhSvdsQ7kNvwHoZplx&_nc_oc=AdlJXA1XRivmQRNwzzhHnNJhAVBixafGhx4JbaXL8wdOxECglK5_eDcFf2R42xFUwF4&_nc_zt=14&_nc_ht=scontent-lax3-1.xx&_nc_gid=h-D4apxfQr92KqVrUKxpjQ\&oh=00_AflNUzfUTeOw71QqbLwnZaLFIP7dyWG_qSI54sPzoKyj3A\&oe=69552F50)

After you finish synchronizing the business’s messaging history, we recommend that you inform the customer that the process is complete.

## Onboarding business customers

When a business customer successfully completes the Embedded Signup flow, their asset IDs and an exchangeable token code will be returned to the window that spawned the flow, as normal, but the [session event](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/implementation#session-logging-message-event-listener) payload will have `event` set to `FINISH_WHATSAPP_BUSINESS_APP_ONBOARDING`:

```
\{
  data: {
    waba_id: "&lt;CUSTOMER_WABA_ID&gt;"
  },
  type: "WA_EMBEDDED_SIGNUP",
  event: "FINISH_WHATSAPP_BUSINESS_APP_ONBOARDING",
  version: 3
}
```

Capture the customer’s asset IDs and exchangeable token code and use them to onboard the customer as you normally would, but **skip the phone number registration step**, as the number is already registered.

[Onboarding business customers as a Solution Provider](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-customers-as-a-solution-partner)
[Onboarding business customers as a Tech Provider](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-customers-as-a-tech-provider)

Once you have completed these onboarding steps, you can begin the [messaging history synchronization](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#synchronizing-messaging-history) process.

### Check onboarding status (optional)

If you wish, you can check if the customer’s business phone number is registered for both Cloud API and WhatsApp Business app use by requesting the `is_on_biz_app` and `platform_type` fields on the business phone number ID:

Example request:

```
curl 'https://graph.facebook.com/v24.0/106540352242922?fields=is_on_biz_app,platform_type' \
-H 'Authorization: Bearer EAAJB...'
```

Example response:

If `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"
}
```

## Synchronizing WhatsApp Business app data

After you onboard the business customer, you have 24 hours to synchronize their contacts and messaging history, otherwise they must be offboarded and complete the flow again. For this reason, we recommend that you begin the synchronization process as soon as you finish onboarding the business.

As a reminder, make sure that you subscribed to the business’s WABA when you [onboarded the business](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#onboarding-business-customers), and that you are [subscribed to the additional webhook fields](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#step-1--subscribe-to-webhooks), otherwise you will miss important webhooks.

### Step 1: Initiate contacts synchronization

Use the [POST /\<BUSINESS\_PHONE\_NUMBER\_ID>/smb\_app\_data](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/smb_app_data#Creating) endpoint to request the business customer’s contacts information.

If the request is successful, a set of [smb\_app\_state\_sync](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#smb-app-state-sync) webhooks will be triggered describing the WhatsApp contacts in the business’s WhatsApp Business app. Future additions or changes to the business’s [WhatsApp contacts](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F1270784217226727%2F\&h=AT3G3LQAZaOdYFBv86Oi46NvXvukksgKi95bWnoD-hWyUJH7rYS3567iRw9PKkAVrWK4IMUVzNzKJiyK6WXxDRD_z_dqNbPS7ACxWdXasvC_Uzku4mXTR2lNVog2abw3kwxVLfjFkQKvtA) will trigger a corresponding smb\_app\_state\_sync webhook.

Note that you can only perform this step once. If you need to perform it again, the customer must first offboard, then complete the Embedded Signup flow again.

#### Example request

```
curl -X  POST \
'https://graph.facebook.com/&lt;API_VERSION&gt;/&lt;BUSINESS_PHONE_NUMBER_ID&gt;/smb_app_data \
-H 'Authorization: &lt;ACCESS_TOKEN&gt;' \
-H 'Content-Type: application/json' \
-d '
\{
  "messaging_product": "whatsapp",
  "sync_type": "smb_app_state_sync"
}'
```

#### Example response

Upon success:

```
\{
  "messaging_product": "whatsapp",
  "request_id" : "&lt;REQUEST_ID&gt;"
}
```

We recommend that you store the `request_id` value in case you need to contact support.

### Step 2: Initiate message history synchronization

Use the [POST /\<BUSINESS\_PHONE\_NUMBER\_ID>/smb\_app\_data](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/smb_app_data#Creating) endpoint again, this time to initiate messaging history synchronization.

Upon success, one or more history webhooks will be triggered, depending on if the business chose to share their messaging history with you.

Note that you can only perform this step once. If you need to perform it again, the customer must first offboard, then complete the Embedded Signup flow again.

#### Messaging history shared

If the business chose to share their messaging history with you, a series of history webhooks will be triggered, describing each message sent to, or received from, WhatsApp users within a set period of time.

See [history](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#history) for a description of the contents of these webhooks and how they are organized.

#### Messaging history not shared

If the business chose not to share their messaging history with you, a [history](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#history) webhook with error code `2593109` will be triggered instead.

#### Example request

```
curl -X  POST \
'https://graph.facebook.com/&lt;API_VERSION&gt;/&lt;BUSINESS_PHONE_NUMBER_ID&gt;/smb_app_data \
-H 'Authorization: &lt;ACCESS_TOKEN&gt;' \
-H 'Content-Type: application/json' \
-d '
\{
  "messaging_product": "whatsapp",
  "sync_type": "history"
}'
```

#### Example response

If the request is successful, the API will respond with the following JSON payload. Note that this response only indicates successful acceptance of the request, it does not indicate if the business shared or their messaging history with you.

```
\{
  "messaging_product": "whatsapp",
  "request_id" : "&lt;REQUEST_ID&gt;"
}
```

We recommend that you store the `request_id` value in case you need to contact support.

### Step 3: Mirror new WhatsApp Business app messages

Onboarded businesses are still able to use the WhatsApp Business app and supported [companion devices](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#linked-devices) to send and receive messages. Each time a business sends a message with one of these apps, it triggers an [smb\_message\_echoes](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#smb-message-echoes) webhook, which you must digest and display in the contact message thread history in your app.

## Reporting conversion activity

Onboarded business customers may run Click to WhatsApp ads, so we recommend that you report purchase/lead-gen signals on behalf of the business using the Conversions API. See [Conversions API for business messaging](https://developers.facebook.com/docs/marketing-api/conversions-api/business-messaging).

## Offboarding business customers

You cannot use the [POST /\<WHATSAPP\_BUSINESS\_PHONE\_NUMBER\_ID>/deregister](https://developers.facebook.com/documentation/business-messaging/whatsapp/reference/whatsapp-business-phone-number/phone-number-deregister-api#Updating) endpoint to deregister a business phone number from Cloud API if it is already in use with both Cloud API and the WhatsApp Business app.

Instead, your business customers can use the WhatsApp Business app to disconnect from Cloud API by navigating to the **Settings** > **Account** > **Business Platform** and clicking the **Disconnect Account** button. When a business customer disconnects from Cloud API, an [account\_update](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#account-update) webhook with a `PARTNER_REMOVED` event is triggered.

## Errors

If you onboard a business customer with a WhatsApp Business app phone number, you may later receive a **messages** webhook with error code `131060`. One possible reason for this is a WhatsApp user with an unsupported [companion device](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#linked-devices) 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.

## Webhooks

### account\_update

Describes changes to a WhatsApp Business Account (“WABA”).

#### Trigger events

the business phone number associated with the WABA changes
the WABA’s status changes

#### Payload syntax

```
\{
  "object": "whatsapp_business_account",
  "entry": [\
    {\
      "id": "&lt;WABA_ID&gt;",\
      "time": &lt;WEBHOOK_TIMESTAMP&gt;,\
      "changes": [\
        {\
          "value": {\
              "phone_number": "&lt;BUSINESS_PHONE_NUMBER&gt;",\
              "event": "&lt;EVENT&gt;",\
           },\
          "field": "account_update"\
        }\
      ]\
    }\
  ]
}
```

#### Example payload

```
\{
  "object": "whatsapp_business_account",
  "entry": [\
    {\
      "id": "102290129340398",\
      "time": 1739212624,\
      "changes": [\
        {\
          "value": {\
              "phone_number": "15550783881",\
              "event": "PARTNER_REMOVED",\
           },\
          "field": "account_update"\
        }\
      ]\
    }\
  ]
}
```

### Edit

This reference describes edit events and payload contents for the WhatsApp Business Account messages webhook for replies to interactive messages.

### Trigger events

A WhatsApp user edits a previously sent message (text, media with caption).
A WhatsApp user edits a previous sent message within 15 minutes after being sent.

### Syntax

```
\{
 "object": "whatsapp_business_account",
 "entry": [\
   {\
     "id": "&lt;WHATSAPP_BUSINESS_ACCOUNT_ID&gt;",\
     "changes": [\
       {\
         "value": {\
           "messaging_product": "whatsapp",\
           "metadata": {\
             "display_phone_number": "&lt;BUSINESS_DISPLAY_PHONE_NUMBER&gt;",\
             "phone_number_id": "&lt;BUSINESS_PHONE_NUMBER_ID&gt;"\
           },\
           "contacts": [\
             {\
               "profile": {\
                 "name": "&lt;WHATSAPP_USER_PROFILE_NAME&gt;"\
               },\
               "wa_id": "&lt;WHATSAPP_USER_ID&gt;"\
             }\
           ],\
           "messages": [\
             {\
               "from": "&lt;WHATSAPP_USER_PHONE_NUMBER&gt;",\
               "id": "&lt;WHATSAPP_MESSAGE_ID&gt;",\
               "timestamp": "&lt;WEBHOOK_TRIGGER_TIMESTAMP&gt;",\
               "type": "edit",\
               "edit": {\
                 "original_message_id": "&lt;ORIGINAL_WHATSAPP_MESSAGE_ID&gt;",\
                 "message": {\
                   "context": {\
                     "id": "&lt;CONTEXT_ID&gt;"\
                   },\
                   "type": "image",\
                   "image": {\
                     "caption": "&lt;MEDIA_ASSET_CAPTION&gt;",\
                     "mime_type": "&lt;MEDIA_ASSET_MIME_TYPE&gt;",\
                     "sha256": "<MEDIA_ASSET_SHA256_HASH>",\
                     "id": "&lt;MEDIA_ASSET_ID&gt;",\
                     "url": "&lt;MEDIA_ASSET_URL&gt;"\
                   }\
                 }\
               }\
             }\
           ]\
         },\
         "field": "messages"\
       }\
     ]\
   }\
 ]
}
```

### Parameters

| Placeholder                             | Description                                    | Example value                                               |
| --------------------------------------- | ---------------------------------------------- | ----------------------------------------------------------- |
| `&lt;BUSINESS_DISPLAY_PHONE_NUMBER&gt;` | Business display phone number.                 | 15550783881                                                 |
| `&lt;BUSINESS_PHONE_NUMBER_ID&gt;`      | Business phone number ID.                      | 106540352242922                                             |
| `&lt;WHATSAPP_USER_PROFILE_NAME&gt;`    | WhatsApp user’s profile name.                  | Sheena Nelson                                               |
| `&lt;WHATSAPP_USER_ID&gt;`              | WhatsApp user ID.                              | 16505551234                                                 |
| `&lt;WHATSAPP_USER_PHONE_NUMBER&gt;`    | WhatsApp user phone number.                    | 16505551234                                                 |
| `&lt;WHATSAPP_MESSAGE_ID&gt;`           | WhatsApp message ID for the edit event.        | wamid.HBgLMTY1MDM4Nzk0MzkV...                               |
| `&lt;WEBHOOK_TRIGGER_TIMESTAMP&gt;`     | Unix timestamp when the webhook was triggered. | 1739321024                                                  |
| `&lt;ORIGINAL_WHATSAPP_MESSAGE_ID&gt;`  | ID of the original message being edited.       | wamid.HBgLMTQxMjU1NTA4MjkV...                               |
| `&lt;CONTEXT_ID&gt;`                    | Contextual message ID (if applicable).         | M0                                                          |
| `&lt;MEDIA_ASSET_CAPTION&gt;`           | Caption for the media asset.                   | Updated image caption                                       |
| `&lt;MEDIA_ASSET_MIME_TYPE&gt;`         | MIME type of the media asset.                  | image/jpeg                                                  |
| `<MEDIA_ASSET_SHA256_HASH>`             | SHA256 hash of the media asset.                | a1b2c3d4e5f6...                                             |
| `&lt;MEDIA_ASSET_ID&gt;`                | Media asset ID.                                | 1234567890                                                  |
| `&lt;MEDIA_ASSET_URL&gt;`               | URL to the media asset.                        | [https://media.example.com/](https://media.example.com/)... |

### Example

This example webhook describes an edit made by a user in a message.

```
\{
 "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"\
       }\
     ]\
   }\
 ]
}
```

### Revoke

This reference describes revoke events and payload contents for the WhatsApp Business Account messages webhook for replies to interactive messages.

### Trigger events

A WhatsApp user revokes (deletes) a previously sent message.
A WhatsApp user revokes a previous sent message within two days after being sent.

### Syntax

```
\{
 "object": "whatsapp_business_account",
 "entry": [\
   {\
     "id": "&lt;WHATSAPP_BUSINESS_ACCOUNT_ID&gt;",\
     "changes": [\
       {\
         "value": {\
           "messaging_product": "whatsapp",\
           "metadata": {\
             "display_phone_number": "&lt;BUSINESS_DISPLAY_PHONE_NUMBER&gt;",\
             "phone_number_id": "&lt;BUSINESS_PHONE_NUMBER_ID&gt;"\
           },\
           "contacts": [\
             {\
               "profile": {\
                 "name": "&lt;WHATSAPP_USER_PROFILE_NAME&gt;"\
               },\
               "wa_id": "&lt;WHATSAPP_USER_ID&gt;"\
             }\
           ],\
           "messages": [\
             {\
               "from": "&lt;WHATSAPP_USER_PHONE_NUMBER&gt;",\
               "id": "&lt;WHATSAPP_MESSAGE_ID&gt;",\
               "timestamp": "&lt;WEBHOOK_TRIGGER_TIMESTAMP&gt;",\
               "type": "revoke",\
               "revoke": {\
                 "original_message_id": "&lt;ORIGINAL_WHATSAPP_MESSAGE_ID&gt;"\
               }\
             }\
           ]\
         },\
         "field": "messages"\
       }\
     ]\
   }\
 ]
}
```

### Parameters

| Placeholder                             | Description                                         | Example value                 |
| --------------------------------------- | --------------------------------------------------- | ----------------------------- |
| `&lt;BUSINESS_DISPLAY_PHONE_NUMBER&gt;` | Business display phone number.                      | 15550783881                   |
| `&lt;BUSINESS_PHONE_NUMBER_ID&gt;`      | Business phone number ID.                           | 106540352242922               |
| `&lt;WHATSAPP_USER_PROFILE_NAME&gt;`    | WhatsApp user’s profile name.                       | Sheena Nelson                 |
| `&lt;WHATSAPP_USER_ID&gt;`              | WhatsApp user ID.                                   | 16505551234                   |
| `&lt;WHATSAPP_USER_PHONE_NUMBER&gt;`    | WhatsApp user phone number.                         | 16505551234                   |
| `&lt;WHATSAPP_MESSAGE_ID&gt;`           | WhatsApp message ID for the revoke event.           | wamid.HBgLMTY1MDM4Nzk0MzkV... |
| `&lt;WEBHOOK_TRIGGER_TIMESTAMP&gt;`     | Unix timestamp when the webhook was triggered.      | 1739321024                    |
| `&lt;ORIGINAL_WHATSAPP_MESSAGE_ID&gt;`  | ID of the original message being revoked (deleted). | wamid.HBgLMTQxMjU1NTA4MjkV... |

### Example

This example webhook describes a delete made by a user in a message.

```
\{
 "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"\
       }\
     ]\
   }\
 ]
}
```

### History

Describes the WhatsApp Business app chat history of a business that has chosen to share their chat history with a [solution provider](https://developers.facebook.com/documentation/business-messaging/whatsapp/solution-providers/overview), or the business’s decision to decline chat history sharing.

#### Trigger events

a solution provider [synchronize the WhatsApp Business app chat history](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#step-2--initiate-message-history-synchronization) of a business customer who they have onboarded with a WhatsApp Business app phone number, and who has agreed to share their chat history
a solution provider [synchronize the WhatsApp Business app chat history](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#step-2--initiate-message-history-synchronization) of a business customer who they have onboarded with a WhatsApp Business app phone number, but the customer has declined to share their chat history

#### Chat history contents

If the business has already approved chat history sharing when the solution provider requests the business’s chat history, a series of history webhooks will be triggered, describing all messages sent or received within 180 days of the time when the business was onboarded onto Cloud API.

messages that are part of a group chat will not be included
media messages will not include media asset IDs; instead, additional history webhooks containing media message asset IDs will be sent separately, but only for media messages sent within 14 days of onboarding

Note that for efficiency purposes, a single webhook could potentially describe thousands of messages, so we recommend that you capture its contents first, then process the contents asynchronously.

#### Phases and chunks

Webhooks are divided into three history phases, where day 0 indicates the time when the business was onboarded onto Cloud API:

phase 0: day 0 through day 1
phase 1: day 1 through day 90
phase 2: day 90 through day 180

For each phase, chat history webhooks may be sent in separate chunks, depending on the total number of messages that comprise the thread.

you can use the `chunk_order` parameter value to arrange these chunks in their sequential order, as they may not be delivered sequentially
you can use the `phase` parameter value to monitor phase progress. A value of `2` indicates that the current phase is complete.
you can use the `progress` parameter value to monitor the overall progress. A value of `100` indicates that synchronization is complete.

If there is no chat history available for a given phase, no corresponding webhooks will be sent.

#### Payload syntax — chat history sharing approved

```
\{
  "object": "whatsapp_business_account",
  "entry": [\
    {\
      "id": "&lt;WABA_ID&gt;",\
      "changes": [\
        {\
          "value": {\
            "messaging_product": "whatsapp",\
            "metadata": {\
              "display_phone_number": "&lt;BUSINESS_PHONE_NUMBER&gt;",\
              "phone_number_id": "&lt;BUSINESS_PHONE_NUMBER_ID&gt;"\
            },\
            "history": [\
              {\
                "metadata": {\
                  "phase": &lt;PHASE&gt;,\
                  "chunk_order": &lt;CHUNK_ORDER&gt;,\
                  "progress": &lt;PROGRESS&gt;\
                },\
                "threads": [\
                  /* First chat history thread object */\
                  {\
                    "id": "&lt;WHATSAPP_USER_PHONE_NUMBER&gt;",\
                    "messages": [\
                      /* First message object in thread */\
                      {\
                        "from": "&lt;BUSINESS_OR_WHATSAPP_USER_PHONE_NUMBER&gt;",\
                        "to": "&lt;WHATSAPP_USER_PHONE_NUMBER&gt;", // only included if SMB message echo\
                        "id": "&lt;WHATSAPP_MESSAGE_ID&gt;",\
                        "timestamp": "&lt;DEVICE_TIMESTAMP&gt;,\
                        "type": "&lt;MESSAGE_TYPE&gt;",\
                        "&lt;MESSAGE_TYPE&gt;": {\
                          &lt;MESSAGE_CONTENTS&gt;\
                        },\
                        "history_context": {\
                          "status": "&lt;MESSAGE_STATUS&gt;"\
                        }\
                      },\
                      /* Additional message objects in thread would follow, if any */\
                    ]\
                  },\
                  /* Additional chat history thread objects would follow, if any */\
                ]\
              }\
            ]\
          },\
          "field": "history"\
        }\
      ]\
    }\
  ]
}
```

#### Payload contents — chat history sharing approved

| Placeholder                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Example value                                                                   |
| -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `&lt;WABA_ID&gt;`<br />*String*                                | The business customer’s WhatsApp Business Account ID.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | `102290129340398`                                                               |
| `&lt;BUSINESS_PHONE_NUMBER&gt;`<br />*String*                  | The business customer’s business phone number.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `15550783881`                                                                   |
| `&lt;BUSINESS_PHONE_NUMBER_ID&gt;`<br />*String*               | The business customer’s business phone number ID.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | `106540352242922`                                                               |
| `&lt;PHASE&gt;`<br />*Integer*                                 | Indicates history [phase](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#phases-and-chunks). Values can be:<br />`0` — indicates messages are from day 0 (business onboarding time) through day 1<br />`1` — indicates messages are from day 1 through day 90<br />`2` — indicates messages are from day 90 through day 180                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `1`                                                                             |
| `&lt;CHUNK_ORDER&gt;`<br />*Integer*                           | Indicates [chunk](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#phases-and-chunks) number, which you can use to order sets of webhooks sequentially.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `1`                                                                             |
| `&lt;PROGRESS&gt;`<br />*Integer*                              | Indicates percentage total of synchronization progress.<br />Minimum `0`, maximum `100`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | `55`                                                                            |
| `&lt;WHATSAPP_USER_PHONE_NUMBER&gt;`<br />*String*             | The WhatsApp user’s phone number.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | `16505551234`                                                                   |
| `&lt;BUSINESS_OR_WHATSAPP_USER_PHONE_NUMBER&gt;`<br />*String* | The business customer’s phone number, or the WhatsApp user’s phone number.<br />If the value is the business’s phone number, the message object describes a message sent by the business to a WhatsApp user.<br />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`                                                                   |
| `&lt;WHATSAPP_USER_PHONE_NUMBER&gt;`<br />*String*             | The WhatsApp user’s phone number.<br />The `to` property is only included if the message object represents an [SMB message echo](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#step-3--mirror-new-whatsapp-business-app-messages).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | `16505551234`                                                                   |
| `&lt;WHATSAPP_MESSAGE_ID&gt;`<br />*String*                    | WhatsApp message ID.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `wamid.HBgLMTY0NjcwNDM1OTUVAgARGBIyNDlBOEI5QUQ4NDc0N0FCNjMA`                    |
| `&lt;DEVICE_TIMESTAMP&gt;`<br />*String*                       | Unix timestamp indicating when the message was received by the recipient’s device.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | `1738796547`                                                                    |
| `&lt;MESSAGE_TYPE&gt;`<br />*String*                           | [Message type](https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/send-messages#message-types). 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](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#example-history-approved) for a thread with various message types.<br />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](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#example-media-asset) describing a media message’s contents. | `text`                                                                          |
| `&lt;MESSAGE_CONTENTS&gt;`<br />*Object*                       | An object describing the message’s contents. This value will vary based on the message type, as well as the contents message.<br />For example, if a business sends an `image` message without a caption, the object would not include the `caption` property.<br />See [Sending messages](https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/send-messages) for examples of payloads for each message type.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | `{"body":"Here's the info you requested! https://www.meta.com/quest/quest-3/"}` |
| `&lt;MESSAGE_STATUS&gt;`<br />*String*                         | Indicates the message’s most recent delivery stats. Values can be:<br />`DELIVERED`<br />`ERROR`<br />`PENDING`<br />`PLAYED`<br />`READ`<br />`SENT`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | `READ`                                                                          |

#### Example payload — chat history sharing approved

Example payload for two message threads: (1) a thread containing a text message and video message sent to a WhatsApp user, and the WhatsApp user’s response, and (2) a text message sent to a WhatsApp user thanking them for their order.

Note that the media message’s contents in the first thread are not described. Instead, a second webhook is triggered, describing the media message’s contents.

```
\{
  "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"\
        }\
      ]\
    }\
  ]
}
```

#### Example payload for media message asset

```
\{
  "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"\
        }\
      ]\
    }\
  ]
}
```

#### Payload syntax — chat history sharing declined

```
\{
  "messaging_product": "whatsapp",
  "metadata": {
    "display_phone_number": "&lt;BUSINESS_PHONE_NUMBER&gt;",
    "phone_number_id": "&lt;BUSINESS_PHONE_NUMBER_ID&gt;"
  },
  "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"\
          }\
        }\
      ]\
    }\
  ]
}
```

#### Example payload — chat history sharing declined

```
\{
  "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"\
          }\
        }\
      ]\
    }\
  ]
}
```

### smb\_app\_state\_sync

Describes one or more [WhatsApp contacts](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F1270784217226727%2F\&h=AT3G3LQAZaOdYFBv86Oi46NvXvukksgKi95bWnoD-hWyUJH7rYS3567iRw9PKkAVrWK4IMUVzNzKJiyK6WXxDRD_z_dqNbPS7ACxWdXasvC_Uzku4mXTR2lNVog2abw3kwxVLfjFkQKvtA) in a business customer’s WhatsApp Business app.

#### Trigger events:

a solution provider [synchronizes the WhatsApp contacts](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#step-1--initiate-contacts-synchronization) of a business customer who they have onboarded with a WhatsApp Business app phone number
a business customer, onboarded by a solution provider, with a WhatsApp Business app phone number adds, edits, or removes a [WhatsApp contacts](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F1270784217226727%2F\&h=AT3G3LQAZaOdYFBv86Oi46NvXvukksgKi95bWnoD-hWyUJH7rYS3567iRw9PKkAVrWK4IMUVzNzKJiyK6WXxDRD_z_dqNbPS7ACxWdXasvC_Uzku4mXTR2lNVog2abw3kwxVLfjFkQKvtA)

#### Payload syntax

```
\{
  "object": "whatsapp_business_account",
  "entry": [\
    {\
      "id": "&lt;WABA_ID&gt;",\
      "changes": [\
        {\
          "value": {\
            "messaging_product": "whatsapp",\
            "metadata": {\
              "display_phone_number": "&lt;BUSINESS_PHONE_NUMBER&gt;",\
              "phone_number_id": "&lt;BUSINESS_PHONE_NUMBER_ID&gt;"\
            },\
            "state_sync": [\
              {\
                "type": "contact",\
                "contact": {\
                  "full_name": "&lt;CONTACT_FULL_NAME&gt;",\
                  "first_name": "&lt;CONTACT_FIRST_NAME&gt;",\
                  "phone_number": "&lt;CONTACT_PHONE_NUMBER&gt;"\
                },\
                "action": "&lt;ACTION&gt;",\
                "metadata": {\
                  "timestamp": "&lt;WEBHOOK_TIMESTAMP&gt;"\
                }\
              },\
              * Additional contacts would follow, if any */\
            ]\
          },\
          "field": "smb_app_state_sync"\
        }\
      ]\
    }\
  ]
}
```

#### Payload contents

| Placeholder                                 | Description                                                                                                                                                                                                                                   | Example value     |
| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| `&lt;WABA_ID&gt;` *String*                  | The business customer’s WhatsApp Business Account ID.                                                                                                                                                                                         | `102290129340398` |
| `&lt;BUSINESS_PHONE_NUMBER&gt;` *String*    | The business customer’s business phone number.                                                                                                                                                                                                | `15550783881`     |
| `&lt;BUSINESS_PHONE_NUMBER_ID&gt;` *String* | The business customer’s business phone number ID.                                                                                                                                                                                             | `106540352242922` |
| `&lt;CONTACT_FULL_NAME&gt;` *String*        | The contact’s full name, as it appears in the business customer’s WhatsApp Business app phone address book.<br />Not included when the business customer removes a contact from their WhatsApp Business app phone address book.               | `Pablo Morales`   |
| `&lt;CONTACT_FIRST_NAME&gt;` *String*       | The contact’s first name, as it appears in the business customer’s WhatsApp Business app phone address book.<br />Not included when the business customer removes a contact from their WhatsApp Business app phone address book.              | `Pablo`           |
| `&lt;CONTACT_PHONE_NUMBER&gt;` *String*     | The contact’s WhatsApp phone number.                                                                                                                                                                                                          | `16505551234`     |
| `&lt;ACTION&gt;` *String*                   | Indicates if the business customer added, edited, or deleted a contact from their WhatsApp Business app phone address book. Values can be:<br />`add` — the business added or edited a contact<br />`remove` — the business removed a contact | `add`             |
| `&lt;CONTACT_CHANGE_TIMESTAMP&gt;` *String* | Unix timestamp indicated when the contact was added, edited, or removed.                                                                                                                                                                      | `1738346006`      |

### smb\_message\_echoes

Describes a message sent by a business customer to a WhatsApp user with the WhatsApp Business app or supported [companion device](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users#linked-devices).

#### Trigger events

A business customer uses the WhatsApp Business app or supported companion device to message a WhatsApp user.

#### Payload syntax

```
\{
  "object": "whatsapp_business_account",
  "entry": [\
    {\
      "id": "&lt;WABA_ID&gt;",\
      "changes": [\
        {\
          "value": {\
            "messaging_product": "whatsapp",\
            "metadata": {\
              "display_phone_number": "&lt;BUSINESS_PHONE_NUMBER&gt;",\
              "phone_number_id": "&lt;BUSINESS_PHONE_NUMBER_ID&gt;"\
            },\
            "message_echoes": [\
              {\
                "from": "&lt;BUSINESS_PHONE_NUMBER&gt;",\
                "to": "&lt;WHATSAPP_USER_PHONE_NUMBER&gt;",\
                "id": "&lt;WHATSAPP_MESSAGE_ID&gt;",\
                "timestamp": "&lt;WEBHOOK_TIMESTAMP&gt;",\
                "type": "&lt;MESSAGE_TYPE&gt;",\
                "&lt;MESSAGE_TYPE&gt;": {\
                  &lt;MESSAGE_CONTENTS&gt;\
                }\
              }\
            ]\
          },\
          "field": "smb_message_echoes"\
        }\
      ]\
    }\
  ]
}
```

#### Payload contents

| Placeholder                                        | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                | Example value                                                                   |
| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `&lt;WABA_ID&gt;`<br />*String*                    | The business customer’s WhatsApp Business Account ID.                                                                                                                                                                                                                                                                                                                                                                                                      | `102290129340398`                                                               |
| `&lt;BUSINESS_PHONE_NUMBER&gt;`<br />*String*      | The business customer’s business phone number.                                                                                                                                                                                                                                                                                                                                                                                                             | `15550783881`                                                                   |
| `&lt;BUSINESS_PHONE_NUMBER_ID&gt;`<br />*String*   | The business customer’s business phone number ID.                                                                                                                                                                                                                                                                                                                                                                                                          | `106540352242922`                                                               |
| `&lt;WHATSAPP_USER_PHONE_NUMBER&gt;`<br />*String* | The WhatsApp user’s phone number.                                                                                                                                                                                                                                                                                                                                                                                                                          | `16505551234`                                                                   |
| `&lt;WHATSAPP_MESSAGE_ID&gt;`<br />*String*        | WhatsApp message ID.                                                                                                                                                                                                                                                                                                                                                                                                                                       | `wamid.HBgLMTY0NjcwNDM1OTUVAgARGBIyNDlBOEI5QUQ4NDc0N0FCNjMA`                    |
| `&lt;WEBHOOK_TIMESTAMP&gt;`<br />*String*          | Unix timestamp indicated when the webhook was triggered.                                                                                                                                                                                                                                                                                                                                                                                                   | `1738796547`                                                                    |
| `&lt;MESSAGE_TYPE&gt;`<br />*String*               | [Message type](https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/send-messages#message-types). 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`                                                                          |
| `&lt;MESSAGE_CONTENTS&gt;`<br />*Object*           | An object describing the message’s contents.<br />This value will vary based on the message `type`, as well as the contents of the message.<br />For example, if a business sends an `image` message without a caption, the object would not include the `caption` property.<br />See [Sending messages](https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/send-messages) for examples of payloads for each message type. | `{"body":"Here's the info you requested! https://www.meta.com/quest/quest-3/"}` |

#### Example payload

This example payload describes a text message (`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"\
        }\
      ]\
    }\
  ]
}
```

## Need support?

For Coexistence *onboarding*, choose:

Question Topic: “WABiz: Onboarding” and “TechProvider: Onboarding”
Request Type: “Embedded Signup - Coexistence Onboarding”

For Coexistence *API issues*, choose:

Question Topic: “WABiz: Cloud API”
Request Type: “Coexistence Data Synchronization APIs and Webhooks”

Did you find this page helpful?

![Thumbs up icon](https://static.xx.fbcdn.net/rsrc.php/yR/r/OEXJ0_DJeZv.svg)

![Thumbs down icon](https://static.xx.fbcdn.net/rsrc.php/yb/r/qKPgNVNeatU.svg)

ON THIS PAGE

How it works

Requirements

Limitations

Unsupported countries

Pricing

Customer service window

Feature comparison

Linked devices

Setting up your app

Step 1: Subscribe to webhooks

Step 2: Customize Embedded Signup

Step 3: Surface Embedded Signup to customers

Onboarding business customers

Check onboarding status (optional)

Synchronizing WhatsApp Business app data

Step 1: Initiate contacts synchronization

Example request

Example response

Step 2: Initiate message history synchronization

Messaging history shared

Messaging history not shared

Example request

Example response

Step 3: Mirror new WhatsApp Business app messages

Reporting conversion activity

Offboarding business customers

Errors

Webhooks

account\_update

Trigger events

Payload syntax

Example payload

Edit

Trigger events

Syntax

Parameters

Example

Revoke

Trigger events

Syntax

Parameters

Example

History

Trigger events

Chat history contents

Phases and chunks

Payload syntax — chat history sharing approved

Payload contents — chat history sharing approved

Example payload — chat history sharing approved

Example payload for media message asset

Payload syntax — chat history sharing declined

Example payload — chat history sharing declined

smb\_app\_state\_sync

Trigger events:

Payload syntax

Payload contents

smb\_message\_echoes

Trigger events

Payload syntax

Payload contents

Example payload

Need support?

***
