# Embedded Signup

# Embedded Signup | Developer Documentation

<div id="bkmrk-embedded-signupupdat">## Embedded Signup

<div><span>Updated: Nov 25, 2025</span></div><div>Embedded Signup is an authentication and authorization desktop- and mobile-compatible interface that makes it easy for your business customers to generate the assets you will need to successfully onboard them to the WhatsApp Business Platform.</div><div>The Embedded Signup flow gathers business-related information from your business customers, automatically generates all WhatsApp assets needed by the platform, and grants your app access to these assets, so you can quickly provide your business customers with WhatsApp messaging services.</div><div id="bkmrk-how-it-works"><div id="bkmrk-how-it-works-1"><div>### How it works

</div></div></div><div>Embedded Signup leverages the Facebook Login for Business product and our JavaScript SDK. Once configured, you can add a link or button to your website or portal that launches the flow.</div><div>Business customers who click the link or button will be presented with a new window where they can:</div>
<span>authenticate their identity using their Facebook or Meta Business Credentials</span><span>accept terms of service for Cloud API, WhatsApp Business, Meta, Marketing Messages Lite API and Meta Business Tool Terms</span><span>select multiple WhatsApp APIs and accept terms of service</span><span>grant your app access to their WhatsApp assets</span><span>select an existing business portfolio or create a new one</span><span>select an existing WhatsApp Business Account (WABA) or create a new one</span><span>enter and verify their business phone number (their own, or one you have provided)</span><span>enter a display name that can appear in place of their number in the WhatsApp client</span><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-mbyd2sqc.png)</div><div>Upon successful completion, Embedded Signup returns the customer’s WABA ID, business phone number ID, and an exchangeable token code, to the window that spawned the flow. You must send this data to your server and use it in a server-to-server call to:</div>
<span>exchange the code for a customer-scoped business token</span><span>register the customer’s business phone number for Cloud API use</span><span>subscribe your app to webhooks on the customer’s WABA</span><span>share your credit line with the customer (Solution Partners only)</span><div>When these steps are complete, if you are a Solution Partner or are partnered with one, the customer can begin using your or your partner’s app for messaging immediately. If you are not a Solution Partner, or not partnered with one, the customer must first attach a payment method to their WABA before they can begin messaging.</div><div><span></span><div>We’re testing a new experience in the Embedded Signup flow for all versions. The flow itself is unchanged, but after completion, you may see a new **View your setup guide** button. Clicking it will take you to a new setup guidance page in WhatsApp Manager, which offers next steps on:</div>
<span>Business verification</span><span>Resolving integrity issues and accessing Business Support Home</span><span>Sending the first message via a partner solution</span><span>Sending business-initiated messages using templates</span></div><div id="bkmrk-asset-ownership"><div id="bkmrk-asset-ownership-1"><div>### Asset ownership

</div></div></div><div>Business customers onboarded via Embedded Signup own all of their WhatsApp assets, which they can leverage with other Meta solutions such as [Ads that Click to WhatsApp<span>⁠</span>](https://www.facebook.com/business/help/447934475640650).</div><div>Business customers also have full access to [WhatsApp Manager<span>⁠</span>](https://business.facebook.com/wa/manage/), which they can use to access their assets. Note that you cannot restrict this access in any way. Refer to available assets [here](/books/meta-whatsapp/page/version-4-developer-documentation).</div><div id="bkmrk-limitations"><div id="bkmrk-limitations-1"><div>### Limitations

</div></div></div><div id="bkmrk-onboarding-limits"><div id="bkmrk-onboarding-limits-1"><div>#### Onboarding limits

</div></div></div><div>By default, you can onboard up to 10 new business customers in a rolling 7-day window. Only newly onboarded customers count against this limit. You can see your current onboarded customer count in the **WhatsApp Manager** &gt; **Partner overview** panel. You will be notified by email if you approach this limit.</div><div>If you complete Business Verification, App Review, and Access Verification, we will automatically increase your limit to 200 new business customers in a rolling 7-day window. If you need to onboard more than 200 customers per week, apply to become a [Meta Business Partner<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Fbusiness.whatsapp.com%2Fpartners%2Fbecome-a-partner&h=AT58x3ruMttrkL_YWd9qHZ2O9KRHZQ07hmChYIj_twmiC2juOO7XNKvtkKCussoVbwQdJQkkEHyKuDOf23eNMMbhjO8cS1L9Urb1foi3yEG0qR5Y-aJCvWMkZZzsDSv-7sGv6bhJ2kWXMFPMQRJF-w).</div><div>**Note:** Existing WhatsApp Business Accounts (WABAs) that were originally created via the developer app cannot be selected or onboarded directly through the Embedded Signup flow.</div><div id="bkmrk-business-customer-me"><div id="bkmrk-business-customer-me-1"><div>#### Business customer messaging limits

</div></div></div><div>Business customers onboarded via Embedded Signup start with standard [messaging limits](/books/meta-whatsapp/page/messaging-limits-developer-documentation), which can be increased through API usage.</div><div id="bkmrk-business-customer-ph"><div id="bkmrk-business-customer-ph-1"><div>#### Business customer phone number limits

</div></div></div>
<span>Business phone numbers can only be registered for use with Cloud API.</span><span>Business phone numbers already in use with the [WhatsApp Business app<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Fbusiness.whatsapp.com%2Fproducts%2Fbusiness-app&h=AT58x3ruMttrkL_YWd9qHZ2O9KRHZQ07hmChYIj_twmiC2juOO7XNKvtkKCussoVbwQdJQkkEHyKuDOf23eNMMbhjO8cS1L9Urb1foi3yEG0qR5Y-aJCvWMkZZzsDSv-7sGv6bhJ2kWXMFPMQRJF-w) are supported, but require you customize the flow to enable [WhatsApp Business app user onboarding](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation) (aka “Coexistence”).</span><span>Business customers onboarded via Embedded Signup start with default [messaging limits](/books/meta-whatsapp/page/messaging-limits-developer-documentation).</span><div id="bkmrk-cloud-api-flow"><div id="bkmrk-cloud-api-flow-1"><div>### Cloud API flow

</div></div></div><div>See [Cloud API Flow](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation) for descriptions of each screen that your business customers will be presented with as part of the default implementation of Embedded Signup.</div><div>Note that if you know information about your customer’s business, you can [inject this data](/documentation/business-messaging/whatsapp/embedded-signup/pre-filled-data), which can significantly reduce the number of screens that your customers have to interact with.</div><div id="bkmrk-access-tokens"><div id="bkmrk-access-tokens-1"><div>### Access tokens

</div></div></div><div>Embedded Signup generates [business tokens](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation). When a business customer completes the Embedded Signup flow, an exchangeable token code will be returned as a message event and captured by the JavaScript SDK. You must exchange this code for a business token using a server-to-server call.</div><div>If you are a Tech Provider, you will use business tokens exclusively.</div><div>If you are a Solution Partner, you will use your [system user access token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation) (“system token”) to share your credit line with onboarded business customers, and business tokens for everything else. Note that the system user who the token represents must have granted your app the **business\_management** permission, and must have been granted an **Admin** or **Financial Editor** role on your business portfolio, in order to be able to share your credit line.</div><div id="bkmrk-permissions"><div id="bkmrk-permissions-1"><div>### Permissions

</div></div></div><div>Embedded Signup can be configured to support business messaging products for your customers. If you are only interested in the Cloud API flow you are likely only going to need:</div>
<span>**whatsapp\_business\_management** — necessary if your app needs access to onboarded customer WhatsApp Business Account settings and message templates.</span><span>**whatsapp\_business\_messaging** — necessary if your app needs access to onboarded customer business phone number settings, or if your app will be used by customers to send and receive messages.</span><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-7emotxze.png)</div><div>You can specify which permissions your app needs during the [implementation](/books/meta-whatsapp/page/implementation-developer-documentation) process.</div><div>Note that while your app is in development mode, these permissions will appear in Embedded Signup’s [authorization screen](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation) to anyone who has an **admin**, **developer**, or **tester** role on your app. However, once you switch your app to live mode, only permissions that have been approved for advanced access through the [App Review](/books/meta-whatsapp/page/app-review-developer-documentation) process will appear in the flow.</div><div id="bkmrk-billing"><div id="bkmrk-billing-1"><div>### Billing

</div></div></div><div id="bkmrk-solution-partners"><div id="bkmrk-solution-partners-1"><div>#### Solution Partners

</div></div></div><div>If you are a Solution Partner, you must already have a [line of credit<span>⁠</span>](https://www.facebook.com/business/help/1684730811624773?id=2129163877102343) and have accepted the Credit Allocation API terms in the **Business Settings** &gt; **Payments** panel in the Meta Business Suite. In addition, you must share your line of credit with any customers as part of the onboarding process.</div><div id="bkmrk-tech-providers-and-t"><div id="bkmrk-tech-providers-and-t-1"><div>#### Tech Providers and Tech Partners

</div></div></div><div>If you are a Tech Provider or Tech Partner, your onboarded business customers must add a payment method to their WhatsApp Business Account. They can do this by following the steps described in our [Add a credit card to your WhatsApp Business Platform account<span>⁠</span>](https://www.facebook.com/business/help/488291839463771) Help Center article.</div><div id="bkmrk-sandbox-accounts"><div id="bkmrk-sandbox-accounts-1"><div>### Sandbox accounts

</div></div></div><div>You can test the Embedded Signup flow using your own Facebook account, but this can result in additional business portfolios, WABAs, and business phone numbers. If you don’t want to clutter your Facebook account with test data, you can claim a sandbox test account instead, and use it to simulate a business customer completing the flow.</div><div>When you complete the flow using the sandbox account, the sandbox account’s [WABA ID, business phone number ID](/books/meta-whatsapp/page/implementation-developer-documentation), and an [exchangeable token code](/books/meta-whatsapp/page/implementation-developer-documentation) will be returned, just as if it were a real customer completing the flow.</div><div id="bkmrk-sandbox-account-limi"><div id="bkmrk-sandbox-account-limi-1"><div>#### Sandbox account limitations

</div></div></div>
<span>Sandbox accounts are valid for 30 days, after which they will be deactivated and must be reclaimed in order to be used again.</span><span>The sandbox account cannot be used to create additional sandbox business portfolios, WABAs, or business phone numbers; the assets are generated automatically and will appear in the Embedded Signup flow.</span><span>The sandbox account is associated with the app’s admin. In order for the sandbox account’s assets to appear in the Embedded Signup flow, the app admin must be signed into their Meta developer account.</span><span>The sandbox account’s business portfolio will not appear in the Meta Business Suite or WhatsApp Manager</span><span>You can exchange the returned token code for the sandbox account’s business token and use it to get data on the account’s WABA ID, but the business phone number cannot be used to send or receive messages.</span><div id="bkmrk-claiming-sandbox-acc"><div id="bkmrk-claiming-sandbox-acc-1"><div>#### Claiming sandbox accounts

</div></div></div><div>To claim your sandbox account:</div>
<span>Navigate to the [App Dashboard](/apps) &gt; **WhatsApp** &gt; **Quickstart** panel.</span><span>Locate the **Testing Integrations** section.</span><span>Click the **Claim sandbox account** button.</span><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-5ce9yxvw.png)</div><div id="bkmrk-deleting-sandbox-acc"><div id="bkmrk-deleting-sandbox-acc-1"><div>#### Deleting sandbox accounts

</div></div></div><div><span></span><div>Sandbox account deletion is being released gradually over several weeks, starting June 25, 2025.</div></div><div>If you are done testing and want to keep your testing environment clean, you can delete your sandbox account. Deleting a sandbox account is irreversible and removes all associated test data. If you accidentally delete your sandbox account but need to test again, you must claim a new one.</div><div>To delete your sandbox account:</div>
<span>Navigate to the [App Dashboard](/apps) &gt; **WhatsApp** &gt; **Quickstart** panel.</span><span>Locate the **Testing Integrations** section, then locate your sandbox account.</span><span>Click your sandbox account’s **Delete account** button.</span><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-fikyapup.png)</div><div id="bkmrk-555-business-phone-n"><div id="bkmrk-555-business-phone-n-1"><div>### 555 business phone numbers

</div></div></div><div>Business customers can claim up to two 555 business phone numbers. These numbers behave the same way as standard business phone numbers (subject to pricing rules, impacted by quality ratings, etc.), but must have their display names approved before they can be used to send messages. In addition, 555 numbers:</div>
<span>Have a US country calling code (+1)</span><span>Have a 555 area code</span><span>Are verified automatically</span><span>Cannot be migrated to another WhatsApp Business Account, or used outside of the WhatsApp Business platform</span><div>If your business customers are eligible for 555 numbers, the [phone number addition screen](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation) will automatically give them the option to choose a 555 number:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-tzusj1gv.png)</div><div id="bkmrk-whatsapp-asset-migra"><div id="bkmrk-whatsapp-asset-migra-1"><div>### WhatsApp Asset migration

</div></div></div><div>Embedded Signup can be used to migrate onboarded business customer assets in several ways. See [Migrating business customer assets](/documentation/business-messaging/whatsapp/solution-providers/support#migrating-business-customer-assets).</div><div id="bkmrk-app-review"><div id="bkmrk-app-review-1"><div>### App Review

</div></div></div><div>You will not be able to onboard business customers until your app has been approved for **advanced access** for each of the permissions it requires.</div><div>See [App Review](/books/meta-whatsapp/page/app-review-developer-documentation) to learn more about App Review and what you must provide in order to complete the process successfully.</div><div id="bkmrk-embedded-signup-inte"><div id="bkmrk-embedded-signup-inte-1"><div>### Embedded Signup Integration Helper

</div></div></div><div>The Embedded Signup Integration Helper is a setup and testing tool within the App Dashboard. The tool allows you to:</div>
<span>launch Embedded Signup in various flow configurations</span><span>see data that gets returned when a business customer completes the flow</span><span>generate implementation code and onboarding queries, which you can copy and paste into your website, business customer portal, and server</span><span>send API queries to endpoints you will need to use when onboarding customers who complete the flow</span><div>You can access the integration helper by navigating to **App Dashboard** &gt; **WhatsApp** &gt; **Embedded Signup Builder**.</div><div>**Note:** The Embedded Signup Integration Helper is available only for Business-type apps. You can view your app type at the top of the app dashboard.</div><div id="bkmrk-localization"><div id="bkmrk-localization-1"><div>### Localization

</div></div></div><div>The Embedded Signup flow is available in 30 languages. The localized flow is automatically triggered based on the language that the business customer uses Facebook in.</div><div>Arabic, Czech, Danish, Greek, English (UK), Spanish (Spain), Spanish, Finnish, French (France), Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Norwegian (bokmal), Dutch, Polish, Portuguese (Brazil), Portuguese (Portugal), Romanian, Russian, Swedish, Thai, Turkish, Vietnamese, Simplified Chinese (China), Traditional Chinese (Hong Kong), Traditional Chinese (Taiwan).</div><div id="bkmrk-next-steps"><div id="bkmrk-next-steps-1"><div>### Next steps

</div></div></div><div>Learn how to [implement Embedded Signup](/books/meta-whatsapp/page/implementation-developer-documentation) into your website or portal.</div></div>

# Implementation | Developer Documentation

<div id="bkmrk-implementationupdate">## Implementation

<div><span>Updated: Mar 25, 2026</span></div><div>This document explains how to implement Embedded Signup v4 and capture the data it generates to [onboard business customers](#bkmrk-onboarding-business--1) onto the WhatsApp Business Platform.</div><div id="bkmrk-before-you-start"><div id="bkmrk-before-you-start-1"><div>### Before you start

</div></div></div><span>You must already be a [Solution Partner](/books/meta-whatsapp/page/get-started-as-a-solution-partner-developer-documentation) or [Tech Provider](/books/meta-whatsapp/page/become-a-tech-provider-developer-documentation).</span><span>If your business customers will be using your app to send and receive messages, you should already know how to use the API to send and receive messages using your own WhatsApp Business Account and business phone numbers. You should also know how to create and manage templates and have a webhooks callback endpoint properly set up to digest webhooks.</span><span>You must be subscribed to the [account\_update](/documentation/business-messaging/whatsapp/webhooks/reference/account_update) webhook, as this webhook is triggered whenever a customer successfully completes the Embedded Signup flow, and contains their business information that you will need.</span><span>If you are a Solution Partner, you must already have a [line of credit<span>?</span>](https://www.facebook.com/business/help/1684730811624773?id=2129163877102343).</span><span>The server where you will be hosting Embedded Signup must have a valid SSL certificate.</span><div id="bkmrk-step-1%3A-add-allowed-"><div id="bkmrk-step-1%3A-add-allowed--1"><div>### Step 1: Add allowed domains

</div></div></div><div>Load your app in the [App Dashboard](/apps) and navigate to **Facebook Login for Business** &gt; **Settings** &gt; **Client OAuth settings**:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-s9qusvek.png)</div><div>Set the following toggles to **Yes**:</div><span>**Client OAuth login**</span><span>**Web OAuth login**</span><span>**Enforce HTTPS**</span><span>**Embedded Browser OAuth Login**</span><span>**use Strict Mode for redirect URIs**</span><span>**Login with the JavaScript SDK**</span><div>Embedded Signup relies on the JavaScript SDK. When a business customer completes the Embedded Signup flow, the customer's WABA ID, business phone number ID, and an exchangeable token code will be returned to the window that spawned the flow, but only if the domain of the page that spawned the flow is listed in the **Allowed domains** and **Valid OAuth redirect URIs** fields.</div><div>Add any domains where you plan to host Embedded Signup, including any development domains where you will be testing the flow, to these fields. Only domains that have enabled **HTTPS** are supported.</div><div id="bkmrk-step-2%3A-create-a-fac"><div id="bkmrk-step-2%3A-create-a-fac-1"><div>### Step 2: Create a Facebook Login for Business configuration

</div></div></div><div>A Facebook Login for Business configuration defines which permissions to request, and what additional information to collect, from business customers who access Embedded Signup.</div><div>Navigate to **Facebook Login for Business** &gt; **Configurations**:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-yl3xedik.png)</div><div>Click the **Create from template** button and create a configuration from the **WhatsApp Embedded Signup Configuration With 60 Expiration Token** template. This will generate a configuration for the most commonly used permissions and access levels.</div><div>Alternatively, you create a custom configuration. To do this, in the **Configurations** panel, click the **Create configuration** button and provide a name that will help you differentiate the custom configuration from any others you may create in the future. When completing the flow, be sure to select the **WhatsApp Embedded Signup** login variation:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-dt6zpe3b.png)</div><div>Select your products you want to onboard for this configuration.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-qlqmpjeg.png)</div><div>When choosing assets and permissions, select only those assets and permissions that you will actually need from your business customers. Assets that are already selected are added by default.</div><div>For example, if you select the **Catalogs** asset but don't actually need access to customer catalogs, your customers will likely abandon the flow at the catalog selection screen and ask you for clarification.</div><div>When you complete the configuration flow, capture your configuration ID, as you will need it in the next step.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-qjgnsbex.png)</div><div id="bkmrk-step-3%3A-add-embedded"><div id="bkmrk-step-3%3A-add-embedded-1"><div>### Step 3: Add Embedded Signup to your website

