Skip to main content
Versionv1

Phone Number Request API (v1)

Download OpenAPI specification:Download

Number Requests

Get Number Requests

Get all number request orders for the given Account.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

query Parameters
skip
integer <int32>
Default: 0

Amount of items being skipped.

take
integer <int32>
Default: 30
Example: take=30

Amount of items being retrieved.

q
string
Default: ""

Search for order ID.

statuses
Array of strings

Filter on given statusses.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Number Request

This endpoint allows you to request one or more phone numbers for use in our platform. The prices bound to purchasing new numbers can be found in the voice management App.

If the requested numbers are directly available, they will be immediately assigned to the specified voice account. If they are not directly available, your order may take some time to complete. We will keep you informed on the status of your order via the supplied email address and (if given) via the supplied callback URL.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

Request Body schema:

Request data for new phone number ranges

companyProfileGuid
string <uuid>

Unique identifier of the company profile that will be operating the requested numbers.

quantity
integer <int32> [ 1 .. 1000 ]

The quantity of numbers to be requested.

rangeSize
integer <int32>

The size of the range to be requested. Only required if a range of numbers is requested. Requires number ranges to be supported. See the order restrictions endpoint for the allowed ranges

numberType
string (Number Type)
Enum: "Local" "National" "TollFree"

Phone number type

areaCode
string or null

The area code to request numbers for. Required when city is not provided. If the city is also provided, this will be used in combination with city.

city
string or null

City to request numbers for. Required when area code is not provided. If the area code is also provided, this will be used in combination with area code.

region
string or null

Region to request numbers for. Only required for NANPA.

comment
string or null <= 500 characters

Additional comment for customers to for example add a distribution group or IP address.

callbackUrl
string or null

URL that we'll send a POST request to when the status of the request has been updated. The body of this post request will contain the entire number request order including the updated status.

Responses

Request samples

