Skip to content

Porting API (1.0)

Automated processing of port-in phone number operations

Download OpenAPI description
Overview
License

MIT

Languages
Servers
v1.0 of the porting API

https://porting.api.sinch.com/v1/projects/{projectId}/

Port-in numbers

You can create orders, check portability, and more. When you port in phone numbers to Sinch you need to make sure the numbers are portable, you can use the portability check to make sure the numbers are portable before creating an order. If a number is not portable the whole order will fail. When porting a number to Sinch you can either use the dashboard or the API, the API is recommended for larger orders and for automation.

Note: For port orders of over 500 numbers, please contact the support team.

The recommended way to port numbers to Sinch is to schedule the port, this means that you create an order and specify a desired port date and time, If you have more advanced needs like on-demand activation, you can read more about that in the advanced porting section.

Operations

Porting orders

In general you work with porting orders, a porting order is the resource that keeps the number(s) status and progress in one place.

Before creating port order you should check the portability of the numbers you want to port in, if a number is not portable the order will fail.

POST /portabilityChecks
{
  "phoneNumbers": ["+12345678901"]
}

If the number is portable you can create an order like this:

POST v1/projects/{projectId}/orders/portIns
    {
      "desiredPortSchedule": {
        "desiredPortDate": "2024-09-25",
      },
      "phoneNumbers": [
        {
          "phoneNumber": "+12345678901",
          "voiceConfiguration": {
            "type": "EST",
            "trunkId": "123456"
          },
          "portOutInfo": {
            "existingPortOutPin": "1234"
          },
          "endUser": {
            "name": "John Doe",
            "streetName": "Main St",
            "streetNum": "123",
            "city": "Anytown",
            "state": "NY",
            "zipCode": "12345"
          },
        }
      ]
    }

Lifetime of a port order

If everything is correct, the order run thru is life cycle and keep you updated on changes but hopefully nothing will change and the number will be ported in on the desired port date. If more information is needed from you, it will be communicated to you via the order notes and error statuses on the individual numbers. And you reply with a note or update your order with required information.

It's not uncommon for a port order to be a few days or weeks in the making, so don't worry if you don't receive an update right away.

Port-In phone numbers

When you port in phone numbers to Sinch you need to make sure the numbers are portable, you can use the portability check to make sure the numbers are portable before creating an order.

Request

Use this before creating a order to make sure all numbers are available for port in to Sinch. Please note that if you try to port a number that is not portable the order will fail.

Security
basicAuth or bearerAuth
Bodyapplication/jsonrequired
phoneNumbersArray of strings
Example: ["+12311234567"]
curl -i -X POST \
  -u <username>:<password> \
  https://porting.api.sinch.com/v1/projects/YOUR_project_id/portabilityChecks \
  -H 'Content-Type: application/json' \
  -d '{
    "phoneNumbers": [
      "+12311234567"
    ]
  }'

Responses

Successful operation

Bodyapplication/json
phoneNumbersArray of objects(PortabilityCheckNumber)
Response
application/json
{ "phoneNumbers": [ {} ] }

Request

Create an order to port phone numbers from another carrier into Sinch. Refer to the Port-In Status section for more information on port-in order updates. Please note that order will fail if you try to port numbers that are not portable, so you should always use the portability check before creating an order.

Note: For port orders of over 500 numbers, please contact the support team.

Note: In order to send SMS and MMS messages in the US using 10DLC phone numbers, all messages must be sent via an approved campaign. Your campaigns are managed under US 10DLC Campaigns in the SMS section. A number can be associated to an approved campaign after the port completes.

Security
basicAuth or bearerAuth
Bodyapplication/json

Order Port-In phone numbers

desiredPortScheduleobject(DesiredPortDateTime)required

The date and time you want the numbers to be ported in. If you set a defaultPortTime and defaultPortTimeZone in defaults those settings will be used if not set per order. If you haven't set defaults and do not set the time and time zone on the order the system default will be used.

System Default Time: 09:00:00 US/Eastern

desiredPortSchedule.​desiredPortDatestringrequired

The date you want the numbers to be ported in, in ISO format.

Example: "2025-01-31"
desiredPortSchedule.​desiredPortTimestring

The time you want the numbers to be ported in.

