Skip to content

Registration (1.0)

Service for creating and listing US 10DLC brand and campaign registrations and TFN Verifications.

The US brand and campaign registration API is an asynchronous process. Most brands and campaign registrations will be completed in a few minutes, but in some scenarios, the process can take several days. The initial release will not include a webhook service, therefore you will need to poll the result of the brand and campaign registrations. We suggest doing this every hour until the registration status is "Approved" or "Rejected".

10DLC Registration steps
Client submits brand registrationbrandRegistrationsSinch
Client gets back brandRegistrationId{brandRegistrationId}Sinch
Client polls using brandRegistrationIdbrandRegistrations/{brandRegistrationId}Sinch
Client gets back TCR Brand ID{brandId}Sinch
Client checks use-casecampaignRegistration:qualifySinch
Client submits campaign registrationcampaignRegistration:submitSinch
Client gets back campaignRegistrationId{campaignRegistrationId}Sinch
Client polls using campaignRegistrationIdcampaignRegistrations/{campaignRegistrationId}Sinch
Client gets back TCR campaign IDcampaignIdSinch

Overview
Languages
Servers
HTTP 10DLC API Server (Default(US))
https://us10dlc.numbers.api.sinch.com

10DLC Brand Registration

Create or look up brand registration for 10DLC virtual numbers

Operations

Create Brand Registrations

Request

Create a 10DLC brand registration at TCR (The Campaign Registry). There are 2 types of registrations:

  1. Simplified Registration - only verifies your brand.
  2. Full Registration - performs a vetting and grants a vetted verified brand.
Security
BasicAuth or OAuth2
Path
projectIdstringrequired

Sinch uses projects to group resources such as contacts and apps together to manage and connect a unique set of keys and secret IDs for all your Sinch API products. To identify a project, it is given a unique alphanumeric identifier that ties it to your account. Your project ID can be found in the Customer Dashboard.

Bodyapplication/jsonrequired

The request body to of the brand to be created

displayNamestring

Display name is defined by the user

brandRegistrationTypestring(Brand Registration Type)
  • SIMPLIFIED: Simplified Registration costs 10USD and will only verify your brand. - FULL: Full Registration will cost 50USD but perform an vetting and grant a vetted verified brand.
Default "SIMPLIFIED"
Enum ValueDescription
SIMPLIFIED

Simplified Registration costs 10USD and will only verify your brand.

FULL

Full Registration will cost 50USD but perform a vetting and grant a vetted verified brand.

BRAND_REGISTRATION_TYPE_UNSPECIFIED

Type not specified.

companyDetailsobject(Company Details)
financialDetailsobject(Financial Details)
contactDetailsobject(Contact Details)
mockboolean

Defines if created brand should be mocked or real one

curl -i -X POST \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/brandRegistrations:submit' \
  -H 'Content-Type: application/json' \
  -d '{
    "displayName": "string",
    "brandRegistrationType": "SIMPLIFIED",
    "companyDetails": {
      "companyName": "string",
      "companyEmail": "string",
      "businessContactEmail": "string",
      "brandName": "string",
      "country": "string",
      "streetAddress": "string",
      "city": "string",
      "postalCode": "string",
      "state": "string",
      "webAddress": "string"
    },
    "financialDetails": {
      "brandEntityType": "PUBLIC",
      "brandVerticalType": "PROFESSIONAL",
      "taxIdCountry": "string",
      "taxIdCorporate": "string",
      "stockSymbol": "string",
      "exchange": "string"
    },
    "contactDetails": {
      "firstName": "string",
      "lastName": "string",
      "phoneNumber": "string",
      "email": "string"
    },
    "mock": true
  }'

Responses

A successful response.

Bodyapplication/json
brandRegistrationIdstringread-only

Output only. Brand registration Id

Response
application/json
{ "brandRegistrationId": "string" }

List Brand Registrations

Request

Lists all brand registrations per project.

Security
BasicAuth or OAuth2
Path
projectIdstringrequired

Sinch uses projects to group resources such as contacts and apps together to manage and connect a unique set of keys and secret IDs for all your Sinch API products. To identify a project, it is given a unique alphanumeric identifier that ties it to your account. Your project ID can be found in the Customer Dashboard.

curl -i -X GET \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/brandRegistrations'

Responses

A successful response.

