# Migrate campaigns using the Infobip NNID
___

These migration steps are for **Campaign Service Provider (CSP)** and **Connectivity Network Provider (CNP)** customers who want to migrate their **10DLC campaigns** to **Infobip** using the **Infobip Net Number ID (NNID)**. Infobip provides a streamlined process, manages the NNID and Operator Service Record (OSR) updates, and works with you to ensure your migration is successful.

IMPORTANT
This guide applies to CSP/CNP customers migrating 10DLC campaigns using the Infobip NNID.
If you are managing your own NNID, see the [Migrate campaigns using your own NNID](https://www.infobip.com/docs/10dlc/migration-guides/campaign-own-nnid) guide instead.

___

## Eligibility

Before you begin, ensure you meet the following eligibility criteria:

| Criteria | Description |
| --- | --- |
| CSP/CNP status | Only CSP/CNP can migrate campaigns within The Campaign Registry (TCR) ecosystem. |
| Letter of Authorization | You must provide a signed Letter of Authorization (LOA) not older than 30 days, authorizing Infobip to move the numbers to the Infobip NNID. |

___

## Prerequisites

Complete the following prerequisites before starting the migration process. Only begin the migration after Infobip completes and confirms all items.

- **Number import enablement.** Your account must be enabled for self-service number import before you can use the [Numbers API](https://www.infobip.com/docs/api/platform/numbers). Request this enablement through your account manager.

- **Number pools (if applicable).** If your campaign uses number pooling, contact your account manager, as this requires an additional revision for your campaign. Number pools are managed by Infobip.

- **Migration API enablement.** Your account must be enabled for API access to the migration service. Request this enablement through your account manager. Once enabled, you can trigger migration requests as described in the migration steps below.

NOTE
Only begin the migration process after Infobip completes and confirms all prerequisites.

___

## Migration steps

The migration follows a six-step process. Your campaign moves through the following statuses:

Pending → In Migration → Registered

### 1. Import your numbers into the Infobip platform

Import all numbers associated with the campaign into the Infobip platform. This ensures the numbers are available for selection during the migration request.

Use the following **Numbers API** endpoint to import your numbers:

```
POST https://api-ny2.infobip.com/numbers/2/numbers/import
```

**Example request:**

```bash
curl --location 'https://api-ny2.infobip.com/numbers/2/numbers/import' \
--header 'Content-Type: application/json' \
--header 'Authorization: App {apiKey}' \
--data '{
    "numbers": [
        "19546899283"
    ],
    "country": "US",
    "type": "VIRTUAL_LONG_NUMBER",
    "capabilities": [
        "SMS",
        "MMS"
    ],
    "skipOsrUpdate": true
}'
```

**Request parameters:**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| numbers | Array | Yes | List of phone numbers to import. |
| country | String | Yes | The country code for the numbers (for example, "US"). |
| type | String | Yes | The number type. UseVIRTUAL_LONG_NUMBERfor 10DLC numbers. |
| capabilities | Array | Yes | The capabilities of the numbers (for example, SMS, MMS). |
| skipOsrUpdate | Boolean | Yes | Set totrueto skip OSR updates during import, since Infobip manages the NNID. |

IMPORTANT
If your account is not enabled for self-service number import, contact your account manager for assistance.

### 2. Elect campaign to Infobip through TCR

Initiate the migration in TCR by calling the following endpoint:

```
POST /campaign/{campaignID}/migrateCnp/{upstreamCnpID}
```

NOTE
The Infobip CNP ID is **OPMKT**. See the [TCR CSP API documentation](https://csp-api.campaignregistry.com/v2/restAPI) for full details.

### 3. Call the Infobip migration API

After electing the campaign to Infobip in TCR, trigger the Infobip migration endpoint:

```
POST https://{baseUrl}/number-registration/1/campaigns/migrate
```

**Example request:**

```bash
curl --location 'https://{baseUrl}/number-registration/1/campaigns/migrate' \
--header 'Content-Type: application/json' \
--header 'Authorization: App {apiKey}' \
--data '{
    "name": "migrateCampaignCOJD655",
    "externalCampaignId": "COJD655",
    "numberPoolID": null,
    "numbers": ["19168361160"],
    "isClientManageNnid": false
}'
```

**Request parameters:**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| name | String | Yes | The name of the campaign. |
| externalCampaignId | String | Yes | Your TCR Campaign ID. |
| numberPoolID | String | No | The number pool ID to associate with this campaign. Set tonullif not applicable. If you need a number pool for your campaign, contact your account manager first. |
| numbers | Array | Yes | List of phone numbers for this campaign. Maximum of 200 numbers per request. |
| isClientManageNnid | Boolean | Yes | Set tofalseso that Infobip manages the NNID and OSR updates on your behalf. |

**Example response:**

```json
{
    "id": "44e8c5fc-1f17-4f4c-9519-6606c907075f",
    "referenceId": null,
    "applicationId": "default",
    "entityId": null,
    "name": "migrateCampaignCOJD655",
    "createdDate": "2026-03-04T09:08:43Z",
    "lastModifiedDate": "2026-03-04T09:08:43Z",
    "stage": "IN_MIGRATION",
    "priority": null,
    "campaignFeedback": null,
    "externalCampaignId": "COJD655",
    "numbers": null,
    "externalDocuments": [],
    "numberKeys": [],
    "numberPreviews": [],
    "type": "EXTERNAL_TEN_DIGIT_LONG_CODE"
}
```

**Response fields:**

| Field | Description |
| --- | --- |
| id | The unique Infobip UUID assigned to this campaign. Use this ID for all subsequent references. |
| applicationId | The application context for the campaign (defaults todefault). |
| name | The campaign name as provided in the request. |
| createdDate | Timestamp when the migration request was created (ISO 8601). |
| stage | Current status of the campaign. ShowsIN_MIGRATIONimmediately after submission. |
| externalCampaignId | Your original TCR Campaign ID. |
| type | The campaign type. ShowsEXTERNAL_TEN_DIGIT_LONG_CODEfor 10DLC migrations. |

### 4. In migration Continue sending through current provider

After submitting the migration request, your campaign transitions to the **In Migration** status (confirmed by "stage": "IN_MIGRATION" in the API response). During this phase, continue sending traffic through your current upstream provider. You do not need to take any action while Infobip processes the migration.

### 5. Infobip updates the OSR record

Infobip attempts to override the NNID on the OSR records for your numbers automatically. If your numbers belong to a provider that does not allow automatic OSR overrides, the Infobip Registrations team requests formal approval of the OSR update using the LOA you provided.

For more details about this step, discuss with your account manager and use the shared list of the numbers you plan to migrate. You can also reach the [Registrations team directly](mailto:cpaas_registrations@infobip.com).

If your campaign is stuck in the **In Migration** status for an extended period, [contact the Registrations team](mailto:cpaas_registrations@infobip.com) to process the OSR update for your numbers.

IMPORTANT
As soon as Infobip updates the OSR record, downtime begins. Your numbers stop sending and receiving messages until the migration completes and you switch traffic to Infobip. Plan this step carefully and coordinate with your team to minimize impact.

### 6. Migration complete Switch traffic to Infobip

Infobip automatically accepts your campaign from TCR, provisions it with the carriers, and notifies you through a webhook event. The webhook payload includes:

- campaignStatus=REGISTERED
- The associated Infobip UUID

Once all numbers from the campaign are assigned to the Infobip NNID, the campaign moves to REGISTERED status.

IMPORTANT
Once you receive the REGISTERED webhook, switch your traffic to Infobip. The migration is complete and your downtime ends.

___

## Subscribe to webhook events

To receive campaign status change notifications, subscribe through one of the following:

- **Infobip web interface:** See [Subscriptions documentation](https://www.infobip.com/docs/cpaas-x/subscriptions-management)
- **Subscription API:** See [Subscriptions API documentation](https://www.infobip.com/docs/api/platform/subscriptions-api)

___

## Best practices

- **Start small.** Begin with a few low-volume campaigns to learn the process and enable Infobip to quickly resolve any issues.

- **Share in advance.** Provide Infobip with a list of campaigns and associated numbers you plan to migrate ahead of time.

- **Coordinate OSR updates.** Since Infobip manages the NNID and OSR updates, ensure your LOA is current (not older than 30 days) and that you have communicated the full list of numbers to your account manager.

___

