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

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

Request

Create a 10DLC campaign at TCR (The Campaign Registry).

Campaign fees and carrier requirements are determined by the brand and use-case being used. To check the campaign requirements, use the campaign:qualify API.

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
brandIdstring<= 8 charactersrequired

The brand is the company or entity represented in the campaign. The brand ID is an alphanumeric identifier that always begins with a "B". When registering a brand in The Campaign Registry (TCR), TCR returns a brand ID value, example: BESINCH. For more info, see Brand Registrations.

useCasestring(Campaign Usecase Type)required

Select a use case that is the primary use case that is most applicable to the service that messages are providing to subscribers. Standard use cases are immediately available for all qualified registered brands, whereas special use cases require vetting or pre/post approval by mobile network operators (MNOs).

Special use cases are sensitive or critical in nature and may require vetting or pre/post registration approval by mobile network operators (MNOs). Requirements may vary according to each MNO.

For more information on standard use case versus special use case campaigns, see 10DLC Use Cases - Standard Use Cases vs Special Use Cases.

Enum"2FA""ACCOUNT_NOTIFICATION""CUSTOMER_CARE""DELIVERY_NOTIFICATION""FRAUD_ALERT""HIGHER_EDUCATION""LOW_VOLUME""MARKETING""MIXED""POLLING_VOTING"
campaignNamestring<= 128 charactersrequired

This is an optional name to help track and view your campaign within Sinch's platform. Use a name that is easily recognizable, this will help you identify your campaign later within the Sinch customer dashboard. This name is not part of the campaign registration in TCR.

descriptionstring[ 40 .. 4096 ] charactersrequired

Describe in detail the service the message program is providing to the end user and the purpose of the brand's messages (i.e. appointment reminders, OTP alerts, etc.). The description should match the selected use case and identify who is sending the messages, who is receiving the messages, and why messages are being sent.

sample1string[ 20 .. 1024 ] charactersrequired

Provide sample production message content. Include the Brand name and opt out instructions (e.g. Reply STOP to stop) in every message. If you have selected Mixed use case, please provide examples of each sub use case selected.

Example: "{Brand name}: We are contacting you today to let you know your order is ready for pickup. Reply STOP to stop."
sample2string<= 1024 charactersrequired

Message sample. Some campaign tiers require 2 or more message samples, depending on sub-usecases.

Example: "{Brand name}: Your confirmation code is SINCH1234. Please enter it on the authentication website. Reply STOP to stop."
sample3string<= 1024 charactersrequired

Message sample. Some campaign tiers require 3 or more message samples, depending on sub-usecases.

Example: "{Brand name}: Shop at www.example.com for all your retail needs! From clothing to home goods, we've got you covered. Visit us today and save! Reply STOP to stop. "
stopMessagestring[ 20 .. 255 ] charactersrequired

Message sent in response to a STOP keyword. It must confirm that the end user has unsubscribed from the message program and will not receive any further messages. Include the brand name. You can also include customer care contact information (e.g. support email or phone number).

Example: "You have been unsubscribed and will not receive any more messages from {Brand name}. For more information call {phone number} or email {email address}."
optInMessagestring[ 20 .. 255 ] charactersrequired

Initial message that is sent confirming the end user's subscription. Include the brand name, opt-out instructions (reply STOP to stop), customer care instructions (reply HELP for help), message frequency (#msgs/mo, msg frequency varies, recurring messages, etc.) and the "message and data rates may apply" disclosure (Msg & Data rates may apply).

Example: "You have opted in to receive messages from {Brand name}! Msg freq varies. Msg & data rates may apply. Reply HELP for help. Reply STOP to stop."
helpMessagestring[ 20 .. 255 ] charactersrequired

Message sent in response to HELP. Include the brand name and additional customer care contact information (e.g. support email or phone number).

Example: "{Brand name}: For help call {phone number} or email {email address} Reply STOP to stop."
autoRenewalbooleanrequired

Will your campaign automatically renew? If "Yes", a monthly recurring fee will be charged to the account. If "No", only the initial setup fee will be charged, and the campaign will expire after three months unless it is reviewed manually.

