Skip to content

Sinch Sender ID Registrations API (1.0.0)

This API describes the set of endpoints available to get each market requirements and create registration for sender IDs.

The list of endpoints allows to create, update and delete a registration and also get the current state. For each market, customers can check the different requirements depending on the new sender ID scope, and also download templates to fill in for the registrations.

Interested in this API? Please, reach out to your Account Manager for more info.

Download OpenAPI description
Overview
Languages
Servers
Production server
https://senderid.registrations.api.sinch.com
Staging server
https://senderid.numbers-registration.staging.sinch.com

Callback configuration

You can set up callback URLs to receive event notifications when your registration status is updated. When delivering events the order is not guaranteed (for example, a failed event scheduled for retry will not block other events that were queued). The client's callback handler must implement the state machine that can decide what to do with unexpected events, for example, "old" events or invalid state transitions. In these cases the handler could use the API to GET the latest state for the resource. The callback handler is expected to "ingest" the event and respond with 200 OK. The domain-specific business logic and processes should be executed outside of the callback request, as internal asynchronous jobs. An HMAC encrypted secret is used for hashing the payload and sending the hashed String via the X-Sinch-Signature header - that you can use to validate that an incoming request is secure. Hmac secret value can be checked with GET endpoint, and it can be updated with PUT endpoint

Operations

Markets

Operations related to get market availability and different options based on usage

Operations

Policies

Operation related to get policy required information, as fields, validations or attachments

Operations

Registrations

Submit, update, list and get registration info.

Operations

List registrations

Request

The endpoint receives as path param project id. Supports optional query parameters to narrow the results and cursor based pagination.

Security
OAuth2(Required scopes:
read
)
Path
projectIdstringrequired

Customer's project id

Query
registrationStatestring

Status of the registration.

Enum ValueDescription
DRAFT

Registration not submitted by the customer. This functionality is not available through Public API, but it is possible to retrieve a registration created in the Sinch Customer Dashboard under the same project Id.

IN_QUEUE

Registration has been successfully submitted, but it is waiting for support.

IN_PROGRESS

Registration is being processing by Sinch.

APPROVED

Registration has been approved and sender ID has been provisioned for the customer.

REJECTED

Registration has been rejected. A comment should be present in the logs with the reason.

PENDING

Registration must be updated by the customer. Please check the registration logs to understand the reason.

ON_HOLD

Registration is on hold for any reason. Please check the comments in the logs.

PENDING_APPROVAL

For those policies with MANUAL price, Account Managers must approve the operation. Until registration has the approval it will stay in this state.

PENDING_ATTACHMENTS

Registration has been submitted, but at least one mandatory attachment must be provided.

Example: registrationState=IN_QUEUE
tagsArray of strings

User tags used for the registration. Tag have to start from

Example: tags=#tag1&tags=#tag2
marketCodestring^[A-Z]{2}$

Filter by ISO market code (ex. 'IT', 'AU', 'KW', etc.)

Example: marketCode=MK
createDateFromstring

Date of registration creation, ISO 8601 format. Returns registrations created after given date.

Example: createDateFrom=2024-11-03
createDateTostring

Date of registration creation, ISO 8601 format. Returns registrations created before given date.

Example: createDateTo=2024-11-03
updateDateFromstring

Date of registration update, ISO 8601 format. Returns registrations update after given date.

Example: updateDateFrom=2024-11-03
updateDateTostring

Date of registration update, ISO 8601 format. Returns registrations updated before given date.

Example: updateDateTo=2024-11-03
senderIdstring

Sender ID value.

Example: senderId=sender ID
orderBystring

Ordering of the results: field name with an optional order separated by a comma. Fields that support ordering are 'id', 'status', 'senderId', 'createDate', 'updateDate' with possible ordering 'desc' or 'asc'

Example: orderBy=senderId,asc
pageSizeinteger(int32)

Size of the page to be returned.

Example: pageSize=100
pageTokenstring

Page token to request subsequent pages when using pagination. This should be the value generated by a system in a previous list request.

registrationTypestring(enum)