Content type
{
  • "companyProfileGuid": "11111111-1111-1111-1111-111111111111",
  • "quantity": 25,
  • "rangeSize": 10,
  • "numberType": "Local",
  • "areaCode": "76",
  • "city": "Amsterdam",
  • "region": "Alabama",
  • "comment": "Room for extra comments or requests regarding this phone number request",
  • "callbackUrl": "https://www.example.com"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get Number Request

Get a specific phone number request based on the given order ID.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

orderId
required
integer <int32>

Unique identifier of the number request order, this can be found in your confirmation email or the Voice Management App.

Responses

Response samples

Content type
application/json
{
  • "id": "11111111-1111-1111-1111-111111111111",
  • "orderId": 250101001,
  • "createdOn": "2025-01-01T00:00:00",
  • "requestData": {
    },
  • "status": "InProgress",
  • "comment": "Your request is currently in progress."
}

Get Number Request Statuses

A phone number request goes through a set of predefined statuses during its lifespan. With this request you can retrieve all possible statuses.

Authorizations:
X-CM-PRODUCTTOKEN

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Country Requirements

Because of different rules and regulation in different countries, we may need additional information (for example documents) after your request has been created. The required information will be checked by our support staff. Necessary documents can later be requested via email. With this endpoint you can retrieve the additional information based on the country related to the request.

If the response contains only an empty array, it means the country that the request is bound to does not require any information.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
countryCode
required
string
Example: NL

Country code to retrieve the required fields for in ISO 3166 alpha-2 format.

query Parameters
numberType
string (Number Type)
Enum: "Local" "National" "TollFree"
Example: numberType=Local

Optional type of phone number to filter requirements on

Responses

Response samples

Content type
application/json
[]

Get Request Restrictions

Get restrictions on the number request for the given country code and number type combination. (e.g. maximum amount of numbers per request, supported range sizes)

Authorizations:
X-CM-PRODUCTTOKEN
query Parameters
CountryCode
string
Example: CountryCode=NL

The country code in ISO 3166-1 alpha-2 format.

NumberType
string (Number Type)
Enum: "Local" "National" "TollFree"
Example: NumberType=Local

The phone number type (Local, National, TollFree).

Responses

Response samples

Content type
application/json
{
  • "countryCode": "NL",
  • "numberType": "Local",
  • "supportedRangeSizes": [
    ],
  • "maxNumbersPerRequest": 1000
}

Get Availability

Check the availability of phone numbers based on the provided request details.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

query Parameters
Quantity
integer <int32>
Example: Quantity=25

The quantity of numbers to check availability for.

RangeSize
integer <int32>
Example: RangeSize=10

The size of the range to check availability for. Only required if a range of numbers is requested. Requires number ranges to be supported. See the order restrictions endpoint for the allowed ranges

CountryCode
string
Example: CountryCode=NL

The country code in ISO 3166-1 alpha-2 format.

NumberType
string (Number Type)
Enum: "Local" "National" "TollFree"
Example: NumberType=Local

The type of the number, either Local, National, or TollFree.

AreaCode
string
Example: AreaCode=76

The area code to check availability for. Required when city is not provided. If the city is also provided, this will be used in combination with city.

City
string
Example: City=Amsterdam

City to check availability for. Required when area code is not provided. If the area code is also provided, this will be used in combination with area code.

Region
string
Example: Region=Alabama

The region the city is located in (only required for Nanpa).

Responses

Response samples

Content type
application/json
{
  • "quantity": 25,
  • "rangeSize": 10,
  • "countryCode": "NL",
  • "numberType": "Local",
  • "areaCode": "76",
  • "city": "Amsterdam",
  • "region": "Alabama",
  • "hasAvailableNumbers": true,
  • "immediatelyAvailable": false
}

Get Locale Options

Get locale options when requesting numbers for a specific country.

Authorizations:
X-CM-PRODUCTTOKEN
query Parameters
CountryCode
string
Example: CountryCode=NL

The country code in ISO 3166-1 alpha-2 format.

NanpaCity
string
Example: NanpaCity=Los Angeles

City to filter regions on when requesting NANPA numbers, the result will contain only regions that have numbers available in this city.

NanpaRegion
string
Example: NanpaRegion=California

Region to filter cities on when requesting NANPA numbers, the result will contain only cities that have numbers available in this region.

Responses

Response samples

Content type
application/json
{
  • "countryCode": "NL",
  • "nanpaCity": "Los Angeles",
  • "nanpaRegion": "California",
  • "cities": [
    ],
  • "regions": [
    ]
}

Porting Requests

Get Porting Requests

Get all porting request orders for the given Account.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

query Parameters
skip
integer <int32>
Default: 0

Amount of items being skipped.

take
integer <int32>
Default: 30
Example: take=30

Amount of items being retrieved.

q
string
Default: ""

Search for order ID.

statuses
Array of strings

Filter on given statusses.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Porting Request

This endpoint allows you to request one or more phone numbers to be ported from your current number provider, to CM.com.

After your porting request has been created, we will keep you informed on the status of your order via the supplied email address and (if given) via the supplied callback URL. If your porting request has been completed, the phone numbers will be directly available for use inside our platform.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

Request Body schema:

CM.Voice.PhoneNumberRequestApi.Models.Api.PortingRequest.ApiCreatePortingRequest

Array of objects or null (Porting Phone Number)

Phone numbers to be ported over.

providerCompanyName
required
string non-empty

Company name of the current number provider.

preferredPortingDateTime
string or null <date-time>

Only used for porting non-dutch numbers. Preferred date and time to port the phone number(s) in UTC time. Will be picked up between 6:00 and 20:00 UTC time. Should be null when the porting request should be handled as soon as possible.

companyProfileGuid
string <uuid>

Unique identifier of the company profile that will be operating the ported numbers.

comment
string or null <= 500 characters

Additional comment for customers to for example add a distribution group or IP address.

callbackUrl
string or null

URL that we'll send a POST request to when the status of the request has been updated. The body of this post request will contain the entire porting request order including the updated status.

Array of objects or null (Upload Porting Request Document)

Optional documents to upload with the porting request (LoA, Telco Invoice, etc.)

Responses

Request samples

Content type
{
  • "phoneNumbers": [
    ],
  • "providerCompanyName": "T-Mobile",
  • "preferredPortingDateTime": "2019-08-24T14:15:22Z",
  • "companyProfileGuid": "ce61a77a-60e5-4541-bef6-1725debb3e92",
  • "comment": "Room for extra comments or requests regarding this phone number request",
  • "callbackUrl": "https://www.example.com",
  • "documents": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "orderId": "string",
  • "createdOn": "2019-08-24T14:15:22Z",
  • "portingData": {
    },
  • "firstPossibleDate": "2019-08-24T14:15:22Z",
  • "status": {
    },
  • "statusReason": "string",
  • "errorDetails": "string",
  • "documents": [
    ]
}

Get Porting Request

Get a specific porting request based on the given order ID.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

orderId
required
string

Unique identifier of the porting request order, this can be found in your confirmation email or the Voice Management App.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "orderId": "string",
  • "createdOn": "2019-08-24T14:15:22Z",
  • "portingData": {
    },
  • "firstPossibleDate": "2019-08-24T14:15:22Z",
  • "status": {
    },
  • "statusReason": "string",
  • "errorDetails": "string",
  • "documents": [
    ]
}

