> 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/partner-hub/migrating-phone-numbers/migrating-existing-waba.md).

# Migrate a number to 360Dialog

How a client adds 360dialog to a number already used with another provider, and what to do right after onboarding (conversation routing, templates).

Under Meta's [new WhatsApp account model](/partner/onboarding/new-whatsapp-account-model.md), moving a number to 360dialog no longer means taking it away from the previous provider. The business **adds 360dialog as an additional provider** on the number through Embedded Signup. The number keeps its WhatsApp account (WAAC) and gets a new Messaging account (formerly WhatsApp Business Account, WABA) for 360dialog, with 360dialog's credit line. The previous provider stays until the business removes it.

No longer needed: deleting the number from the old provider, disabling two-step verification (2FA), having a verified Business Portfolio first, or "re-onboarding" the number.&#x20;

## Before the start

* The number is already registered on the WhatsApp Business Platform (Cloud API) with another provider or a direct integration. For numbers on the WhatsApp Business App see [Coexistence](#numbers-on-the-whatsapp-business-app-coexistence).
* An admin of the client’s own Meta Business Portfolio runs Embedded Signup. The partner can assist but cannot complete Embedded Signup for the client.
* The client already has, or creates during the flow, a 360dialog Client Hub account under the partner account.
* For large batches (for example a partner moving many clients from another provider): each number goes through the same flow, run by each client's admin. Plan the [after-onboarding steps](#after-onboarding-do-this-before-go-live) per number, in particular conversation routing and templates.

## Steps

Use any Embedded Signup entry point: [Integrated Onboarding](/partner/onboarding/integrated-onboarding.md) (direct link, Connect Button or custom trigger) or [partner-hosted Embedded Signup](/partner/onboarding/partner-hosted-embedded-signup.md).

{% stepper %}
{% step %}

#### Create or log in to the 360dialog client account

New clients create the account on the first page of the signup link or Integrated Onboarding. Existing clients log in. Clients of Direct-Paid partner accounts see the price and payment page before Embedded Signup.

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FrCnLtLdLFxvjvrAe61JT%2FGroup%201.png?alt=media&amp;token=81e316ec-f1f2-4ec8-a03c-d18824a34df7" alt=""><figcaption><p>Integrated Onboarding - Number registration</p></figcaption></figure>
{% endstep %}

{% step %}

#### Start Embedded Signup and select the existing number

On the first Embedded Signup screen, the business selects the phone number that is already in use with the other provider.

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2Fk5qaZzEGfUPg6OoyeaE6%2Fes.png?alt=media&amp;token=5e0cc75c-77d1-4490-a002-905fec5eafaf" alt=""><figcaption><p>Meta Embedded Signup - Number registration</p></figcaption></figure>
{% endstep %}

{% step %}

#### Confirm the pre-selected portfolio and WhatsApp account

The Business Portfolio and WhatsApp account fields are greyed out. This is expected: Meta pre-selects the portfolio and the WhatsApp account that already hold the number. Continue to the end of the flow.
{% endstep %}

{% step %}

#### Finish the signup

When signup completes, Meta creates a new Messaging account for 360dialog on this number and 360dialog creates the channel.&#x20;

The `channel_created` and `channel_running` events are sent to the [Partner webhook URL](/partner/onboarding/webhook-events-and-setup/webhook-events-partner-and-messaging-api.md), as for any new number. The previous provider is not removed.
{% endstep %}

{% step %}

#### Generate the API key

Once the channel is `running`, generate the API key as for any new number. For Direct-Paid partner accounts the client must first grant the API key permission. See [Partner permissions](/partner/partner-hub/api-keys.md).
{% endstep %}
{% endstepper %}

{% hint style="info" %}
The channel is usually live within a few minutes. If the channel webhooks are not received, [contact our Support Team](https://docs.360dialog.com/docs/support/get-support).
{% endhint %}

## After onboarding (do this before go-live)

### 1. Set conversation routing to 360dialog

Meta keeps the existing conversation routing when a provider is added, so **the previous provider stays the responder until the business changes it**. Only the business can change it; 360dialog cannot do it for the client.

Symptoms when routing still points to the previous provider: the channel is Ready (`running`) and looks healthy in the Partner Hub, but

* no incoming messages and no message webhooks reach 360dialog (they go to the previous provider);
* Meta's `health_status` may say "Your app is not subscribed to the message webhook" although the webhook URLs are set;
* free-form replies fail with error "(#131070) Message failed to send because another app is controlling this thread now". Template messages still send.

The business fixes it in Meta Business Suite: **Business settings → WhatsApp accounts → select the account/number → Conversation routing → Manage → select 360dialog in every dropdown → Apply**.&#x20;

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FkIpTZT2WI2NjFHqL699H%2Fanother.app.is.controlling.the.flow1.png?alt=media&amp;token=c1f47577-557a-4b5f-8b02-4a0c16e9227e" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2248475362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuyAl2S0lSHJaNDXJHo7A%2Fuploads%2FsimiOLmfnUximBUixVuY%2Fanother.app.is.controlling.the.flow2.png?alt=media&amp;token=5c0ac3be-b842-4273-9d26-1bff896f1126" alt=""><figcaption></figcaption></figure>

Only a Business Portfolio admin can do this. Alternatively, removing the previous provider from the number resets the routing.

### 2. Duplicate the templates

Templates belong to the Messaging account and are not carried over. The new 360dialog Messaging account starts without templates, and "Sync templates" in the Hub does not bring them in. If the client needs the templates it used with the previous provider, [contact our Support Team](https://docs.360dialog.com/docs/support/get-support) with the client, the phone number and the source Messaging account (WABA) ID; Support duplicates them from that source Messaging account. The client can also create new templates in the Hub or through the API.

### 3. Point the client's integration at 360dialog

Switch sending to the 360dialog API key and [set the number webhook URL](/partner/messaging/sending-and-receiving-messages/receiving-messages-via-webhook.md).

### 4. Remove the previous provider (optional)

The business can keep both providers or remove the previous one in Meta Business Suite. Removing a provider resets conversation routing. Each Messaging account has its own payment method; 360dialog's Messaging account uses 360dialog's credit line.

## What is kept and what is not

| Kept (belongs to the number / WhatsApp account)                            | Not carried over (belongs to the Messaging account) |
| -------------------------------------------------------------------------- | --------------------------------------------------- |
| Phone number, display name, business username                              | Message templates (Support can duplicate them)      |
| Messaging limit and throughput (shared across all providers on the number) | Payment method / credit line                        |
| Catalogs                                                                   | Message and chat history (never migrated)           |

## Numbers on the WhatsApp Business App (Coexistence)

A number connected to the WhatsApp Business App through another provider cannot be added this way. The current process still applies: the business disconnects the app from the current provider (WhatsApp Business App > Settings > Account > Business Platform > Disconnect) and then onboards the number with 360dialog's [Coexistence Onboarding](/partner/onboarding/whatsapp-coexistence/coexistence-onboarding.md). See the [Coexistence FAQ](/partner/onboarding/whatsapp-coexistence.md).

## Troubleshooting

<details>

<summary>The channel is Ready, but no incoming messages or webhooks arrive</summary>

Conversation routing still points to the previous provider. The business changes it in Meta Business Suite: Business settings → WhatsApp accounts → select the account/number → Conversation routing → select 360dialog in every dropdown → Apply. Only a Business Portfolio admin can do this. See [Set conversation routing to 360dialog](#1-set-conversation-routing-to-360dialog).

</details>

<details>

<summary>Sending fails with error 131070: "another app is controlling this thread now"</summary>

Same cause and same fix as the first entry. Template messages still send; free-form replies fail until routing points to 360dialog.

</details>

<details>

<summary>Onboarding created a new Messaging account. Where are the client's templates?</summary>

Templates are not carried over. See [Duplicate the templates](#2-duplicate-the-templates).

</details>

<details>

<summary>"Something went wrong when trying to migrate your phone number. Please try again after some time."</summary>

An unexpected error occurred. [Contact our Support Team](https://docs.360dialog.com/docs/support/get-support) with the phone number and the client account so we can investigate.

</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/partner-hub/migrating-phone-numbers/migrating-existing-waba.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.