</div></div></div><div>Add the following HTML and JavaScript code to your website. This is the complete code needed to implement Embedded Signup. Each portion of the code will be explained in detail below.</div><div id="bkmrk-session-logging-mess"><div id="bkmrk-session-logging-mess-1"><div>#### Session logging message event listener

</div></div></div><div>This portion of the code creates a message event listener that captures the following critical information:</div><span>The business customer's newly generated asset IDs, if they successfully completed the flow</span><span>The name of the screen they abandoned, if they abandoned the flow</span><span>An error ID, if they encountered an error and used the flow to report it</span><div>```
// Session logging message event listener
window.addEventListener('message', (event) => {
  if (!event.origin.endsWith('facebook.com')) return;
  try {
    const data = JSON.parse(event.data);
    if (data.type === 'WA_EMBEDDED_SIGNUP') {
      console.log('message event: ', data); // remove after testing
      // your code goes here
    }
  } catch {
    console.log('message event: ', event.data); // remove after testing
    // your code goes here
  }
});

```

</div><div>This information will be sent in a message event object to the window that spawned the flow and will be assigned to the data constant. **Add your own custom code to the try-catch statement that can send this object to your server.** The object structure will vary based on flow completion, abandonment, or error reporting, as described below.</div><div>**Successful flow completion structure:**</div><div>On the final screen, both clicking **Finish** and closing the popup (for example, by clicking the X button) are considered successful onboarding. In both scenarios, the exchangeable token code and the session info object containing the customer's asset IDs will be returned. Exiting on the final screen is not considered a cancel event.</div><div><div>```
{
  data: {
    phone_number_id: '<CUSTOMER_BUSINESS_PHONE_NUMBER_ID>',
    waba_id: '<CUSTOMER_WABA_ID>',
    business_id: '<CUSTOMER_BUSINESS_PORTFOLIO_ID>',

    <!-- only included if customer selected ad accounts -->
    ad_account_ids: ['<CUSTOMER_AD_ACCOUNT_ID_1>', '<CUSTOMER_AD_ACCOUNT_ID_2>'],

    <!-- only included if customer selected Facebook Pages -->
    page_ids: ['<CUSTOMER_PAGE_ID_1>', '<CUSTOMER_PAGE_ID_2>'],

    <!-- only included if customer selected datasets -->
    dataset_ids: ['<CUSTOMER_DATASET_ID_1>', '<CUSTOMER_DATASET_ID_2>'],

    <!-- only included if customer selected catalogs -->
    catalog_ids: ['<CUSTOMER_CATALOG_ID_1>', '<CUSTOMER_CATALOG_ID_2>'],

    <!-- only included if customer selected Instagram accounts -->
    instagram_account_ids: ['<CUSTOMER_IG_ACCOUNT_ID_1>', '<CUSTOMER_IG_ACCOUNT_ID_2>'],

    <!-- only included for multi-WABA flows -->
    waba_ids: ['<CUSTOMER_WABA_ID_1>', '<CUSTOMER_WABA_ID_2>']
  },
  type: 'WA_EMBEDDED_SIGNUP',
  event: '<FLOW_FINISH_TYPE>',
}
```

</div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<CUSTOMER_BUSINESS_PHONE_NUMBER_ID>`</div></div></td><td><div><div>The business customer's business phone number ID</div></div></td><td><div><div>`106540352242922`</div></div></td></tr><tr><td><div><div>`<CUSTOMER_WABA_ID>`</div></div></td><td><div><div>The business customer's WhatsApp Business Account ID.</div></div></td><td><div><div>`524126980791429`</div></div></td></tr><tr><td><div><div>`<CUSTOMER_BUSINESS_PORTFOLIO_ID>`</div></div></td><td><div><div>The business customer's business portfolio ID.</div></div></td><td><div><div>`2729063490586005`</div></div></td></tr><tr><td><div><div>`<CUSTOMER_AD_ACCOUNT_ID>`</div></div></td><td><div><div>Only included if the customer selected ad accounts during the flow. The business customer's ad account ID.</div></div></td><td><div><div>`4052175343162067`</div></div></td></tr><tr><td><div><div>`<CUSTOMER_PAGE_ID>`</div></div></td><td><div><div>Only included if the customer selected Facebook Pages during the flow. The business customer's Facebook Page ID.</div></div></td><td><div><div>`1791141545170328`</div></div></td></tr><tr><td><div><div>`<CUSTOMER_DATASET_ID>`</div></div></td><td><div><div>Only included if the customer selected datasets during the flow. The business customer's dataset ID.</div></div></td><td><div><div>`524126980791429`</div></div></td></tr><tr><td><div><div>`<CUSTOMER_CATALOG_ID>`</div></div></td><td><div><div>Only included if the customer selected catalogs during the flow. The business customer's catalog ID.</div></div></td><td><div><div>`8827498273649182`</div></div></td></tr><tr><td><div><div>`<CUSTOMER_IG_ACCOUNT_ID>`</div></div></td><td><div><div>Only included if the customer selected Instagram accounts during the flow. The business customer's Instagram account ID.</div></div></td><td><div><div>`1749204838281942`</div></div></td></tr><tr><td><div><div>`<CUSTOMER_WABA_ID>` (in `waba_ids` array)</div></div></td><td><div><div>Only included for multi-WABA flows. Array of the business customer's WhatsApp Business Account IDs.</div></div></td><td><div><div>`524126980791429`</div></div></td></tr><tr><td><div><div>`<FLOW_FINISH_TYPE>`</div></div></td><td><div><div>Indicates the customer successfully completed the flow.</div><div>**Possible Values:**</div><span>`FINISH`: Indicates successful completion of [Cloud API flow](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation).</span><span>`FINISH_ONLY_WABA`: Indicates user completed flow [without a phone number](/books/meta-whatsapp/page/bypassing-the-phone-number-addition-screen-developer-documentation).</span><span>`FINISH_WHATSAPP_BUSINESS_APP_ONBOARDING`: Indicates user completed flow [with a WhatsApp business app number](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation).</span><span>`FINISH_OBO_MIGRATION`: Indicates user completed an on-behalf-of migration flow.</span><span>`FINISH_GRANT_ONLY_API_ACCESS`: Indicates user completed a grant-only API access flow.</span><span>`ERROR`: Indicates the user encountered an error during the flow.</span></div></td><td><div><div>`FINISH`</div></div></td></tr></tbody></table>

</div><div>Abandoned flow structure:</div><div><div>```
{
  data: {
    current_step: '<CURRENT_STEP>',
  },
  type: 'WA_EMBEDDED_SIGNUP',
  event: 'CANCEL',
}
```

</div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<CURRENT_STEP>`</div></div></td><td><div><div>Indicates which screen the business customer was viewing when they abandoned the flow. See [Embedded Signup flow errors](/documentation/business-messaging/whatsapp/embedded-signup/errors) for a description of each step.</div></div></td><td><div><div>`PHONE_NUMBER_SETUP`</div></div></td></tr></tbody></table>

</div><div>User reported errors</div><div><div>```
{
  data: {
    error_message: '<ERROR_MESSAGE>',
    error_code: '<ERROR_CODE>',
    session_id: '<SESSION_ID>',
    timestamp: '<TIMESTAMP>',
  },
  type: 'WA_EMBEDDED_SIGNUP',
  event: 'CANCEL',
}
```

</div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<ERROR_MESSAGE>`</div></div></td><td><div><div>The error description text displayed to the business customer in the Embedded Signup flow. See [Embedded Signup flow errors](/documentation/business-messaging/whatsapp/embedded-signup/errors) for a list of common errors.</div></div></td><td><div><div>Your verified name violates WhatsApp guidelines. Please edit your verified name and try again.</div></div></td></tr><tr><td><div><div>`<ERROR_CODE>`</div></div></td><td><div><div>Error code. Include this value if you contact support.</div></div></td><td><div><div>`524126`</div></div></td></tr><tr><td><div><div>`<SESSION_ID>`</div></div></td><td><div><div>Unique session ID generated by Embedded Signup. Include this ID if you contact support.</div></div></td><td><div><div>`f34b51dab5e0498`</div></div></td></tr><tr><td><div><div>`<TIMESTAMP>`</div></div></td><td><div><div>Unix timestamp indicating when the business customer used Embedded Signup to report the error. Include this value if you are contacting support.</div></div></td><td><div><div>`1746041036`</div></div></td></tr></tbody></table>

</div><div>Parse this object on your server to extract and capture the customer's phone number ID and WABA ID, or to determine which screen they abandoned. See [Abandoned flow screens](/documentation/business-messaging/whatsapp/embedded-signup/errors#abandoned-flow-screens) for a list of possible `<CURRENT_STEP>` values and the screens they correspond to.</div><div>Note that the try-catch statement in the code above has two statements that can be used for testing purposes:</div><div>```
console.log('message event: ', data); // remove after testing

console.log('message event: ', event.data); // remove after testing

```

</div><div>These statements just dump the returned phone number and WABA IDs, or the abandoned screen string, to the JavaScript console. You can leave this code in place and keep the console open to easily see what gets returned when you are testing the flow, but you should remove them when you are done testing.</div><div id="bkmrk-response-callback"><div id="bkmrk-response-callback-1"><div>#### Response callback

</div></div></div><div>Whenever a business customer successfully completes the Embedded Signup flow, we will send an exchangeable token code in a [JavaScript response<span>?</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FAPI%2FResponse&h=AT7nB7RrhSvturBcaku2bbnsOUv9cPFSLRQAO1DJNe6zogToTX_p4GISb8epgn6o6OyE7li81jcp3lLzodFFePdsUBoxi1yMR_4b2G-lZWM7Lx0EpZqTcceMS4D_kZaWwZ6mHzPYBPy_QitYQtjeLw) to the window that spawned the flow.</div><div>```
// Response callback
const fbLoginCallback = (response) => {
  if (response.authResponse) {
    const code = response.authResponse.code;
    console.log('response: ', code); // remove after testing
    // your code goes here
  } else {
    console.log('response: ', response); // remove after testing
    // your code goes here
  }
}

```

</div><div>The callback function assigns the exchangeable token code to a `code` constant.</div><div>**Add your own, custom code to the if-else statement that sends this code to your server** so you can later exchange it for the customer's business token when you [onboard the business customer](#bkmrk-onboarding-business--1).</div><div>Note that the if-else statement in the code above has two statements that can be used for testing purposes:</div><div>```
console.log('response: ', code); // remove after testing

console.log('response: ', response); // remove after testing

```

</div><div>These statements just dump the code or the raw response to the JavaScript console. You can leave this code in place and keep the console open to easily see what gets returned when you are testing the flow, but you should remove them when you are done testing.</div><div id="bkmrk-launch-method-and-ca"><div id="bkmrk-launch-method-and-ca-1"><div>#### Launch method and callback registration

</div></div></div><div>This portion of the code defines a method which can be called by an `onclick` event that registers the response callback from the previous step and launches the Embedded Signup flow.</div><div>Add your configuration ID here.</div><div>```
// Launch method and callback registration
const launchWhatsAppSignup = () => {
  FB.login(fbLoginCallback, {
    config_id: '<CONFIGURATION_ID>', // your configuration ID goes here
    response_type: 'code',
    override_default_response_type: true,
    extras: {
      setup: {},
    }
  });
}

```

</div><div id="bkmrk-launch-button"><div id="bkmrk-launch-button-1"><div>#### Launch button

</div></div></div><div>This portion of the code defines a button that calls the launch method from the previous step when clicked by the business customer.</div><div><div>```
<!-- Launch button -->
<button onclick="launchWhatsAppSignup()" style="background-color: #1877f2; border: 0; border-radius: 4px; color: #fff; cursor: pointer; font-family: Helvetica, Arial, sans-serif; font-size: 16px; font-weight: bold; height: 40px; padding: 0 24px;">Login with Facebook</button>
```

</div></div><div id="bkmrk-testing"><div id="bkmrk-testing-1"><div>### Testing

</div></div></div><div>Once you have completed all of the implementation steps above, you should be able to test the flow by simulating a business customer while using your own Meta credentials. Anyone who you have added as an admin or developer on your app (in the **App Dashboard** &gt; **App roles** &gt; **Roles** panel) can also begin testing the flow, using their own Meta credentials.</div><div id="bkmrk-onboarding-business-"><div id="bkmrk-onboarding-business--1"><div>### Onboarding business customers

</div></div></div><div>Embedded Signup generates assets for your business customers, and grants your app access to those assets. However, you still need to make a series of API calls to fully onboard new business customers who have completed the flow.</div><div>The API calls you must make to onboard customers are different for Solution Partners and Tech Providers/Tech Partners.</div><span>[Onboarding customers as a Solution Partner](/books/meta-whatsapp/page/onboarding-business-customers-as-a-solution-partner-developer-documentation)</span><span>[Onboarding customers as a Tech Provider](/books/meta-whatsapp/page/onboarding-business-customers-as-a-tech-provider-or-tech-partner-developer-documentation)</span></div>

# Onboarding business customers as a Tech Provider or Tech Partner | Developer Documentation

<div id="bkmrk-onboarding-business-">## Onboarding business customers as a Tech Provider or Tech Partner

<div><span>Updated: Nov 14, 2025</span></div><div>This document describes the steps Tech Providers and Tech Partners must perform to onboard new business customers who have completed the Embedded Signup flow.</div><div>If you are a Tech Provider or Tech Partner, any business customer who completes your implementation of the Embedded Signup flow will not be able to use your app to access their WhatsApp assets or send and receive messages (if you are offering messaging services) until you complete these steps.</div><div id="bkmrk-what-you-will-need"><div id="bkmrk-what-you-will-need-1"><div>### What you will need

</div></div></div><span>the business customer’s WABA ID (returned via [session logging](/books/meta-whatsapp/page/implementation-developer-documentation) or [API request](/books/meta-whatsapp/page/managing-whatsapp-business-accounts-developer-documentation))</span><span>the business customer’s business phone number ID (returned via [session logging](/books/meta-whatsapp/page/implementation-developer-documentation) or [API request](/books/meta-whatsapp/page/business-customer-phone-numbers-developer-documentation))</span><span>your app ID (displayed at the top of the **App Dashboard**)</span><span>your app secret (displayed in the **App Dashboard** &gt; **App settings** &gt; **Basic** panel)</span><div>Also, if you wish to test messaging capabilities using the customer’s business phone number, you will need a WhatsApp phone number that can already send and receive messages from other WhatsApp numbers.</div><div><div>Perform all of the requests described below using server-to-server requests. Do not use client-side requests.</div></div><div id="bkmrk-step-1%3A-exchange-the"><div id="bkmrk-step-1%3A-exchange-the-1"><div>### Step 1: Exchange the token code for a business token

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

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<APP_ID>`</div></div></td><td><div><div>**Required.**</div><div>Your app ID. This is displayed at the top of the **App Dashboard**.</div></div></td><td><div><div>`236484624622562`</div></div></td></tr><tr><td><div><div>`<APP_SECRET>`</div></div></td><td><div><div>**Required.**</div><div>Your app secret. You can get this from the **App Dashboard** &gt; **App Secret** &gt; **Basic** panel.</div></div></td><td><div><div>`614fc2afde15eee07a26b2fe3eaee9b9`</div></div></td></tr><tr><td><div><div>`<CODE>`</div></div></td><td><div><div>**Required.**</div><div>The code [returned by Embedded Signup](/books/meta-whatsapp/page/implementation-developer-documentation) when the customer successfully completed the flow.</div></div></td><td><div><div>```
AQBhlXsctMxJYbwbrpybxlo9tLPGy-QAmjBJA03jxLos43wxlBlrYozY5C33BXJULd133cOJf_5y6EkJZYMrAmW-EMj3Wdap9-NUM2nS4s8tC-ES7slBhh6QpCFM7-SzpI-iqsjqTGyxbUUW3AeaEyLkeZFIkBgcQ_SOxo9HShm20SDR5_n7AT9ZJ5dcgpqBQykNT-pQ8V7Ne9-sr6RLAWtJMF7-Zx6ABudRcWIN53tUTtquDVNuq3lrco4BlVQAv-54tR83Ae0ODN9Uet6j-BVLuetXhQCM3sz9RdgedlbxkidMbkztvYX1j7baOrJxyLyYGWYgbnUrKRQKCtWTsO5ekIGFgtbpS8UPJNqV6j8E5XKPJ8QA7ZFqzkB0s2O__J5FrjHzc_rDo1EuRbw98ihHDzQnvuXeHapEyfhLDJct0A
```

</div></div></td></tr></tbody></table>

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

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<BUSINESS_TOKEN>`</div></div></td><td><div><div>The customer’s [business token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation).</div></div></td><td><div><div>```
EAAAN6tcBzAUBOwtDtTfmZCJ9n3FHpSDcDTH86ekf89XnnMZAtaitMUysPDE7LES3CXkA4MmbKCghdQeU1boHr0QZA05SShiILcoUy7ZAb2GE7hrUEpYHKLDuP2sYZCURkZCHGEvEGjScGLHzC4KDm8tq2slt4BsOQE1HHX8DzHahdT51MRDqBw0YaeZByrVFZkVAoVTxXUtuKgDDdrmJQXMnI4jqJYetsZCP1efj5ygGscZBm4OvvuCYB039ZAFlyNn
```

</div></div></td></tr></tbody></table>

</div><div id="bkmrk-step-2%3A-subscribe-to"><div id="bkmrk-step-2%3A-subscribe-to-1"><div>### Step 2: Subscribe to webhooks on the customer’s WABA

</div></div></div><div id="bkmrk-request-parameters-3"><div id="bkmrk-request-parameters-4"><div>#### Request parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<API_VERSION>`</div><div>*String*</div></div></td><td><div><div>**Optional.**</div><div>Graph API version.</div></div></td><td><div><div>v25.0</div></div></td></tr><tr><td><div><div>`<BUSINESS_TOKEN>`*String*</div></div></td><td><div><div>**Required.**</div><div>The business customer’s [business token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation).</div></div></td><td><div><div>```
EAAAN6tcBzAUBOwtDtTfmZCJ9n3FHpSDcDTH86ekf89XnnMZAtaitMUysPDE7LES3CXkA4MmbKCghdQeU1boHr0QZA05SShiILcoUy7ZAb2GE7hrUEpYHKLDuP2sYZCURkZCHGEvEGjScGLHzC4KDm8tq2slt4BsOQE1HHX8DzHahdT51MRDqBw0YaeZByrVFZkVAoVTxXUtuKgDDdrmJQXMnI4jqJYetsZCP1efj5ygGscZBm4OvvuCYB039ZAFlyNn
```

