> For the complete documentation index, see [llms.txt](https://docs.360dialog.com/partner/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.360dialog.com/partner/onboarding/partner-hosted-embedded-signup.md).

# Partner-Hosted Embedded Signup

This page describes how partners can host Embedded Signup

For advanced personalization, approved Meta Tech Providers can host a custom Embedded Signup flow.

## Requirements

#### Tech Provider registration and approved Solution

Enabling this option requires status as a Meta-approved Tech Provider with a live solution integrated with 360dialog. The solution must be in Meta's `ACTIVE` status. [More details](https://docs.360dialog.com/partner/get-started/tech-provider-program#multi-partner-solution).

#### Technical Capacity

Hosting and managing an independent Embedded Signup script requires technical implementation knowledge. Technical support from 360dialog is not available for troubleshooting custom Embedded Signup scripts.

#### Request Advanced Access for public\_profile permission

An additional permission is required for the onboarding process to function correctly. In the Meta for Developers App dashboard > navigate to your **App Review** > **Permissions** > Find the ‘`public_profile`’ permission and request `advanced access`.

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FtdpPWJQL5QrIRZo5PLor%2Fpublic_profile.png?alt=media&#x26;token=2404d889-7720-4e42-8b18-a5b01939694d" alt=""><figcaption></figcaption></figure>

Ensure advanced access is granted before configuring the ES.

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2Fg5uxVcJRIISHDU1Tk9Ns%2Fpublic_profile1.png?alt=media&#x26;token=e800ebbc-5b50-477c-b664-66dc4265a69a" alt=""><figcaption></figcaption></figure>

#### Set Partner Hub Webhook URL and listen to Webhook Events

[See instructions here](https://docs.360dialog.com/partner/partner-api/overview#partner-hub-webhook).

## Build Self-Hosted Embedded Signup

{% hint style="danger" %}
**Important:** The Meta documentation linked below includes steps for **registering a phone number**.

**Do not follow those steps.** Phone number registration is handled entirely by 360Dialog.
{% endhint %}

1. [Implement Embedded Signup](https://developers.facebook.com/docs/whatsapp/embedded-signup/implementation).
2. [Check the signup flow for Cloud API](https://developers.facebook.com/docs/whatsapp/embedded-signup/default-flow).\
   Note that if you have information about your customer's business, you can [inject this data](https://developers.facebook.com/docs/whatsapp/embedded-signup/pre-filled-data), which can significantly reduce the number of screens that your customers have to interact with.\
   \
   We recommend using Embedded Signup version 4. In this case you can enable the [Marketing Messages API (MM API)](https://docs.360dialog.com/partner/messaging/marketing-messages) for the client *during* the onboarding process. This allows your clients to skip an additional step of enabling the MM API after they are onboarded. Here is how to enable [Embedded Signup version 4](https://developers.facebook.com/docs/whatsapp/embedded-signup/versions/version-4).

## Embedded Signup versions

{% hint style="warning" %}
**Embedded Signup v2 and v3 are retired on 15 October 2026**, including the `v2-public-preview` and `v3-public-preview` variants. Meta moves most integrations to v4 automatically. Three feature types are not moved and need a manual change: see below.
{% endhint %}

### What happens on 15 October 2026

* **Standard flows upgrade on their own.** If your configuration does not use one of the feature types below, your flow keeps working and starts behaving like v4. Nothing to deploy.
* **Three feature types are not upgraded automatically:** `only_waba_sharing`, `marketing_messages_lite` and `coex`. On v2 and v3 they stop working on that date and the flow falls back to the standard Embedded Signup (a regular new-number signup) until you move to v4. Clients would then not get the WABA-sharing, MM API or Coexistence experience you configured.
* **The phone-number-first screen order** that v4 introduced is being applied by Meta to v2, v3 and v4. Clients see the number step first, which is what makes [pre-verified phone numbers](https://docs.360dialog.com/partner/resources/pre-verified-phone-numbers) effective. No action on your side.

### Move to v4

1. In the Meta App Dashboard, create a new **Facebook Login for Business** configuration with Embedded Signup and the products you need: WhatsApp Cloud API, Marketing Messages API, Ads that click to WhatsApp, Conversions API.
2. Launch the flow with that configuration ID. In v4 the version is **not** a parameter any more: remove `version` and `sessionInfoVersion` from the `extras` object.
3. For Coexistence, use the `whatsapp_business_app_onboarding` feature type, which v4 supports. For WABA sharing and MM API, select the products in the login configuration instead of the retired feature types.
4. Test the full flow with a non-production number, including the redirect to 360dialog and the webhook events, before 15 October.

### Version comparison

|                                                                      | v2                         | v3                  | v4                                                          |
| -------------------------------------------------------------------- | -------------------------- | ------------------- | ----------------------------------------------------------- |
| Status                                                               | Retired 15 Oct 2026        | Retired 15 Oct 2026 | Current                                                     |
| Version selection                                                    | `extras.version`           | `extras.version`    | Login for Business configuration, `extras` left empty       |
| Finish without a verified number                                     | No                         | Yes                 | Yes                                                         |
| Products enabled at signup (MM API, CTWA, Conversions API)           | No                         | No                  | Yes                                                         |
| `only_waba_sharing`, `marketing_messages_lite`, `coex` feature types | Supported                  | Partly              | Replaced by products and `whatsapp_business_app_onboarding` |
| Session info callback                                                | Needs `sessionInfoVersion` | Always              | Always                                                      |

Full details on Meta's [Embedded Signup versions](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/versions/) page.

### New WhatsApp account model

From October 2026 all Embedded Signup versions return the **messaging account ID in the WABA ID field** and allow a business to share a phone number that is already in use with another integration. Your code does not change, but read [New WhatsApp account model](https://docs.360dialog.com/partner/onboarding/new-whatsapp-account-model) to know what the ID now represents.

## Connect Self-Hosted Embedded Signup to 360dialog

### Step 1: Create or retrieve a Client Account

In order to later submit the number, you need to either retrieve an existing `client_id` or create a new client instance through our Partner API using the endpoint below. Make sure to store the Client ID of each client within your database, since it will be required afterwards. Alternatively, you can also retrieve it with [this endpoint](https://docs.360dialog.com/partner/partner-api/api-reference/client-management#get-api-v2-partners-partner_id-clients).

#### Create client account

This [endpoint](https://docs.360dialog.com/partner/partner-api/api-reference/account-sharing#post-api-v2-partners-partner_id-account_sharing-clients) must be used to create the client account.

### **Step 2: Surface Embedded Signup to client and fetch information**

{% hint style="danger" %}
**Important:** The Meta documentation linked below includes steps for **registering a phone number**.

**Do not follow those steps.** Phone number registration is handled entirely by 360Dialog.
{% endhint %}

When the [Embedded Signup](https://developers.facebook.com/docs/whatsapp/embedded-signup) is completed by the client, you can use the code received in the payload to fetch detailed WABA information. See more [here](https://developers.facebook.com/docs/whatsapp/embedded-signup/embed-the-flow#after-business-completes-signup-flow) and [here](https://developers.facebook.com/docs/whatsapp/embedded-signup/manage-accounts#get-shared-waba-id-with-access-token).

### Step 3: Connect Client account to the registered Phone Number

Use the endpoint below to submit the phone number/channel to 360Dialog records. If the number was successfully onboarded via self-hosted Embedded Signup and the attached `client_id` matches the user data in 360dialog records, the onboarding flow ends by redirecting the Client to the Partner Redirect URL set.

#### Submit channel/number created via self-hosted Embedded Signup

Please use this [endpoint](https://docs.360dialog.com/partner/partner-api/api-reference/account-sharing#post-api-v2-partners-partner_id-account_sharing-numbers).

{% hint style="info" %}
`channel_external_id` should be filled in with the phone number ID. Once it is filled in, we connect the particular number. If the value is sent as `null` we will connect all numbers associated with the particular waba `waba_external_id`
{% endhint %}

### Step 4: Create API key to start messaging

When the number is fully live, you will receive the [Channel Live Webhook Event](https://docs.360dialog.com/partner/onboarding/webhook-events-and-setup/webhook-events-partner-and-messaging-api).

You should be able to generate an API Key and connect it to your integration to start messaging with this phone number by default.

See [Partner Permissions](https://docs.360dialog.com/partner/partner-hub/api-keys) for details.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.360dialog.com/partner/onboarding/partner-hosted-embedded-signup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