Default true
embeddedLinkbooleanrequired

Will your message content include a URL? Note that public URL shorteners are not allowed.

Default false
embeddedPhonebooleanrequired

Will your message content include embedded phone numbers?

Default false
numberPoolbooleanrequired

Will your campaign support a number pool (more than 50 numbers)? If yes, your use case should clearly support the need for a number pool. For more info, see When should I use a number pool for my 10DLC campaign.

Default false
ageGatedbooleanrequired

Will your traffic include any content related to age-restricted goods or services? If yes, you must implement an age gate verification process.

Default false
directLendingbooleanrequired

Are you a financial institution engaged in direct, first-party lending to your customers? If yes, note that your campaign description should clearly indicate direct lending, even if your use case is not related to your lending services (e.g. OTP).

Default false
subscriberOptInbooleanrequired

Will your campaign collect and process end user opt-ins? This is mandatory for all use cases, except for Machine-to-Machine.

Default true
subscriberOptOutbooleanrequired

Message sent in response to a STOP keyword. It must confirm that the end user has unsubscribed from the message program and will not receive any further messages. Include the brand name. You can also include customer care contact information (e.g. support email or phone number).

Default true
subscriberHelpbooleanrequired

Message sent in response to HELP. Include the brand name and additional customer care contact information (e.g. support email or phone number).

Default true
optinKeywordsstring<= 255 charactersrequired

If subscribers can opt-in via a keyword, enter keyword(s) here (alphanumeric comma separated values, no blank spaces).

Example: "Join,Subscribe,Agree"
optoutKeywordsstring<= 255 charactersrequired

Subscriber opt-out keywords. Default values are STOP, QUIT, END, CANCEL and UNSUBSCRIBE. If you accept additional opt-out keywords, you can enter them here (alphanumeric comma separated values, no blank spaces).

Example: "Stop,Quit,Cancel"
helpKeywordsstring<= 255 charactersrequired

Subscriber help keywords. Default value is HELP. If you accept additional help keywords, you can enter them here. (alphanumeric comma separated values, no blank spaces).

Example: "Help,Info"
messageFlowstring[ 40 .. 2048 ] charactersrequired