</div></div></td></tr><tr><td><div><div>`<WABA_ID>`*String*</div></div></td><td><div><div>**Required.**</div><div>WhatsApp Business Account ID.</div></div></td><td><div><div>`102290129340398`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-step-5%3A-instruct-the"><div id="bkmrk-step-5%3A-instruct-the-1"><div>### Step 5: Instruct the customer to add a payment method

</div></div></div><div>Instruct your customer to use the WhatsApp Manager to add a payment method. You can provide them with the following Help Center link:</div><div>[https://www.facebook.com/business/help/488291839463771<span>⁠</span>](https://www.facebook.com/business/help/488291839463771)</div><div>Alternatively, you can instruct them to:</div><span>Access the **WhatsApp Manager** &gt; **Overview** panel at [https://business.facebook.com/wa/manage/home/<span>⁠</span>](https://business.facebook.com/wa/manage/home/)</span><span>Click the **Add payment method** button</span><span>Complete the flow</span><div>Once your customer adds a payment method, they are fully onboarded onto the WhatsApp Business Platform and can begin using your app to access their WhatsApp assets and send and receive messages (if you are providing them with that service).</div></div>

# Onboarding business customers as a Solution Partner | Developer Documentation

<div id="bkmrk-onboarding-business-">## Onboarding business customers as a Solution Partner

<div><span>Updated: Nov 14, 2025</span></div><div>This document describes the steps Solution Partners must perform to onboard new business customers who have completed the Embedded Signup flow.</div><div>If you are a Solution Partner, any business customer who completes your implementation of the Embedded Signup flow will not be able to use your app to access their WhatsApp assets or send and receive messages until you complete these steps.</div><div id="bkmrk-what-you-will-need"><div id="bkmrk-what-you-will-need-1"><div>### What you will need

</div></div></div><span>the business customer’s WABA ID (returned via [session logging](/books/meta-whatsapp/page/implementation-developer-documentation) or [API request](/books/meta-whatsapp/page/managing-whatsapp-business-accounts-developer-documentation))</span><span>the business customer’s business phone number ID (returned via [session logging](/books/meta-whatsapp/page/implementation-developer-documentation) or [API request](/books/meta-whatsapp/page/business-customer-phone-numbers-developer-documentation))</span><span>your app ID (displayed at the top of the **App Dashboard**)</span><span>your app secret (displayed in the **App Dashboard** &gt; **App settings** &gt; **Basic** panel)</span><span>your credit line ID (displayed in **Business Manager** &gt; **Business Settings** &gt; **Business Info** or returned via [API request](/books/meta-whatsapp/page/managing-credit-lines-developer-documentation))</span><span>your [system user access token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation) (“system token”)</span><div>Also, if you wish to test messaging capabilities using the customer’s business phone number, you will need a WhatsApp phone number that can already send and receive messages from other WhatsApp numbers.</div><div><div>Perform all of the requests described below using server-to-server requests. Do not use client-side requests.</div></div><div id="bkmrk-step-1%3A-exchange-the"><div id="bkmrk-step-1%3A-exchange-the-1"><div>### Step 1: Exchange the token code for a business token

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

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<APP_ID>`</div></div></td><td><div><div>**Required.**</div><div>Your app ID. This is displayed at the top of the **App Dashboard**.</div></div></td><td><div><div>`236484624622562`</div></div></td></tr><tr><td><div><div>`<APP_SECRET>`</div></div></td><td><div><div>**Required.**</div><div>Your app secret. You can get this from the **App Dashboard** &gt; **App Secret** &gt; **Basic** panel.</div></div></td><td><div><div>`614fc2afde15eee07a26b2fe3eaee9b9`</div></div></td></tr><tr><td><div><div>`<CODE>`</div></div></td><td><div><div>**Required.**</div><div>The code [returned by Embedded Signup](/books/meta-whatsapp/page/implementation-developer-documentation) when the customer successfully completed the flow.</div></div></td><td><div><div>```
AQBhlXsctMxJYbwbrpybxlo9tLPGy-QAmjBJA03jxLos43wxlBlrYozY5C33BXJULd133cOJf_5y6EkJZYMrAmW-EMj3Wdap9-NUM2nS4s8tC-ES7slBhh6QpCFM7-SzpI-iqsjqTGyxbUUW3AeaEyLkeZFIkBgcQ_SOxo9HShm20SDR5_n7AT9ZJ5dcgpqBQykNT-pQ8V7Ne9-sr6RLAWtJMF7-Zx6ABudRcWIN53tUTtquDVNuq3lrco4BlVQAv-54tR83Ae0ODN9Uet6j-BVLuetXhQCM3sz9RdgedlbxkidMbkztvYX1j7baOrJxyLyYGWYgbnUrKRQKCtWTsO5ekIGFgtbpS8UPJNqV6j8E5XKPJ8QA7ZFqzkB0s2O__J5FrjHzc_rDo1EuRbw98ihHDzQnvuXeHapEyfhLDJct0A
```

</div></div></td></tr></tbody></table>

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

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<BUSINESS_TOKEN>`</div></div></td><td><div><div>The customer’s [business token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation).</div></div></td><td><div><div>```
EAAAN6tcBzAUBOwtDtTfmZCJ9n3FHpSDcDTH86ekf89XnnMZAtaitMUysPDE7LES3CXkA4MmbKCghdQeU1boHr0QZA05SShiILcoUy7ZAb2GE7hrUEpYHKLDuP2sYZCURkZCHGEvEGjScGLHzC4KDm8tq2slt4BsOQE1HHX8DzHahdT51MRDqBw0YaeZByrVFZkVAoVTxXUtuKgDDdrmJQXMnI4jqJYetsZCP1efj5ygGscZBm4OvvuCYB039ZAFlyNn
```

</div></div></td></tr></tbody></table>

</div><div id="bkmrk-step-2%3A-subscribe-to"><div id="bkmrk-step-2%3A-subscribe-to-1"><div>### Step 2: Subscribe to webhooks on the customer’s WABA

</div></div></div><div id="bkmrk-request-parameters-3"><div id="bkmrk-request-parameters-4"><div>#### Request parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<BUSINESS_TOKEN>`</div></div></td><td><div><div>**Required.**</div><div>The customer’s [business token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation).</div></div></td><td><div><div>```
EAAAN6tcBzAUBOwtDtTfmZCJ9n3FHpSDcDTH86ekf89XnnMZAtaitMUysPDE7LES3CXkA4MmbKCghdQeU1boHr0QZA05SShiILcoUy7ZAb2GE7hrUEpYHKLDuP2sYZCURkZCHGEvEGjScGLHzC4KDm8tq2slt4BsOQE1HHX8DzHahdT51MRDqBw0YaeZByrVFZkVAoVTxXUtuKgDDdrmJQXMnI4jqJYetsZCP1efj5ygGscZBm4OvvuCYB039ZAFlyNn
```

</div></div></td></tr><tr><td><div><div>`<WABA_ID>`</div></div></td><td><div><div>**Required.**</div><div>The customer’s WABA ID.</div></div></td><td><div><div>`102290129340398`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-step-3%3A-share-your-c"><div id="bkmrk-step-3%3A-share-your-c-1"><div>### Step 3: Share your credit line with the customer

</div></div></div><div><div>We are currently testing new steps for sharing your credit line with onboarded business customers. These steps will eventually replace this step, so if you wish to implement these steps now, see [Alternate method for sharing your credit line](/books/meta-whatsapp/page/managing-credit-lines-developer-documentation).</div></div><div>**Note**: If you are using the below API i.e. `whatsapp_credit_sharing_and_attach`, you would need to add your System User to the shared WhatsApp Business Accounts as a pre-requisite. Please refer to [this doc for steps](/books/meta-whatsapp/page/manage-system-users-developer-documentation).</div><div id="bkmrk-request-parameters-6"><div id="bkmrk-request-parameters-7"><div>#### Request parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<CUSTOMER_BUSINESS_CURRENCY>`</div></div></td><td><div><div>**Required.**</div><div>The business’s currency, as a three-letter currency code. Support values are:</div><span>`AUD`</span><span>`EUR`</span><span>`GBP`</span><span>`IDR`</span><span>`INR`</span><span>`USD`</span><div>This currency is used for invoicing and corresponds to [pricing](/books/meta-whatsapp/page/pricing-on-the-whatsapp-business-platform-developer-documentation) rates.</div></div></td><td><div><div>`USD`</div></div></td></tr><tr><td><div><div>`<CUSTOMER_WABA_ID>`</div></div></td><td><div><div>**Required.**</div><div>The customer’s WABA ID.</div></div></td><td><div><div>`102290129340398`</div></div></td></tr><tr><td><div><div>`<EXTENDED_CREDIT_LINE_ID>`</div></div></td><td><div><div>**Required.**</div><div>Your extended credit line ID.</div></div></td><td><div><div>`1972385232742146`</div></div></td></tr><tr><td><div><div>`<SYSTEM_TOKEN>`</div></div></td><td><div><div>**Required.**</div><div>Your system token.</div></div></td><td><div><div>```
EAAAN6tcBzAUBOZC82CW7iR2LiaZBwUHS4Y7FDtQxRUPy1PHZClDGZBZCgWdrTisgMjpFKiZAi1FBBQNO2IqZBAzdZAA16lmUs0XgRcCf6z1LLxQCgLXDEpg80d41UZBt1FKJZCqJFcTYXJvSMeHLvOdZwFyZBrV9ZPHZASSqxDZBUZASyFdzjiy2A1sippEsF4DVV5W2IlkOSr2LrMLuYoNMYBy8xQczzOKDOMccqHEZD
```

</div></div></td></tr></tbody></table>

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

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<ALLOCATION_CONFIGURATION_ID>`</div></div></td><td><div><div>The extended credit line’s allocation configuration ID.</div><div>Save this ID if you want to [verify](/books/meta-whatsapp/page/managing-credit-lines-developer-documentation) that your credit line has been shared with the customer.</div></div></td><td><div><div>`58501441721238`</div></div></td></tr><tr><td><div><div>`<CUSTOMER_WABA_ID>`</div></div></td><td><div><div>The customer’s WABA ID.</div></div></td><td><div><div>`102290129340398`</div></div></td></tr></tbody></table>

</div></div>

# Cloud API flow | Developer Documentation

<div id="bkmrk-cloud-api-flowupdate">## Cloud API flow

<div><span>Updated: Nov 11, 2025</span></div><div>This document describes the default screens that your business customers will be presented with as they navigate the Embedded Signup flow. Note that if you inject [pre-filled data](/documentation/business-messaging/whatsapp/embedded-signup/pre-filled-data), you can pre-fill some of these screens, and bypass many of them entirely, reducing the likelihood of errors and making it much easier for your business customers to onboard onto the platform. This is the UI flow for the latest version v4.</div><div id="bkmrk-screens"><div id="bkmrk-screens-1"><div>### Screens

</div></div></div><div><div><div id="bkmrk-authentication-scree"><div id="bkmrk-authentication-scree-1"><div>#### Authentication screen

</div></div></div><div>This screen authenticates business customers using their Facebook or Meta Business Suite credentials.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-zxxyxbou.png)</div></div><div><div id="bkmrk-authorization-screen"><div id="bkmrk-authorization-screen-1"><div>#### Authorization screen

</div></div></div><div>This screen describes the data the business customer will be permitting your app to access.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-uxuos8iu.png)</div></div><div><div id="bkmrk-business-asset-selec"><div id="bkmrk-business-asset-selec-1"><div>#### Business Asset Selection Screen

</div></div></div><div>This screen gives customers the option to select existing business assets such as a Meta business portfolio and WhatsApp Business Account.</div><div>Users also have the option to create new assets if they have not reached their portfolio limit.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-5nmdmpwe.png)</div></div><div><div id="bkmrk-business-asset-creat"><div id="bkmrk-business-asset-creat-1"><div>#### Business Asset Creation Screen

</div></div></div><div>This screen gives customers the option to select existing business assets such as a Meta business portfolio and WhatsApp Business Account.</div><div>Users also have the option to create new assets if they have not reached their portfolio limit.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-hkpypcwj.png)</div></div><div><div id="bkmrk-phone-number-additio"><div id="bkmrk-phone-number-additio-1"><div>#### Phone number addition screen

</div></div></div><div>This screen allows the business customer to enter a new business phone number to associate with their WhatsApp Business Account.</div><div>It also allows the customer to choose how they wish to receive their verification code, which they will need to provide in the next step.</div><div>If you are providing phone numbers to your customers, you will have to deliver these codes to your customers, or provide pre-verified numbers instead.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-l764luzb.png)</div></div><div><div id="bkmrk-phone-number-verific"><div id="bkmrk-phone-number-verific-1"><div>#### Phone number verification screen

</div></div></div><div>This screen allows the business customer to verify ownership of the business phone number they entered in the previous step.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-yun2xcjq.png)</div></div><div><div id="bkmrk-permissions-review-s"><div id="bkmrk-permissions-review-s-1"><div>#### Permissions review screen

</div></div></div><div>This screen provides a summary of the permissions the business customer will be granting to your app.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-nxzibvnb.png)</div></div><div><div id="bkmrk-success-screen"><div id="bkmrk-success-screen-1"><div>#### Success screen

</div></div></div><div>This screen indicates that Meta successfully created and associated all of the business customer’s assets (business portfolio, WABA, phone number display profile, and business phone number).</div><div>When the customer clicks Finish, a message event will be triggered, containing the customer’s WABA ID and business phone number ID, which you must then use to onboard the customer to the platform.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-umzftstp.png)</div></div></div></div>

# Customizing the default flow | Developer Documentation

<div id="bkmrk-customizing-the-defa">## Customizing the default flow

<div><span>Updated: Nov 14, 2025</span></div><div>This document provides an overview of the various ways that you can customize Embedded Signup’s default flow to present different versions of the flow to your business customers.</div><div id="bkmrk-onboarding-whatsapp-"><div id="bkmrk-onboarding-whatsapp--1"><div>### Onboarding WhatsApp Business app users (aka “Coexistence”)

</div></div></div><div>You can configure Embedded Signup to [allow business customers to onboard using their existing WhatsApp Business app account and phone number](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation):</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-z3g9ytjo.png)</div><div>Businesses 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.</div><div id="bkmrk-pre-filling-screens"><div id="bkmrk-pre-filling-screens-1"><div>### Pre-filling screens

</div></div></div><div>You can pre-fill many of Embedded Signup’s default flow screens with a business customer’s business data. [Pre-filling screens](/documentation/business-messaging/whatsapp/embedded-signup/pre-filled-data) can dramatically reduce the amount of input and interaction required by your customers, and shorten flow.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-sitku9oy.png)</div><div id="bkmrk-bypassing-phone-numb"><div id="bkmrk-bypassing-phone-numb-1"><div>### Bypassing phone number addition and verification

</div></div></div><div>You can customize Embedded Signup to entirely [skip the phone number addition and verification screens](/books/meta-whatsapp/page/bypassing-the-phone-number-addition-screen-developer-documentation). This can be useful if you don’t want business customers to have to enter a phone number, retrieve the verification code sent to the number, and then verify the code using the number.</div><div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-sdxqq0q2.png)</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-4sygc7pe.png)</div></div></div><div id="bkmrk-app-only-install"><div id="bkmrk-app-only-install-1"><div>### App-Only Install

</div></div></div><div>[App-Only Install](/books/meta-whatsapp/page/app-only-install-developer-documentation) is a way to configure Embedded Signup so that only business tokens can be used to access assets owned by customers onboarded via the flow. This does not affect the flow itself, only which tokens must be used.</div></div>

# Onboarding WhatsApp Business app users (aka "Coexistence") | Developer Documentation

<div id="bkmrk-onboarding-whatsapp-">## Onboarding WhatsApp Business app users (aka "Coexistence")

<div><span>Updated: Mar 20, 2026</span></div><div>You can configure Embedded Signup to allow business customers to onboard using their existing [WhatsApp Business app<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Fbusiness.whatsapp.com%2Fproducts%2Fbusiness-app&h=AT5TlEObb3q_k7PMA8Wtr_Dq_ZAW0qOmyXs7bCCp6Q_vMc-6lsMpQM7-DdUO0C_3wqj44VYDXXJI25_GHGdtGT32KIY7lZ2pI2aQh2yYxu8AEJPuLfMd-_npXPSzieX254Wxt8zaviPoPkQu1lVvIA) 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.</div><div id="bkmrk-how-it-works"><div id="bkmrk-how-it-works-1"><div>### How it works

</div></div></div><div>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:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-hrj37q4s.png)</div><div>If they choose this option and enter their WhatsApp Business app phone number, they will be presented a verification code to enter.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-ewoydibe.png)</div><div>The message instructs the business to copy the verification code and follow the steps:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-cftbquoo.png)</div><div>Expect to receive a message from the official Facebook Business Account. Click Connect:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-4basku0f.png)</div><div>Tap the Connect to the Business Platform button to continue the onboarding process.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-i17jcofj.png)</div><div>Tap the Confirm button in the app to give the business the option to share their chat history with you.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-gtend6ri.png)</div><div>Paste the verification code.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-w1de0isp.png)</div><div>They can complete the remainder of the Embedded Signup flow. This returns their [asset IDs](/books/meta-whatsapp/page/implementation-developer-documentation) and [exchangeable token code](/books/meta-whatsapp/page/implementation-developer-documentation) 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.</div><div id="bkmrk-requirements"><div id="bkmrk-requirements-1"><div>### Requirements

</div></div></div><span>the business customer must be using WhatsApp Business app version **2.24.17** or higher.</span><span>the business customer’s phone number country code must be supported</span><span>you must already be a [Solution Partner](/books/meta-whatsapp/page/get-started-as-a-solution-partner-developer-documentation) or [Tech Provider](/books/meta-whatsapp/page/become-a-tech-provider-developer-documentation)</span><span>you must know how to use [Cloud API](/books/meta-whatsapp/page/about-the-whatsapp-business-platform-developer-documentation)</span><span>your webhook callback must be be able successfully accept and digest webhooks</span><span>you must be using Embedded Signup with [session logging](/books/meta-whatsapp/page/implementation-developer-documentation)</span><div id="bkmrk-limitations"><div id="bkmrk-limitations-1"><div>### Limitations

</div></div></div><span>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.</span><span>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](/documentation/business-messaging/whatsapp/solution-providers/support/business-customer-support) to resolve the error.</span><div id="bkmrk-unsupported-countrie"><div id="bkmrk-unsupported-countrie-1"><div>### Unsupported countries

</div></div></div><div>WhatsApp Business account phone numbers with country codes from the following countries are not supported:</div><span>Nigeria</span><span>South Africa</span><div id="bkmrk-pricing"><div id="bkmrk-pricing-1"><div>### Pricing

</div></div></div><div>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](/books/meta-whatsapp/page/pricing-on-the-whatsapp-business-platform-developer-documentation).</div><div>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.</div><div id="bkmrk-customer-service-win"><div id="bkmrk-customer-service-win-1"><div>### Customer service window

</div></div></div><div>[Customer service windows](/books/meta-whatsapp/page/sending-messages-developer-documentation) 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.</div><div>The 24-hour customer service window restriction applies to messages sent via Cloud API. Messages sent from the WhatsApp Business app are not subject to the customer service window and do not create, extend, or affect Cloud API conversation windows or Cloud API pricing.</div><div id="bkmrk-feature-comparison"><div id="bkmrk-feature-comparison-1"><div>### Feature comparison

</div></div></div><div>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.</div><div><table><thead><tr><th><span>Existing feature on the WhatsApp Business App </span></th><th><span>Changes to features on the WhatsApp Business App AFTER onboarding to Cloud API </span></th><th><span>Is the WhatsApp Business app feature supported on Cloud API? </span></th></tr></thead><tbody><tr><td><div><div>Individual (1:1) chats</div></div></td><td><div><div>Message Edit/Revoke is now supported.</div></div></td><td><div><div>Supported.</div><div>All chat messages in the most recent 6 months can be synchronized.</div><div>Messages sent and received are mirrored between the Cloud API and WhatsApp Business app.</div></div></td></tr><tr><td><div><div>Contacts</div></div></td><td><div><div>No change.</div></div></td><td><div><div>Supported.</div><div>All contacts with a WhatsApp number can be synchronized.</div></div></td></tr><tr><td><div><div>Group chats</div></div></td><td><div><div>No change.</div></div></td><td><div><div>Not supported.</div><div>Group chats will not be synchronized.</div></div></td></tr><tr><td><div><div>Disappearing messages</div></div></td><td><div><div>Disappearing messages will be turned off for all individual (1:1) chats</div></div></td><td><div><div>Not supported.</div></div></td></tr><tr><td><div><div>[View once message<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F1077018839582332&h=AT5TlEObb3q_k7PMA8Wtr_Dq_ZAW0qOmyXs7bCCp6Q_vMc-6lsMpQM7-DdUO0C_3wqj44VYDXXJI25_GHGdtGT32KIY7lZ2pI2aQh2yYxu8AEJPuLfMd-_npXPSzieX254Wxt8zaviPoPkQu1lVvIA)</div></div></td><td><div><div>View once messages will be disabled for all individual (1:1) chats</div></div></td><td><div><div>Not supported.</div></div></td></tr><tr><td><div><div>Live location message</div></div></td><td><div><div>Live location messages will be disabled for all individual (1:1) chats</div></div></td><td><div><div>Not supported.</div></div></td></tr><tr><td><div><div>Broadcast lists</div></div></td><td><div><div>Broadcast list will be disabled.</div><div>Business will not be able to create new Broadcast Lists.</div><div>Existing Broadcast Lists will become read-only.</div></div></td><td><div><div>Not supported.</div></div></td></tr><tr><td><div><div>Voice and video calls</div></div></td><td><div><div>No change.</div></div></td><td><div><div>Not supported.</div></div></td></tr><tr><td><div><div>Business tools (eg. catalog, orders, status)</div></div></td><td><div><div>No change.</div></div></td><td><div><div>Not supported.</div></div></td></tr><tr><td><div><div>Messaging tools (e.g., marketing messages, greeting message, away message, quick replies, labels)</div></div></td><td><div><div>No change.</div></div></td><td><div><div>Not supported.</div></div></td></tr><tr><td><div><div>Business profile (eg. business name, address, website)</div></div></td><td><div><div>No change.</div></div></td><td><div><div>Not supported.</div></div></td></tr><tr><td><div><div>Channels</div></div></td><td><div><div>No change.</div></div></td><td><div><div>Not supported.</div></div></td></tr></tbody></table>

</div><div id="bkmrk-linked-devices"><div id="bkmrk-linked-devices-1"><div>### Linked devices

</div></div></div><div>Businesses can link up to four WhatsApp “companion” clients to their WhatsApp Business app account on other devices (described as “[linked devices<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F378279804439436%2F&h=AT5TlEObb3q_k7PMA8Wtr_Dq_ZAW0qOmyXs7bCCp6Q_vMc-6lsMpQM7-DdUO0C_3wqj44VYDXXJI25_GHGdtGT32KIY7lZ2pI2aQh2yYxu8AEJPuLfMd-_npXPSzieX254Wxt8zaviPoPkQu1lVvIA)” in our Help Center).</div><div>All companion clients are supported, except for [WhatsApp for Windows<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F1317564962315842%2F%3Fcms_platform%3Dwindows-desktop&h=AT5TlEObb3q_k7PMA8Wtr_Dq_ZAW0qOmyXs7bCCp6Q_vMc-6lsMpQM7-DdUO0C_3wqj44VYDXXJI25_GHGdtGT32KIY7lZ2pI2aQh2yYxu8AEJPuLfMd-_npXPSzieX254Wxt8zaviPoPkQu1lVvIA) and [WhatsApp for WearOS<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Ffaq.whatsapp.com%2F564431798835071%2F&h=AT5TlEObb3q_k7PMA8Wtr_Dq_ZAW0qOmyXs7bCCp6Q_vMc-6lsMpQM7-DdUO0C_3wqj44VYDXXJI25_GHGdtGT32KIY7lZ2pI2aQh2yYxu8AEJPuLfMd-_npXPSzieX254Wxt8zaviPoPkQu1lVvIA).</div><div>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.</div><div>WhatsApp users who use an unsupported companion client to message an onboarded business can do so, but the message will not trigger [messages](/books/meta-whatsapp/page/messages-webhook-reference-developer-documentation) webhooks, so the business won’t be able to mirror the message in their own app.</div><div>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.</div><div id="bkmrk-setting-up-your-app"><div id="bkmrk-setting-up-your-app-1"><div>### Setting up your app

</div></div></div><div id="bkmrk-step-1%3A-subscribe-to"><div id="bkmrk-step-1%3A-subscribe-to-1"><div>#### Step 1: Subscribe to webhooks

</div></div></div><div>Navigate to the [**App Dashboard**](/apps) &gt; **WhatsApp** &gt; **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.</div><span>[history](#bkmrk-history-1) — describes past messages the business customer has sent/received</span><span>[smb\_app\_state\_sync](#bkmrk-smb_app_state_sync-1) — describes the business customer’s current and new contacts</span><span>[smb\_message\_echoes](#bkmrk-smb_message_echoes-1) — describes any new messages the business customer sends with the WhatsApp Business app after having been onboarded</span><div id="bkmrk-step-2%3A-customize-em"><div id="bkmrk-step-2%3A-customize-em-1"><div>#### Step 2: Customize Embedded Signup

</div></div></div><div>Add a `featureType` property set to `whatsapp_business_app_onboarding` to the `extras` object in the [launch method and callback registration](/books/meta-whatsapp/page/implementation-developer-documentation) portion of the Embedded Signup implementation code.</div><div>To verify that you have enabled the feature correctly, access your implementation of Embedded Signup. If the [WABA selection screen](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation) has been replaced with a screen that gives you the option to connect your existing WhatsApp Business account, the feature is enabled:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-uyfbvesd.png)</div><div id="bkmrk-step-3%3A-surface-embe"><div id="bkmrk-step-3%3A-surface-embe-1"><div>#### Step 3: Surface Embedded Signup to customers

</div></div></div><div>Once you have confirmed that the feature has been enabled, surface Embedded Signup to your business customers.</div><div>Note that when a business completes the flow and you [onboard the customer](#bkmrk-onboarding-business--1), you have 24 hours to [synchronize their messaging history](#bkmrk-synchronizing-whatsa-1), otherwise they must be offboarded and they must complete the flow again. For this reason, we recommend that you:</div><span>onboard and synchronize as soon as the business completes the flow</span><span>inform the business that you are synchronizing their WhatsApp Business app data</span><span>advise them to keep the WhatsApp Business app open to facilitate the synchronization process</span><div>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.</div><div>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:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-eyegdzp9.jpeg)</div><div>After you finish synchronizing the business’s messaging history, we recommend that you inform the customer that the process is complete.</div><div id="bkmrk-onboarding-business-"><div id="bkmrk-onboarding-business--1"><div>### Onboarding business customers

</div></div></div><div>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](/books/meta-whatsapp/page/implementation-developer-documentation) payload will have `event` set to `FINISH_WHATSAPP_BUSINESS_APP_ONBOARDING`:</div><div><div>```
{
  data: {
    waba_id: "<CUSTOMER_WABA_ID>"
  },
  type: "WA_EMBEDDED_SIGNUP",
  event: "FINISH_WHATSAPP_BUSINESS_APP_ONBOARDING",
  version: 3
}
```

</div></div><div>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.</div><span>[Onboarding business customers as a Solution Provider](/books/meta-whatsapp/page/onboarding-business-customers-as-a-solution-partner-developer-documentation)</span><span>[Onboarding business customers as a Tech Provider](/books/meta-whatsapp/page/onboarding-business-customers-as-a-tech-provider-or-tech-partner-developer-documentation)</span><div>Once you have completed these onboarding steps, you can begin the [messaging history synchronization](#bkmrk-synchronizing-whatsa-1) process.</div><div id="bkmrk-check-onboarding-sta"><div id="bkmrk-check-onboarding-sta-1"><div>#### Check onboarding status (optional)

</div></div></div><div>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:</div><div>Example request:</div><div>Example response:</div><div>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:</div><div id="bkmrk-synchronizing-whatsa"><div id="bkmrk-synchronizing-whatsa-1"><div>### Synchronizing WhatsApp Business app data

</div></div></div><div>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.</div><div>As a reminder, make sure that you subscribed to the business’s WABA when you [onboarded the business](#bkmrk-onboarding-business--1), and that you are [subscribed to the additional webhook fields](#bkmrk-step-1%3A-subscribe-to-1), otherwise you will miss important webhooks.</div><div id="bkmrk-step-2%3A-initiate-mes"><div id="bkmrk-step-2%3A-initiate-mes-1"><div>#### Step 2: Initiate message history synchronization

</div></div></div><div>Upon success, one or more history webhooks will be triggered, depending on if the business chose to share their messaging history with you.</div><div>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.</div><div id="bkmrk-messaging-history-sh"><div id="bkmrk-messaging-history-sh-1"><div>##### Messaging history shared

</div></div></div><div>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.</div><div>See [history](#bkmrk-history-1) for a description of the contents of these webhooks and how they are organized.</div><div id="bkmrk-messaging-history-no"><div id="bkmrk-messaging-history-no-1"><div>##### Messaging history not shared

</div></div></div><div>If the business chose not to share their messaging history with you, a [history](#bkmrk-history-1) webhook with error code `2593109` will be triggered instead.</div><div id="bkmrk-step-3%3A-mirror-new-w"><div id="bkmrk-step-3%3A-mirror-new-w-1"><div>#### Step 3: Mirror new WhatsApp Business app messages

</div></div></div><div>Onboarded businesses are still able to use the WhatsApp Business app and supported [companion devices](#bkmrk-linked-devices-1) to send and receive messages. Each time a business sends a message with one of these apps, it triggers an [smb\_message\_echoes](#bkmrk-smb_message_echoes-1) webhook, which you must digest and display in the contact message thread history in your app.</div><div id="bkmrk-reporting-conversion"><div id="bkmrk-reporting-conversion-1"><div>### Reporting conversion activity

</div></div></div><div>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).</div><div id="bkmrk-offboarding-business"><div id="bkmrk-offboarding-business-1"><div>### Offboarding business customers

</div></div></div><div>Instead, your business customers can use the WhatsApp Business app to disconnect from Cloud API by navigating to the **Settings** &gt; **Account** &gt; **Business Platform** and clicking the **Disconnect Account** button. When a business customer disconnects from Cloud API, an [account\_update](/documentation/business-messaging/whatsapp/webhooks/reference/account_update) webhook with a `PARTNER_REMOVED` event is triggered.</div><div id="bkmrk-errors"><div id="bkmrk-errors-1"><div>### Errors

</div></div></div><div>If you onboard a business customer with a WhatsApp Business app phone number, you may receive an [unsupported messages](/books/meta-whatsapp/page/unsupported-messages-webhook-reference-developer-documentation) webhook with error code `131060`. This is expected and can occur in the following scenarios:</div><span>**First-time messaging**: A WhatsApp user messages your business for the first time. This is especially common when users tap one of your [ads that click to WhatsApp<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Fbusiness.whatsapp.com%2Fproducts%2Fcreate-ads-that-click-to-whatsapp&h=AT5TlEObb3q_k7PMA8Wtr_Dq_ZAW0qOmyXs7bCCp6Q_vMc-6lsMpQM7-DdUO0C_3wqj44VYDXXJI25_GHGdtGT32KIY7lZ2pI2aQh2yYxu8AEJPuLfMd-_npXPSzieX254Wxt8zaviPoPkQu1lVvIA) and immediately send a message. The error typically resolves within a few seconds, after which messages are delivered normally.</span><span>**Unsupported companion device**: A WhatsApp user with an unsupported [companion device](#bkmrk-linked-devices-1) sends or receives a message to or from your business.</span><div>If you receive this webhook, instruct the business to check the WhatsApp Business app for the message.</div><div id="bkmrk-need-support%3F"><div id="bkmrk-need-support%3F-1"><div>### Need support?

</div></div></div><div>For Coexistence *onboarding*, choose:</div><span>Question Topic: “WABiz: Onboarding” and “TechProvider: Onboarding”</span><span>Request Type: “Embedded Signup - Coexistence Onboarding”</span><div>For Coexistence *API issues*, choose:</div><span>Question Topic: “WABiz: Cloud API”</span><span>Request Type: “Coexistence Data Synchronization APIs and Webhooks”</span></div>

# Pre-filling screens | Developer Documentation

<div id="bkmrk-pre-filling-screensu">## Pre-filling screens

<div><span>Updated: Nov 10, 2025</span></div><div>If you know details about your customer’s business, such as its name and address, you can inject this data into Embedded Signup. This can pre-fill screens or bypass them altogether, dramatically reducing the amount of input and interaction required by your customers.</div><div>For example, here is the business portfolio screen, pre-filled with business’s name, email address, website, country, and a pre-verified business phone number:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-dt8wqizm.png)</div><div>We recommend that you inject [business portfolio data](#bkmrk-business-portfolio-d-1), a [pre-verified number](#bkmrk-pre-verified-phone-n-1), and [phone profile data](#bkmrk-phone-profile-data-1). Injecting this data provides the best experience for your customer, as it:</div><span>entirely pre-fills the business portfolio screen</span><span>bypasses the WhatsApp Business Account (WABA) selection and creation screens</span><span>bypasses the business phone number selection and verification screens</span><span>automatically sets the business phone number’s profile information in the WhatsApp client</span><div id="bkmrk-embedded-signup-inte"><div id="bkmrk-embedded-signup-inte-1"><div>### Embedded Signup Integration Helper

</div></div></div><div>The Embedded Signup Integration Helper provides a convenient way for you to create pre-filled data payloads and test their impact on the flow. To access the payload tool:</div><span>Navigate to **App Dashboard** &gt; **WhatsApp** &gt; **Embedded Signup Builder**.</span><span>Locate the **Embedded Signup Setup** section.</span><span>Locate the **Embedded Signup Pre-fill** row.</span><span>Click the **Edit pre-fill data** button.</span><div id="bkmrk-injecting-data"><div id="bkmrk-injecting-data-1"><div>### Injecting Data

</div></div></div><div>The `FB.login` function, which gets called when a business customer launches Embedded Signup, accepts an object as an argument. Use this object’s `extras.setup` property to inject data:</div><div>```
<span>// Launch method and callback registration</span><span>const</span><span> launchWhatsAppSignup </span><span>=</span><span>()</span><span>=></span><span>{</span><span>
  FB</span><span>.</span><span>login</span><span>(</span><span>fbLoginCallback</span><span>,</span><span>{</span><span>
    config_id</span><span>:</span><span>'<CONFIGURATION_ID>'</span><span>,</span><span>// your configuration ID goes here</span><span>
    response_type</span><span>:</span><span>'code'</span><span>,</span><span>
    override_default_response_type</span><span>:</span><span>true</span><span>,</span><span>
    extras</span><span>:</span><span>{</span><span>
      setup</span><span>:</span><span>{</span><span>
        business</span><span>:</span><span>{</span><span>// Business portfolio data goes here</span><span>},</span><span>
        preVerifiedPhone</span><span>:</span><span>{</span><span>// Pre-verified phone number IDs go here</span><span>},</span><span>
        phone</span><span>:</span><span>{</span><span>// Phone number profile data goes here</span><span>},</span><span>
        whatsAppBusinessAccount</span><span>:</span><span>{</span><span>// WABA IDs go here</span><span>}</span><span>},</span><span>
      featureType</span><span>:</span><span>''</span><span>,</span><span>
      sessionInfoVersion</span><span>:</span><span>'3'</span><span>,</span><span>}</span><span>});</span><span>}</span>
```

</div><div id="bkmrk-business-portfolio-d"><div id="bkmrk-business-portfolio-d-1"><div>#### Business portfolio data

</div></div></div><div>You can inject the following business portfolio details into the business portfolio screen:</div><span>business portfolio name</span><span>business portfolio email address</span><span>business portfolio website</span><span>business portfolio country (as well as additional address details)</span><span>business phone number</span><div>Alternatively, you can inject *just an existing business portfolio ID*, and its existing details will automatically be injected into the screen. This can be useful if you want a pre-verified phone number to be associated with the customer’s existing business portfolio.</div><div>Injecting business portfolio data will pre-fill the business portfolio screen and also cause Embedded Signup to skip the WABA selection and WABA creation screens.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-qw7snvpv.png)</div><div>Injecting business phone number data will pre-fill the [phone number addition screen](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation):</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-qc7v57c0.png)</div><div>Note that even if you inject data, the business customer can still edit this data using the **Edit** button, if they wish.</div><div>When a business customer completes the flow, the business portfolio information you injected will be used to create the business customer’s business portfolio and WABA.</div><div id="bkmrk-business-object-synt"><div id="bkmrk-business-object-synt-1"><div>##### Business object syntax

</div></div></div><div><div>```
setup: {
  business: {
    id: <BUSINESS_PORTFOLIO_ID>,
    name: '<BUSINESS_PORTFOLIO_NAME>',
    email: '<BUSINESS_PORTFOLIO_EMAIL_ADDRESS>',
    website: '<BUSINESS_PORTFOLIO_WEBSITE>',
    address: {
      streetAddress1: '<BUSINESS_PORTFOLIO_STREET_ADDRESS_LINE_1>',
      streetAddress2: '<BUSINESS_PORTFOLIO_STREET_ADDRESS_LINE_2>',
      city: '<BUSINESS_PORTFOLIO_CITY>',
      state: '<BUSINESS_PORTFOLIO_STATE>',
      zipPostal: '<BUSINESS_PORTFOLIO_ZIP_CODE>',
      country: '<BUSINESS_PORTFOLIO_COUNTRY>'
    },
    phone: {
      code: <BUSINESS_PORTFOLIO_COUNTRY_CALLING_CODE>,
      number: '<BUSINESS_PORTFOLIO_PHONE_NUMBER>'
    },
    timezone: '<BUSINESS_PORTFOLIO_TIME_ZONE>'
  }
}
```

</div></div><div id="bkmrk-business-object-para"><div id="bkmrk-business-object-para-1"><div>##### Business object parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<BUSINESS_PORTFOLIO_ID>`</div><div>*Integer or null*</div></div></td><td><div><div>**Required if using an existing business portfolio, otherwise set to null or omit to create a new portfolio.**</div><div>Set to the business customer’s existing business portfolio ID if you want to pre-fill the screen with data already set on the business portfolio, or if you want to associate a pre-verified phone number with this portfolio.</div><div>If set to a portfolio ID, we will check if the business customer owns the portfolio.</div><div>If they own it, we will inject its existing data into the flow and ignore all other business object properties.</div><div>If they do not own it, we will inject `business.name`, `business.email`, `business.website`, and `address.country` values, if they are **all** set. If **any** are not set, the flow will display the default business portfolio screen instead.</div><div>Set to `null` (or omit the `id` property entirely) if you want to create a new business portfolio based on injected `business.name`, `business.email`, `business.website`, and `address.country` values.</div></div></td><td><div><div>`2729063490586005`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_NAME>`</div><div>*String*</div></div></td><td><div><div>**Required if creating a new business portfolio.**</div><div>Business portfolio name.</div><div>If this name matches the name of an existing business portfolio owned by the business customer, the existing portfolio will be used instead (it will be treated as if you assigned the existing portfolio’s ID to the `id` property).</div><div>This name will also be used as the WhatsApp Business Account name, which is only visible in the WhatsApp Manager.</div><div>Maximum 100 characters.</div></div></td><td><div><div>`Wind & Wool`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_EMAIL_ADDRESS>`</div><div>*String*</div></div></td><td><div><div>**Required if creating a new business portfolio.**</div><div>The business’s email address.</div><div>This information will appear in the **Meta Business Suite** &gt; **Business portfolio** &gt; **Settings** &gt; **Business info** panel.</div></div></td><td><div><div>`support@windandwool.com`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_COUNTRY_CALLING_CODE>`</div><div>*Integer*</div></div></td><td><div><div>**Required if injecting a business phone number.**</div><div>Business phone number country calling code.</div></div></td><td><div><div>`1`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_PHONE_NUMBER>`</div><div>*String*</div></div></td><td><div><div>**Required if injecting a business phone number.**</div><div>Business phone number, without country calling code.</div></div></td><td><div><div>`6505559999`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_WEBSITE>`</div><div>*String*</div></div></td><td><div><div>**Required if creating a new business portfolio.**</div><div>The business’s website URL.</div><div>This information will appear in the **Meta Business Suite** &gt; **Business portfolio** &gt; **Settings** &gt; **Business info** panel.</div></div></td><td><div><div>`https://windandwool.com/`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_STREET_ADDRESS_LINE_1>`</div><div>*String*</div></div></td><td><div><div>The business’s street address, line 1.</div><div>This information will appear in the **Meta Business Suite** &gt; **Business portfolio** &gt; **Settings** &gt; **Business info** panel.</div></div></td><td><div><div>`1 Hacker Way`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_STREET_ADDRESS_LINE_2>`</div><div>*String*</div></div></td><td><div><div>The business’s street address, line 2.</div><div>This information will appear in the **Meta Business Suite** &gt; **Business portfolio** &gt; **Settings** &gt; **Business info** panel.</div></div></td><td><div><div>`Suite 1`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_CITY>`</div><div>*String*</div></div></td><td><div><div>The business’s city address.</div><div>This information will appear in the **Meta Business Suite** &gt; **Business portfolio** &gt; **Settings** &gt; **Business info** panel.</div></div></td><td><div><div>`Menlo Park`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_STATE>`</div><div>*String*</div></div></td><td><div><div>The business’s state address.</div><div>This information will appear in the **Meta Business Suite** &gt; **Business portfolio** &gt; **Settings** &gt; **Business info** panel.</div></div></td><td><div><div>`California`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_ZIP_CODE>`</div><div>*String*</div></div></td><td><div><div>The business’s zip code address.</div><div>This information will appear in the **Meta Business Suite** &gt; **Business portfolio** &gt; **Settings** &gt; **Business info** panel.</div></div></td><td><div><div>`94025`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_COUNTRY>`</div><div>*String*</div></div></td><td><div><div>**Required if creating a new business portfolio.**</div><div>Business address [ISO 3166-1 alpha-2<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FISO_3166-1_alpha-2&h=AT6UNfKT_VDRal_wdnE_WEQmwmDV_E3IxFyiztJSr4WZMD36XtXl1jMjqItJsf0l_aNOmQbuJ6WaAIeVzByMpJlHWvHBoQb76Tz7i5XEoDhNAOjkpWujCLP80BcPoNx0eokIcr26PRoUJYj3j9vEkw) country code.</div></div></td><td><div><div>`US`</div></div></td></tr><tr><td><div><div>`<BUSINESS_PORTFOLIO_TIME_ZONE>`</div><div>*String*</div></div></td><td><div><div>The business’s time zone in [UTC offset<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FList_of_tz_database_time_zones&h=AT6UNfKT_VDRal_wdnE_WEQmwmDV_E3IxFyiztJSr4WZMD36XtXl1jMjqItJsf0l_aNOmQbuJ6WaAIeVzByMpJlHWvHBoQb76Tz7i5XEoDhNAOjkpWujCLP80BcPoNx0eokIcr26PRoUJYj3j9vEkw) format.</div></div></td><td><div><div>`UTC-07:00`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-example-business-obj"><div id="bkmrk-example-business-obj-1"><div>##### Example Business Object

</div></div></div><div>```
<span>setup</span><span>:</span><span>{</span><span>
  business</span><span>:</span><span>{</span><span>
    name</span><span>:</span><span>'Wind & Wool'</span><span>,</span><span>
    email</span><span>:</span><span>'support@windandwool.com'</span><span>,</span><span>
    website</span><span>:</span><span>'https://windandwool.com/'</span><span>,</span><span>
    address</span><span>:</span><span>{</span><span>
      streetAddress1</span><span>:</span><span>'1 Hacker Way'</span><span>,</span><span>
      streetAddress2</span><span>:</span><span>'Suite 1'</span><span>,</span><span>
      city</span><span>:</span><span>'Menlo Park'</span><span>,</span><span>
      state</span><span>:</span><span>'California'</span><span>,</span><span>
      zipPostal</span><span>:</span><span>'94025'</span><span>,</span><span>
      country</span><span>:</span><span>'US'</span><span>},</span><span>
    phone</span><span>:</span><span>{</span><span>
      code</span><span>:</span><span>1</span><span>,</span><span>
      number</span><span>:</span><span>'6505559999'</span><span>},</span><span>
    timezone</span><span>:</span><span>'UTC-07:00'</span><span>}</span><span>}</span>
```

</div><div id="bkmrk-pre-verified-phone-n"><div id="bkmrk-pre-verified-phone-n-1"><div>#### Pre-verified phone numbers

</div></div></div><div>You can inject a [pre-verified business phone number](/books/meta-whatsapp/page/pre-verified-phone-numbers-developer-documentation) ID into Embedded Signup, which will cause Embedded Signup to skip the [phone number addition](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation) and [phone number verification](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation) screens.</div><div>If you are injecting a pre-verified phone number along with business portfolio data (either creating a new portfolio or using an existing one), the [business portfolio screen](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation) will be pre-filled with the pre-verified number:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-oeoimhev.png)</div><div>If you are not injecting business portfolio data along with a pre-verified number ID, the number will appear in the [WABA selection screen](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation):</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-dxfn1c7a.png)</div><div id="bkmrk-preverifiedphone-obj"><div id="bkmrk-preverifiedphone-obj-1"><div>##### PreVerifiedPhone object syntax

</div></div></div><div><div>```
setup: {
  preVerifiedPhone: {
    ids: [
      '<PRE-VERIFIED_PHONE_NUMBER_ID>'
    ]
  }
}
```

</div></div><div>Replace `<PRE-VERIFIED_PHONE_NUMBER_ID>` with a unique, pre-verified business phone number ID.</div><div>Note that although the `ids` value accepts an array of strings, if you include more than one pre-verified business phone number ID, only the first ID in the array will appear in the WABA selection screen.</div><div id="bkmrk-phone-profile-data"><div id="bkmrk-phone-profile-data-1"><div>#### Phone profile data

</div></div></div><div>You can inject the following phone number profile data. This data does not pre-fill any Embedded Signup screens, but it does populate the business phone number’s profile in the WhatsApp client, which is visible to WhatsApp users.</div><span>Phone number profile display name</span><span>Phone number category</span><span>Phone number description</span><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-xi22xhdt.png)</div><div>If you do not include this data, the category will be set to **Other**, and the business customer must set or edit their profile data on their own.</div><div id="bkmrk-phone-object-syntax"><div id="bkmrk-phone-object-syntax-1"><div>##### Phone object syntax

</div></div></div><div><div>```
setup: {
  phone: {
    displayName: '<PHONE_PROFILE_DISPLAY_NAME>',
    category: '<PHONE_PROFILE_DISPLAY_CATEGORY>',
    description: '<PHONE_PROFILE_DISPLAY_DESCRIPTION>'
  }
}
```

</div></div><div id="bkmrk-phone-object-paramet"><div id="bkmrk-phone-object-paramet-1"><div>##### Phone object parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example value </span></th></tr></thead><tbody><tr><td><div><div>`<PHONE_PROFILE_DISPLAY_NAME>`</div><div>*String*</div></div></td><td><div><div>**Required.**</div><div>Business profile display name, visible to WhatsApp users in the WhatsApp client (see screenshot above).</div></div></td><td><div><div>`Wind & Wool`</div></div></td></tr><tr><td><div><div>`<PHONE_PROFILE_DISPLAY_CATEGORY>`</div><div>*String*</div></div></td><td><div><div>**Required.**</div><div>Business profile display category.</div></div></td><td><div><div>`APPAREL`</div></div></td></tr><tr><td><div><div>`<PHONE_PROFILE_DISPLAY_DESCRIPTION>`</div><div>*String*</div></div></td><td><div><div>**Required.**</div><div>Business phone number profile description.</div><span>Maximum 512 characters.</span><span>Rendered emojis are supported however their unicode values are not. Emoji unicode values must be Java- or JavaScript-escape encoded.</span><span>Hyperlinks can be included but will not render as clickable links.</span><span>Markdown is not supported.</span></div></td><td><div><div>`Bespoke artisan apparel and lifestyle goods from upcoming designers.`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-example-phone-object"><div id="bkmrk-example-phone-object-1"><div>##### Example phone object

</div></div></div><div>```
<span>setup</span><span>:</span><span>{</span><span>
  phone</span><span>:</span><span>{</span><span>
    displayName</span><span>:</span><span>'Wind & Wool'</span><span>,</span><span>
    category</span><span>:</span><span>'APPAREL'</span><span>,</span><span>
    description</span><span>:</span><span>'Bespoke artisan apparel and lifestyle goods from upcoming designers.'</span><span>}</span><span>}</span>
```

</div><div id="bkmrk-whatsapp-business-ac"><div id="bkmrk-whatsapp-business-ac-1"><div>#### WhatsApp Business Accounts

</div></div></div><div>If you are injecting a pre-verified phone number, you can also include a WABA ID. This will associate the pre-verified number with the existing WABA instead of with a new one that the business customer would be prompted to create as part of the flow.</div><div id="bkmrk-whatsappbusinessacco"><div id="bkmrk-whatsappbusinessacco-1"><div>##### WhatsAppBusinessAccount object syntax

</div></div></div><div><div>```
setup: {
  whatsAppBusinessAccount: {
    ids: '<WABA_ID>'
  }
}
```

</div></div><div>Replace `<WABA_ID>` with a unique WABA ID.</div><div id="bkmrk-example-whatsappbusi"><div id="bkmrk-example-whatsappbusi-1"><div>##### Example whatsAppBusinessAccount object

</div></div></div><div>This example associates a pre-verified phone number with an existing WABA.</div><div>```
<span>setup</span><span>:</span><span>{</span><span>
  preVerifiedPhone</span><span>:</span><span>{</span><span>
    ids</span><span>:</span><span>[</span><span>'106540352242922'</span><span>]</span><span>},</span><span>
  whatsAppBusinessAccount</span><span>:</span><span>{</span><span>
    id</span><span>:</span><span>[</span><span>'432428883295692'</span><span>]</span><span>}</span><span>}</span>
```

</div><div id="bkmrk-examples"><div id="bkmrk-examples-1"><div>### Examples

</div></div></div><div id="bkmrk-new-business-portfol"><div id="bkmrk-new-business-portfol-1"><div>#### New business portfolio, pre-verified number, and display profile

</div></div></div><div>```
<span>// Launch method and callback registration</span><span>const</span><span> launchWhatsAppSignup </span><span>=</span><span>()</span><span>=></span><span>{</span><span>
  FB</span><span>.</span><span>login</span><span>(</span><span>fbLoginCallback</span><span>,</span><span>{</span><span>
    config_id</span><span>:</span><span>'31602279155865'</span><span>,</span><span>
    response_type</span><span>:</span><span>'code'</span><span>,</span><span>
    override_default_response_type</span><span>:</span><span>true</span><span>,</span><span>
    extras</span><span>:</span><span>{</span><span>
      setup</span><span>:</span><span>{</span><span>
        business</span><span>:</span><span>{</span><span>
          name</span><span>:</span><span>'Wind & Wool'</span><span>,</span><span>
          email</span><span>:</span><span>'support@windandwool.com'</span><span>,</span><span>
          website</span><span>:</span><span>'https://windandwool.com/'</span><span>,</span><span>
          address</span><span>:</span><span>{</span><span>
            streetAddress1</span><span>:</span><span>'1 Hacker Way'</span><span>,</span><span>
            streetAddress2</span><span>:</span><span>'Suite 1'</span><span>,</span><span>
            city</span><span>:</span><span>'Menlo Park'</span><span>,</span><span>
            state</span><span>:</span><span>'California'</span><span>,</span><span>
            zipPostal</span><span>:</span><span>'94025'</span><span>,</span><span>
            country</span><span>:</span><span>'US'</span><span>},</span><span>
          phone</span><span>:</span><span>{</span><span>
            code</span><span>:</span><span>1</span><span>,</span><span>
            number</span><span>:</span><span>'6505559999'</span><span>},</span><span>
          timezone</span><span>:</span><span>'UTC-07:00'</span><span>},</span><span>
        preVerifiedPhone</span><span>:</span><span>{</span><span>
          ids</span><span>:</span><span>[</span><span>'106540352242922'</span><span>]</span><span>},</span><span>
        phone</span><span>:</span><span>{</span><span>
          displayName</span><span>:</span><span>'Wind & Wool'</span><span>,</span><span>
          category</span><span>:</span><span>'APPAREL'</span><span>,</span><span>
          description</span><span>:</span><span>'Bespoke artisan apparel and lifestyle goods from upcoming designers.'</span><span>}</span><span>},</span><span>
      featureType</span><span>:</span><span>''</span><span>,</span><span>
      sessionInfoVersion</span><span>:</span><span>'3'</span><span>,</span><span>}</span><span>});</span><span>}</span>
```

</div><div id="bkmrk-existing-business-po"><div id="bkmrk-existing-business-po-1"><div>#### Existing business portfolio, pre-verified number, and display profile

</div></div></div><div>```
<span>// Launch method and callback registration</span><span>const</span><span> launchWhatsAppSignup </span><span>=</span><span>()</span><span>=></span><span>{</span><span>
  FB</span><span>.</span><span>login</span><span>(</span><span>fbLoginCallback</span><span>,</span><span>{</span><span>
    config_id</span><span>:</span><span>'31602279155865'</span><span>,</span><span>
    response_type</span><span>:</span><span>'code'</span><span>,</span><span>
    override_default_response_type</span><span>:</span><span>true</span><span>,</span><span>
    extras</span><span>:</span><span>{</span><span>
      setup</span><span>:</span><span>{</span><span>
        business</span><span>:</span><span>{</span><span>
          id</span><span>:</span><span>'2729063490586005'</span><span>},</span><span>
        preVerifiedPhone</span><span>:</span><span>{</span><span>
          ids</span><span>:</span><span>[</span><span>'106540352242922'</span><span>]</span><span>},</span><span>
        phone</span><span>:</span><span>{</span><span>
          displayName</span><span>:</span><span>'Wind & Wool'</span><span>,</span><span>
          category</span><span>:</span><span>'APPAREL'</span><span>,</span><span>
          description</span><span>:</span><span>'Bespoke artisan apparel and lifestyle goods from upcoming designers.'</span><span>}</span><span>},</span><span>
      featureType</span><span>:</span><span>''</span><span>,</span><span>
      sessionInfoVersion</span><span>:</span><span>'3'</span><span>,</span><span>}</span><span>});</span><span>}</span>
```

</div></div>

# Pre-verified phone numbers | Developer Documentation

<div id="bkmrk-pre-verified-phone-n">## Pre-verified phone numbers

<div><span>Updated: Dec 12, 2025</span></div><div>This document explains how to offer your business customers pre-verified business phone numbers. Pre-verified business phone numbers are WhatsApp business phone numbers that have already been verified by you, eliminating the need for customers to have to contact you for a one-time password.</div><div><div>![Screenshot of pre-verified phone numbers in Embedded Signup flow](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-tu5plv9j.png)</div></div><div>Note that pre-verified business phone numbers are represented by [WhatsApp Business Pre-Verified Phone Number](/documentation/business-messaging/whatsapp/reference/business/whatsapp-business-pre-verified-phone-numbers-api) objects, which are **temporary**. When a business customer selects one of these numbers and completes the Embedded Signup flow, the temporary object will be replaced by a valid [WhatsApp Business Phone Number](/documentation/business-messaging/whatsapp/reference/whatsapp-business-phone-number/whatsapp-business-account-phone-number-api) object. You must [get this new object's ID](#bkmrk-getting-and-register-1) and use it to [register the number](/books/meta-whatsapp/page/registering-business-phone-numbers-developer-documentation) within 90 days.</div><div id="bkmrk-requirements"><div id="bkmrk-requirements-1"><div>### Requirements

</div></div></div><span>Your business must be an approved Solution Partner.</span><span>The app user must be a business admin on the business account that pre-verified business phone numbers are added to.</span><span>A [User](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation) or [System User access token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation).</span><span>The [business\_management](https://developers.facebook.com/docs/permissions/reference/business_management) permission.</span><span>Business phone numbers [must be valid](/books/meta-whatsapp/page/business-phone-numbers-developer-documentation).</span><div id="bkmrk-limitations"><div id="bkmrk-limitations-1"><div>### Limitations

</div></div></div><span>You are responsible for keeping track of who has claimed a pre-verified business phone number.</span><span>If a pre-verified business phone number is not claimed by an end client in the Embedded Signup flow within 90 days of verification, the number will revert to an unverified status and must be verified again to have its status restored for another 90 days.</span><span>Unclaimed pre-verified business phone numbers can't be re-verified until 45 days before they are scheduled to revert to an unverified status. This time is indicated by the [`verification_expiry_time` field](/documentation/business-messaging/whatsapp/reference/business/whatsapp-business-pre-verified-phone-numbers-api#fields).</span><span>If you add a phone number to your pool of pre-verified business phone numbers (Step 1) but do not verify it within 90 days (Step 3), it will be removed from your pool and you will have to add it again.</span><span>Once a business customer claims a pre-verified business phone number, you have 90 days to register it.</span><div id="bkmrk-displaying-pre-verif"><div id="bkmrk-displaying-pre-verif-1"><div>### Displaying pre-verified numbers in Embedded Signup

</div></div></div><div>You can display pre-verified business phone numbers in the Embedded Signup flow using [pre-filled form data](/documentation/business-messaging/whatsapp/embedded-signup/pre-filled-data). To do this, add a `preVerifiedPhone` object with an `ids` property to the `setup` object and assign the IDs of your pre-verified business phone numbers as an array of strings to the `ids` property:</div><div><div>```
{
  scope: '<SCOPE>',
  extras: {
    feature: '<FEATURE>',
    setup: {
      preVerifiedPhone: {
        ids: [<IDS>]
      }
    }
  }
}
```

</div></div><div>For example:</div><div><div>```
{
  scope: 'business_management,whatsapp_business_management',
  extras: {
    feature: 'whatsapp_embedded_signup',
    version: 2,
    setup: {
  business: {
    name: 'Acme Inc.',
    email: 'johndoe@acme.com',
    phone: {
      code: 1,
      number: '6505551234'
        },
    website: 'https://www.acme.com',
        address: {
          streetAddress1: '1 Acme Way',
          city: 'Acme Town',
          state: 'CA',
          zipPostal: '94000',
          country: 'US'
        },
        timezone: 'UTC-08:00'
      },
      phone: {
        displayName: 'Acme Inc.',
        category: 'ENTERTAIN',
        description: 'Gears and widgets'
      },
      preVerifiedPhone: {
        ids: ['106540352242922','105954558954427']
      }
    }
  }
}
```

</div></div><div>Note that if a pre-verified business phone number with a status of `VERIFIED` is not claimed within 90 days of verification, its status will be set to `UNVERIFIED` but it will still appear in the Embedded Signup flow. If a business customer attempts to claim an unverified number, they must complete verification on their own, which means they must request a one-time password from you.</div><div>To prevent this experience, **we recommend that you keep track of when you verified a number and re-verify it before it reverts to an unverified state.**</div><div>If you don't know when you last verified a given pre-verified business phone number, request the `code_verification_time` and `verification_expiry_time` fields on the pre-verified business phone number ID. These fields indicate its most recent verification time and its verification expiration time.</div><div id="bkmrk-determining-if-a-num"><div id="bkmrk-determining-if-a-num-1"><div>### Determining if a number has been claimed through Embedded Signup

</div></div></div><div>See [Getting claimed phone number IDs](#bkmrk-getting-and-register-1).</div><div id="bkmrk-getting-and-register"><div id="bkmrk-getting-and-register-1"><div>### Getting and registering claimed phone numbers

</div></div></div><div>Once a business customer claims a pre-verified business phone number, it will be replaced with a verified WhatsApp business phone number (a [WhatsApp Business Phone Number](/documentation/business-messaging/whatsapp/reference/whatsapp-business-phone-number/whatsapp-business-account-phone-number-api#Reading) object with a `code_verification_status` set to `VERIFIED`).</div><div>You will have 90 days to [register this number](/books/meta-whatsapp/page/registering-business-phone-numbers-developer-documentation) using its ID. If you do not register it within this time frame, it will revert to an `UNVERIFIED` status and you will have to [request a new verification code](/books/meta-whatsapp/page/registering-business-phone-numbers-developer-documentation) and use the code to [verify the WhatsApp business phone number](/books/meta-whatsapp/page/registering-business-phone-numbers-developer-documentation) again.</div><div id="bkmrk-getting-claimed-numb"><div id="bkmrk-getting-claimed-numb-1"><div>#### Getting claimed numbers via session logging

</div></div></div><div>If you are using [session logging](/books/meta-whatsapp/page/implementation-developer-documentation), the ID will be returned in a message event and captured by your event listener. Send this ID to your server and then use it to register the WhatsApp business phone number.</div><div id="bkmrk-getting-claimed-numb-3"><div id="bkmrk-getting-claimed-numb-4"><div>#### Getting claimed numbers via API

</div></div></div><div>Parse for the `display_phone_number` property on each object returned in the result set. If an object in the result set has a `display_phone_number` value that matches a number you used to create a pre-verified business phone number, the object represents the WhatsApp business phone number that has replaced the pre-verified business phone number. Copy this object's ID and use it to register the WhatsApp business phone number.</div><div>Alternatively, you can use the same endpoint with `field` expansion to request the `display_phone_number` field and specify the display phone number. For example:</div><div id="bkmrk-get-pre-verified-bus"><div id="bkmrk-get-pre-verified-bus-1"><div>### Get pre-verified business phone numbers

</div></div></div><div>Results are automatically sorted in order of creation time. You can also use field expansion to request the `code_verification_status` field to have the API only return pre-verified business phone numbers with the indicated verification state:</div><div id="bkmrk-registering-pre-veri"><div id="bkmrk-registering-pre-veri-1"><div>### Registering pre-verified numbers programmatically

</div></div></div><div>If you have customized Embedded Signup to [bypass the phone number addition screen](/books/meta-whatsapp/page/bypassing-the-phone-number-addition-screen-developer-documentation), you can register pre-verified business phone numbers on an onboarded business customer's WhatsApp Business Account programmatically. To do this, first complete all of the steps to [create a pre-verified number](#bkmrk-creating-pre-verifie-1), then use the pre-verified number ID to complete **Step 1** and **Step 4** in the [Register Phone Numbers](/books/meta-whatsapp/page/registering-business-phone-numbers-developer-documentation) document.</div></div>

# Bypassing the phone number addition screen | Developer Documentation

<div id="bkmrk-bypassing-the-phone-">## Bypassing the phone number addition screen

<div><span>Updated: Nov 14, 2025</span></div><div>This document describes how to customize Embedded Signup to bypass the [phone number addition screen](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation) (shown below) and [phone number verification screen](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation).</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-m6xsichk.png)</div><div>If you don’t want your business customers to have to enter or choose a business phone number in the phone number addition screen, you can customize Embedded Signup to skip the screen entirely. However, after a customer successfully completes the customized flow, you must [programmatically create and register their business phone number](/books/meta-whatsapp/page/registering-business-phone-numbers-developer-documentation), or build a UI in your app that allows them to do this.</div><div id="bkmrk-enabling-the-feature"><div id="bkmrk-enabling-the-feature-1"><div>### Enabling the feature

</div></div></div><div>To enable this feature, set `featureType` to `only_waba_sharing` in the [launch method and callback registration](/books/meta-whatsapp/page/implementation-developer-documentation) portion of the Embedded Signup code:</div><div>```
<span>// Launch method and callback registration</span><span>const</span><span> launchWhatsAppSignup </span><span>=</span><span>()</span><span>=></span><span>{</span><span>
  FB</span><span>.</span><span>login</span><span>(</span><span>fbLoginCallback</span><span>,</span><span>{</span><span>
    config_id</span><span>:</span><span>'<CONFIGURATION_ID>'</span><span>,</span><span>// your configuration ID goes here</span><span>
    response_type</span><span>:</span><span>'code'</span><span>,</span><span>
    override_default_response_type</span><span>:</span><span>true</span><span>,</span><span>
    extras</span><span>:</span><span>{</span><span>
      setup</span><span>:</span><span>{},</span><span>
      featureType</span><span>:</span><span>'only_waba_sharing'</span><span>,</span><span>// set to only_waba_sharing</span><span>
      sessionInfoVersion</span><span>:</span><span>'3'</span><span>,</span><span>}</span><span>});</span><span>}</span>
```

</div><div>When a business customer successfully completes the flow, the [session logging message event](/books/meta-whatsapp/page/implementation-developer-documentation) will have `event` set to `FINISH_ONLY_WABA`:</div><div><div>```
{
  data: {
    phone_number_id: "<CUSTOMER_BUSINESS_PHONE_NUMBER_ID>",
    waba_id: "<CUSTOMER_WABA_ID>"
  },
  type: "WA_EMBEDDED_SIGNUP",
  event: "FINISH_ONLY_WABA",
  version: 3
}
```

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

# Website field optional | Developer Documentation

<div id="bkmrk-website-field-option">## Website field optional

<div><span>Updated: Nov 4, 2025</span></div><div><span></span><div>This feature is currently only available to approved **Select Solution** and **Premier** Solution Partners. See our [Sign up for partner-led business verification<span>?</span>](https://www.facebook.com/business/help/1091073752691122) Help Center article to learn how to request approval.</div></div><div>By default, the website field is required in the [business portfolio screen](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation). If you have been approved for [Partner-led Business Verification](/books/meta-whatsapp/page/partner-led-business-verification-developer-documentation) however, the website field will become optional and will be accompanied by a **My business does not have a website or profile page** checkbox:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-b44ahdzu.png)</div><div>When a business customer checks this box and completes the flow, the customer's WhatsApp assets and exchangeable token code will be generated and returned in a [message event](/books/meta-whatsapp/page/implementation-developer-documentation) and [JavaScript response](/books/meta-whatsapp/page/implementation-developer-documentation), as usual.</div><div>However, the [account\_update webhook](#bkmrk-webhook-1) that's triggered when the customer completes the flow will have `event` set to `PARTNER_CLIENT_CERTIFICATION_NEEDED`, which indicates that you must verify their business as part of the onboarding process.</div><div>Onboard the customer as you normally would, and when you're done, complete the steps described in our [Partner-led Business Verification](/books/meta-whatsapp/page/partner-led-business-verification-developer-documentation) document to verify their business. **The customer will not be able to send messages until their business is verified.**</div>
<span>[Onboarding business customers as a Solution Provider](/books/meta-whatsapp/page/onboarding-business-customers-as-a-solution-partner-developer-documentation)</span><span>[Onboarding business customers as a Tech Provider](/books/meta-whatsapp/page/onboarding-business-customers-as-a-tech-provider-or-tech-partner-developer-documentation)</span><div>Note that if you are unable to verify your customer's business, the customer must first add a website on their own using [Meta Business Suite &gt; Settings &gt; Business info<span>?</span>](https://business.facebook.com/settings/info), or they won't be able to send messages. Once they have added a website and it has been accepted, they can also [verify their business<span>?</span>](https://www.facebook.com/business/help/2058515294227817) on their own, if they choose to do so.</div></div>

# Hosted Embedded Signup | Developer Documentation

<div id="bkmrk-hosted-embedded-sign">## Hosted Embedded Signup

<div><span>Updated: Nov 4, 2025</span></div><div>If you don’t want to implement Embedded Signup by adding JavaScript code to your website or customer portal, you can instead use a link that, when clicked, displays a web page describing onboarding steps, and a button that launches the Embedded Signup flow:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-9lljmd3m.png)</div><div id="bkmrk-limitations"><div id="bkmrk-limitations-1"><div>### Limitations

</div></div></div><div>Hosted Embedded Signup (“Hosted ES”) can only be used to onboard business customers to Cloud API, and the flow cannot be customized.</div><div id="bkmrk-requirements"><div id="bkmrk-requirements-1"><div>### Requirements

</div></div></div><span>You must have completed the steps to become a Solution Partner or Tech Provider.</span><span>If your app is for messaging, it must be able to send messages, manage templates, and have a properly configured production webhook endpoint.</span><span>Your app must be subscribed to the [account\_update](/documentation/business-messaging/whatsapp/webhooks/reference/account_update) webhook.</span><span>Solution Partners must have a line of credit.</span><div>You will also need:</div><span>Your [system token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation).</span><span>Your app secret.</span><div id="bkmrk-step-1%3A-create-a-fac"><div id="bkmrk-step-1%3A-create-a-fac-1"><div>### Step 1: Create a Facebook Login for Business configuration

</div></div></div><div>If you don’t already have a Facebook Login for Business configuration, you must create one. A Facebook Login for Business configuration defines which permissions to request, and what additional information to collect, from business customers who access Embedded Signup.</div><div>Navigate to **Facebook Login for Business** &gt; **Configurations** and click the **+ Create configuration** button to access the configuration flow.</div><div>Use a name that will help you differentiate this configuration from any others you may create in the future. When completing the flow, be sure to select the WhatsApp Embedded Signup login variation:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-jcumhycp.png)</div><div>When choosing assets and permissions, select only those assets and permissions that you will actually need from your business customers.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-vvqzloup.png)</div><div>For example, if you select the **Catalogs** asset but don’t actually need access to customer catalogs, your customers will likely abandon the flow at the catalog selection screen and ask you for clarification.</div><div id="bkmrk-step-2%3A-get-the-host"><div id="bkmrk-step-2%3A-get-the-host-1"><div>### Step 2: Get the Hosted ES URL

</div></div></div><div>Navigate to the **WhatsApp** &gt; **Quickstart** panel and click the **View onboarding** button.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-j0gifpvh.png)</div><div>Locate the **Zero integration onboarding** card. The URL displayed in the card is the onboarding page URL:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-oxugcvkx.png)</div><div>Click the **Copy button** to copy the URL to your clipboard. Map this URL to a button on your website or customer portal that, when clicked, opens the URL in a new browser window.</div><div>To see what this looks like, you can load the URL in a new browser window or tab, or click the blue “new window” icon, which does the same thing.</div><div>This onboarding page looks like this:</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-6vlbgbkp.png)</div><div>Click the **Get started** button. This is the flow that business customers who click the button on your website or customer portal will see. Complete the flow if you wish.</div><div id="bkmrk-step-3%3A-capture-cust"><div id="bkmrk-step-3%3A-capture-cust-1"><div>### Step 3: Capture customer asset IDs

</div></div></div><div id="bkmrk-step-4%3A-generate-an-"><div id="bkmrk-step-4%3A-generate-an--1"><div>### Step 4: Generate an HMAC-SHA256 hash

</div></div></div><div>Generate an HMAC-SHA256 hash of your app secret and system token.</div><div id="bkmrk-bash-example-for-lin"><div id="bkmrk-bash-example-for-lin-1"><div>#### Bash example for Linux and macOS

</div></div></div><div><div>```
echo -n "<SYSTEM_TOKEN>" | openssl dgst -sha256 -hmac "<APP_SECRET>"
```

</div></div><span>`<SYSTEM_TOKEN>` — Your system token.</span><span>`<APP_SECRET>` — Your app secret ([**App Dashboard**](/apps) &gt; **App settings** &gt; **Basic**)</span><div id="bkmrk-step-5%3A-get-a-busine"><div id="bkmrk-step-5%3A-get-a-busine-1"><div>### Step 5: Get a business token

</div></div></div><div id="bkmrk-step-7%3A-onboard-the-"><div id="bkmrk-step-7%3A-onboard-the--1"><div>### Step 7: Onboard the customer

</div></div></div><div>Onboard the business customer by completing the steps in the appropriate onboarding guide below:</div><span>[Onboarding business customers as a Tech Provider or Tech Partner](/books/meta-whatsapp/page/onboarding-business-customers-as-a-tech-provider-or-tech-partner-developer-documentation) (skip step 1)</span><span>[Onboarding business customers as a Solution Partner](/books/meta-whatsapp/page/onboarding-business-customers-as-a-solution-partner-developer-documentation) (skip step 1)</span></div>

# Automatic Events API | Developer Documentation

<div id="bkmrk-automatic-events-api">## Automatic Events API

<div><span>Updated: Nov 18, 2025</span></div><div>Business customers who access Embedded Signup can opt in to automatic event identification:</div><div>![Embedded Signup opt-in screen for automatic event identification](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-8ipcbofb.png)</div><div>If a business customer opts in, Meta use a combination of regex and natural language processing to analyze the customer’s new message threads originating from Click-to-WhatsApp ads. If our analysis determines that a lead gen or purchase event occurred, an [automatic\_events](/books/meta-whatsapp/page/automatic-events-webhook-reference-developer-documentation) webhook is triggered, describing the event. You can then report the event for the customer using the [Conversions API](https://developers.facebook.com/docs/marketing-api/conversions-api) so the customer can use it on a Meta surface (in 2026, see [Limitations](#bkmrk-limitations-1) below).</div><div>To learn more about how this feature works, see these [additional resources<span>⁠</span>](https://l.facebook.com/l.php?u=https%3A%2F%2Fmeta.highspot.com%2Fitems%2F6839e4fecd0bb354418ee7ec&h=AT5hf4PvOjJ2FESmflL5yRwOnD3Vqw7s3Z2dtG9ET8oRj2yl5Y9lzMjyYZ1NkK3joSx93uvicJaJJpmDRP9WUw4eSC3I-BnSPpQGOM5BY3eCQM8HLmzGGzxeMnuc3VV7SAG0m-QtHe47ckg4RAc9zA).</div><div id="bkmrk-limitations"><div id="bkmrk-limitations-1"><div>### Limitations

</div></div></div>
<span>Automatic event identification is a new feature. Your business customers won’t see or use automatic events reported via Conversions API in Meta surfaces until 2026. However, you can surface this information to your customers using your own solution before then. This allows them to gain a deeper understanding of their own customers’ needs, preferences, and ad performance.</span><span>Automatic event identification is not available to business customers in the European Union, United Kingdom, or Japan.</span><div id="bkmrk-requirements"><div id="bkmrk-requirements-1"><div>### Requirements

</div></div></div>
<span>You have already [implemented](/books/meta-whatsapp/page/implementation-developer-documentation) Embedded Signup and are able to onboard business customers who complete the flow.</span><span>Your [webhook server](/books/meta-whatsapp/page/create-a-webhook-endpoint-developer-documentation) is successfully processing webhooks.</span><div id="bkmrk-enabling-and-disabli"><div id="bkmrk-enabling-and-disabli-1"><div>### Enabling and disabling via Meta Business Suite

</div></div></div><div>Business customers who have already been onboarded via Embedded Signup can enable automatic event identification using Meta Business Suite.</div><div>![A WhatsApp Business Account selected in the Meta Business Suite's settings panel, with the summary tab showing checkboxes for opting in.](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-hce9tvd9.png)</div><div>If a business customer who you have already onboarded wants to enable this feature, you can send them these instructions:</div>
<span>Access Meta Business Suite at [https://business.facebook.com<span>⁠</span>](https://business.facebook.com).</span><span>Navigate to **Settings** &gt; **Accounts** &gt; **WhatsApp accounts** and click your WhatsApp Business Account.</span><span>Scroll down to **Privacy and data sharing** in the **Summary** tab.</span><span>Use the “**Automatically identify**... “ toggles to enable or disable automatic event identification as desired.</span></div>

# Versions | Developer Documentation

<div id="bkmrk-versionsupdated%3A-dec">## Versions

<div><span>Updated: Dec 11, 2025</span></div><div>The latest Embedded Signup Version is: `v4`</div><div>This guide provides an overview on versioning in Embedded Signup. The versioning cadence will align with Graph API. The versions are not exclusive, partners can gradually roll out a new version of ES to reduce risk. The Embedded Signup version is determined inside of the **extras object** of the implementation code.</div><div>**Note: The refreshed UI, currently available in the public preview, will be rolled out to all versions of Embedded Signup in early September.**</div><div id="bkmrk-available-es-version"><div id="bkmrk-available-es-version-1"><div>### Available ES Versions

</div></div></div><div><table><thead><tr><th><span>Version </span></th><th><span>Date Introduced </span></th><th><span>Available Until </span></th></tr></thead><tbody><tr><td><div><div>[v4](/books/meta-whatsapp/page/version-4-developer-documentation)</div></div></td><td><div><div>October 8th, 2025</div></div></td><td><div><div>TBD</div></div></td></tr><tr><td><div><div>[v3-public-preview](/books/meta-whatsapp/page/version-3-public-preview-developer-documentation)</div></div></td><td><div><div>August 14, 2025</div></div></td><td><div><div>October, 2026</div></div></td></tr><tr><td><div><div>[v2-public-preview](/books/meta-whatsapp/page/version-2-public-preview-developer-documentation)</div></div></td><td><div><div>August 14, 2025</div></div></td><td><div><div>October, 2026</div></div></td></tr><tr><td><div><div>[v3](/books/meta-whatsapp/page/version-3-developer-documentation)</div></div></td><td><div><div>May 29, 2025</div></div></td><td><div><div>October, 2026</div></div></td></tr><tr><td><div><div>v2</div></div></td><td><div><div>January 2023</div></div></td><td><div><div>October, 2026</div></div></td></tr></tbody></table>

</div><div id="bkmrk-overview-of-feature-"><div id="bkmrk-overview-of-feature--1"><div>### Overview of feature availability

</div></div></div><div><table><thead><tr><th><span>Version </span></th><th><span>Feature types </span></th><th><span>Features </span></th><th><span>Completion State </span></th><th><span>Prefilled Info </span></th><th><span>[Session Info Logging](/books/meta-whatsapp/page/implementation-developer-documentation)</span></th><th><span>Products (via login config) </span></th></tr></thead><tbody><tr><td><div><div>`v4`</div></div></td><td><div><div>`whatsapp_business_app_onboarding`</div></div></td><td><div><div>`app_only_install`</div></div></td><td><div><div>Users can finish with a verified, unverified or no phone number</div></div></td><td><div><div>Can fill business information, no screens will be skipped.</div></div></td><td><div><div>Sent back for all flows</div></div></td><td><div><div>Marketing Messages API for WhatsApp(MM API for WhatsApp)</div><div>Click to WhatsApp Ads (CTWA)</div><div>Conversions API (WhatsApp)</div></div></td></tr><tr><td><div><div>`v3-public-preview`</div></div></td><td><div><div>`whatsapp_business_app_onboarding`</div></div></td><td><div><div>`app_only_install`</div><div>`marketing_messages_lite`</div></div></td><td><div><div>Users can finish with a verified, unverified or no phone number</div></div></td><td><div><div>Can fill business information, no screens will be skipped.</div></div></td><td><div><div>Sent back for all flows</div></div></td><td><div><div>Not supported</div></div></td></tr><tr><td><div><div>`v2-public-preview`</div></div></td><td><div><div>`only_waba_sharing`</div><div>`whatsapp_business_app_onboarding`</div><div>`marketing_messages_lite`</div></div></td><td><div><div>`app_only_install`</div><div>`marketing_messages_lite`</div></div></td><td><div><div>Users will finish with a verified phone number</div></div></td><td><div><div>Can fill business information, no screens will be skipped.</div></div></td><td><div><div>Sent back for all flows</div></div></td><td><div><div>Not supported</div></div></td></tr><tr><td><div><div>`v3`</div></div></td><td><div><div>`whatsapp_business_app_onboarding`</div></div></td><td><div><div>`app_only_install`</div><div>`marketing_messages_lite`</div></div></td><td><div><div>Users can finish with a verified, unverified or no phone number</div></div></td><td><div><div>Can fill business information, no screens will be skipped.</div></div></td><td><div><div>Sent back for all flows</div></div></td><td><div><div>Not supported</div></div></td></tr><tr><td><div><div>`v2`</div></div></td><td><div><div>`only_waba_sharing`</div><div>`whatsapp_business_app_onboarding`</div><div>`marketing_messages_lite`</div></div></td><td><div><div>`marketing_messages_lite`</div></div></td><td><div><div>Users will finish with a verified phone number</div></div></td><td><div><div>Can fill business information and skip screens</div></div></td><td><div><div>Partners are required to add a `sessionInfoVersion` to receive the callback</div></div></td><td><div><div>Not supported</div></div></td></tr></tbody></table>

</div><div id="bkmrk-version-4"><div id="bkmrk-version-4-1"><div>### Version 4

</div></div></div><div>**Released:** October 8, 2025 | [Detailed changes](/books/meta-whatsapp/page/version-4-developer-documentation)</div><div>**Login Configuration**</div><div>**Extras Configuration**</div><div>```
<span>extras</span><span>:</span><span>{}</span><span>// The extras object is purposely empty for v4.</span>
```

</div><div>To use v4: You need to create a new [Facebook Login for Business Configuration](/books/meta-whatsapp/page/implementation-developer-documentation), and select your desired products. Selecting the products will automatically set you to v4.</div><div id="bkmrk-version-3-public-pre"><div id="bkmrk-version-3-public-pre-1"><div>### Version 3 Public Preview

</div></div></div><div>**Released:** August 14, 2025 | **Available until:** October, 2026 | [Detailed changes](/books/meta-whatsapp/page/version-3-public-preview-developer-documentation)</div><div>**Extras Configuration**</div><div>```
<span>extras</span><span>:</span><span>{</span><span>
    setup</span><span>:</span><span>"<SETUP_DATA>"</span><span>,</span><span>
    features</span><span>:</span><span>[</span><span>{</span><span>
        name</span><span>:</span><span>"<FEATURE_NAME>"</span><span>}</span><span>],</span><span>
    featureType</span><span>:</span><span>"<FEATURE_TYPE>"</span><span>,</span><span>
    version</span><span>:</span><span>"<VERSION>"</span><span>}</span>
```

</div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example Value </span></th></tr></thead><tbody><tr><td><div><div>`<PREFILL_DATA>`</div></div></td><td><div><div>Prefilled business data to inject data into Embedded Signup.</div></div></td><td><div><div></div></div></td></tr><tr><td><div><div>`<FEATURE_NAME>`</div></div></td><td><div><div>Indicates a flow or feature to enable.</div></div></td><td><div><div>**Possible Values:**</div><div>`app_only_install` - Allows partners to access WABAs via API using a granular token (BISU), without creating a (SUAT)</div><div>`marketing_messages_lite` - Enables the [Marketing Messages API for WhatsApp onboarding](/books/meta-whatsapp/page/marketing-messages-api-for-whatsapp-developer-documentation) flow.</div></div></td></tr><tr><td><div><div>`<FEATURE_TYPE>`</div></div></td><td><div><div>Indicates a flow or feature to enable.</div></div></td><td><div><div>**Possible Values:**</div><div>`whatsapp_business_app_onboarding` - Enables the [WhatsApp Business App phone number onboarding](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation) custom flow.</div><div>Leave **blank** to enable the default onboarding flow.</div></div></td></tr><tr><td><div><div>`<VERSION>`</div></div></td><td><div><div>Indicates Embedded Signup version flow.</div></div></td><td><div><div>**Possible Values:**</div><div>`v3-public-preview`, `v2-public-preview`, `v3`, `v2`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-version-2-public-pre"><div id="bkmrk-version-2-public-pre-1"><div>### Version 2 Public Preview

</div></div></div><div>**Released:** August 14, 2025 | **Available until:** October, 2026 | [Detailed changes](/books/meta-whatsapp/page/version-2-public-preview-developer-documentation)</div><div>**Extras Configuration**</div><div>```
<span>extras</span><span>:</span><span>{</span><span>
    setup</span><span>:</span><span>"<SETUP_DATA>"</span><span>,</span><span>
    features</span><span>:</span><span>[</span><span>{</span><span>
        name</span><span>:</span><span>"<FEATURE_NAME>"</span><span>}</span><span>],</span><span>
    featureType</span><span>:</span><span>"<FEATURE_TYPE>"</span><span>,</span><span>
    sessionInfoVersion</span><span>:</span><span>"<SESSION_INFO_VERSION>"</span><span>
    version</span><span>:</span><span>"<VERSION>"</span><span>}</span>
```

</div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example Value </span></th></tr></thead><tbody><tr><td><div><div>`<PREFILL_DATA>`</div></div></td><td><div><div>Prefilled business data to inject data into Embedded Signup.</div></div></td><td><div><div></div></div></td></tr><tr><td><div><div>`<FEATURE_NAME>`</div></div></td><td><div><div>Indicates a flow or feature to enable.</div></div></td><td><div><div>**Possible Values:**</div><div>`app_only_install` - Allows partners to access WABAs via API using a granular token (BISU), without creating a (SUAT)</div><div>`marketing_messages_lite` - Enables the [MM API for WhatsApp onboarding](/books/meta-whatsapp/page/marketing-messages-api-for-whatsapp-developer-documentation) flow.</div></div></td></tr><tr><td><div><div>`<FEATURE_TYPE>`</div></div></td><td><div><div>Indicates a flow or feature to enable.</div></div></td><td><div><div>**Possible Values:**</div><div>`whatsapp_business_app_onboarding` - Enables the [WhatsApp Business App phone number onboarding](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation) custom flow.</div><div>`only_waba_sharing` - Enables the [WhatsApp Business App phone number onboarding](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation) custom flow. Will **NOT** show the new consolidated UI.</div><div>`marketing_messages_lite` - Enables the [MM API for WhatsApp onboarding](/books/meta-whatsapp/page/marketing-messages-api-for-whatsapp-developer-documentation) custom flow. Will **NOT** show the new consolidated UI.</div><div>Leave **blank** to enable the default onboarding flow.</div></div></td></tr><tr><td><div><div>`<SESSION_INFO_VERSION>`</div></div></td><td><div><div>Indicates the returned session payload.</div></div></td><td><div><div>**Possible Values:**</div><div>`3`</div></div></td></tr><tr><td><div><div>`<VERSION>`</div></div></td><td><div><div>Indicates Embedded Signup version flow.</div></div></td><td><div><div>**Possible Values:**</div><div>`v3-public-preview`, `v2-public-preview`, `v3`, `v2`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-version-3"><div id="bkmrk-version-3-1"><div>### Version 3

</div></div></div><div><table><tbody><tr><td><div>**Released:** May 29, 2025</div></td><td><div>**Available until:** October, 2026</div></td><td><div>[Blog post](/blog/post/2025/05/29/introducing-graph-api-v23-and-marketing-api-v23/)</div></td><td><div>[Detailed changes](/books/meta-whatsapp/page/version-3-developer-documentation)</div></td></tr></tbody></table>

</div><div>**Extras Configuration**</div><div>```
<span>extras</span><span>:</span><span>{</span><span>
    setup</span><span>:</span><span>"<SETUP_DATA>"</span><span>,</span><span>
    features</span><span>:</span><span>[</span><span>{</span><span>
        name</span><span>:</span><span>"<FEATURE_NAME>"</span><span>}</span><span>],</span><span>
    featureType</span><span>:</span><span>"<FEATURE_TYPE>"</span><span>,</span><span>
    version</span><span>:</span><span>"v3"</span><span>}</span>
```

</div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example Value </span></th></tr></thead><tbody><tr><td><div><div>`<PREFILL_DATA>`</div></div></td><td><div><div>Prefilled business data to inject data into Embedded Signup.</div></div></td><td><div><div></div></div></td></tr><tr><td><div><div>`<FEATURE_NAME>`</div></div></td><td><div><div>Indicates a flow or feature to enable.</div></div></td><td><div><div>**Possible Values:**</div><div>`app_only_install` - Allows partners to access WABAs via API using a granular token (BISU), without creating a (SUAT)</div><div>`marketing_messages_lite` - Enables the [MM API for WhatsApp onboarding](/books/meta-whatsapp/page/marketing-messages-api-for-whatsapp-developer-documentation) flow.</div></div></td></tr><tr><td><div><div>`<FEATURE_TYPE>`</div></div></td><td><div><div>Indicates a flow or feature to enable.</div></div></td><td><div><div>**Possible Values:**</div><div>`whatsapp_business_app_onboarding` - Enables the [WhatsApp Business App phone number onboarding](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation) custom flow.</div><div>Leave **blank** to enable the default onboarding flow.</div></div></td></tr><tr><td><div><div>`<VERSION>`</div></div></td><td><div><div>Indicates Embedded Signup version flow.</div></div></td><td><div><div>**Possible Values:**</div><div>`v3-public-preview`, `v2-public-preview`, `v3`, `v2`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-version-2"><div id="bkmrk-version-2-1"><div>### Version 2

</div></div></div><div><table><tbody><tr><td><div>**Released:** January 2023</div></td><td><div>**Available until:** October, 2026</div></td></tr></tbody></table>

</div><div>**Extras Configuration**</div><div>```
<span>extras</span><span>:</span><span>{</span><span>
    setup</span><span>:</span><span>"<SETUP_DATA>"</span><span>,</span><span>
    features</span><span>:</span><span>[</span><span>{</span><span>
        name</span><span>:</span><span>"<FEATURE_NAME>"</span><span>}</span><span>],</span><span>
    featureType</span><span>:</span><span>"<FEATURE_TYPE>"</span><span>,</span><span>
    sessionInfoVersion</span><span>:</span><span>"<SESSION_INFO_VERSION>"</span><span>,</span><span>}</span>
```

</div><div>Head to the [pre-fill screens page](/documentation/business-messaging/whatsapp/embedded-signup/pre-filled-data#injecting-data) to see how to inject customer business data into Embedded Signup.</div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example Value </span></th></tr></thead><tbody><tr><td><div><div>`<PREFILL_DATA>`</div></div></td><td><div><div>Prefilled business data to inject data into Embedded Signup.</div></div></td><td><div><div></div></div></td></tr><tr><td><div><div>`<FEATURE_NAME>`</div></div></td><td><div><div>Indicates a flow or feature to enable.</div></div></td><td><div><div>**Possible Values:**</div><div>`app_only_install` - Allows partners to access WABAs via API using a granular token (BISU), without creating a (SUAT)</div><div>`marketing_messages_lite` - Enables the [MM API for WhatsApp onboarding](/books/meta-whatsapp/page/marketing-messages-api-for-whatsapp-developer-documentation) flow.</div></div></td></tr><tr><td><div><div>`<FEATURE_TYPE>`</div></div></td><td><div><div>Indicates a flow or feature to enable.</div></div></td><td><div><div>**Possible Values:**</div><div>`whatsapp_business_app_onboarding` - Enables the [WhatsApp Business App phone number onboarding](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation) custom flow.</div><div>`only_waba_sharing` - Enables the [WhatsApp Business App phone number onboarding](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation) custom flow.</div><div>`marketing_messages_lite` - Enables the [MM API for WhatsApp onboarding](/books/meta-whatsapp/page/marketing-messages-api-for-whatsapp-developer-documentation) custom flow.</div><div>Leave **blank** to enable the default onboarding flow.</div></div></td></tr><tr><td><div><div>`<SESSION_INFO_VERSION>`</div></div></td><td><div><div>Indicates the returned session payload.</div></div></td><td><div><div>**Possible Values:**</div><div>`3`</div></div></td></tr><tr><td><div><div>`<VERSION>`</div></div></td><td><div><div>Indicates Embedded Signup version flow.</div></div></td><td><div><div>**Possible Values:**</div><div>`v3-public-preview`, `v2-public-preview`, `v3`, `v2`</div></div></td></tr></tbody></table>

</div></div>

# Version 4 | Developer Documentation

<div id="bkmrk-version-4updated%3A-de">## Version 4

<div><span>Updated: Dec 12, 2025</span></div><div><span></span><div>Release date: October 8, 2025. Check back soon for updates on additional supported products.</div></div><div>To upgrade to the v4 experience: You need to create a new [Facebook Login for Business Configuration](/books/meta-whatsapp/page/implementation-developer-documentation), and select your desired products. Selecting the products will automatically set you to v4.</div><div>See [screenshots](/books/meta-whatsapp/page/version-4-developer-documentation) below.</div><div id="bkmrk-overview-of-v4-chang"><div id="bkmrk-overview-of-v4-chang-1"><div>### Overview of v4 changes

</div></div></div>
<span>Simplified onboarding experience for businesses: </span>
<span>You can onboard businesses to more business messaging in a single flow ([see supported products](/books/meta-whatsapp/page/version-4-developer-documentation)).</span><span>Asset selection, business information, and permissions are each consolidated onto a single page.</span><span>Asset admins can share assets from other business portfolios.</span><span>Phone numbers are auto-linked to Facebook Pages when onboarding to ads that click to WhatsApp via the Marketing API.</span><span>Value proposition and Terms of Service are clearly presented.</span><span>The [Facebook Login for Business Configuration](/books/meta-whatsapp/page/version-4-developer-documentation) is used to define which products to add into your onboarding flow.</span><div id="bkmrk-learn-more"><div id="bkmrk-learn-more-1"><div>### Learn more

</div></div></div>
<span>[v4 - Cloud API flow](/books/meta-whatsapp/page/customizing-the-default-flow-developer-documentation)</span><div id="bkmrk-supported-products"><div id="bkmrk-supported-products-1"><div>### Supported products

</div></div></div><div>v4 supports additional business messaging products, ensuring businesses to set up and manage multiple communication channels from a single platform:</div>
<span>**Conversions API (WhatsApp)**: Track and optimize messaging interactions by selecting the messaging platform you want to monitor, enabling enhanced measurement and optimization.</span><span>**Click to WhatsApp Ads (CTWA)**: Create ads that direct users to initiate WhatsApp conversations with your business.</span><span>**Click to Messenger Ads (CTM)**: Run advertising campaigns that start conversations with users on Facebook Messenger.</span><span>**Click to Direct Ads (CTD)**: Launch Instagram ad campaigns that drive users to direct messaging conversations on Instagram Direct.</span><div id="bkmrk-all-other-supported-"><div id="bkmrk-all-other-supported--1"><div>### All other supported products

</div></div></div><div>v4 continues to support existing business messaging products, allowing businesses to seamlessly manage their established communication channels.</div>
<span>**Cloud API**: Integrate and manage WhatsApp messaging at scale, enabling businesses to send and receive messages, automate workflows, and access advanced messaging features.</span><span>**Marketing Messages API for WhatsApp**: Utilize to manage optimized marketing messaging , providing tools for message analytics, and enhanced customer engagement.</span><span>**WhatsApp Business App users (aka “Coexistence”) support**: Onboarding via Coexistence continues to be supported through the [`feature_type` parameter](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation).</span><span>**Partner-led Business Verification (PLBV) support**: [PLBV](/books/meta-whatsapp/page/partner-led-business-verification-developer-documentation) enables partners to verify business after onboarding via Embedded Signup. If you are considering this option, ensure you are an approved Select Solution or Premier Solution Partner, and [approved for access<span>⁠</span>](https://www.facebook.com/business/help/1091073752691122).</span><span>**Automatic Events API**: [Automatic Events API](/books/meta-whatsapp/page/automatic-events-api-developer-documentation) notifies your application about key events that occur through Click-to-WhatsApp ads.</span><div id="bkmrk-use-the-facebook-log"><div id="bkmrk-use-the-facebook-log-1"><div>### Use the Facebook Login for Business Configuration to get started with v4

</div></div></div><div>v4 enables you to easily set up and change which products you want to include in your onboarding flow:</div><div>Step 1: Navigate to [App Dashboard](https://developers.facebook.com/apps) &gt; **Facebook Login for Business** &gt; **Configurations** to create a new configuration.</div><div>Step 2: Select **Embedded Signup** as the login variation.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-wavztfvv.png)</div><div>Step 3: Select which products you want to include in your onboarding flow. Selecting more than one product is optional.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-q5tyf5ut.png)</div><div>Step 4: Copy the configuration id to use inside the Facebook Login SDK.</div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-erdn1xcl.png)</div><div id="bkmrk-required-assets-and-"><div id="bkmrk-required-assets-and--1"><div>### Required assets and permissions

</div></div></div><div>When selecting products for v4, the flow will automatically select all necessary permissions and assets. You will need advanced access for all permissions automatically selected in the flow. If needed, you can select additional assets and permissions. The table below is a reference on what assets and permissions you need depending on what product you would like to offer.</div><div><table><thead><tr><th><span>Product </span></th><th><span>Required assets </span></th><th><span>Required permissions (Advanced Access) </span></th></tr></thead><tbody><tr><td><div><div>[Cloud API](/books/meta-whatsapp/page/about-the-whatsapp-business-platform-developer-documentation)</div></div></td><td><div><div>WhatsApp Business accounts</div></div></td><td><div><div>whatsapp_business_management</div><div>whatsapp_business_messaging</div></div></td></tr><tr><td><div><div>[Click to WhatsApp (CTWA on Marketing API)](https://developers.facebook.com/docs/marketing-api/ad-creative/messaging-ads/click-to-whatsapp)</div></div></td><td><div><div>WhatsApp Business accounts</div><div>Facebook Pages</div><div>Ad accounts</div></div></td><td><div><div>ads_read</div><div>ads_management</div><div>pages_manage_ads</div><div>pages_read_engagement</div><div>pages_show_list</div></div></td></tr><tr><td><div><div>[Click to Messenger (CTM on MAPI)](https://developers.facebook.com/docs/marketing-api/ad-creative/messaging-ads/click-to-messenger)</div></div></td><td><div><div>Facebook Pages</div><div>Ad accounts</div></div></td><td><div><div>ads_management</div><div>pages_manage_ads</div><div>pages_read_engagement</div><div>pages_show_list</div></div></td></tr><tr><td><div><div>[Click to Instagram (CTD on MAPI)](https://developers.facebook.com/docs/marketing-api/ad-creative/messaging-ads/click-to-instagram)</div></div></td><td><div><div>Facebook Pages</div><div>Ad accounts</div><div>Instagram accounts</div></div></td><td><div><div>ads_management</div><div>pages_manage_ads</div><div>pages_read_engagement</div><div>pages_show_list</div></div></td></tr><tr><td><div><div>[Marketing Messages API for WhatsApp](/books/meta-whatsapp/page/marketing-messages-api-for-whatsapp-developer-documentation)</div></div></td><td><div><div>WhatsApp Business accounts</div></div></td><td><div><div>whatsapp_business_management</div><div>whatsapp_business_messaging</div></div></td></tr><tr><td><div><div>[Conversions API for CTWA](https://developers.facebook.com/docs/marketing-api/conversions-api/business-messaging#ads-that-click-to-whatsapp)</div></div></td><td><div><div>WhatsApp Business accounts</div><div>Pixels</div></div></td><td><div><div>whatsapp_business_manage_events</div></div></td></tr><tr><td><div><div>[Conversions API for CTM](https://developers.facebook.com/docs/marketing-api/conversions-api/business-messaging#ads-that-click-to-messenger)</div></div></td><td><div><div>Facebook Pages</div><div>Ad accounts</div><div>Pixels</div></div></td><td><div><div>page_events</div></div></td></tr><tr><td><div><div>[Conversions API for CTD](https://developers.facebook.com/docs/marketing-api/conversions-api/business-messaging#ads-that-click-to-instagram-direct)</div></div></td><td><div><div>Facebook Pages</div><div>Ad accounts</div><div>Instagram accounts</div><div>Pixels</div></div></td><td><div><div>instagram_manage_events</div></div></td></tr></tbody></table>

</div></div>

# Version 3 | Developer Documentation

<div id="bkmrk-version-3updated%3A-de">## Version 3

<div><span>Updated: Dec 11, 2025</span></div><div>We are introducing versioning cadence to Embedded Signup that will align with Graph API. v3 will be released on May 29th for all partners to adopt, which will include the following changes.</div><div id="bkmrk-business-customers-c"><div id="bkmrk-business-customers-c-1"><div>### Business customers can now complete the flow without a phone number

</div></div></div><div>Previously in v2, you would always be required to register a verified phone number (unless partners enabled the bypass phone numbers flow) to complete the flow. You can now complete the flow with statuses like verified, unverified, or no phone number at all. You can either go through Embedded Signup again, go on WhatsApp manager, or the partner can utilize [API calls to verify the number](/books/meta-whatsapp/page/registering-business-phone-numbers-developer-documentation).</div><div>To determine the status of the phone number, visit the documentation on session info logging.</div><div id="bkmrk-session-info-logging"><div id="bkmrk-session-info-logging-1"><div>### Session Info Logging is automatically enabled

</div></div></div><div>All partners who are on v3 will have session info logging enabled automatically. Partners will still have to add an event listener on the same window of Embedded Signup to process the incoming information.</div><div id="bkmrk-adding-the-features-"><div id="bkmrk-adding-the-features--1"><div>### Adding the `features` property in the configuration

</div></div></div><div>You can now utilize the features property to enable a range of features in Embedded Signup. The property allows you to add multiple features instead of just one in the featureType property from v2.</div><div id="bkmrk-v3-request-syntax"><div id="bkmrk-v3-request-syntax-1"><div>#### v3 request syntax

</div></div></div><div><div>```
// Launch method and callback registration
const launchWhatsAppSignup = () => {
  FB.login(fbLoginCallback, {
    config_id: '<CONFIGURATION_ID>', // your configuration ID goes here
    response_type: 'code',
    override_default_response_type: true,
    extras: {
  version: 'v3'
  setup: {},
  features: [<FEATURE_NAME>],
      featureType: '<FEATURE_TYPE>'
    }
}
```

</div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Example </span></th></tr></thead><tbody><tr><td><div><div>`<FEATURE_NAME>`</div></div></td><td><div><div>Name of feature to enable in ES configuration.</div><div>Note: You can leave the value blank to follow the default flow.</div><div>Values can be:</div><span>`app_only_install` — Allows partners to only access WABAs via API using a [business token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation).</span><span>`marketing_messages_lite` — Enables the MM API for WhatsApp onboarding flow.</span></div></td><td><div><div><div>```
{
  features: [
    {
      name: 'marketing_messages_lite'
    }
  ]
}
```

</div></div></div></td></tr><tr><td><div><div>`<FEATURE_TYPE>`</div></div></td><td><div><div>Name of feature types to enable in ES configuration.</div><div>Value can only be `whatsapp_business_app_onboarding`, which enables the WhatsApp Business App phone number onboarding custom flow.</div></div></td><td><div><div>`whatsapp_business_app_onboarding`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-removal-of-multiple-"><div id="bkmrk-removal-of-multiple--1"><div>### Removal of multiple `featuretype` options in the ES Configuration

</div></div></div><div>In [v2](/books/meta-whatsapp/page/versions-developer-documentation), business customers enabling a custom flow would be required to complete the embedded sign up multiple times depending on the number of featureTypes added to the configuration.</div><div id="bkmrk-removing-only_waba_s"><div id="bkmrk-removing-only_waba_s-1"><div>#### Removing `only_waba_sharing`

</div></div></div><div>The [bypass phone number screen flow](/books/meta-whatsapp/page/bypassing-the-phone-number-addition-screen-developer-documentation) allows for a streamlined onboarding process where the WABA is shared without the need to go through the phone number setup steps. This flow will no longer be supported in v3. If you want to use the flow, use v2.</div><div id="bkmrk-removing-marketing_m"><div id="bkmrk-removing-marketing_m-1"><div>#### Removing `marketing_messages_lite`

</div></div></div><div>Marketing Messages API for WhatsApp will still be supported through the features argument. If you would still like to use the flow, update your configuration to the following.</div><div id="bkmrk-removing-coexistence"><div id="bkmrk-removing-coexistence-1"><div>#### Removing `coexistence`

</div></div></div><div>To launch the WhatsApp Business App Onboarding flow, partners will have to use `whatsapp_business_app_onboarding` instead of `coexistence`.</div><div id="bkmrk-embedded-signup-pre-"><div id="bkmrk-embedded-signup-pre--1"><div>### Embedded Signup Pre-Filled will no longer skip screens.

</div></div></div><div>Partners will still be able to pre-fill business information in Embedded Signup, but the business customer will not have the option to bypass any screens in the flow. For partners who would still like to use the flow, you should stick to using v2.</div><div id="bkmrk-measurement-partners"><div id="bkmrk-measurement-partners-1"><div>### Measurement Partners must remain on v2

</div></div></div><div>Please note that Measurement product onboarding will only be supported on v2 for the time being. Continuing to support Measurement partners is important and will be supported in a future version.</div></div>

# Version 3 Public Preview | Developer Documentation

<div id="bkmrk-version-3-public-pre">## Version 3 Public Preview

<div><span>Updated: Nov 4, 2025</span></div><div>We are updating the UI for Embedded Signup. You can get a preview of what it looks like by enabling v3-public-preview. The new version will give partners a preview on what’s to come for Embedded Signup in the near future. Functionality between v3-public-preview and v3 are identical; the key difference is a simplified UI on v3-public-preview.</div><div><div><div id="bkmrk-authentication-scree"><div id="bkmrk-authentication-scree-1"><div>#### Authentication screen

</div></div></div><div>This screen authenticates business customers using their Facebook or Meta Business Suite credentials.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-mid2eizn.png)</div></div><div><div id="bkmrk-authorization-screen"><div id="bkmrk-authorization-screen-1"><div>#### Authorization screen

</div></div></div><div>This screen describes the data the business customer will be permitting your app to access.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-8vxd7tsj.png)</div></div><div><div id="bkmrk-business-asset-selec"><div id="bkmrk-business-asset-selec-1"><div>#### Business Asset Selection Screen

</div></div></div><div>This screen gives customers the option to select existing business assets such as a Meta business portfolio and WhatsApp Business Account.</div><div>Users also have the option to create new assets if they have not reached their portfolio limit.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-pmicjj93.png)</div></div><div><div id="bkmrk-business-asset-creat"><div id="bkmrk-business-asset-creat-1"><div>#### Business Asset Creation Screen

</div></div></div><div>This screen gives customers the option to select existing business assets such as a Meta business portfolio and WhatsApp Business Account.</div><div>Users also have the option to create new assets if they have not reached their portfolio limit.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-bdiklnpq.png)</div></div><div><div id="bkmrk-phone-number-additio"><div id="bkmrk-phone-number-additio-1"><div>#### Phone number addition screen

</div></div></div><div>This screen allows the business customer to enter a new business phone number to associate with their WhatsApp Business Account.</div><div>It also allows the customer to choose how they wish to receive their verification code, which they will need to provide in the next step.</div><div>If you are providing phone numbers to your customers, you will have to deliver these codes to your customers, or provide pre-verified numbers instead.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-wuurjs2w.png)</div></div><div><div id="bkmrk-phone-number-verific"><div id="bkmrk-phone-number-verific-1"><div>#### Phone number verification screen

</div></div></div><div>This screen allows the business customer to verify ownership of the business phone number they entered in the previous step.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-gl1uu8oy.png)</div></div><div><div id="bkmrk-permissions-review-s"><div id="bkmrk-permissions-review-s-1"><div>#### Permissions review screen

</div></div></div><div>This screen provides a summary of the permissions the business customer will be granting to your app.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-7ocoq0wb.png)</div></div><div><div id="bkmrk-success-screen"><div id="bkmrk-success-screen-1"><div>#### Success screen

</div></div></div><div>This screen indicates that we successfully created and associated all of the business customer’s assets (business portfolio, WABA, phone number display profile, and business phone number).</div><div>When the customer clicks Finish, a message event will be triggered, containing the customer’s WABA ID and business phone number ID, which you must then use to onboard the customer to the platform.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-8yus0suf.png)</div></div></div></div>

# Version 2 Public Preview | Developer Documentation

<div id="bkmrk-version-2-public-pre">## Version 2 Public Preview

<div><span>Updated: Nov 4, 2025</span></div><div>We are updating the UI for Embedded Signup. You can get a preview of what it looks like by enabling v2-public-preview. The new version will give partners a preview on what’s to come for Embedded Signup in the near future. Functionality between v2-public-preview and v2 are identical; the key difference is a simplified UI on v2-public-preview.</div><div><div><div id="bkmrk-authentication-scree"><div id="bkmrk-authentication-scree-1"><div>#### Authentication screen

</div></div></div><div>This screen authenticates business customers using their Facebook or Meta Business Suite credentials.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-ymibou5z.png)</div></div><div><div id="bkmrk-authorization-screen"><div id="bkmrk-authorization-screen-1"><div>#### Authorization screen