Bodyapplication/json
brandRegistrationsArray of objects(Brand Registration Details)
nextPageTokenstring
totalSizeinteger(int32)
Response
application/json
{ "brandRegistrations": [ {} ], "nextPageToken": "string", "totalSize": 0 }

Brand Registration Status

Request

Get brand registration details using brand registration ID when creating a brand.

Security
BasicAuth or OAuth2
Path
projectIdstringrequired

Sinch uses projects to group resources such as contacts and apps together to manage and connect a unique set of keys and secret IDs for all your Sinch API products. To identify a project, it is given a unique alphanumeric identifier that ties it to your account. Your project ID can be found in the Customer Dashboard.

brandRegistrationIdstringrequired

The Brand Registration ID is returned in the response when creating the brand

curl -i -X GET \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/brandRegistrations/{brandRegistrationId}'

Responses

A successful response.

Bodyapplication/json
brandRegistrationIdstringread-only

Output only. Brand registration Id

brandIdstringread-only

Output only. TCR brand Id

identityStatusstringread-only

Identity status for the brand.

displayNamestringread-only

Output only. Display name defined by user

brandRegistrationStatusstring(Brand Registration Status)
  • DRAFT: Registration has not yet been submitted. Only feasible when creating a brand registration in dashboard.sinch.com - IN_PROGRESS: Registration had been submitted for review - REJECTED: Registration has been rejected. Please contact your account manager for further information - APPROVED: Brand registration has been completed - UPGRADE: The Brand is being upgraded to FULL registration
Default "DRAFT"
Enum ValueDescription
DRAFT

Registration has not yet been submitted.

IN_PROGRESS

Registration had been submitted for review.

REJECTED

Registration has been rejected.

APPROVED

Brand registration has been completed.

UPGRADE

Brand is being upgraded to FULL registration.

brandRegistrationTypestring(Brand Registration Type)
  • SIMPLIFIED: Simplified Registration costs 10USD and will only verify your brand. - FULL: Full Registration will cost 50USD but perform an vetting and grant a vetted verified brand.
Default "SIMPLIFIED"
Enum ValueDescription
SIMPLIFIED

Simplified Registration costs 10USD and will only verify your brand.

FULL

Full Registration will cost 50USD but perform a vetting and grant a vetted verified brand.

BRAND_REGISTRATION_TYPE_UNSPECIFIED

Type not specified.

companyDetailsobject(Company Details)
financialDetailsobject(Financial Details)
contactDetailsobject(Contact Details)
mockboolean

Defines if created brand should be mocked or real one

Response
application/json
{ "brandRegistrationId": "string", "brandId": "string", "identityStatus": "string", "displayName": "string", "brandRegistrationStatus": "DRAFT", "brandRegistrationType": "SIMPLIFIED", "companyDetails": { "companyName": "string", "companyEmail": "string", "businessContactEmail": "string", "brandName": "string", "country": "string", "streetAddress": "string", "city": "string", "postalCode": "string", "state": "string", "webAddress": "string" }, "financialDetails": { "brandEntityType": "PUBLIC", "brandVerticalType": "PROFESSIONAL", "taxIdCountry": "string", "taxIdCorporate": "string", "stockSymbol": "string", "exchange": "string" }, "contactDetails": { "firstName": "string", "lastName": "string", "phoneNumber": "string", "email": "string" }, "mock": true }

Brand Registration Update

Request

Update Brand Registration details

Security
BasicAuth or OAuth2
Path
projectIdstringrequired

Your project id can be found if you log into your account on dashboard.sinch.com.

brandRegistrationIdstringrequired

The Brand Registration ID is returned in the response when creating the brand

Bodyapplication/jsonrequired
companyDetailsobject(Company Details)
financialDetailsobject(Financial Details)
contactDetailsobject(Contact Details)
curl -i -X PATCH \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/brandRegistrations/{brandRegistrationId}' \
  -H 'Content-Type: application/json' \
  -d '{
    "companyDetails": {
      "companyName": "string",
      "companyEmail": "string",
      "businessContactEmail": "string",
      "brandName": "string",
      "country": "string",
      "streetAddress": "string",
      "city": "string",
      "postalCode": "string",
      "state": "string",
      "webAddress": "string"
    },
    "financialDetails": {
      "brandEntityType": "PUBLIC",
      "brandVerticalType": "PROFESSIONAL",
      "taxIdCountry": "string",
      "taxIdCorporate": "string",
      "stockSymbol": "string",
      "exchange": "string"
    },
    "contactDetails": {
      "firstName": "string",
      "lastName": "string",
      "phoneNumber": "string",
      "email": "string"
    }
  }'