Registration type for market used in registration is for. There are different markets available depending on this type

Default "ALPHANUMERIC_SENDER_ID"
Enum ValueDescription
ALPHANUMERIC_SENDER_ID

Alpha sender IDs

LONG_NUMBER

Long Numbers for SMS

SHORT_CODE

Short Codes for SMS

RCS_AGENT

RCS agent

curl -i -X GET \
  'https://senderid.registrations.api.sinch.com/v1/projects/{projectId}/registrations?registrationState=IN_QUEUE&tags=%23tag1%2C%23tag2&marketCode=MK&createDateFrom=2024-11-03&createDateTo=2024-11-03&updateDateFrom=2024-11-03&updateDateTo=2024-11-03&senderId=sender+ID&orderBy=senderId%2Casc&pageSize=100&pageToken=string&registrationType=ALPHANUMERIC_SENDER_ID' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
nextPageTokenstring

Page token that can be used to retrieve next page of registrations if they exist. Will be empty if next page does not exist

registrationsArray of objects(GetRegistrationResponse)

List of registrations

totalSizeinteger(int32)

Total count of registrations matching provided search criteria

Response
application/json
{ "nextPageToken": "string", "registrations": [ {} ], "totalSize": 0 }

Submit registration

Request

The endpoint creates a registration with specified policyId and registration's Data. The registration will be validated against the selected policy before submission. After this endpoint gets a 200, the registration will be in IN_QUEUE state, and will be editable. For those registrations that need attachments, they must be provided in a separated endpoint.

Security
OAuth2(Required scopes:
write
)
Path
projectIdstringrequired

Customer's project id

Bodyapplication/json
callbackUrlstring

Webhook URL to specify an endpoint for delivery of notifications about registration updates

Example: "senderid.registrations.api.sinch.com"
notificationContactsArray of strings

Email addresses that will be notified of any status changes of the registration.

Example: ["jane.doe@example.com","john.doe@example.com"]
policyIdstring

Policy id that applies the registration.

Example: "d1c7ccbf-919d-462f-8587-dec95a1b11ee"
requestDetailsArray of objects(RequestDetails)

Details of the sender IDs to be registered. Details depend on the specific market requirements defined in the policy.

tagsArray of strings

User tags used for the registration. Tag have to start from '#' and contains only alphanumerics and dashes.

Example: ["#myTag1","#myTag2"]
servicePlanIdstring

Service plan ID or System ID that the registration applies to. When included, the sender id will be configured linked to the service/system plan.

Example: "a23dccbf-919d-462f-8587-dec95a1b44de"
curl -i -X POST \
  'https://senderid.registrations.api.sinch.com/v1/projects/{projectId}/registrations' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "callbackUrl": "senderid.registrations.api.sinch.com",
    "notificationContacts": [
      "jane.doe@example.com",
      "john.doe@example.com"
    ],
    "policyId": "d1c7ccbf-919d-462f-8587-dec95a1b11ee",
    "requestDetails": [
      {
        "additionalDetails": [
          {
            "email": "email@mycompany.com"
          },
          {
            "companyName": "My Company Name",
            "website": "https://www.mycompany.com"
          }
        ],
        "senderIdDetails": [
          {
            "sender": "a sender value"
          }
        ]
      }
    ],
    "tags": [
      "#myTag1",
      "#myTag2"
    ],
    "servicePlanId": "a23dccbf-919d-462f-8587-dec95a1b44de"
  }'

Responses

OK

Bodyapplication/json
attachmentsArray of objects(Attachment)

Files attached to this registration

callbackUrlstring

Webhook URL to specify an endpoint for delivery of notifications about registration updates

Example: "senderid.registrations.api.sinch.com"
createTimestring

Creation time of the request. ISO date time format in UTC without timezone offset.

Example: "2021-11-03T14:30:03"
etaDatestring

Expected date of the registration approval. ISO date format.

Example: "2024-11-03"
idstring

Unique registration identifier.

Example: "d1c7ccbf-919d-462f-8587-dec95a1b11ee"
logsArray of objects(LogEntry)