</div></div></div><div>This screen describes the data the business customer will be permitting your app to access.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-ae2qzmxs.png)</div></div><div><div id="bkmrk-business-asset-selec"><div id="bkmrk-business-asset-selec-1"><div>#### Business Asset Selection Screen

</div></div></div><div>This screen gives customers the option to select existing business assets such as a Meta business portfolio and WhatsApp Business Account.</div><div>Users also have the option to create new assets if they have not reached their portfolio limit.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-7coe0mgg.png)</div></div><div><div id="bkmrk-business-asset-creat"><div id="bkmrk-business-asset-creat-1"><div>#### Business Asset Creation Screen

</div></div></div><div>This screen gives customers the option to select existing business assets such as a Meta business portfolio and WhatsApp Business Account.</div><div>Users also have the option to create new assets if they have not reached their portfolio limit.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-ka6duwjn.png)</div></div><div><div id="bkmrk-phone-number-additio"><div id="bkmrk-phone-number-additio-1"><div>#### Phone number addition screen

</div></div></div><div>This screen allows the business customer to enter a new business phone number to associate with their WhatsApp Business Account.</div><div>It also allows the customer to choose how they wish to receive their verification code, which they will need to provide in the next step.</div><div>If you are providing phone numbers to your customers, you will have to deliver these codes to your customers, or provide pre-verified numbers instead.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-qothk4y2.png)</div></div><div><div id="bkmrk-phone-number-verific"><div id="bkmrk-phone-number-verific-1"><div>#### Phone number verification screen