Get Porting Request Statuses

A phone porting request goes through a set of predefined statuses during its lifespan. With this request you can retrieve all possible statuses to check the current status of your request based on the status ID.

Authorizations:
X-CM-PRODUCTTOKEN

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Perform Porting Request

IMPORTANT NOTE: Performing a porting is only possible for dutch numbers.

This endpoint allows you to perform (and thus complete) your porting request, once its status is set to Ready to be ported. After calling this endpoint, the order will be finalized and the phone numbers coupled to the given porting request will be activated on our platform.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

orderId
required
string

Unique identifier of the porting request order, this can be found in your confirmation email or the Voice Management App.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "orderId": "string",
  • "createdOn": "2019-08-24T14:15:22Z",
  • "portingData": {
    },
  • "firstPossibleDate": "2019-08-24T14:15:22Z",
  • "status": {
    },
  • "statusReason": "string",
  • "errorDetails": "string",
  • "documents": [
    ]
}

Cancel Porting Request

This endpoint allows you to cancel an ongoing porting request, once its status is set to Ready to be ported. After calling this endpoint, the ongoing order process will be stopped.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

orderId
required
string

Unique identifier of the porting request order, this can be found in your confirmation email or the Voice Management App.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "orderId": "string",
  • "createdOn": "2019-08-24T14:15:22Z",
  • "portingData": {
    },
  • "firstPossibleDate": "2019-08-24T14:15:22Z",
  • "status": {
    },
  • "statusReason": "string",
  • "errorDetails": "string",
  • "documents": [
    ]
}

Upload Porting Request Document

Upload a document (LoA, Telco Invoice, etc.) for a porting request

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

orderId
required
string

Unique identifier of the porting request order.

Request Body schema:

Document upload information

documentType
required
string non-empty

Type of document (LoA, TelcoInvoice, Other)

documentGuid
required
string <uuid> non-empty

Unique identifier of the document from the documents API

Responses

Request samples

Content type
{
  • "documentType": "LoA",
  • "documentGuid": "00000000-0000-0000-0000-000000000000"
}

Response samples

Content type
application/json
{
  • "documentType": "LoA",
  • "documentGuid": "00000000-0000-0000-0000-000000000000",
  • "uploadedAt": "2019-08-24T14:15:22Z",
  • "status": "Pending",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "rejectionReason": "Document is not legible",
  • "fileName": "letter_of_authorization.pdf"
}

Delete Porting Request Document

Delete a document from a porting request

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
accountGuid
required
string <uuid>
Example: 00000000-0000-0000-0000-000000000000

Unique identifier of the Logical Account or Voice Account.

orderId
required
string

Unique identifier of the porting request order.

documentType
required
string

Type of document to delete (LoA, TelcoInvoice, Other)

Responses

Response samples

Content type
application/json
{
  • "requestId": "string",
  • "errors": [
    ]
}

Regulations

Get Number Request Requirements

Retrieve all rules and regulations, ordered by country and phone number type. Be aware that every request also requires contact information (first & last name, email address), company representative contact information (first & last name, phone number) and company information (name, registration number, address).

Authorizations:
X-CM-PRODUCTTOKEN
query Parameters
CountryCodes
string
Example: CountryCodes=NL,BE

Country codes to filter on, separated by a comma. (ISO 3166-1 alpha-2 format)

PhoneNumberTypes
string
Example: PhoneNumberTypes=Local,National,TollFree

Phone number types to filter on, separated by a comma.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Requests

Get Required Fields

Because of different rules and regulations in different countries, we may need certain additional information along with your request depending on the country related to the request. These required fields can be fetched with this endpoint, together with an example value describing the format in which it should be supplied.

If the response contains only an empty array, it means the country that the request is bound to does not require any required fields to be added.

Authorizations:
X-CM-PRODUCTTOKEN
path Parameters
countryCode
required
string
Example: NL

Country code to retrieve the required fields for in ISO 3166 alpha-2 format.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Blocked Countries

Get a list of countries that are currently unavailable for phone number requests and phone number porting.

Authorizations:
X-CM-PRODUCTTOKEN

Responses

Response samples

Content type
application/json
[
  • {
    }
]