Detailed history of the status changes this registration went through

notificationContactsArray of strings

Email addresses that will be notified of any status changes of the registration.

Example: ["jane.doe@example.com","john.doe@example.com"]
ownerstring

Display name of the user that created the registration.

Example: "Jane Doe"
policyIdstring

Unique identifier of the policy for this registration.

Example: "d1c7ccbf-919d-462f-8587-dec95a1b11ee"
priceobject(Pricing)
registrationTypestring(enum)

Specify the sender ID type

Enum ValueDescription
ALPHANUMERIC_SENDER_ID

Alpha sender IDs

LONG_NUMBER

Long Numbers for SMS

SHORT_CODE

Short Codes for SMS

RCS_AGENT

RCS agent

Example: "ALPHANUMERIC_SENDER_ID"
requestDetailsArray of objects(RequestDetails)

Details of the sender IDs to be registered. Details depend on the specific market requirements defined in the policy.

senderIdsArray of strings

List of sender IDs associated with this registration. If sender IDs are not provided in the request, they will be assigned after registration approval.

Example: ["senderId1","senderId2"]
statusstring

Status of the registration.

Enum ValueDescription
DRAFT

Registration not submitted by the customer. This functionality is not available through Public API, but it is possible to retrieve a registration created in the Sinch Customer Dashboard under the same project Id.

IN_QUEUE

Registration has been successfully submitted, but it is waiting for support.

IN_PROGRESS

Registration is being processing by Sinch.

APPROVED

Registration has been approved and sender ID has been provisioned for the customer.

REJECTED

Registration has been rejected. A comment should be present in the logs with the reason.

PENDING

Registration must be updated by the customer. Please check the registration logs to understand the reason.

ON_HOLD

Registration is on hold for any reason. Please check the comments in the logs.

PENDING_APPROVAL

For those policies with MANUAL price, Account Managers must approve the operation. Until registration has the approval it will stay in this state.

PENDING_ATTACHMENTS

Registration has been submitted, but at least one mandatory attachment must be provided.

Example: "IN_QUEUE"
tagsArray of strings

User tags used for the registration. Tag have to start from '#' and contains only alphanumerics and dashes.

Example: ["#myTag1","#myTag2"]
updateTimestring

Update time of the request. ISO date time format in UTC without timezone offset.

Example: "2021-11-03T14:30:03"
servicePlanIdstring

Service plan ID or System ID that the registration applies to. When included, the sender id will be configured linked to the service/system plan.

Example: "a23dccbf-919d-462f-8587-dec95a1b44de"
Response
application/json
{ "attachments": [ {} ], "callbackUrl": "senderid.registrations.api.sinch.com", "createTime": "2021-11-03T14:30:03", "etaDate": "2024-11-03", "id": "d1c7ccbf-919d-462f-8587-dec95a1b11ee", "logs": [ {} ], "notificationContacts": [ "jane.doe@example.com", "john.doe@example.com" ], "owner": "Jane Doe", "policyId": "d1c7ccbf-919d-462f-8587-dec95a1b11ee", "price": { "currency": "USD", "frequency": 1, "mode": "SUBSCRIBED", "recurrentFeeAmount": "2", "setupFeeAmount": "5" }, "registrationType": "ALPHANUMERIC_SENDER_ID", "requestDetails": [ {} ], "senderIds": [ "senderId1", "senderId2" ], "status": "IN_QUEUE", "tags": [ "#myTag1", "#myTag2" ], "updateTime": "2021-11-03T14:30:03", "servicePlanId": "a23dccbf-919d-462f-8587-dec95a1b44de" }

Callbacks

Event notification
post

Delete registration

Request

The endpoint receives as path param project id and registration id. If the registration exists under the specified project id and the registration is in DRAFT, IN QUEUE or PENDING status, the registration will be deleted.

Security
OAuth2(Required scopes:
write
)
Path
projectIdstringrequired

Customer's project id

registrationIdstringrequired

Id of the registration to be deleted

curl -i -X DELETE \
  'https://senderid.registrations.api.sinch.com/v1/projects/{projectId}/registrations/{registrationId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Body