</div></div></div><div>This screen allows the business customer to verify ownership of the business phone number they entered in the previous step.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-v70fvf86.png)</div></div><div><div id="bkmrk-permissions-review-s"><div id="bkmrk-permissions-review-s-1"><div>#### Permissions review screen

</div></div></div><div>This screen provides a summary of the permissions the business customer will be granting to your app.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-jtioefps.png)</div></div><div><div id="bkmrk-success-screen"><div id="bkmrk-success-screen-1"><div>#### Success screen

</div></div></div><div>This screen indicates that we successfully created and associated all of the business customer’s assets (business portfolio, WABA, phone number display profile, and business phone number).</div><div>When the customer clicks Finish, a message event will be triggered, containing the customer’s WABA ID and business phone number ID, which you must then use to onboard the customer to the platform.</div></div><div><div>![](https://support2.chatarchitect.com/uploads/images/gallery/2026-04/embedded-image-ol5chnls.png)</div></div></div></div>

# App-Only Install | Developer Documentation

<div id="bkmrk-app-only-installupda">## App-Only Install

<div><span>Updated: Nov 4, 2025</span></div><div>You can configure Embedded Signup so that only [business tokens](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation) can be used to access assets owned by customers onboarded via the flow. This approach offers enhanced security by reducing risk associated with [system tokens](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation), flexibility in simplifying onboarding for other Meta assets, and scalability to support a larger number of onboardings. By using a granular token, you can also reduce the negative impact in case of a compromised token, making it a more secure and efficient way to manage your business customer assets.</div><div>Note that App-Only Install can't be used to [onboard WhatsApp Business app users](/books/meta-whatsapp/page/onboarding-whatsapp-business-app-users-aka-coexistence-developer-documentation).</div></div>