Example: "09:00:00"
desiredPortSchedule.​desiredPortTimeZonestring

The time zone you want to use for the desired port time.

Enum ValueDescription
US/Eastern

US Eastern Timezone

US/Central

US Central Timezone

US/Mountain

US Mountain Timezone

US/Pacific

US Pacific Timezone

Example: "US/Eastern"
phoneNumbersArray of objects(Phone numbers)required

The numbers for the order in e164 format

phoneNumbers[].​phoneNumberstring(e164)required

The phone number in E.164 format.

Example: "+12345678901"
phoneNumbers[].​endUserobject(EndUser)required

If specified, this will override the endUser for the order.

phoneNumbers[].​endUser.​namestringrequired

The name of the end user can be a person's name or company name. Please note if you are not using this yourself it should be the name/company of the actual user.

Example: "Joe Doe"
phoneNumbers[].​endUser.​streetNumstringrequired

The end user's street number.

Example: "123"
phoneNumbers[].​endUser.​streetNamestringrequired

The end user's street name.

Example: "Main"
phoneNumbers[].​endUser.​citystringrequired

The end user's city.

Example: "Anytown"
phoneNumbers[].​endUser.​statestringrequired

The end user's state, using the two letter abbreviation.

Example: "CA"
phoneNumbers[].​endUser.​zipCodestringrequired

The end user's zip code.

Default ""
Example: "12345"
phoneNumbers[].​endUser.​streetPreDirstring

The prefix direction in the end user's address, if any.

Default ""
Example: "N"
phoneNumbers[].​endUser.​streetTypestring

The end user's street type, for example Road or Court.

Default ""
Example: "Court"
phoneNumbers[].​endUser.​streetPostDirstring

The suffix direction in the end user's address, if any.

Default ""
Example: "SW"
phoneNumbers[].​endUser.​locationType1string

Any additional location information, such as suite or apartment.

Example: "Suite"
phoneNumbers[].​endUser.​locationValue1string

Any additional location information, such as suite number or apartment number.

Example: "2134"
phoneNumbers[].​endUser.​locationType2string

Field for additional location information, such as suite number or apartment number.

Default ""
Example: ""
phoneNumbers[].​endUser.​locationValue2string

Field for additional location information, such as suite number or apartment number.

Default ""
Example: ""
phoneNumbers[].​endUser.​locationType3string

Field for additional location information, such as suite number or apartment number.

Default ""
Example: ""
phoneNumbers[].​endUser.​locationValue3string

Field for additional location information, such as suite number or apartment number.

Default ""
Example: ""
phoneNumbers[].​endUser.​typeOfServicestring

The type of address. Available values are B for Business or R for Residence

Default "B"
Enum ValueDescription
B

Business

R

Residence

Example: "B"
phoneNumbers[].​portOutInfoobject(PortOutItem)required

The port out information at the previous carrier for the number. Usually only a port-out PIN is required.

phoneNumbers[].​portOutInfo.​existingPortOutPinstring

The existing port-out PIN from the previous carrier.

phoneNumbers[].​portOutInfo.​accountNumstring

The account number associated with the number from the previous carrier.

phoneNumbers[].​portOutInfo.​accountPhoneNumberstring

The contact phone number on the account.

phoneNumbers[].​portOutInfo.​authorizingNamestring

Name of the person authorizing the port-in.

phoneNumbers[].​portOutInfo.​authorizingDatestring(date-time)

Date of authorizing the port-in (must be today or earlier and cannot be in the future). Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: "2024-09-24T12:00:00Z"
phoneNumbers[].​voiceConfigurationRTC (object) or EST (object) or FAX (object)(VoiceConfiguration)
One of:

If specified, this will override the voice configuration for the order.

phoneNumbers[].​smsConfigurationobject(SmsConfiguration)

If specified, this will override the sms configuration for the order.

phoneNumbers[].​featuresobject(Feature)
phoneNumbers[].​newPortOutPinstring
customerOrderReferencestring

Your reference you specified when creating the order

Default ""
Example: "123456"
onDemandActivationboolean

If you use onDemand activation you will need to make sure the numbers are both confirmed and released for activation, if you don't use onDemand the numbers will be activated on the desiredPortDate is the recommended way. If true the numbers will be activated as when you call :activate, if false they will be activated on the desiredPortDate