Response
No content

Get registration

Request

The endpoint receives as path param project id and registration id. If the registration exists under the specified project id, the details of the registration are returned.

Security
OAuth2(Required scopes:
read
)
Path
projectIdstringrequired

Customer's project id

registrationIdstringrequired

Id of the registration

curl -i -X GET \
  'https://senderid.registrations.api.sinch.com/v1/projects/{projectId}/registrations/{registrationId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
attachmentsArray of objects(Attachment)

Files attached to this registration

callbackUrlstring

Webhook URL to specify an endpoint for delivery of notifications about registration updates

Example: "senderid.registrations.api.sinch.com"
createTimestring

Creation time of the request. ISO date time format in UTC without timezone offset.

Example: "2021-11-03T14:30:03"
etaDatestring

Expected date of the registration approval. ISO date format.

Example: "2024-11-03"
idstring

Unique registration identifier.

Example: "d1c7ccbf-919d-462f-8587-dec95a1b11ee"
logsArray of objects(LogEntry)

Detailed history of the status changes this registration went through

notificationContactsArray of strings

Email addresses that will be notified of any status changes of the registration.

Example: ["jane.doe@example.com","john.doe@example.com"]
ownerstring

Display name of the user that created the registration.

Example: "Jane Doe"
policyIdstring

Unique identifier of the policy for this registration.

Example: "d1c7ccbf-919d-462f-8587-dec95a1b11ee"
priceobject(Pricing)
registrationTypestring(enum)

Specify the sender ID type

Enum ValueDescription
ALPHANUMERIC_SENDER_ID

Alpha sender IDs

LONG_NUMBER

Long Numbers for SMS

SHORT_CODE

Short Codes for SMS

RCS_AGENT

RCS agent

Example: "ALPHANUMERIC_SENDER_ID"
requestDetailsArray of objects(RequestDetails)

Details of the sender IDs to be registered. Details depend on the specific market requirements defined in the policy.

senderIdsArray of strings

List of sender IDs associated with this registration. If sender IDs are not provided in the request, they will be assigned after registration approval.

Example: ["senderId1","senderId2"]
statusstring

Status of the registration.

Enum ValueDescription
DRAFT

Registration not submitted by the customer. This functionality is not available through Public API, but it is possible to retrieve a registration created in the Sinch Customer Dashboard under the same project Id.

IN_QUEUE

Registration has been successfully submitted, but it is waiting for support.

IN_PROGRESS

Registration is being processing by Sinch.

APPROVED

Registration has been approved and sender ID has been provisioned for the customer.

REJECTED

Registration has been rejected. A comment should be present in the logs with the reason.

PENDING

Registration must be updated by the customer. Please check the registration logs to understand the reason.

ON_HOLD

Registration is on hold for any reason. Please check the comments in the logs.

PENDING_APPROVAL

For those policies with MANUAL price, Account Managers must approve the operation. Until registration has the approval it will stay in this state.

PENDING_ATTACHMENTS

Registration has been submitted, but at least one mandatory attachment must be provided.

Example: "IN_QUEUE"
tagsArray of strings

User tags used for the registration. Tag have to start from '#' and contains only alphanumerics and dashes.

Example: ["#myTag1","#myTag2"]
updateTimestring

Update time of the request. ISO date time format in UTC without timezone offset.

Example: "2021-11-03T14:30:03"
servicePlanIdstring

Service plan ID or System ID that the registration applies to. When included, the sender id will be configured linked to the service/system plan.

