10DLC
Migration guides
Migrate campaigns using your own NNID

Migrate campaigns using your own NNID

Copy as markdown

|

View as Markdown

These migration steps are for Campaign Service Provider (CSP) and Connectivity Network Provider (CNP) customers who want to migrate their 10DLC campaigns to Infobip while continuing to host their own numbers under their own Net Number ID (NNID).

IMPORTANT

This guide only applies if you host your own numbers and have your own NNID. If you are not a CSP/CNP, contact your account manager to discuss migration options.

If you want Infobip to manage the NNID on your behalf, see the Migrate campaigns using the Infobip NNID guide instead.


Eligibility

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

CriteriaDescription
CSP/CNP statusOnly CSP/CNP can migrate campaigns within The Campaign Registry (TCR) ecosystem.
Own NNID with OSR accessYou must have your own NNID and the ability to make overrides and updates to your numbers through the Operator Service Record (OSR).


Prerequisites

Complete and confirm the following before starting the migration:

  • NNID setup and carrier configuration
  • Number import enablement
  • Number pools (if applicable)
  • Migration API enablement
NOTE

If you are migrating sole proprietor campaigns, complete the additional setup in Sole proprietors before proceeding to the migration steps.


NNID setup

Provide Infobip with the NNID you want to use, along with the following:

NOTE

Procure a new NNID through Net Number for use with Infobip. A dedicated NNID simplifies the migration flow and gives you full control over mobile-originated (MO) (opens in a new tab) traffic routing.

  • A signed Letter of Authorization (LOA)
  • A completed T-Mobile NNID request form

Infobip forwards the request to the carriers for NNID configuration. Lead time is approximately 1 month.


Get enabled for number import

Since you manage your own NNID, you can import numbers yourself using the Infobip API. Your account manager must first enable self-service number import on your account.


Number pools (if applicable)

If your campaign does not use number pooling, skip this section.

All number pools must be pre-configured and imported into the Infobip platform before migration. Number pools are not migratable, so you must create new pools before migrating.

Submit number pool requests through Infobip. To request a number pool, fill out the Number Pool Request Form (provided by your account manager) and submit it to the Infobip team for processing.

IMPORTANT

The NNID configured on the number pool must match the NNID that you assign to your numbers in the migration. If the NNIDs do not match, the number pool does not work correctly and the migration fails. Verify that your requested number pool shares the new NNID that will be used in the migration before proceeding.


Migration API enablement

To call the Infobip campaign migration API endpoint, 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:

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:

ParameterTypeRequiredDescription
numbersArrayYesList of phone numbers to import.
countryStringYesThe country code for the numbers (for example, "US").
typeStringYesThe number type. Use VIRTUAL_LONG_NUMBER for 10DLC numbers.
capabilitiesArrayYesThe capabilities of the numbers (for example, SMS, MMS).
skipOsrUpdateBooleanYesSet to true to skip OSR updates during import, since you manage your own NNID.
IMPORTANT

This endpoint is only available for clients migrating US numbers using their own NNID. If you are not managing your own NNID, contact your account manager for assistance with number imports.


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 (opens in a new tab) for full details.


3. Update your OSR record

Verify and update the OSR record for your numbers with the correct:

  • NNID
  • Campaign ID
  • SubID (if applicable)
  • Context
IMPORTANT

When you switch the NNID on your OSR record, downtime begins. Your numbers cannot send or receive messages until the migration is fully completed. Plan this step carefully and coordinate with your team to minimize impact.


4. Call the Infobip migration API

After electing the campaign to Infobip in TCR and updating your OSR record, trigger the Infobip migration endpoint:

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

Example request:

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

Request parameters:

ParameterTypeRequiredDescription
nameStringYesThe name of the campaign.
externalCampaignIdStringYesYour TCR Campaign ID.
numberPoolIDStringNoThe number pool ID to associate with this campaign. Required only if the campaign uses number pooling. Must be pre-configured on the Infobip platform.
numbersArrayYesList of phone numbers for this campaign. Maximum of 200 numbers per request.
isClientManageNnidBooleanYesSet to true. You manage your own NNID and handle all OSR updates.

Example response:

{
    "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:

FieldDescription
idThe unique Infobip UUID assigned to this campaign. Use this ID for all subsequent references.
applicationIdThe application context for the campaign (defaults to default).
nameThe campaign name as provided in the request.
createdDateTimestamp when the migration request was created (ISO 8601).
stageCurrent status of the campaign. Shows IN_MIGRATION immediately after submission.
externalCampaignIdYour original TCR Campaign ID.
typeThe campaign type. Shows EXTERNAL_TEN_DIGIT_LONG_CODE for 10DLC migrations.

5. In migration

After submitting the migration request, your campaign transitions to the In Migration status (confirmed by "stage": "IN_MIGRATION" in the API response). Your numbers are offline during this phase. No action is needed from you while Infobip processes the migration. This typically takes a few minutes.


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
IMPORTANT

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



Sole proprietors

Sole proprietor campaigns require additional setup before following the standard migration process.


TCR requirements

Before migrating any sole proprietor campaigns, Infobip must verify that the CSP meets the following TCR requirements:

  • One number per sole proprietor campaign
  • Maximum of 1,000 messages per day

Registration

Infobip registers the CSP with T-Mobile and creates a default campaign. This default campaign is the parent for all migrated sole proprietor campaigns from the CSP.

  1. The CSP shares one sole proprietor campaign to Infobip through TCR.
  2. Infobip creates the default campaign and assigns a number pool.
  3. All subsequent sole proprietor campaigns link to this default campaign.

Once the default campaign setup is complete and confirmed, follow the standard Migration steps outlined above.



Subscribe to webhook events

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



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.

  • Verify OSR. Double-check your OSR records before initiating each migration batch.







Need assistance

Explore Infobip Tutorials

Encountering issues

Contact our support

What's new? Check out

Release Notes

Unsure about a term? See

Glossary
Service status

Copyright @ 2006-2026 Infobip ltd.

Service Terms & ConditionsPrivacy policyTerms of use