Default false
loaUploadedBystring

Name of the user uploading the LOA

Example: "john doe"
loaAttachmentDatestring(date-time)

Date when the LOA was uploaded. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: "2024-09-24T12:00:00Z"
resellerNamestring

This is requirement for canadian numbers only, we need to figure out what we expect here and where the customer can find this info

Default ""
curl -i -X POST \
  -u <username>:<password> \
  https://porting.api.sinch.com/v1/projects/YOUR_project_id/orders/portIns \
  -H 'Content-Type: application/json' \
  -d '{
    "desiredPortSchedule": {
      "desiredPortDate": "2025-01-31",
      "desiredPortTime": "10:00:00",
      "desiredPortTimeZone": "US/Eastern"
    },
    "phoneNumbers": [
      {
        "phoneNumber": "+12345678901",
        "voiceConfiguration": {
          "type": "EST",
          "trunkId": "123456"
        },
        "portOutInfo": {
          "existingPortOutPin": "1234"
        },
        "endUser": {
          "name": "John Doe",
          "streetName": "Main St",
          "streetNum": "123",
          "city": "Anytown",
          "state": "NY",
          "zipCode": "12345"
        }
      }
    ]
  }'

Responses

Successful operation

Bodyapplication/json
desiredPortScheduleobject(DesiredPortDateTime)required

The date and time you want the numbers to be ported in. If you set a defaultPortTime and defaultPortTimeZone in defaults those settings will be used if not set per order. If you haven't set defaults and do not set the time and time zone on the order the system default will be used.

System Default Time: 09:00:00 US/Eastern

desiredPortSchedule.​desiredPortDatestringrequired

The date you want the numbers to be ported in, in ISO format.

Example: "2025-01-31"
desiredPortSchedule.​desiredPortTimestring

The time you want the numbers to be ported in.

Example: "09:00:00"
desiredPortSchedule.​desiredPortTimeZonestring

The time zone you want to use for the desired port time.

Enum ValueDescription
US/Eastern

US Eastern Timezone

US/Central

US Central Timezone

US/Mountain

US Mountain Timezone

US/Pacific

US Pacific Timezone

Example: "US/Eastern"
idnumberread-only

The unique identifier for the order

Example: 890192331
statusstring(OrderStatus)read-only

The current status of the port order.

Enum ValueDescription
ORDER_BUILDING

The order is being created

PENDING

The order is pending, and can be updated

CONFIRMED

The order is confirmed, and can not be updated but if onDemand is true it can be activated

COMPLETED

The order is completed, the port has completed and the numbers are active

PENDING_CANCELATION

The order is in the process of being cancelled. During this time you cannot submit the same numbers on a new order

CANCELED

The order is cancelled, either by the customer or by the system

customerOrderReferencestring

Your reference you specified when creating the order

Default ""
Example: "123456"
onDemandActivationboolean

If you use onDemand activation you will need to make sure the numbers are both confirmed and released for activation, if you don't use onDemand the numbers will be activated on the desiredPortDate is the recommended way. If true the numbers will be activated as when you call :activate, if false they will be activated on the desiredPortDate

Default false
loaUploadedBystring

Name of the user uploading the LOA

Example: "john doe"
loaAttachmentDatestring(date-time)

Date when the LOA was uploaded. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: "2024-09-24T12:00:00Z"
phoneNumbersArray of objects(Phone numbers)

The numbers for the order in e164 format

notesArray of objects(OrderNote)read-only

Notes if any on the order, you will get notes if there is any problems with the order and you send notes as reply to those problems

documentsArray of objects(OrderDocumentBase)read-only

Documents if any on the order, you will get documents if there is any problems with the order and you send documents as reply to those problems

createdDatestring(date-time)read-only

When the order was created. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: "2024-09-24T12:00:00Z"
resellerNamestring

This is requirement for canadian numbers only, we need to figure out what we expect here and where the customer can find this info

Default ""
Response
application/json
{ "id": 890192331, "status": "PENDING", "customerOrderReference": "123456", "onDemandActivation": false, "desiredPortSchedule": { "desiredPortDate": "2025-01-31", "desiredPortTime": "09:00:00", "desiredPortTimeZone": "US/Eastern" }, "loaUploadedBy": "john doe", "loaAttachmentDate": "2024-09-24T12:00:00Z", "phoneNumbers": [ {} ], "notes": [ {} ], "documents": [ {} ], "createdDate": "2024-09-24T12:00:00Z", "resellerName": "" }