Responses

A successful response.

Bodyapplication/json
brandRegistrationIdstringread-only

Output only. Brand registration Id

brandIdstringread-only

Output only. TCR brand Id

identityStatusstringread-only

Identity status for the brand.

displayNamestringread-only

Output only. Display name defined by user

brandRegistrationStatusstring(Brand Registration Status)
  • DRAFT: Registration has not yet been submitted. Only feasible when creating a brand registration in dashboard.sinch.com - IN_PROGRESS: Registration had been submitted for review - REJECTED: Registration has been rejected. Please contact your account manager for further information - APPROVED: Brand registration has been completed - UPGRADE: The Brand is being upgraded to FULL registration
Default "DRAFT"
Enum ValueDescription
DRAFT

Registration has not yet been submitted.

IN_PROGRESS

Registration had been submitted for review.

REJECTED

Registration has been rejected.

APPROVED

Brand registration has been completed.

UPGRADE

Brand is being upgraded to FULL registration.

brandRegistrationTypestring(Brand Registration Type)
  • SIMPLIFIED: Simplified Registration costs 10USD and will only verify your brand. - FULL: Full Registration will cost 50USD but perform an vetting and grant a vetted verified brand.
Default "SIMPLIFIED"
Enum ValueDescription
SIMPLIFIED

Simplified Registration costs 10USD and will only verify your brand.

FULL

Full Registration will cost 50USD but perform a vetting and grant a vetted verified brand.

BRAND_REGISTRATION_TYPE_UNSPECIFIED

Type not specified.

companyDetailsobject(Company Details)
financialDetailsobject(Financial Details)
contactDetailsobject(Contact Details)
mockboolean

Defines if created brand should be mocked or real one

Response
application/json
{ "brandRegistrationId": "string", "brandId": "string", "identityStatus": "string", "displayName": "string", "brandRegistrationStatus": "DRAFT", "brandRegistrationType": "SIMPLIFIED", "companyDetails": { "companyName": "string", "companyEmail": "string", "businessContactEmail": "string", "brandName": "string", "country": "string", "streetAddress": "string", "city": "string", "postalCode": "string", "state": "string", "webAddress": "string" }, "financialDetails": { "brandEntityType": "PUBLIC", "brandVerticalType": "PROFESSIONAL", "taxIdCountry": "string", "taxIdCorporate": "string", "stockSymbol": "string", "exchange": "string" }, "contactDetails": { "firstName": "string", "lastName": "string", "phoneNumber": "string", "email": "string" }, "mock": true }

Brand Registration Feedback

Request

Returns feedback information for brand registrations that were rejected. Following are the applicable category IDs:

  • TAX_ID - Data mismatch related to tax id and its associated properties.
  • STOCK_SYMBOL - Non public entity registered as a public for profit entity or the stock information mismatch.
  • GOVERNMENT_ENTITY - Non government entity registered as a government entity. Must be a U.S. government entity.
  • NONPROFIT - No IRS 501c tax-exempt status found.
  • OTHERS - Details of the data misrepresentation if any.
Security
BasicAuth or OAuth2
Path
projectIdstringrequired

Sinch uses projects to group resources such as contacts and apps together to manage and connect a unique set of keys and secret IDs for all your Sinch API products. To identify a project, it is given a unique alphanumeric identifier that ties it to your account. Your project ID can be found in the Customer Dashboard.

brandRegistrationIdstringrequired

The Brand Registration ID is returned in the response when creating the brand

curl -i -X GET \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/brandRegistrations/{brandRegistrationId}/feedback'

Responses

A successful response.

Bodyapplication/json
brandIdstringread-only
categoryArray of objects(Category)read-only
Response
application/json
{ "brandId": "string", "category": [ {} ] }

Get Brand Details

Request

Get the US 10DLC brand details using the TCR brand ID.

Security
BasicAuth or OAuth2
Path
projectIdstringrequired

Sinch uses projects to group resources such as contacts and apps together to manage and connect a unique set of keys and secret IDs for all your Sinch API products. To identify a project, it is given a unique alphanumeric identifier that ties it to your account. Your project ID can be found in the Customer Dashboard.