Example: "a23dccbf-919d-462f-8587-dec95a1b44de"
Response
application/json
{ "attachments": [ {} ], "callbackUrl": "senderid.registrations.api.sinch.com", "createTime": "2021-11-03T14:30:03", "etaDate": "2024-11-03", "id": "d1c7ccbf-919d-462f-8587-dec95a1b11ee", "logs": [ {} ], "notificationContacts": [ "jane.doe@example.com", "john.doe@example.com" ], "owner": "Jane Doe", "policyId": "d1c7ccbf-919d-462f-8587-dec95a1b11ee", "price": { "currency": "USD", "frequency": 1, "mode": "SUBSCRIBED", "recurrentFeeAmount": "2", "setupFeeAmount": "5" }, "registrationType": "ALPHANUMERIC_SENDER_ID", "requestDetails": [ {} ], "senderIds": [ "senderId1", "senderId2" ], "status": "IN_QUEUE", "tags": [ "#myTag1", "#myTag2" ], "updateTime": "2021-11-03T14:30:03", "servicePlanId": "a23dccbf-919d-462f-8587-dec95a1b44de" }

Update a registration

Request

The endpoint updates the registration with specified ID

Security
OAuth2(Required scopes:
write
)
Path
projectIdstringrequired

Customer's project id

registrationIdstringrequired

Id of the registration to be updated

Bodyapplication/json
callbackUrlstring

Webhook URL to specify an endpoint for delivery of notifications about registration updates

Example: "senderid.registrations.api.sinch.com"
notificationContactsArray of strings

Email addresses that will be notified of any status changes of the registration.

Example: ["jane.doe@example.com","john.doe@example.com"]
requestDetailsArray of objects(RequestDetails)

Details of the sender IDs to be registered. Details depend on the specific market requirements defined in the policy.

tagsArray of strings

User tags used for the registration. Tag have to start from '#' and contains only alphanumerics and dashes.

Example: ["#myTag1","#myTag2"]
servicePlanIdstring

Service plan ID or System ID that the registration applies to. When included, the sender id will be configured linked to the service/system plan.

Example: "a23dccbf-919d-462f-8587-dec95a1b44de"
curl -i -X PUT \
  'https://senderid.registrations.api.sinch.com/v1/projects/{projectId}/registrations/{registrationId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "callbackUrl": "senderid.registrations.api.sinch.com",
    "notificationContacts": [
      "jane.doe@example.com",
      "john.doe@example.com"
    ],
    "requestDetails": [
      {
        "additionalDetails": [
          {
            "email": "email@mycompany.com"
          },
          {
            "companyName": "My Company Name",
            "website": "https://www.mycompany.com"
          }
        ],
        "senderIdDetails": [
          {
            "sender": "a sender value"
          }
        ]
      }
    ],
    "tags": [
      "#myTag1",
      "#myTag2"
    ],
    "servicePlanId": "a23dccbf-919d-462f-8587-dec95a1b44de"
  }'

Responses

OK

Bodyapplication/json
attachmentsArray of objects(Attachment)

Files attached to this registration

callbackUrlstring

Webhook URL to specify an endpoint for delivery of notifications about registration updates

Example: "senderid.registrations.api.sinch.com"
createTimestring

Creation time of the request. ISO date time format in UTC without timezone offset.

Example: "2021-11-03T14:30:03"
etaDatestring

Expected date of the registration approval. ISO date format.

Example: "2024-11-03"
idstring

Unique registration identifier.

Example: "d1c7ccbf-919d-462f-8587-dec95a1b11ee"
logsArray of objects(LogEntry)

Detailed history of the status changes this registration went through

notificationContactsArray of strings

Email addresses that will be notified of any status changes of the registration.

Example: ["jane.doe@example.com","john.doe@example.com"]
ownerstring

Display name of the user that created the registration.

Example: "Jane Doe"
policyIdstring

Unique identifier of the policy for this registration.

Example: "d1c7ccbf-919d-462f-8587-dec95a1b11ee"
priceobject(Pricing)
registrationTypestring(enum)

Specify the sender ID type

Enum ValueDescription
ALPHANUMERIC_SENDER_ID

Alpha sender IDs

LONG_NUMBER

Long Numbers for SMS

SHORT_CODE

Short Codes for SMS

RCS_AGENT

RCS agent

Example: "ALPHANUMERIC_SENDER_ID"
requestDetailsArray of objects(RequestDetails)

Details of the sender IDs to be registered. Details depend on the specific market requirements defined in the policy.

senderIdsArray of strings