Request

Retrieve a list of port-in based on the search parameters, you can also specify view here to get less detail

Security
basicAuth or bearerAuth
Query
orderIdnumber

Search by the ID of the order.

orderStatusstring(OrderStatus)read-only

Search by the status of the order.

Enum ValueDescription
ORDER_BUILDING

The order is being created

PENDING

The order is pending, and can be updated

CONFIRMED

The order is confirmed, and can not be updated but if onDemand is true it can be activated

COMPLETED

The order is completed, the port has completed and the numbers are active

PENDING_CANCELATION

The order is in the process of being cancelled. During this time you cannot submit the same numbers on a new order

CANCELED

The order is cancelled, either by the customer or by the system

customerOrderReferencestring

The reference you specified when creating the order.

createdDateStartstring(date-time)

Search by the created date. This query sets the start date of the search period. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: createdDateStart=2024-09-24T12:00:00Z
createdDateEndstring(date-time)

Search by the created date. This query sets the end date of the search period. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: createdDateEnd=2024-09-24T12:00:00Z
phoneNumberstring

Search by a phone number.

focStartDatestring(date-time)

Search by the firm order confirmation. This query sets the start date of the search period. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: focStartDate=2024-09-24T12:00:00Z
focEndDatestring(date-time)

Search by the firm order confirmation. This query sets the end date of the search period. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: focEndDate=2024-09-24T12:00:00Z
pageSizeinteger[ 1 .. 1000 ]

The maximum number of items to return per request. The default is 100 and the maximum is 1000. If you need to export larger amounts and pagination is not suitable for you can use the Export function in the dashboard.

pagestring

The page you want to retrieve returned from a previous List request, if any

curl -i -X GET \
  -u <username>:<password> \
  'https://porting.api.sinch.com/v1/projects/YOUR_project_id/orders/portIns?orderId=0&orderStatus=PENDING&customerOrderReference=string&createdDateStart=2024-09-24T12%3A00%3A00Z&createdDateEnd=2024-09-24T12%3A00%3A00Z&phoneNumber=string&focStartDate=2024-09-24T12%3A00%3A00Z&focEndDate=2024-09-24T12%3A00%3A00Z&pageSize=1&page=string'

Responses

Successful operation

Bodyapplication/json
ordersArray of objects(OrderListItem)
pageintegerread-only

Current page.

totalPagesintegerread-only

Total number of pages.

pageSizeintegerread-only

Number of items per page.

totalItemsinteger(int32)read-only

Total size of the result.

Response
application/json
{ "orders": [ {} ], "page": 0, "totalPages": 0, "pageSize": 0, "totalItems": 0 }

Request

Get details about an existing order along with order notes and process notes (for Port-In orders). For realtime updates on the order status, please refer to the Webhooks section. wich is the recommended way to get updates on the order status.

Security
basicAuth or bearerAuth
Path
orderIdnumberrequired

Order Identifier

Example: 897867
curl -i -X GET \
  -u <username>:<password> \
  https://porting.api.sinch.com/v1/projects/YOUR_project_id/orders/portIns/897867

Responses

Successful operation

Bodyapplication/json
desiredPortScheduleobject(DesiredPortDateTime)required

The date and time you want the numbers to be ported in. If you set a defaultPortTime and defaultPortTimeZone in defaults those settings will be used if not set per order. If you haven't set defaults and do not set the time and time zone on the order the system default will be used.

System Default Time: 09:00:00 US/Eastern

desiredPortSchedule.​desiredPortDatestringrequired

The date you want the numbers to be ported in, in ISO format.

Example: "2025-01-31"
desiredPortSchedule.​desiredPortTimestring

The time you want the numbers to be ported in.

Example: "09:00:00"
desiredPortSchedule.​desiredPortTimeZonestring

The time zone you want to use for the desired port time.

Enum ValueDescription
US/Eastern

US Eastern Timezone

US/Central

US Central Timezone

US/Mountain

US Mountain Timezone