Query
brandIdstringrequired

Brand Id to be qualified

curl -i -X GET \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/brandRegistrations:fetchByTcrBrandId?brandId=string'

Responses

A successful response.

Bodyapplication/json
brandRegistrationIdstringread-only

Output only. Brand registration Id

brandIdstringread-only

Output only. TCR brand Id

identityStatusstringread-only

Identity status for the brand.

displayNamestringread-only

Output only. Display name defined by user

brandRegistrationStatusstring(Brand Registration Status)
  • DRAFT: Registration has not yet been submitted. Only feasible when creating a brand registration in dashboard.sinch.com - IN_PROGRESS: Registration had been submitted for review - REJECTED: Registration has been rejected. Please contact your account manager for further information - APPROVED: Brand registration has been completed - UPGRADE: The Brand is being upgraded to FULL registration
Default "DRAFT"
Enum ValueDescription
DRAFT

Registration has not yet been submitted.

IN_PROGRESS

Registration had been submitted for review.

REJECTED

Registration has been rejected.

APPROVED

Brand registration has been completed.

UPGRADE

Brand is being upgraded to FULL registration.

brandRegistrationTypestring(Brand Registration Type)
  • SIMPLIFIED: Simplified Registration costs 10USD and will only verify your brand. - FULL: Full Registration will cost 50USD but perform an vetting and grant a vetted verified brand.
Default "SIMPLIFIED"
Enum ValueDescription
SIMPLIFIED

Simplified Registration costs 10USD and will only verify your brand.

FULL

Full Registration will cost 50USD but perform a vetting and grant a vetted verified brand.

BRAND_REGISTRATION_TYPE_UNSPECIFIED

Type not specified.

companyDetailsobject(Company Details)
financialDetailsobject(Financial Details)
contactDetailsobject(Contact Details)
mockboolean

Defines if created brand should be mocked or real one

Response
application/json
{ "brandRegistrationId": "string", "brandId": "string", "identityStatus": "string", "displayName": "string", "brandRegistrationStatus": "DRAFT", "brandRegistrationType": "SIMPLIFIED", "companyDetails": { "companyName": "string", "companyEmail": "string", "businessContactEmail": "string", "brandName": "string", "country": "string", "streetAddress": "string", "city": "string", "postalCode": "string", "state": "string", "webAddress": "string" }, "financialDetails": { "brandEntityType": "PUBLIC", "brandVerticalType": "PROFESSIONAL", "taxIdCountry": "string", "taxIdCorporate": "string", "stockSymbol": "string", "exchange": "string" }, "contactDetails": { "firstName": "string", "lastName": "string", "phoneNumber": "string", "email": "string" }, "mock": true }

Brand Registration Upgrade

Request

Upgrades brand from SIMPLIFIED to FULL.

Security
BasicAuth or OAuth2
Path
projectIdstringrequired

Sinch uses projects to group resources such as contacts and apps together to manage and connect a unique set of keys and secret IDs for all your Sinch API products. To identify a project, it is given a unique alphanumeric identifier that ties it to your account. Your project ID can be found in the Customer Dashboard.

brandRegistrationIdstringrequired

The Brand Registration ID is returned in the response when creating the brand

curl -i -X POST \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/brandRegistrations/{brandRegistrationId}/upgrade'

Responses

A successful response.

Bodyapplication/json
brandRegistrationIdstringread-only

Output only. Brand registration Id

brandIdstringread-only

Output only. TCR brand Id

identityStatusstringread-only

Identity status for the brand.

displayNamestringread-only

Output only. Display name defined by user

brandRegistrationStatusstring(Brand Registration Status)
  • DRAFT: Registration has not yet been submitted. Only feasible when creating a brand registration in dashboard.sinch.com - IN_PROGRESS: Registration had been submitted for review - REJECTED: Registration has been rejected. Please contact your account manager for further information - APPROVED: Brand registration has been completed - UPGRADE: The Brand is being upgraded to FULL registration
Default "DRAFT"
Enum ValueDescription
DRAFT

Registration has not yet been submitted.

IN_PROGRESS

Registration had been submitted for review.

REJECTED

Registration has been rejected.

APPROVED

Brand registration has been completed.

UPGRADE

