All Products
Search
Document Center

Chat App Message Service:Embedded Signup

Last Updated:Dec 03, 2025

This topic describes how to register a WhatsApp Business Account (WABA) using Meta's official registration tool. Embedded Signup consolidates all steps into a single, integrated flow, reducing the registration process from days to minutes.

Before you begin

Before you use Embedded Signup, complete the following:

  1. Register an Alibaba Cloud account and complete enterprise identity verification.

  2. Enable Chat App Message Service.

  3. Register as a Tech Provider with WhatsApp. See the official WhatsApp documentation for instructions: Become a Tech Provider.

Procedure

Important

Meta is rolling out a new version (Version 2) of the Embedded Signup flow. You can use the optional version parameter in the extras object to control which version of the embedded interface the user sees.

Version 1 is the initial Embedded Signup flow, and Version 2 is the new flow. If you do not specify a version, users see the new flow.

If you do not specify a version or if you specify Version 2, you can proceed directly to Bind the WABA.

Meta will deprecate Version 1. For more information, see the official Meta documentation.

Call the Embedded Signup flow

After you register as a Tech Provider, use the Facebook SDK for JavaScript to implement the embedded flow.

Code sample

const onRegisterButtonClick = ()=>{
// const { appId , configId } = this.state;
// Initialize the SDK
window.fbq &&
window.fbq("trackCustom", "WhatsAppOnboardingStart", {
           appId: <APP_ID>,
           feature: "whatsapp_embedded_signup"
});
// SDK callback function
const sessionInfoListener = event => {
    if (event.origin !== "https://www.facebook.com") return;
    try {
        const eventData = JSON.parse(event.data);
        console.log("[sessionInfoListener] Event Data", eventData, event.data);
        if (eventData.type === "WA_EMBEDDED_SIGNUP") {
            if (
                eventData.event === "FINISH" ||
                eventData.event === "FINISH_ONLY_WABA"
            ) {
                const { waba_id } = eventData.data;
                console.log(
                    "[sessionInfoListener] waba_id",
                    waba_id
                );
                
            }
        }
    } catch {
        console.log("Non JSON Response", event.data);
    }
};
// Listen for the message event
window.addEventListener("message", sessionInfoListener);
// Trigger the SDK
window.FB.login(
    response => {
    if (response.authResponse) {
        const accessToken = response?.authResponse?.accessToken;
    } else {
        console.log("User cancelled login or did not fully authorize.");
    }
},
{
    config_id: '<CONFIG_ID>',
    // The config_id obtained from Meta
    response_type: "code",
    // response_type must be set to code
    override_default_response_type: true,
    // This parameter must be set to true
    extras: {
        feature: "app_only_install",
        version: 4,
        sessionInfoVersion: 4,
        // The version of the signup flow
        setup: {
            solutionID: '<SOLUTION_ID>' // Add solution ID here
        },
    }
}
);
}
// Example button
<button onclick="launchWhatsAppSignup()">Login with Facebook</button>;

For detailed instructions, see the Embedded Signup implementation guide in the Meta documentation.

Complete Meta app management authorization

As a Tech Provider, you must add the ads_read permission on App Dashboard.

Note

Click Request advanced access (Step 4) and follow the on-screen instructions to complete the process. If it is successful, the access level displays Advanced access (Step 5).

image.png

Enable authorization for end users

The following example shows how to trigger Embedded Signup from a Chat App page:

Note

Authorize the required WABA channel.

image

Bind the WABA

After you complete the Embedded Signup flow using the Facebook JavaScript SDK, you receive a wabaId in the message event. Pass this wabaId to the ChatappBindWaba API. The platform then associates the wabaId with your Alibaba Cloud account PID and returns a unique identifier: custSpaceId. This parameter is required for subsequent API calls.

API reference

ChatappBindWaba

Example

Sample success response (JSON format):

{
  "RequestId": "90E63D28-E31D-1EB2-8939-A948664****",
  "Code": "OK",
  "Message": "None",
  "Data": {
    "CustSpaceId": "C0202939293****",
    "WabaId": "29398*****"
  }
}

Query WABA business information

Call the QueryWabaBusinessInfo API to retrieve WABA business information from the Meta Business Platform for the authorized account.

API reference

QueryWabaBusinessInfo

Example

Sample success response (JSON format):

{
  "RequestId": "90E63D28-E31D-1EB2-8939-A948664****",
  "Code": "OK",
  "Message": "None",
  "Data": {
    "BusinessId": "19288282****",
    "BusinessName": "Alibaba****",
    "VerificationStatus": "verified",
    "Vertical": "Retail"
  }
}