US/Pacific

US Pacific Timezone

Example: "US/Eastern"
idnumberread-only

The unique identifier for the order

Example: 890192331
statusstring(OrderStatus)read-only

The current status of the port order.

Enum ValueDescription
ORDER_BUILDING

The order is being created

PENDING

The order is pending, and can be updated

CONFIRMED

The order is confirmed, and can not be updated but if onDemand is true it can be activated

COMPLETED

The order is completed, the port has completed and the numbers are active

PENDING_CANCELATION

The order is in the process of being cancelled. During this time you cannot submit the same numbers on a new order

CANCELED

The order is cancelled, either by the customer or by the system

customerOrderReferencestring

Your reference you specified when creating the order

Default ""
Example: "123456"
onDemandActivationboolean

If you use onDemand activation you will need to make sure the numbers are both confirmed and released for activation, if you don't use onDemand the numbers will be activated on the desiredPortDate is the recommended way. If true the numbers will be activated as when you call :activate, if false they will be activated on the desiredPortDate

Default false
loaUploadedBystring

Name of the user uploading the LOA

Example: "john doe"
loaAttachmentDatestring(date-time)

Date when the LOA was uploaded. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: "2024-09-24T12:00:00Z"
phoneNumbersArray of objects(Phone numbers)

The numbers for the order in e164 format

notesArray of objects(OrderNote)read-only

Notes if any on the order, you will get notes if there is any problems with the order and you send notes as reply to those problems

documentsArray of objects(OrderDocumentBase)read-only

Documents if any on the order, you will get documents if there is any problems with the order and you send documents as reply to those problems

createdDatestring(date-time)read-only

When the order was created. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: "2024-09-24T12:00:00Z"
resellerNamestring

This is requirement for canadian numbers only, we need to figure out what we expect here and where the customer can find this info

Default ""
Response
application/json
{ "id": 890192331, "status": "PENDING", "customerOrderReference": "123456", "onDemandActivation": false, "desiredPortSchedule": { "desiredPortDate": "2025-01-31", "desiredPortTime": "09:00:00", "desiredPortTimeZone": "US/Eastern" }, "loaUploadedBy": "john doe", "loaAttachmentDate": "2024-09-24T12:00:00Z", "phoneNumbers": [ {} ], "notes": [ {} ], "documents": [ {} ], "createdDate": "2024-09-24T12:00:00Z", "resellerName": "" }

Request

This operation allows you to cancel an order in Pending status.

Security
basicAuth or bearerAuth
Path
orderIdnumberrequired

Order Identifier

Example: 897867
curl -i -X DELETE \
  -u <username>:<password> \
  https://porting.api.sinch.com/v1/projects/YOUR_project_id/orders/portIns/897867

Responses

Successful operation

Request

This operation allows you to update information on a Pending order. Please note that you need to send the full object, its not a patch

Security
basicAuth or bearerAuth
Path
orderIdstringrequired

The unique identifier for the order.

Bodyapplication/jsonrequired

Update Pending Order

desiredPortScheduleobject(DesiredPortDateTime)required

The date and time you want the numbers to be ported in. If you set a defaultPortTime and defaultPortTimeZone in defaults those settings will be used if not set per order. If you haven't set defaults and do not set the time and time zone on the order the system default will be used.

System Default Time: 09:00:00 US/Eastern

desiredPortSchedule.​desiredPortDatestringrequired

The date you want the numbers to be ported in, in ISO format.

Example: "2025-01-31"
desiredPortSchedule.​desiredPortTimestring

The time you want the numbers to be ported in.

Example: "09:00:00"
desiredPortSchedule.​desiredPortTimeZonestring

The time zone you want to use for the desired port time.

Enum ValueDescription
US/Eastern

US Eastern Timezone

US/Central

US Central Timezone

US/Mountain

US Mountain Timezone

US/Pacific

US Pacific Timezone

Example: "US/Eastern"
customerOrderReferencestring

Your reference you specified when creating the order

Default ""
Example: "123456"
onDemandActivationboolean

If you use onDemand activation you will need to make sure the numbers are both confirmed and released for activation, if you don't use onDemand the numbers will be activated on the desiredPortDate is the recommended way. If true the numbers will be activated as when you call :activate, if false they will be activated on the desiredPortDate