Provide instructions for how end users opt-in to receive messages. A compliant opt-in is critical to the approval of your campaign. Include all opt-in mechanisms (e.g. keyword/text-to-join, online form, point-of-sale (POS) system, verbal consent, interactive voice response (IVR) system, paper form) and a clear program description. The Call-to-Action should include opt-out instructions (reply STOP to stop), customer care instructions (reply HELP for help), message frequency (#msgs/mo, msg frequency varies, recurring messages, etc.) and message and data rates disclosure (Msg & Data rates may apply).

Example: "Users will opt-in to receive messages from {Brand name} via {opt-in mechanism}"
sample4string<= 1024 characters

Message sample. Some campaign tiers require 4 or more message samples, depending on sub-usecases.

subUseCasesArray of strings(v1alpha1CampaignSubUseCaseType)

If you have selected a mixed use case, select all sub use cases that apply to your message program. Choose between 2 and 5 sub use cases for this campaign. The input(s) should be one of the accepted enum values.

Items Enum"2FA""ACCOUNT_NOTIFICATION""CUSTOMER_CARE""DELIVERY_NOTIFICATION""FRAUD_ALERT""HIGHER_EDUCATION""MARKETING""POLLING_VOTING""PUBLIC_SERVICE_ANNOUNCEMENT""SECURITY_ALERT"
terms_and_conditions_linkstring<= 255 characters

A URL to a page containing the terms and conditions.

Example: "https://my.website.com/toc"
privacy_policy_linkstring<= 255 characters

A URL to a page containing the privacy policy.

Example: "https://my.website.com/privacy_policy"
attachmentsboolean

If this property is set to true, this will delay the submission of the campaign until all necessary documentation is uploaded using the Upload Campaign Files operation.

Default false
Example: false
verticalstring(Campaign Vertical Type)Deprecated

This field has been deprecated and is no longer being captured.

curl -i -X POST \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/campaignRegistrations:submit' \
  -H 'Content-Type: application/json' \
  -d '{
    "brandId": "string",
    "useCase": "2FA",
    "campaignName": "string",
    "vertical": "string",
    "description": "stringstringstringstringstringstringstri",
    "sample1": "{Brand name}: We are contacting you today to let you know your order is ready for pickup. Reply STOP to stop.",
    "sample2": "{Brand name}: Your confirmation code is SINCH1234. Please enter it on the authentication website. Reply STOP to stop.",
    "sample3": "{Brand name}: Shop at www.example.com for all your retail needs! From clothing to home goods, we'\''ve got you covered. Visit us today and save! Reply STOP to stop. ",
    "sample4": "string",
    "stopMessage": "You have been unsubscribed and will not receive any more messages from {Brand name}.  For more information call {phone number} or email {email address}.",
    "optInMessage": "You have opted in to receive messages from {Brand name}! Msg freq varies. Msg & data rates may apply. Reply HELP for help. Reply STOP to stop.",
    "helpMessage": "{Brand name}: For help call {phone number} or email {email address}  Reply STOP to stop.",
    "subUseCases": [
      "2FA"
    ],
    "autoRenewal": true,
    "embeddedLink": false,
    "embeddedPhone": false,
    "numberPool": false,
    "ageGated": false,
    "directLending": false,
    "subscriberOptIn": true,
    "subscriberOptOut": true,
    "subscriberHelp": true,
    "optinKeywords": "Join,Subscribe,Agree",
    "optoutKeywords": "Stop,Quit,Cancel",
    "helpKeywords": "Help,Info",
    "messageFlow": "Users will opt-in to receive messages from {Brand name} via {opt-in mechanism}",
    "terms_and_conditions_link": "https://my.website.com/toc",
    "privacy_policy_link": "https://my.website.com/privacy_policy",
    "attachments": false
  }'

Responses

A successful response.

Bodyapplication/json
campaignRegistrationIdstring<= 26 characters

Sinch generated campaign ID (ULID format). Note that this is not the TCR campaign ID. The TCR Campaign ID will be available once the campaign has been approved and submitted to TCR.

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

Upload attachments for 10DLC campaign registration

Request

Uploads supporting documentation for 10DLC campaign registrations.

Security
BasicAuth or OAuth2
Bodyapplication/jsonrequired
campaignInternalIdstringrequired

The campaign ID returned by the create campaign API endpoint.

Example: "01k4cxccbt519xa3ejty1r5jb4"
submitCampaignbooleanrequired

Set this property to false for all uploaded files except the final one, which will allow for uploading documents across multiple requests without submitting the campaign. For the last file, set it to true to indicate that the upload is complete and the campaign should be submitted for review.

projectIdstring

The project ID to which the campaign belongs.

Example: "0fc52975-636a-4700-8943-68759df5c9e1"
fileobject

Files must be no larger than 10MB.

For PRIVACY_POLICY, TERMS_AND_CONDITIONS, CALL_TO_ACTION, and OPT_IN file categories, the following file types are supported:

jpg, jpeg, png, bmp, tiff, raw, pdf, rtf, xml, odt, docx, tml, txt

For MMS file category, the following file types are supported:

bmp, dib, gif, jpeg, jpg, m2a, m4a, m4b, m4p, m4r, m4v, mp1, mp2, mp3, mp4, mpa, oga, ogg, ogm, ogv, ogx, png, spx, txt, wav, webm

There can be a maximum of 5 files submitted for MMS and a maximum of 5 files for the other categories.

curl -i -X POST \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/uploadCampaignFiles:submit' \
  -H 'Content-Type: application/json' \
  -d '{
    "projectId": "0fc52975-636a-4700-8943-68759df5c9e1",
    "campaignInternalId": "01k4cxccbt519xa3ejty1r5jb4",
    "file": {
      "fileName": "TestText.txt",
      "fileContent": "VGhpcyBpcyBhIHRlc3QgdGV4dCBmaWxlLg==",
      "fileCategory": 5
    },
    "submitCampaign": false
  }'

Responses

A successful response.

Bodyapplication/json
statusstring

Indicates whether the file upload was successful or not.

Example: "success"
messagestring

A message providing details if the file upload was not successful. Will be an empty string if the upload was successful.

Response
application/json
{ "status": "success", "message": "string" }

Request

Returns the details of the specified campaign by its registration 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.

campaignRegistrationIdstringrequired

Campaign Registration Id returned by the create campaign API.

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

Responses

A successful response.

Bodyapplication/json
campaignIdstring<= 7 characters

Campaign ID returned by external partner. i.e. TCR Campaign Id

campaignNamestring<= 128 characters

Optional name to help track and view campaign.

campaignRegistrationIdstring<= 26 characters

Campaign Registration Id returned by the Create Campaign API

createDatestring(date-time)

Campaign Creation Date

modifiedDatestring(date-time)

Campaign Modified Date

createdBystring<= 20 characters

Represents who Created this Campaign

modifiedBystring<= 20 characters

Represents who was the Last to Modify this Campaign

autoRenewalboolean

Campaign subscription auto-renewal status.

billedDatestring(date-time)

Campaign recent billed date.

brandIdstring<= 8 characters

Alphanumeric identifier of the brand associated with this campaign.

verticalstring<= 20 characters

Business/industry segment of this campaign. Must be of defined valid types.

useCasestring<= 20 characters

Campaign useCase.

subUseCasesArray of strings

Campaign sub use-cases.

descriptionstring<= 4096 characters

Summary description of this campaign.

embeddedLinkboolean

Does message generated by the campaign include URL link in SMS?

embeddedPhoneboolean

Does message generated by the campaign include phone number in SMS?

affiliateMarketingboolean

Does message content controlled by affiliate marketing other than the brand?

numberPoolboolean

Indicates whether this campaign has been approved and configured as a numberpool campaign

ageGatedboolean

Age gated content in campaign.

directLendingboolean

is direct lending.

subscriberOptInboolean

Does campaign require subscriber to opt-in before SMS is sent to subscriber?

subscriberOptOutboolean

Does campaign support subscriber opt-out keyword(s)?

subscriberHelpboolean

Does campaign responds to help keyword(s)?

sample1string<= 1024 characters

Message sample. Some campaign tiers require 1 or more message samples.

sample2string<= 1024 characters

Message sample. Some campaign tiers require 2 or more message samples.

sample3string<= 1024 characters

Message sample. Some campaign tiers require 3 or more message samples.

sample4string<= 1024 characters

Message sample. Some campaign tiers require 4 or more message samples.

stopMessagestring<= 255 characters

Message that will be returned if a subscriber opts out of the campaign.

optInMessagestring<= 255 characters

Message that will be returned when a subscriber opts into a campaign.

helpMessagestring<= 255 characters

Help message of the campaign.

monthlyFeenumber(float)

Monthly Fee

setupFeenumber(float)

Initial Setup Fee

statusstring<= 32 characters

Campaign Status.

  • SINCH_REVIEW: Campaign submitted successfully and awaiting approval from Sinch.
  • SINCH_APPROVED: Campaign approved by Sinch.
  • SINCH_REJECTED: Campaign rejected by Sinch.
  • SUBMITTED: Campaign submitted successfully to TCR and awaiting approval from operators
  • APPROVED: Campaign has been approved by the operators and is ready to be activated by adding a number to it.
  • ACTIVE: Campaign is active and running
  • EXPIRED: Campaign is expired. Traffic cannot be sent, cannot be reactivated
  • REJECTED: Campaign was rejected by one of the operators
  • SUBMISSION_FAILED: Campaign submission failed
mnoMetadataobject(Map of Metadata Map of MNO metadata where key is the 'networkId' of the MNO and value is Metadata of the MNO)
mockboolean

Defines if campaign mocked or real one

lastActionStatusstring

Last Action Status.

  • CREATE_IN_PROGRESS: Creating campaign in TCR.
  • CREATE_SUCCESSFUL: Campaign created in TCR.
  • CREATE_FAILED: Campaign creation failed in TCR.
  • DELETE_IN_PROGRESS: Deleting campaign in TCR.
  • DELETE_SUCCESSFUL: Campaign deleted in TCR.
  • DELETE_FAILED: Campaign deletion failed in TCR.
optinKeywordsstring<= 255 characters

Subscriber opt-in keywords. Must be upper-case alphanumeric comma(,) separated keywords without space.

optoutKeywordsstring<= 255 characters

Subscriber opt-out keywords. Default value is 'STOP'. Must be upper-case alphanumeric comma(,) separated keywords without space.

helpKeywordsstring<= 255 characters

Subscriber help keywords. Default value is 'HELP'. Must be upper-case alphanumeric comma(,) separated keywords without space.

messageFlowstring<= 2048 characters

Message flow description.

nextRenewalOrExpirationDatestring

When the campaign would be due for its next renew/bill date.

Response
application/json
{ "campaignId": "string", "campaignName": "string", "campaignRegistrationId": "string", "createDate": "2019-08-24T14:15:22Z", "modifiedDate": "2019-08-24T14:15:22Z", "createdBy": "string", "modifiedBy": "string", "autoRenewal": true, "billedDate": "2019-08-24T14:15:22Z", "brandId": "string", "vertical": "string", "useCase": "string", "subUseCases": [ "string" ], "description": "string", "embeddedLink": true, "embeddedPhone": true, "affiliateMarketing": true, "numberPool": true, "ageGated": true, "directLending": true, "subscriberOptIn": true, "subscriberOptOut": true, "subscriberHelp": true, "sample1": "string", "sample2": "string", "sample3": "string", "sample4": "string", "stopMessage": "string", "optInMessage": "string", "helpMessage": "string", "monthlyFee": 0.1, "setupFee": 0.1, "status": "string", "mnoMetadata": { "property1": {}, "property2": {} }, "mock": true, "lastActionStatus": "string", "optinKeywords": "string", "optoutKeywords": "string", "helpKeywords": "string", "messageFlow": "string", "nextRenewalOrExpirationDate": "string" }

Get Campaign Details using the TCR Campaign ID

Request

Returns the specified campaign by its TCR Campaign 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
campaignRegistrationIdQuerystringrequired

Campaign Registration Id returned by the create campaign API.

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

Responses

A successful response.

Bodyapplication/json
campaignIdstring<= 7 characters

Campaign ID returned by external partner. i.e. TCR Campaign Id

campaignNamestring<= 128 characters

Optional name to help track and view campaign.

campaignRegistrationIdstring<= 26 characters

Campaign Registration Id returned by the Create Campaign API

createDatestring(date-time)

Campaign Creation Date

modifiedDatestring(date-time)

Campaign Modified Date

createdBystring<= 20 characters

Represents who Created this Campaign

modifiedBystring<= 20 characters

Represents who was the Last to Modify this Campaign

autoRenewalboolean

Campaign subscription auto-renewal status.

billedDatestring(date-time)

Campaign recent billed date.

brandIdstring<= 8 characters

Alphanumeric identifier of the brand associated with this campaign.

verticalstring<= 20 characters

Business/industry segment of this campaign. Must be of defined valid types.

useCasestring<= 20 characters

Campaign useCase.

subUseCasesArray of strings

Campaign sub use-cases.

descriptionstring<= 4096 characters

Summary description of this campaign.

embeddedLinkboolean

Does message generated by the campaign include URL link in SMS?

embeddedPhoneboolean

Does message generated by the campaign include phone number in SMS?

affiliateMarketingboolean

Does message content controlled by affiliate marketing other than the brand?

numberPoolboolean

Indicates whether this campaign has been approved and configured as a numberpool campaign

ageGatedboolean

Age gated content in campaign.

directLendingboolean

is direct lending.

subscriberOptInboolean

Does campaign require subscriber to opt-in before SMS is sent to subscriber?

subscriberOptOutboolean

Does campaign support subscriber opt-out keyword(s)?

subscriberHelpboolean

Does campaign responds to help keyword(s)?

sample1string<= 1024 characters

Message sample. Some campaign tiers require 1 or more message samples.

sample2string<= 1024 characters

Message sample. Some campaign tiers require 2 or more message samples.

sample3string<= 1024 characters

Message sample. Some campaign tiers require 3 or more message samples.

sample4string<= 1024 characters

Message sample. Some campaign tiers require 4 or more message samples.

stopMessagestring<= 255 characters

Message that will be returned if a subscriber opts out of the campaign.

optInMessagestring<= 255 characters

Message that will be returned when a subscriber opts into a campaign.

helpMessagestring<= 255 characters

Help message of the campaign.

monthlyFeenumber(float)

Monthly Fee

setupFeenumber(float)

Initial Setup Fee

statusstring<= 32 characters

Campaign Status.

  • SINCH_REVIEW: Campaign submitted successfully and awaiting approval from Sinch.
  • SINCH_APPROVED: Campaign approved by Sinch.
  • SINCH_REJECTED: Campaign rejected by Sinch.
  • SUBMITTED: Campaign submitted successfully to TCR and awaiting approval from operators
  • APPROVED: Campaign has been approved by the operators and is ready to be activated by adding a number to it.
  • ACTIVE: Campaign is active and running
  • EXPIRED: Campaign is expired. Traffic cannot be sent, cannot be reactivated
  • REJECTED: Campaign was rejected by one of the operators
  • SUBMISSION_FAILED: Campaign submission failed
mnoMetadataobject(Map of Metadata Map of MNO metadata where key is the 'networkId' of the MNO and value is Metadata of the MNO)
mockboolean

Defines if campaign mocked or real one

lastActionStatusstring

Last Action Status.

  • CREATE_IN_PROGRESS: Creating campaign in TCR.
  • CREATE_SUCCESSFUL: Campaign created in TCR.
  • CREATE_FAILED: Campaign creation failed in TCR.
  • DELETE_IN_PROGRESS: Deleting campaign in TCR.
  • DELETE_SUCCESSFUL: Campaign deleted in TCR.
  • DELETE_FAILED: Campaign deletion failed in TCR.
optinKeywordsstring<= 255 characters

Subscriber opt-in keywords. Must be upper-case alphanumeric comma(,) separated keywords without space.

optoutKeywordsstring<= 255 characters

Subscriber opt-out keywords. Default value is 'STOP'. Must be upper-case alphanumeric comma(,) separated keywords without space.

helpKeywordsstring<= 255 characters

Subscriber help keywords. Default value is 'HELP'. Must be upper-case alphanumeric comma(,) separated keywords without space.

messageFlowstring<= 2048 characters

Message flow description.

nextRenewalOrExpirationDatestring

When the campaign would be due for its next renew/bill date.

Response
application/json
{ "campaignId": "string", "campaignName": "string", "campaignRegistrationId": "string", "createDate": "2019-08-24T14:15:22Z", "modifiedDate": "2019-08-24T14:15:22Z", "createdBy": "string", "modifiedBy": "string", "autoRenewal": true, "billedDate": "2019-08-24T14:15:22Z", "brandId": "string", "vertical": "string", "useCase": "string", "subUseCases": [ "string" ], "description": "string", "embeddedLink": true, "embeddedPhone": true, "affiliateMarketing": true, "numberPool": true, "ageGated": true, "directLending": true, "subscriberOptIn": true, "subscriberOptOut": true, "subscriberHelp": true, "sample1": "string", "sample2": "string", "sample3": "string", "sample4": "string", "stopMessage": "string", "optInMessage": "string", "helpMessage": "string", "monthlyFee": 0.1, "setupFee": 0.1, "status": "string", "mnoMetadata": { "property1": {}, "property2": {} }, "mock": true, "lastActionStatus": "string", "optinKeywords": "string", "optoutKeywords": "string", "helpKeywords": "string", "messageFlow": "string", "nextRenewalOrExpirationDate": "string" }

Request

Before submitting a campaign, this API will provide some important feedback about how the resulting campaign will be treated. You can verify that the campaign will be supported by all operators, the AT&T message class and TPM, the T-Mobile brand daily bucket that will be applied and more.

It is suggested to validate that the operator restrictions will meet your needs prior to submitting the campaign request. Brand revettings do not automatically adjust operator restrictions, and in some cases a new campaign may have to be resubmitted to receive the adjusted MNO values.

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

useCasestring

The desired Use Case.

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

Responses

A successful response.

Bodyapplication/json
useCasestring

Desired useCase.

monthlyFeenumber(float)

Monthly registration fee for campaign. If auto-renew is selected on a campaign, this recurring fee will be charged monthly starting three months after the campaign is submitted.

setupFeenumber(float)

Initial setup fee, charged immediately once the campaign has been approved by Sinch and submitted to partners. This fee covers the first three months of campaign use, and will be charged whether or not the autoRenewal parameter is set on the campaign.

minSubUseCasesnumber

Minimum number of sub use-cases required when registering a campaign with the desired use case.

maxSubUseCasesnumber

Maximum number of sub use-cases required when registering a campaign with the desired use case.

mnoMetadataobject(Map of Metadata Map of MNO metadata where key is the 'networkId' of the MNO and value is Metadata of the MNO)
Response
application/json
{ "useCase": "string", "monthlyFee": 0.1, "setupFee": 0.1, "minSubUseCases": 0, "maxSubUseCases": 0, "mnoMetadata": { "property1": {}, "property2": {} } }

Request

Deactivate a campaign by removing the campaign from TCR and OSR. A campaign cannot be restored once it is deactivated. New campaign status is EXPIRED.

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.

campaignRegistrationIdstringrequired

Campaign Registration Id returned by the create campaign API.

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

Responses

A successful response.

Bodyapplication/json
object
Response
application/json
{}

Request

Lists all campaign 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.

Query
statusArray of strings
mockboolean
useCasestring

The desired Use Case.

brandstring
pageSizeinteger(int32)
pageTokenstring
orderBystring
curl -i -X GET \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/campaignRegistrations?status=string&mock=true&useCase=string&brand=string&pageSize=0&pageToken=string&orderBy=string'

Responses

A successful response.

Bodyapplication/json
campaignRegistrationsArray of objects(Campaign Response)
nextPageTokenstring
totalSizeinteger(int32)
Response
application/json
{ "campaignRegistrations": [ {} ], "nextPageToken": "string", "totalSize": 0 }

Request

Returns feedback information for campaign registrations that were rejected. Campaign registrations could be rejected due to TCR error or any other internal error.

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.

campaignRegistrationIdstringrequired

Campaign Registration Id returned by the create campaign API.

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

Responses

A successful response.

Bodyapplication/json
campaignRegistrationIdstring
campaignIdstring
statusstring
tcrErrorResponseArray of objects(v1alpha1TcrErrorResponse)
internalErrorResponseArray of objects(v1alpha1InternalErrorResponse)
Response
application/json
{ "campaignRegistrationId": "string", "campaignId": "string", "status": "string", "tcrErrorResponse": [ {} ], "internalErrorResponse": [ {} ] }

Request

"Resubmit a campaign to:

  1. Backfill missing MNO campaign operation records for one or more networks.
  2. Retroactively update the campaign to reflect newly assigned message class.

Please note that running this endpoint could potentially downgrade campaign business terms.

After hitting this endpoint, call the Get Campaign Registration API to to check lastActionStatus:

  1. If lastActionStatus is RESUBMIT_IN_PROGRESS, mno metadata not updated, poll again.
  2. If lastActionStatus is RESUBMIT_SUCCESSFUL, get updated MNO metadata.
  3. If lastActionStatus is RESUBMIT_FAILED, call the Campaign Feedback API to know the reason for failure.
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.

campaignRegistrationIdstringrequired

Campaign Registration Id returned by the create campaign API.

Bodyapplication/json

List of MNOs (ATT, TMO, USC, VZW) to resubmit a campaign in TCR. Default value for empty list: ALL, i.e. all MNOs.

mnosArray of strings
curl -i -X PUT \
  -u <username>:<password> \
  'https://us10dlc.numbers.api.sinch.com/v1/projects/{projectId}/campaignRegistrations/{campaignRegistrationId}/resubmit' \
  -H 'Content-Type: application/json' \
  -d '{
    "mnos": [
      "string"
    ]
  }'

Responses

A successful response.

Bodyapplication/json
object
Response
application/json
{}

TFN Verification

Create or look up Verifications for Toll-Free Numbers

Operations