Brand is being upgraded to FULL registration.

brandRegistrationTypestring(Brand Registration Type)
  • SIMPLIFIED: Simplified Registration costs 10USD and will only verify your brand. - FULL: Full Registration will cost 50USD but perform an vetting and grant a vetted verified brand.
Default "SIMPLIFIED"
Enum ValueDescription
SIMPLIFIED

Simplified Registration costs 10USD and will only verify your brand.

FULL

Full Registration will cost 50USD but perform a vetting and grant a vetted verified brand.

BRAND_REGISTRATION_TYPE_UNSPECIFIED

Type not specified.

companyDetailsobject(Company Details)
financialDetailsobject(Financial Details)
contactDetailsobject(Contact Details)
mockboolean

Defines if created brand should be mocked or real one

Response
application/json
{ "brandRegistrationId": "string", "brandId": "string", "identityStatus": "string", "displayName": "string", "brandRegistrationStatus": "DRAFT", "brandRegistrationType": "SIMPLIFIED", "companyDetails": { "companyName": "string", "companyEmail": "string", "businessContactEmail": "string", "brandName": "string", "country": "string", "streetAddress": "string", "city": "string", "postalCode": "string", "state": "string", "webAddress": "string" }, "financialDetails": { "brandEntityType": "PUBLIC", "brandVerticalType": "PROFESSIONAL", "taxIdCountry": "string", "taxIdCorporate": "string", "stockSymbol": "string", "exchange": "string" }, "contactDetails": { "firstName": "string", "lastName": "string", "phoneNumber": "string", "email": "string" }, "mock": true }

Brand Registration Vetting Information

Request

Returns the vetting information of a brand registration. Include optional query parameters to filter results by vetting partner ID, vetting class, or status.

Security
BasicAuth or OAuth2
Path
projectIdstringrequired

Sinch uses projects to group resources such as contacts and apps together to manage and connect a unique set of keys and secret IDs for all your Sinch API products. To identify a project, it is given a unique alphanumeric identifier that ties it to your account. Your project ID can be found in the Customer Dashboard.

brandRegistrationIdstringrequired

The Brand Registration ID is returned in the response when creating the brand

Query
vettingStatusstringrequired
Default "ACTIVE"
Enum ValueDescription
PENDING

Pending vetting.

UNSCORE

Undergoing vetting process.

ACTIVE

Active status.

FAILED

Vetting failed.

EXPIRED

Vetting expired.

curl -i -X GET \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/brandRegistrations/{brandRegistrationId}/vettingInfo?vettingStatus=PENDING'

Responses

A successful response.

Bodyapplication/json
vettingInfoArray of objects(VettingInfo)read-only
Response
application/json
{ "vettingInfo": [ {} ] }

Resend 2FA Email

Request

Resends the two-factor authentication email.

Security
BasicAuth or OAuth2
Path
projectIdstringrequired

Sinch uses projects to group resources such as contacts and apps together to manage and connect a unique set of keys and secret IDs for all your Sinch API products. To identify a project, it is given a unique alphanumeric identifier that ties it to your account. Your project ID can be found in the Customer Dashboard.

bundleIdstringrequired

The ID of the bundle associated with the brand registration.

curl -i -X POST \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/brandRegistrations/{bundleId}/resend2faEmail'

Responses

No response

Body

10DLC Campaign Registration

10DLC is a system in the United States that allows businesses to send Application-to-Person (A2P) messaging via 10-digit-long-codes (10DLC). It uses a dedicated 10-digit telephone number allocated within the North American Numbering Plan (NANP).

In order to register for a 10DLC campaign, you need to have a 10DLC enabled brand. Create a 10DLC enabled brand before you start, see Brand Registrations for more info.

Before you launch your 10DLC message program, Sinch must review your campaign. We make sure your message program aligns with carrier and industry requirements. Principally we look for alignment with the CTIA 2023 Messaging Principals & Best Practices. If your campaign does not meet these requirements, we will reject it. If we do reject it, you will need to make changes to the campaign and resubmit it for Sinch to review again.

It's important to understand 10DLC compliance requirements as well as other best practices. You should also know the most common reasons why Sinch may reject your campaign . We want to help you get your campaigns approved the first time. Then you can get your message program up and running right away!

Operations

TFN Verification

Create or look up Verifications for Toll-Free Numbers

Operations