Default false
loaUploadedBystring

Name of the user uploading the LOA

Example: "john doe"
loaAttachmentDatestring(date-time)

Date when the LOA was uploaded. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: "2024-09-24T12:00:00Z"
phoneNumbersArray of objects(Phone numbers)

The numbers for the order in e164 format

resellerNamestring

This is requirement for canadian numbers only, we need to figure out what we expect here and where the customer can find this info

Default ""
curl -i -X PUT \
  -u <username>:<password> \
  'https://porting.api.sinch.com/v1/projects/YOUR_project_id/orders/portIns/{orderId}' \
  -H 'Content-Type: application/json' \
  -d '{
    "customerOrderReference": "123456",
    "onDemandActivation": false,
    "desiredPortSchedule": {
      "desiredPortDate": "2025-01-31",
      "desiredPortTime": "09:00:00",
      "desiredPortTimeZone": "US/Eastern"
    },
    "loaUploadedBy": "john doe",
    "loaAttachmentDate": "2024-09-24T12:00:00Z",
    "phoneNumbers": [
      {
        "phoneNumber": "+12345678901",
        "voiceConfiguration": {
          "type": "RTC",
          "appId": "6afd2da3-1692-4443-834c-8a2f386ec284"
        },
        "smsConfiguration": {
          "smsAppId": "string"
        },
        "endUser": {
          "name": "Joe Doe",
          "streetNum": "123",
          "streetName": "Main",
          "streetPreDir": "N",
          "streetType": "Court",
          "streetPostDir": "SW",
          "locationType1": "Suite",
          "locationValue1": "2134",
          "locationType2": "",
          "locationValue2": "",
          "locationType3": "",
          "locationValue3": "",
          "city": "Anytown",
          "state": "CA",
          "zipCode": "12345",
          "typeOfService": "B"
        },
        "portOutInfo": {
          "existingPortOutPin": "string",
          "accountNum": "string",
          "accountPhoneNumber": "string",
          "authorizingName": "string",
          "authorizingDate": "2024-09-24T12:00:00Z"
        },
        "features": {
          "e911": {
            "name": "string",
            "streetNum": "12345",
            "streetInfo": "Main St",
            "location": "Apt 5",
            "city": "Springfield",
            "state": "IL",
            "postalCode": "62701",
            "postalCodePlusFour": "1234"
          }
        },
        "newPortOutPin": "string"
      }
    ],
    "resellerName": ""
  }'

Responses

Successful operation

Bodyapplication/json
desiredPortScheduleobject(DesiredPortDateTime)required

The date and time you want the numbers to be ported in. If you set a defaultPortTime and defaultPortTimeZone in defaults those settings will be used if not set per order. If you haven't set defaults and do not set the time and time zone on the order the system default will be used.

System Default Time: 09:00:00 US/Eastern

desiredPortSchedule.​desiredPortDatestringrequired

The date you want the numbers to be ported in, in ISO format.

Example: "2025-01-31"
desiredPortSchedule.​desiredPortTimestring

The time you want the numbers to be ported in.

Example: "09:00:00"
desiredPortSchedule.​desiredPortTimeZonestring

The time zone you want to use for the desired port time.

Enum ValueDescription
US/Eastern

US Eastern Timezone

US/Central

US Central Timezone

US/Mountain

US Mountain Timezone

US/Pacific

US Pacific Timezone

Example: "US/Eastern"
idnumberread-only

The unique identifier for the order

Example: 890192331
statusstring(OrderStatus)read-only

The current status of the port order.

Enum ValueDescription
ORDER_BUILDING

The order is being created

PENDING

The order is pending, and can be updated

CONFIRMED

The order is confirmed, and can not be updated but if onDemand is true it can be activated

COMPLETED

The order is completed, the port has completed and the numbers are active

PENDING_CANCELATION

The order is in the process of being cancelled. During this time you cannot submit the same numbers on a new order

CANCELED

The order is cancelled, either by the customer or by the system

customerOrderReferencestring

Your reference you specified when creating the order

Default ""
Example: "123456"
onDemandActivationboolean

If you use onDemand activation you will need to make sure the numbers are both confirmed and released for activation, if you don't use onDemand the numbers will be activated on the desiredPortDate is the recommended way. If true the numbers will be activated as when you call :activate, if false they will be activated on the desiredPortDate