List of sender IDs associated with this registration. If sender IDs are not provided in the request, they will be assigned after registration approval.

Example: ["senderId1","senderId2"]
statusstring

Status of the registration.

Enum ValueDescription
DRAFT

Registration not submitted by the customer. This functionality is not available through Public API, but it is possible to retrieve a registration created in the Sinch Customer Dashboard under the same project Id.

IN_QUEUE

Registration has been successfully submitted, but it is waiting for support.

IN_PROGRESS

Registration is being processing by Sinch.

APPROVED

Registration has been approved and sender ID has been provisioned for the customer.

REJECTED

Registration has been rejected. A comment should be present in the logs with the reason.

PENDING

Registration must be updated by the customer. Please check the registration logs to understand the reason.

ON_HOLD

Registration is on hold for any reason. Please check the comments in the logs.

PENDING_APPROVAL

For those policies with MANUAL price, Account Managers must approve the operation. Until registration has the approval it will stay in this state.

PENDING_ATTACHMENTS

Registration has been submitted, but at least one mandatory attachment must be provided.

Example: "IN_QUEUE"
tagsArray of strings

User tags used for the registration. Tag have to start from '#' and contains only alphanumerics and dashes.

Example: ["#myTag1","#myTag2"]
updateTimestring

Update time of the request. ISO date time format in UTC without timezone offset.

Example: "2021-11-03T14:30:03"
servicePlanIdstring

Service plan ID or System ID that the registration applies to. When included, the sender id will be configured linked to the service/system plan.

Example: "a23dccbf-919d-462f-8587-dec95a1b44de"
Response
application/json
{ "attachments": [ {} ], "callbackUrl": "senderid.registrations.api.sinch.com", "createTime": "2021-11-03T14:30:03", "etaDate": "2024-11-03", "id": "d1c7ccbf-919d-462f-8587-dec95a1b11ee", "logs": [ {} ], "notificationContacts": [ "jane.doe@example.com", "john.doe@example.com" ], "owner": "Jane Doe", "policyId": "d1c7ccbf-919d-462f-8587-dec95a1b11ee", "price": { "currency": "USD", "frequency": 1, "mode": "SUBSCRIBED", "recurrentFeeAmount": "2", "setupFeeAmount": "5" }, "registrationType": "ALPHANUMERIC_SENDER_ID", "requestDetails": [ {} ], "senderIds": [ "senderId1", "senderId2" ], "status": "IN_QUEUE", "tags": [ "#myTag1", "#myTag2" ], "updateTime": "2021-11-03T14:30:03", "servicePlanId": "a23dccbf-919d-462f-8587-dec95a1b44de" }

Download previous attachment

Request

Download attachments previously added to the registration.

Security
OAuth2(Required scopes:
read
)
Path
projectIdstringrequired

Customer's project id

Example: eeew32344324edewe2e3
registrationIdstringrequired

Registration id requested

Example: 234235425jhl21132424lf
attachmentIdstringrequired

Attachment definition id requested

Example: 324234762423034240
curl -i -X GET \
  https://senderid.registrations.api.sinch.com/v1/projects/eeew32344324edewe2e3/registrations/234235425jhl21132424lf/attachments/324234762423034240 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Request Successful with binary file returned in octet stream

Bodyapplication/octet-stream
string(binary)
Response
No content

Upload attachment

Request

Through this endpoint, attachments can be added to registrations. The required attachments for each registration can be retrieved from the get policy endpoint.

Security
OAuth2(Required scopes:
write
)
Path
projectIdstringrequired

Customer's project id

Example: eeew32344324edewe2e3
registrationIdstringrequired

Registration id requested

Example: 234235425jhl21132424lf
attachmentIdstringrequired

Attachment definition id requested

Example: 324234762423034240
Bodymultipart/form-data

File content body

string(binary)
curl -i -X POST \
  https://senderid.registrations.api.sinch.com/v1/projects/eeew32344324edewe2e3/registrations/234235425jhl21132424lf/attachments/324234762423034240 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: multipart/form-data' \
  -d string

Responses

Document uploaded successfully

Response
No content