Default false
loaUploadedBystring

Name of the user uploading the LOA

Example: "john doe"
loaAttachmentDatestring(date-time)

Date when the LOA was uploaded. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: "2024-09-24T12:00:00Z"
phoneNumbersArray of objects(Phone numbers)

The numbers for the order in e164 format

notesArray of objects(OrderNote)read-only

Notes if any on the order, you will get notes if there is any problems with the order and you send notes as reply to those problems

documentsArray of objects(OrderDocumentBase)read-only

Documents if any on the order, you will get documents if there is any problems with the order and you send documents as reply to those problems

createdDatestring(date-time)read-only

When the order was created. Formatted as ISO-8601: YYYY-MM-DDThh:mm:ss.SSSZ.

Example: "2024-09-24T12:00:00Z"
resellerNamestring

This is requirement for canadian numbers only, we need to figure out what we expect here and where the customer can find this info

Default ""
Response
application/json
{ "id": 890192331, "status": "PENDING", "customerOrderReference": "123456", "onDemandActivation": false, "desiredPortSchedule": { "desiredPortDate": "2025-01-31", "desiredPortTime": "09:00:00", "desiredPortTimeZone": "US/Eastern" }, "loaUploadedBy": "john doe", "loaAttachmentDate": "2024-09-24T12:00:00Z", "phoneNumbers": [ {} ], "notes": [ {} ], "documents": [ {} ], "createdDate": "2024-09-24T12:00:00Z", "resellerName": "" }

Request

This operation allows you to add a note to an existing order.

Security
basicAuth or bearerAuth
Path
orderIdnumberrequired

Order Identifier

Bodyapplication/jsonrequired

Add Order Note

notestring
curl -i -X POST \
  -u <username>:<password> \
  'https://porting.api.sinch.com/v1/projects/YOUR_project_id/orders/portIns/{orderId}/notes' \
  -H 'Content-Type: application/json' \
  -d '{
    "note": "string"
  }'

Responses

Successful operation

Bodyapplication/json
idnumber
notestring
Response
application/json
{ "id": 0, "note": "string" }

Request

This operation allows you to add a document to an existing order.

Security
basicAuth or bearerAuth
Path
orderIdnumberrequired

Order Identifier

Bodyapplication/jsonrequired

Add Order Document

documentNamestring

The name of the document.

descriptionstring

A description of the contents of the document.

fileContentstring

Base64-encoded content representing the file contents.

curl -i -X POST \
  -u <username>:<password> \
  'https://porting.api.sinch.com/v1/projects/YOUR_project_id/orders/portIns/{orderId}/documents' \
  -H 'Content-Type: application/json' \
  -d '{
    "documentName": "string",
    "description": "string",
    "fileContent": "string"
  }'

Responses

Successful operation, the file name/description would be returned, but the content would not be returned in the response.

Bodyapplication/json
idnumberread-only

The ID of the order document.

documentNamestring

The name of the document.

descriptionstring

A description of the contents of the document.

Response
application/json
{ "id": 0, "documentName": "string", "description": "string" }

Request

This operation allows you to retrieve specific document contents attached to an existing order.

Security
basicAuth or bearerAuth
Path
orderIdnumberrequired

Order Identifier

documentIdstringrequired

Document content for

curl -i -X GET \
  -u <username>:<password> \
  'https://porting.api.sinch.com/v1/projects/YOUR_project_id/orders/{orderId}/documents/{documentId}'

Responses

Successful operation

Bodyapplication/json
documentIdnumber
idnumberread-only

The ID of the order document.

documentNamestring

The name of the document.

descriptionstring

A description of the contents of the document.

fileContentstring

Base64-encoded content representing the file contents.

contentTypestring
Response
application/json
{ "documentId": 0, "id": 0, "documentName": "string", "description": "string", "fileContent": "string", "contentType": "string" }
Webhooks

Port-in settings

Porting default settings

Operations

Advanced porting

This section is for advanced porting operations, like on demand activating numbers, getting available numbers for activation, and more. If you are looking for basic porting operations like creating an order, checking portability, and more, please refer to the Port-in numbers section.

Operations