openapi: 3.0.1 info: title: Registration description: |- Service for creating and listing US 10DLC and TFN brand and campaign registrations. 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

Tollfree number registration
TFN registration is very similar to 10DLC registration, with a few key differences:
TFN Registration steps
Client submits tfn brand registrationtfnBrandRegistrationsSinch
Client gets back brandRegistrationId{brandRegistrationId}Sinch
Client polls using brandRegistrationIdtfnBrandRegistrations/{brandRegistrationId}Sinch
Client gets status of brand{brandRegistrationStatus}Sinch
Client submits tfn campaign registrationtfnCampaignRegistration:submitSinch
Client gets back campaignRegistrationId{campaignRegistrationId}Sinch
Client polls using campaignRegistrationIdtfnCampaignRegistrations/{campaignRegistrationId}Sinch
Client gets back status of campaign{status}Sinch

contact: name: Support url: https://www.sinch.com email: Support@sinch.com version: '1.0' license: name: MIT url: https://www.sinch.com/toc servers: - url: https://us10dlc.numbers.api.sinch.com description: HTTP 10DLC API Server (Default(US)) security: - BasicAuth: [] - OAuth2: [] tags: - name: Brand Registration description: Create or look up brand registration for 10DLC virtual numbers - name: Campaign Registration description: Create or look up campaign registration for 10DLC virtual numbers - name: TFN Brand Registration description: Create or look up Toll Free Number brand registrations. paths: /v1alpha1/projects/{projectId}/campaignRegistrations:submit: post: tags: - Campaign Registration summary: Create new Campaign in TCR description: 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. operationId: CampaignRegistrationExternalService_CreateTcrCampaign parameters: - $ref: "#/components/parameters/projectId" requestBody: content: application/json: schema: $ref: '#/components/schemas/v1alpha1CreateTcrCampaignRequest' required: true responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1CreateTcrCampaignResponse' "400": description: "INVALID_ARGUMENT: If the input parameters are not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: useCase must not be blank status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: useCase description: must not be blank "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 500 message: Error while retrieving account mapped to the given project id. status: INTERNAL details: - type: ResourceInfo resourceType: Project resourceName: ec9f3e99-f7b1-474d-9dbd-ba3cef667d6e owner: "" description: Error while retrieving account mapped to the given project id. x-codegen-request-body-name: body /v1alpha1/projects/{projectId}/campaignRegistrations/{campaignRegistrationId}: get: tags: - Campaign Registration summary: Get Campaign Details description: Returns the details of the specified campaign by its registration ID. operationId: CampaignRegistrationExternalService_GetCampaign parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/campaignRegistrationId" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1CampaignResponse' "400": description: "INVALID_ARGUMENT: If the input parameters are not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: Invalid campaign_registration_id status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: campaign_registration_id description: invalid value "404": description: The campaign could not be found content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 404 message: Campaign not found status: NOT_FOUND details: - type: ResourceInfo resourceType: Campaign resourceName: 01frjdjhq2mnps0srvbt9wpvek owner: "" description: not found "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 500 message: Error while retrieving campaign details. status: INTERNAL details: - type: ResourceInfo resourceType: Campaign resourceName: 01frjdjhq2mnps0srvbt9wpvek owner: "" description: Error while retrieving campaign details. /v1alpha1/projects/{projectId}/campaignRegistrations:fetchByTcrCampaignId: get: tags: - Campaign Registration summary: Get Campaign Details using the TCR Campaign ID description: Returns the specified campaign by its TCR Campaign ID. operationId: CampaignRegistrationExternalService_GetCampaignByTcrCampaignId parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/campaignRegistrationIdQuery" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1CampaignResponse' "400": description: "INVALID_ARGUMENT: If the input parameters are not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: Invalid tcr_campaign_id status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: tcr_campaign_id description: invalid value "404": description: The campaign could not be found content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 404 message: Campaign not found status: NOT_FOUND details: - type: ResourceInfo resourceType: Campaign resourceName: CTF4STM owner: "" description: not found "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 500 message: Error while retrieving campaign details. status: INTERNAL details: - type: ResourceInfo resourceType: Campaign resourceName: CTF4STM owner: "" description: Error while retrieving campaign details. /v1alpha1/projects/{projectId}/campaignRegistrations:qualify: get: tags: - Campaign Registration summary: Qualify Brand by Use Case description: |- 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. operationId: CampaignRegistrationExternalService_QualifyBrandByUseCase parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/brandId" - $ref: "#/components/parameters/useCase" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1QualifyBrandByUseCaseResponse' "400": description: Invalid Brand ID content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: Invalid brand_id. It must have upper-case alphanumeric characters with prefix letter 'B' and max length of 8 characters status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: brand_id description: "invalid value, it must have upper-case alphanumeric characters with prefix letter 'B' and max length of 8 characters" "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 500 message: Brand not found status: INTERNAL details: - type: ResourceInfo resourceType: QualifyBrandByUseCaseResponse resourceName: "" owner: "" description: Brand not found # /v1alpha1/projects/{projectId}/campaignRegistrations/{campaignId}/notes: # post: # tags: # - Campaign Registration # summary: Not yet implemented. Planned API to assist in campaign registration # feedback between customer and Sinch # description: |- # Not yet implemented. # Add notes to a campaign in cases where additional information is needed to support campaign registration. # operationId: CampaignRegistrationExternalService_CreateCampaignNotes # parameters: # - name: projectId # in: path # description: Your project id can be found if you log into your account on # dashboard.sinch.com. # required: true # schema: # type: string # - name: campaignId # in: path # description: The campaign ID given by TCR. # required: true # schema: # type: string # responses: # "200": # description: A successful response. # content: # application/json: # schema: # $ref: '#/components/schemas/v1alpha1RequestInfoResponse' /v1alpha1/projects/{projectId}/campaignRegistration/{campaignRegistrationId}: delete: tags: - Campaign Registration summary: Delete Campaign by campaignId description: 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. operationId: CampaignRegistrationExternalService_DeleteCampaign parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/campaignRegistrationId" responses: "200": description: A successful response. content: application/json: schema: type: object "400": description: "INVALID_ARGUMENT: If the input parameters are not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: Invalid campaign_id status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: tcr_campaign_id description: invalid value "404": description: The campaign could not be found content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 404 message: Campaign not found status: NOT_FOUND details: - type: ResourceInfo resourceType: Campaign resourceName: CTF4STM owner: "" description: not found "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 500 message: Error while retrieving campaign details. status: INTERNAL details: - type: ResourceInfo resourceType: Campaign resourceName: CTF4STM owner: "" description: Error while retrieving campaign details. /v1alpha1/projects/{projectId}/campaignRegistrations: get: tags: - Campaign Registration summary: List Campaign Registrations description: Lists all campaign registrations per project. operationId: CampaignRegistrationService_ListCampaignRegistrationRequest parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/status" - $ref: "#/components/parameters/mock" - $ref: "#/components/parameters/useCase" - $ref: "#/components/parameters/brand" - $ref: "#/components/parameters/pageSize" - $ref: "#/components/parameters/pageToken" - $ref: "#/components/parameters/orderBy" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1ListCampaignRegistrationResponse' "400": description: "If the page_token, number_pattern or order_by is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: order_by description: Invalid order_by XXX "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 500 message: Error while getting campaign registration. status: INTERNAL /v1alpha1/projects/{projectId}/campaignRegistrations/{campaignRegistrationId}/feedback: get: tags: - Campaign Registration summary: Campaign Registration Feedback description: |- Returns feedback information for campaign registrations that were rejected. Campaign registrations could be rejected due to TCR error or any other internal error. operationId: CampaignRegistrationService_GetCampaignRegistrationFeedback parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/campaignRegistrationId" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1GetCampaignRegistrationFeedbackResponse' "400": description: "INVALID_ARGUMENT: If the input parameters are not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: Invalid projectId status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: projectId description: invalid value "404": description: The campaign could not be found or if the requested campaign does not belong to the given project content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 404 message: Campaign not found status: NOT_FOUND "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 500 message: Error while getting campaign feedback. status: INTERNAL /v1alpha1/projects/{projectId}/campaignRegistrations/{campaignRegistrationId}/resubmit: put: tags: - Campaign Registration summary: Campaign Registration Resubmit description: |- "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. operationId: CampaignRegistrationService_ResubmitCampaignRegistration parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/campaignRegistrationId" requestBody: description: "List of MNOs (ATT, TMO, USC, VZW) to resubmit a campaign in TCR. Default value for empty list: ALL, i.e. all MNOs." content: application/json: schema: $ref: '#/components/schemas/v1alpha1ResubmitCampaignRegistrationRequest' required: false responses: "200": description: A successful response. content: application/json: schema: type: object "400": description: "INVALID_ARGUMENT: If the input parameters are not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: Invalid projectId status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: projectId description: invalid value "404": description: The campaign could not be found or if the requested campaign does not belong to the given project content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 404 message: Campaign not found status: NOT_FOUND "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 500 message: Error while resubmitting campaign registration. status: INTERNAL x-codegen-request-body-name: body /v1alpha1/projects/{projectId}/brandRegistrations:submit: post: tags: - Brand Registration summary: Create Brand Registrations description: |- 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. operationId: BrandRegistrationService_CreateBrandRegistrationRequest parameters: - $ref: "#/components/parameters/projectId" requestBody: description: The request body to of the brand to be created content: application/json: schema: $ref: '#/components/schemas/v1alpha1CreateBrandRegistration' required: true responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1CreateBrandRegistrationResponse' "400": description: "If the page_token, number_pattern or order_by is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: order_by description: Invalid order_by XXX "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit x-codegen-request-body-name: body /v1alpha1/projects/{projectId}/brandRegistrations: get: tags: - Brand Registration summary: List Brand Registrations description: Lists all brand registrations per project. operationId: BrandRegistrationService_ListBrandRegistrationRequest parameters: - $ref: "#/components/parameters/projectId" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1ListBrandRegistrationResponse' "400": description: "If the page_token, number_pattern or order_by is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: order_by description: Invalid order_by XXX "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit /v1alpha1/projects/{projectId}/brandRegistrations/{brandRegistrationId}: get: tags: - Brand Registration summary: Brand Registration Status description: Get brand registration details using brand registration ID when creating a brand. operationId: BrandRegistrationService_GetBrandRegistrationRequest parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/brandRegistrationId" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1BrandRegistration' "400": description: "If the page_token, number_pattern or order_by is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: order_by description: Invalid order_by XXX "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit patch: tags: - Brand Registration summary: Brand Registration Update description: Update Brand Registration details operationId: BrandRegistrationService_Update10DlcBrand parameters: - name: projectId in: path description: Your project id can be found if you log into your account on dashboard.sinch.com. required: true schema: type: string - name: brandRegistrationId in: path description: The Brand Registration ID is returned in the response when creating the brand required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/v1alpha1TenDlcBrandUpdateRequest' required: true responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1BrandRegistration' "400": description: "INVALID_ARGUMENT: If the brandRegistrationId is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: brandRegistrationId description: Invalid brandRegistrationId xyz "404": description: Brand could not be found content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 404 message: "" status: NOT_FOUND details: - type: ResourceInfo resourceType: BrandRegistration resourceName: xyz owner: "" description: "" "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' x-codegen-request-body-name: body /v1alpha1/projects/{projectId}/brandRegistrations/{brandRegistrationId}/feedback: get: tags: - Brand Registration summary: Brand Registration Feedback description: |- 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. operationId: BrandRegistrationService_GetBrandRegistrationFeedback parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/brandRegistrationId" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1BrandRegistrationFeedbackResponse' "400": description: "INVALID_ARGUMENT: If the brandRegistrationId is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: brandRegistrationId description: Invalid brandRegistrationId xyz "404": description: Brand could not be found content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 404 message: "" status: NOT_FOUND details: - type: ResourceInfo resourceType: BrandRegistration resourceName: xyz owner: "" description: "" "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' /v1alpha1/projects/{projectId}/brandRegistrations:fetchByTcrBrandId: get: tags: - Brand Registration summary: Get Brand Details description: Get the US 10DLC brand details using the TCR brand ID. operationId: BrandRegistrationService_fetchBrandRegistrationRequest parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/brandId" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1BrandRegistration' "400": description: "If the page_token, number_pattern or order_by is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: order_by description: Invalid order_by XXX "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit /v1alpha1/projects/{projectId}/brandRegistrations/{brandRegistrationId}/upgrade: post: tags: - Brand Registration summary: Brand Registration Upgrade description: Upgrades brand from `SIMPLIFIED` to `FULL`. operationId: BrandRegistrationService_Upgrade10DlcBrandToFullRegistration parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/brandRegistrationId" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1BrandRegistration' "400": description: "INVALID_ARGUMENT: If the brandRegistrationId is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: brandRegistrationId description: Invalid brandRegistrationId xyz "404": description: Brand could not be found content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 404 message: "" status: NOT_FOUND details: - type: ResourceInfo resourceType: BrandRegistration resourceName: xyz owner: "" description: "" "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: type: object /v1alpha1/projects/{projectId}/brandRegistrations/{brandRegistrationId}/vettingInfo: get: tags: - Brand Registration summary: Brand Registration Vetting Information description: Returns the vetting information of a brand registration. Include optional query parameters to filter results by vetting partner ID, vetting class, or status. operationId: BrandRegistrationService_VettingInfo parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/brandRegistrationId" - $ref: "#/components/parameters/vettingStatus" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1TenDlcVettingInfoResponse' "400": description: "INVALID_ARGUMENT: If the brandRegistrationId is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: brandRegistrationId description: Invalid brandRegistrationId xyz "404": description: Brand could not be found content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 404 message: "" status: NOT_FOUND details: - type: ResourceInfo resourceType: BrandRegistration resourceName: xyz owner: "" description: "" "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit "500": description: "INTERNAL: Internal server error. Typically, a server bug." content: application/json: schema: $ref: '#/components/schemas/error' /v1alpha1/projects/{projectId}/tfnBrandRegistrations:submit: post: tags: - TFN Brand Registration summary: Create TFN Brand Registrations description: Create a Toll Free number brand. FinancialDetails are optional for TFN brands. operationId: TFNBrandRegistrationService_submit parameters: - $ref: "#/components/parameters/projectId" requestBody: description: The request body of the brand to be created. content: application/json: schema: $ref: '#/components/schemas/v1alpha1CreateTfnBrandRegistration' required: true responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1TfnBrandRegistration' "400": description: "If the page_token, number_pattern or order_by is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: order_by description: Invalid order_by XXX "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit x-codegen-request-body-name: body /v1alpha1/projects/{projectId}/tfnBrandRegistrations: get: tags: - TFN Brand Registration summary: List TFN Brand Registrations description: Lists all TFN brand registrations for the project. operationId: TFNBrandRegistrationService_list parameters: - $ref: "#/components/parameters/projectId" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1ListTfnBrandRegistrationsResponse' "400": description: "If the page_token, number_pattern or order_by is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: order_by description: Invalid order_by XXX "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit /v1alpha1/projects/{projectId}/tfnBrandRegistrations/{tfnBrandRegistrationId}: get: tags: - TFN Brand Registration summary: TFN Brand Registration Status description: Get TFN brand registration details using the Toll-free number brand registration ID when creating a brand. operationId: TFNBrandRegistrationService_get parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/tfnBrandRegistrationId" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1TfnBrandRegistration' "400": description: "If the page_token, number_pattern or order_by is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: order_by description: Invalid order_by XXX "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit /v1alpha1/projects/{projectId}/tfnCampaignRegistrations/{campaignRegistrationId}: get: tags: - TFN Campaign Registration summary: Get TFN Campaign Registration description: Get TFN campaign registration details using the campaign registration ID when creating a campaign. operationId: TFNCampaignRegistrationService_get parameters: - $ref: "#/components/parameters/projectId" - $ref: "#/components/parameters/campaignRegistrationId" responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1TfnCampaignResponse' "400": description: "If the page_token, number_pattern or order_by is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: order_by description: Invalid order_by XXX "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit /v1alpha1/projects/{projectId}/tfnCampaignRegistrations:submit: post: tags: - TFN Campaign Registration summary: Submit TFN Campaign registration description: Submit a Toll-free number campaign. operationId: TFNCampaignRegistrationService_submit parameters: - $ref: "#/components/parameters/projectId" requestBody: content: application/json: schema: $ref: '#/components/schemas/v1alpha1CreateTfnCampaignRequest' required: true responses: "200": description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1alpha1CreateTfnCampaignResponse' "400": description: "If the page_token, number_pattern or order_by is not valid" content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 400 message: "" status: INVALID_ARGUMENT details: - type: BadRequest fieldViolations: - field: order_by description: Invalid order_by XXX "429": description: Over limit content: application/json: schema: $ref: '#/components/schemas/error' example: error: code: 429 message: Over limit x-codegen-request-body-name: body components: securitySchemes: BasicAuth: type: http scheme: basic description: "Our basic security works with any project. Simply use the client_id and client_secret that were displayed when you created your access key through the dashboard in the [Access keys section](https://dashboard.sinch.com/settings/access-keys)." OAuth2: type: oauth2 description: "This is the recommended way to access our APIs in production." flows: clientCredentials: tokenUrl: "https://auth.sinch.com/oauth2/token" scopes: {} parameters: projectId: name: projectId in: path required: true schema: type: string description: Your project ID can be found in the Customer Dashboard. campaignId: name: campaignId description: The ID of the campaign. in: path required: true schema: type: string campaignRegistrationId: name: campaignRegistrationId description: Campaign Registration Id returned by the create campaign API. in: path required: true schema: type: string campaignRegistrationIdQuery: name: campaignRegistrationIdQuery description: Campaign Registration Id returned by the create campaign API. in: query required: true schema: type: string brandId: name: brandId description: Brand Id to be qualified in: query required: true schema: type: string brandRegistrationId: name: brandRegistrationId description: The Brand Registration ID is returned in the response when creating the brand in: path required: true schema: type: string status: name: status in: query required: false schema: type: array items: type: string mock: name: mock in: query required: false schema: type: boolean useCase: name: useCase description: The desired Use Case. in: query required: false schema: type: string brand: name: brand in: query required: false schema: type: string pageSize: name: pageSize in: query required: false schema: type: integer format: int32 pageToken: name: pageToken in: query required: false schema: type: string orderBy: name: orderBy in: query required: false schema: type: string vettingStatus: name: vettingStatus in: query required: true schema: type: string enum: - PENDING - UNSCORE - ACTIVE - FAILED - EXPIRED default: ACTIVE tfnBrandRegistrationId: name: tfnBrandRegistrationId description: >- The TFN Brand Registration ID is returned in the response when creating the TFN brand in: path required: true schema: type: string schemas: error: required: - error type: object properties: error: type: object required: - code - message properties: code: type: integer description: The error code. example: 400 message: type: string description: The error message. example: Invalid argument. status: type: string description: The status of the error. example: INVALID_ARGUMENT details: type: array description: >- An array of objects describing the error in more detail, if applicable. items: $ref: '#/components/schemas/errorDetails' errorDetails: type: object properties: type: type: string description: A more specific description of the error. example: BadRequest resourceType: type: string description: The type of resource relevant to the error, if applicable. resourceName: type: string description: The name of the resource, if applicable. owner: type: string description: The owner of the resource, if applicable. description: type: string description: A description of the error, if applicable. fieldViolations: type: array description: An array of all the field violations which contributed to the error. items: $ref: '#/components/schemas/fieldViolations' fieldViolations: type: object properties: field: type: string description: The field which produced the error. example: order_by description: type: string description: The description of the error. example: Invalid `order_by` number. v1alpha1CampaignResponse: title: Campaign Response type: object properties: campaignId: maxLength: 7 type: string description: Campaign ID returned by external partner. i.e. TCR Campaign Id campaignName: maxLength: 128 type: string description: Optional name to help track and view campaign. campaignRegistrationId: maxLength: 26 type: string description: Campaign Registration Id returned by the Create Campaign API createDate: type: string description: Campaign Creation Date format: date-time modifiedDate: type: string description: Campaign Modified Date format: date-time createdBy: maxLength: 20 type: string description: Represents who Created this Campaign modifiedBy: maxLength: 20 type: string description: Represents who was the Last to Modify this Campaign autoRenewal: type: boolean description: Campaign subscription auto-renewal status. billedDate: type: string description: Campaign recent billed date. format: date-time brandId: maxLength: 8 type: string description: Alphanumeric identifier of the brand associated with this campaign. vertical: maxLength: 20 type: string description: Business/industry segment of this campaign. Must be of defined valid types. useCase: maxLength: 20 type: string description: Campaign useCase. subUseCases: type: array description: 'Campaign sub use-cases. ' items: maxLength: 20 type: string description: maxLength: 4096 type: string description: Summary description of this campaign. embeddedLink: type: boolean description: Does message generated by the campaign include URL link in SMS? embeddedPhone: type: boolean description: Does message generated by the campaign include phone number in SMS? affiliateMarketing: type: boolean description: Does message content controlled by affiliate marketing other than the brand? numberPool: type: boolean description: Indicates whether this campaign has been approved and configured as a numberpool campaign ageGated: type: boolean description: Age gated content in campaign. directLending: type: boolean description: is direct lending. subscriberOptIn: type: boolean description: Does campaign require subscriber to opt-in before SMS is sent to subscriber? subscriberOptOut: type: boolean description: Does campaign support subscriber opt-out keyword(s)? subscriberHelp: type: boolean description: Does campaign responds to help keyword(s)? sample1: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 1 or more message samples. sample2: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 2 or more message samples. sample3: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 3 or more message samples. sample4: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 4 or more message samples. stopMessage: maxLength: 255 type: string description: Message that will be returned if a subscriber opts out of the campaign. optInMessage: maxLength: 255 type: string description: Message that will be returned when a subscriber opts into a campaign. helpMessage: maxLength: 255 type: string description: Help message of the campaign. monthlyFee: type: number description: Monthly Fee format: float setupFee: type: number description: Initial Setup Fee format: float status: maxLength: 32 type: string description: "Campaign Status. \n- SINCH_REVIEW: Campaign submitted successfully\ \ and awaiting approval from Sinch.\n- SINCH_APPROVED: Campaign approved\ \ by Sinch.\n- SINCH_REJECTED: Campaign rejected by Sinch.\n- SUBMITTED:\ \ Campaign submitted successfully to TCR and awaiting approval from operators\n\ - APPROVED: Campaign has been approved by the operators and is ready to\ \ be activated by adding a number to it.\n- ACTIVE: Campaign is active\ \ and running\n- EXPIRED: Campaign is expired. Traffic cannot be sent,\ \ cannot be reactivated\n- REJECTED: Campaign was rejected by one of the\ \ operators\n- SUBMISSION_FAILED: Campaign submission failed" mnoMetadata: title: Map of Metadata Map of MNO metadata where key is the 'networkId' of the MNO and value is Metadata of the MNO type: object additionalProperties: $ref: '#/components/schemas/v1alpha1CampaignMnoMetadata' mock: type: boolean description: Defines if campaign mocked or real one lastActionStatus: type: string description: "Last Action Status. \n- CREATE_IN_PROGRESS: Creating campaign\ \ in TCR.\n- CREATE_SUCCESSFUL: Campaign created in TCR.\n- CREATE_FAILED:\ \ Campaign creation failed in TCR.\n- DELETE_IN_PROGRESS: Deleting campaign\ \ in TCR.\n- DELETE_SUCCESSFUL: Campaign deleted in TCR.\n- DELETE_FAILED:\ \ Campaign deletion failed in TCR." optinKeywords: maxLength: 255 type: string description: "Subscriber opt-in keywords. Must be upper-case alphanumeric\ \ comma(,) separated keywords without space." optoutKeywords: maxLength: 255 type: string description: "Subscriber opt-out keywords. Default value is 'STOP'. Must\ \ be upper-case alphanumeric comma(,) separated keywords without space." helpKeywords: maxLength: 255 type: string description: "Subscriber help keywords. Default value is 'HELP'. Must be\ \ upper-case alphanumeric comma(,) separated keywords without space." messageFlow: maxLength: 2048 type: string description: Message flow description. nextRenewalOrExpirationDate: type: string description: When the campaign would be due for its next renew/bill date. v1alpha1CreateTcrCampaignRequest: title: Campaign Request type: object properties: brandId: maxLength: 8 type: string description: Alphanumeric identifier of the brand associated with this campaign. useCase: $ref: '#/components/schemas/v1alpha1CampaignUseCaseType' subUseCases: type: array description: |- Array of sub use-cases. The number of sub use-cases supported can be 0-5, and depends on the primary usecase. Valid sub usecases are: - 2FA - ACCOUNT_NOTIFICATION - CUSTOMER_CARE - DELIVERY_NOTIFICATION - FRAUD_ALERT - HIGHER_EDUCATION - MARKETING - POLLING_VOTING - PUBLIC_SERVICE_ANNOUNCEMENT - SECURITY_ALERT items: $ref: '#/components/schemas/v1alpha1CampaignSubUseCaseType' campaignName: maxLength: 128 type: string description: Optional name to help track and view campaign. vertical: $ref: '#/components/schemas/v1alpha1CampaignVerticalType' description: maxLength: 4096 type: string description: Summary description of this campaign. autoRenewal: type: boolean description: |- Campaign subscription auto-renewal status. If true, a monthly recurring fee will be charged to the account. If false, only the initial setup fee will be charged, and the campaign will expire after three months. default: true embeddedLink: type: boolean description: Does message generated by the campaign include URL link in SMS? embeddedPhone: type: boolean description: Does message generated by the campaign include phone number in SMS? affiliateMarketing: type: boolean description: Does message content controlled by affiliate marketing other than the brand? numberPool: type: boolean description: |- Will this campaign have more than 50 numbers associated with it? A special business review is required to support this campaign. In addition to setting this flag to true, please contact your Sinch Account Manager ageGated: type: boolean description: Age gated content in campaign. directLending: type: boolean description: is direct lending. subscriberOptIn: type: boolean description: Does campaign require subscriber to opt-in before SMS is sent to subscriber? subscriberOptOut: type: boolean description: Does campaign support subscriber opt-out keyword(s)? subscriberHelp: type: boolean description: Does campaign responds to help keyword(s)? sample1: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 1 or more message samples. sample2: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 2 or more message samples. sample3: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 3 or more message samples. sample4: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 4 or more message samples. stopMessage: maxLength: 255 type: string description: Message that will be returned if a subscriber opts out of the campaign. optInMessage: maxLength: 255 type: string description: Message that will be returned when a subscriber opts into a campaign. helpMessage: maxLength: 255 type: string description: Help message of the campaign. optinKeywords: maxLength: 255 type: string description: Subscriber opt-in keywords. optoutKeywords: maxLength: 255 type: string description: Subscriber opt-out keywords. Default value is 'STOP'. helpKeywords: maxLength: 255 type: string description: Subscriber help keywords. Default value is 'HELP'. messageFlow: maxLength: 2048 type: string description: Message flow description. v1alpha1CreateTcrCampaignResponse: title: Response Body for CreateTcrCampaign Request type: object properties: campaignRegistrationId: maxLength: 26 type: string description: 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. v1alpha1MnoMetadata: title: MNO properties type: object properties: mno: type: string description: Name of the MNO mnoSupport: type: boolean description: "If 'false', then desired use-case cannot be supported by the\ \ MNO" mnoReview: type: boolean description: "If 'true', then the submitted campaign is subject to MNO (manual)\ \ review process. Campaign review status can be access via TCR APIs for\ \ some of the MNOs" qualify: type: boolean description: "If 'false', then brand does not qualify for the desired use-case\ \ on the MNO. CSP might consider getting brand vetted by one of the approved\ \ external vetting provider" minMsgSamples: type: string description: Minimum number of message samples required by MNO for submission of desired use-case format: integer reqSubscriberOptIn: type: boolean description: If 'true' then MNO requires subscriber to opt-into the campaign before message may be sent to subscriber. Opt-in mechanism can be mobile or web opt-in reqSubscriberOptOut: type: boolean description: "If 'true' then MNO requires campaign to support an opt-out\ \ mechanism through MO stop key words such as 'STOP', 'QUIT'. Upon receive\ \ STOP message from subscriber, campaign must stop sending message to\ \ subscriber immediately" reqSubscriberHelp: title: "If 'true' then MNO requires campaign to support a 'help' mechanism\ \ through MO help key words such as 'HELP', 'INFO'" type: boolean noEmbeddedLink: type: boolean description: If 'true' then MNO forbids call-to-action link/URL to be embedded in all messages send to subscriber noEmbeddedPhone: type: boolean description: If 'true' then MNO forbids call-to-action phone number to be embedded in all messages send to subscriber surcharge: type: number description: Per message fee imposed by MNO. This fee may vary depending on brand qualification and use-case format: double msgClass: type: string description: Message class assigned to the campaign by MNO. Please refer to AT&T 10DLC guide for complete list of available message class and definition tpm: type: string description: Message TPM(throughput per minute) qualified by the brand for desired use-case format: integer tpmScope: type: string description: "TPM restriction scope. Possible values: CAMPAIGN, PHONE_NUMBER.\ \ If scope is at PHONE_NUMBER level, then the TPM rate-limiting imposed\ \ separately for each phone number provisioned to the campaign. CAMPAIGN\ \ level scope implies rate-limiting imposed at campaign level." brandTier: type: string description: "Daily message volume is restricted based on brand tier or\ \ brand qualifcation. The daily volume restriction applies to brand across\ \ campaigns and CSPs. Please contact your message service provider for\ \ updated T-Mobile terms. Possible values: LOW, LOWER_MID, UPPER_MID,\ \ TOP, UNCAPPED" brandDailyCap: type: string description: "Number of messages allowed per day on T-Mobile network. If\ \ the brandTier attribute is 'UNCAPPED', then this attribute will be NULL." format: integer v1alpha1CampaignMnoMetadata: title: MNO properties type: object properties: mno: type: string description: Name of the MNO status: type: string description: MNO operation status msgClass: type: string description: Message class assigned to the campaign by MNO. Please refer to AT&T 10DLC guide for complete list of available message class and definition tpm: type: string description: Message TPM(throughput per minute) qualified by the brand for desired use-case format: integer tpmScope: type: string description: "TPM restriction scope. Possible values: CAMPAIGN, PHONE_NUMBER.\ \ If scope is at PHONE_NUMBER level, then the TPM rate-limiting imposed\ \ separately for each phone number provisioned to the campaign. CAMPAIGN\ \ level scope implies rate-limiting imposed at campaign level." brandTier: type: string description: "Daily message volume is restricted based on brand tier or\ \ brand qualifcation. The daily volume restriction applies to brand across\ \ campaigns and CSPs. Please contact your message service provider for\ \ updated T-Mobile terms. Possible values: LOW, LOWER_MID, UPPER_MID,\ \ TOP, UNCAPPED" brandDailyCap: type: string description: "Number of messages allowed per day on T-Mobile network. If\ \ the brandTier attribute is 'UNCAPPED', then this attribute will be NULL." format: integer v1alpha1QualifyBrandByUseCaseResponse: title: Qualify Brand by Use Case response type: object properties: useCase: type: string description: Desired useCase. monthlyFee: type: number description: "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." format: float setupFee: type: number description: "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." format: float minSubUseCases: type: number description: Minimum number of sub use-cases required when registering a campaign with the desired use case. maxSubUseCases: type: number description: Maximum number of sub use-cases required when registering a campaign with the desired use case. mnoMetadata: title: Map of Metadata Map of MNO metadata where key is the 'networkId' of the MNO and value is Metadata of the MNO type: object additionalProperties: $ref: '#/components/schemas/v1alpha1MnoMetadata' v1alpha1CampaignUseCaseType: title: Campaign Usecase Type type: string description: "Standard use-cases: \n- 2FA\n- ACCOUNT_NOTIFICATION\n- CUSTOMER_CARE\n\ - DELIVERY_NOTIFICATION\n- FRAUD_ALERT\n- HIGHER_EDUCATION\n- LOW_VOLUME\n\ - MARKETING\n- MIXED\n- POLLING_VOTING\n- PUBLIC_SERVICE_ANNOUNCEMENT\n- SECURITY_ALERT\n\ \nSpecial use-cases:\n- AGENTS_FRANCHISES\n- CARRIER_EXEMPT\n- CHARITY\n-\ \ EMERGENCY\n- K12_EDUCATION\n- POLITICAL\n- PROXY\n- SOCIAL\n- SWEEPSTAKE" enum: - 2FA - ACCOUNT_NOTIFICATION - CUSTOMER_CARE - DELIVERY_NOTIFICATION - FRAUD_ALERT - HIGHER_EDUCATION - LOW_VOLUME - MARKETING - MIXED - POLLING_VOTING - PUBLIC_SERVICE_ANNOUNCEMENT - SECURITY_ALERT - AGENTS_FRANCHISES - CARRIER_EXEMPT - CHARITY - EMERGENCY - K12_EDUCATION - POLITICAL - PROXY - SOCIAL - SWEEPSTAKE v1alpha1CampaignSubUseCaseType: type: string enum: - 2FA - ACCOUNT_NOTIFICATION - CUSTOMER_CARE - DELIVERY_NOTIFICATION - FRAUD_ALERT - HIGHER_EDUCATION - MARKETING - POLLING_VOTING - PUBLIC_SERVICE_ANNOUNCEMENT - SECURITY_ALERT v1alpha1CampaignVerticalType: title: Campaign Vertical Type type: string description: |- - PROFESSIONAL - REAL_ESTATE - HEALTHCARE - HUMAN_RESOURCES - ENERGY - ENTERTAINMENT - RETAIL - AGRICULTURE - INSURANCE - POSTAL - EDUCATION - HOSPITALITY - FINANCIAL - POLITICAL - GAMBLING - LEGAL - CONSTRUCTION - NGO - MANUFACTURING - GOVERNMENT - TECHNOLOGY - COMMUNICATION enum: - PROFESSIONAL - REAL_ESTATE - HEALTHCARE - HUMAN_RESOURCES - ENERGY - ENTERTAINMENT - RETAIL - TRANSPORTATION - AGRICULTURE - INSURANCE - POSTAL - EDUCATION - HOSPITALITY - FINANCIAL - POLITICAL - GAMBLING - LEGAL - CONSTRUCTION - NGO - MANUFACTURING - GOVERNMENT - TECHNOLOGY - COMMUNICATION v1alpha1RequestInfoResponse: title: Campaign registration service response structure type: object properties: requestId: type: string description: The same request Identification that was sent on the input. v1alpha1CreateBrandRegistration: title: Brand Registration Request type: object properties: displayName: type: string description: Display name is defined by the user brandRegistrationType: $ref: '#/components/schemas/v1alpha1BrandRegistrationType' companyDetails: $ref: '#/components/schemas/v1alpha1CompanyDetails' financialDetails: $ref: '#/components/schemas/v1alpha1FinancialDetails' contactDetails: $ref: '#/components/schemas/v1alpha1ContactDetails' mock: type: boolean description: Defines if created brand should be mocked or real one v1alpha1CreateBrandRegistrationResponse: title: Brand Registration Response type: object properties: brandRegistrationId: type: string description: Output only. Brand registration Id readOnly: true v1alpha1CreateTfnBrandRegistration: title: TFN Brand Registration Request type: object properties: displayName: type: string description: Display name is defined by the user companyDetails: $ref: '#/components/schemas/v1alpha1CompanyDetails' financialDetails: $ref: '#/components/schemas/v1alpha1FinancialDetails' contactDetails: $ref: '#/components/schemas/v1alpha1ContactDetails' v1alpha1BrandRegistration: title: Brand Registration Details type: object properties: brandRegistrationId: type: string description: Output only. Brand registration Id readOnly: true brandId: type: string description: Output only. TCR brand Id readOnly: true identityStatus: type: string description: Identity status for the brand. readOnly: true displayName: type: string description: Output only. Display name defined by user readOnly: true brandRegistrationStatus: $ref: '#/components/schemas/v1alpha1BrandRegistrationStatus' brandRegistrationType: $ref: '#/components/schemas/v1alpha1BrandRegistrationType' companyDetails: $ref: '#/components/schemas/v1alpha1CompanyDetails' financialDetails: $ref: '#/components/schemas/v1alpha1FinancialDetails' contactDetails: $ref: '#/components/schemas/v1alpha1ContactDetails' mock: type: boolean description: Defines if created brand should be mocked or real one v1alpha1TenDlcBrandUpdateRequest: type: object properties: companyDetails: $ref: '#/components/schemas/v1alpha1CompanyDetails' financialDetails: $ref: '#/components/schemas/v1alpha1FinancialDetails' contactDetails: $ref: '#/components/schemas/v1alpha1ContactDetails' v1alpha1TfnBrandRegistration: title: Brand Registration Details type: object properties: brandRegistrationId: type: string description: Output only. Brand registration Id readOnly: true brandId: type: string description: TODO readOnly: true displayName: type: string description: Output only. Display name defined by user readOnly: true brandRegistrationStatus: $ref: '#/components/schemas/v1alpha1BrandRegistrationStatus' companyDetails: $ref: '#/components/schemas/v1alpha1CompanyDetails' financialDetails: $ref: '#/components/schemas/v1alpha1FinancialDetails' contactDetails: $ref: '#/components/schemas/v1alpha1ContactDetails' v1alpha1FinancialDetails: title: Financial Details type: object properties: brandEntityType: $ref: '#/components/schemas/v1alpha1BrandEntityType' brandVerticalType: $ref: '#/components/schemas/v1alpha1BrandVerticalType' taxIdCountry: type: string description: In what country is your tax id registered taxIdCorporate: type: string description: The tax id of the business stockSymbol: type: string description: The company stock symbol exchange: type: string description: In what stock exchange is the company registered v1alpha1BrandEntityType: title: Brand Entity Type type: string description: |- - PUBLIC: A public company registered on a stock exchange - PRIVATE: A private company - CHARITY_NON_PROFIT: A charity or non-profit company default: PUBLIC enum: - PUBLIC - PRIVATE - CHARITY_NON_PROFIT v1alpha1BrandStatus: type: string default: IMPORTED enum: - IMPORTED - WAITING_FOR_VERIFICATION v1alpha1BrandVerticalType: title: Brand Vertical Type type: string description: |- - PROFESSIONAL - REAL_ESTATE - HEALTHCARE - HUMAN_RESOURCES - ENERGY - ENTERTAINMENT - RETAIL - AGRICULTURE - INSURANCE - POSTAL - EDUCATION - HOSPITALITY - FINANCIAL - POLITICAL - GAMBLING - LEGAL - CONSTRUCTION - NGO - MANUFACTURING - GOVERNMENT - TECHNOLOGY - COMMUNICATION enum: - PROFESSIONAL - REAL_ESTATE - HEALTHCARE - HUMAN_RESOURCES - ENERGY - ENTERTAINMENT - RETAIL - TRANSPORTATION - AGRICULTURE - INSURANCE - POSTAL - EDUCATION - HOSPITALITY - FINANCIAL - POLITICAL - GAMBLING - LEGAL - CONSTRUCTION - NGO - MANUFACTURING - GOVERNMENT - TECHNOLOGY - COMMUNICATION v1alpha1Category: type: object properties: id: type: string readOnly: true displayName: type: string readOnly: true description: type: string readOnly: true fields: type: array readOnly: true items: type: string v1alpha1CompanyDetails: title: Company Details type: object properties: companyName: type: string description: The legal name of the end user business companyEmail: type: string description: The email address of support contact brandName: type: string description: The brand name the business wants to register country: type: string description: "2 letter ISO-2 country code. E.g. US, CA" streetAddress: type: string description: Street name and house number. E.g. 1000 Sunset Hill Road city: type: string description: City name postalCode: type: string description: Zipcode or postal code. E.g. 21012 state: type: string description: "State or province. For the United States, please use 2 character\ \ codes. E.g. 'CA' for California." webAddress: type: string description: The website of the business v1alpha1ContactDetails: title: Contact Details type: object properties: firstName: type: string description: First name of business contact lastName: type: string description: Last name of business contact phoneNumber: type: string description: The support contact telephone in e.164 format. E.g. +12023339999 email: type: string description: The email address to the end user contact person v1alpha1Brand: type: object properties: brandId: type: string projectId: type: string displayName: type: string companyName: type: string ein: type: string phone: type: string street: type: string city: type: string state: type: string postalCode: type: string country: type: string email: type: string stockSymbol: type: string stockExchange: type: string website: type: string vertical: $ref: '#/components/schemas/v1alpha1BrandVerticalType' brandStatus: $ref: '#/components/schemas/v1alpha1BrandStatus' v1alpha1ListBrandRegistrationResponse: type: object properties: brandRegistrations: type: array items: $ref: '#/components/schemas/v1alpha1BrandRegistration' nextPageToken: type: string totalSize: type: integer format: int32 v1alpha1ListTfnBrandRegistrationsResponse: type: object properties: brandRegistrations: type: array items: $ref: '#/components/schemas/v1alpha1TfnBrandRegistration' nextPageToken: type: string totalSize: type: integer format: int32 v1alpha1BrandRegistrationFeedbackResponse: type: object properties: brandId: type: string readOnly: true category: type: array readOnly: true items: $ref: '#/components/schemas/v1alpha1Category' v1alpha1ResubmitCampaignRegistrationRequest: type: object properties: mnos: type: array items: type: string v1alpha1TenDlcVettingInfoResponse: type: object properties: vettingInfo: type: array readOnly: true items: $ref: '#/components/schemas/v1alpha1VettingInfo' v1alpha1BrandRegistrationStatus: title: Brand Registration Status type: string description: "- 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: - DRAFT - IN_PROGRESS - REJECTED - APPROVED - UPGRADE v1alpha1BrandRegistrationType: title: Brand Registration Type type: string description: "- 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: - SIMPLIFIED - FULL - BRAND_REGISTRATION_TYPE_UNSPECIFIED v1alpha1TfnCampaignResponse: title: Tfn Campaign Response type: object properties: internalCampaignId: title: Sinch Internal Campaign Id type: string campaignName: title: Campaign name type: string brandId: title: Brand id type: string status: title: TFN Campaign Status type: string estimatedMonthlyMessageVolume: title: Estimated monthly message volume type: integer format: int32 createDate: title: Campaign Creation Date type: string format: date-time modifiedDate: title: Campaign Modified Date type: string format: date-time createdBy: title: Represents who Created this Campaign type: string modifiedBy: title: Represents who was the Last to Modify this Campaign type: string vertical: type: string description: Brand Vertical Type. Must be of defined valid types. description: type: string description: Summary description of this campaign. embeddedLink: title: Does message generated by the campaign include URL link in SMS? type: boolean embeddedPhone: title: Does message generated by the campaign include phone number in SMS? type: boolean affiliateMarketing: title: Does message content controlled by affiliate marketing other than the brand? type: boolean numberPool: type: boolean description: Will this campaign have more than 50 numbers associated with it? A special business review is required to support this campaign. ageGated: type: boolean description: Age gated content in campaign. directLending: type: boolean description: is direct lending. subscriberOptIn: title: Does campaign require subscriber to opt-in before SMS is sent to subscriber? type: boolean subscriberOptOut: title: Does campaign support subscriber opt-out keyword(s)? type: boolean subscriberHelp: title: Does campaign responds to help keyword(s)? type: boolean sample1: type: string description: Message sample. Some campaign tiers require 1 or more message samples. sample2: type: string description: Message sample. Some campaign tiers require 2 or more message samples. sample3: type: string description: Message sample. Some campaign tiers require 3 or more message samples. sample4: type: string description: Message sample. Some campaign tiers require 4 or more message samples. stopMessage: type: string description: Message that will be returned if a subscriber opts out of the campaign. optInDescription: type: string description: descriptive text of how customers are opting in. helpMessage: type: string description: Help message of the campaign. useCase: type: string description: Campaign usecase. Must be of defined valid types. subUseCases: type: array description: Campaign sub-usecases. Must be of defined valid sub-usecase types. items: type: string brandName: title: Brand name type: string optInWorkflowImageUrls: type: array description: Images showing the opt in workflow. items: type: string v1alpha1CreateTfnCampaignResponse: title: Response Body for CreateTfnCampaign Request type: object properties: campaignRegistrationId: type: string description: Sinch generated campaign ID. v1alpha1CreateTfnCampaignRequest: title: Request Body for CreateTfnCampaign Request required: - brandId - description - estimatedMonthlyMessageVolume - helpMessage - sample1 - vertical - useCase - optInDescription - optInWorkflowImageUrls type: object properties: projectId: type: string description: Sinch Project Id. Your project id can be found if you log into your account on dashboard.sinch.com. brandId: maxLength: 26 type: string description: Alphanumeric identifier of the brand associated with this campaign. useCase: maxLength: 20 type: string description: "Standard usecases: \n- 2FA\n- ACCOUNT_NOTIFICATION\n- CUSTOMER_CARE\n\ - DELIVERY_NOTIFICATION\n- FRAUD_ALERT\n- HIGHER_EDUCATION\n- LOW_VOLUME\n\ - MARKETING\n- MIXED\n- POLLING_VOTING\n- PUBLIC_SERVICE_ANNOUNCEMENT\n\ - SECURITY_ALERT" subUseCases: type: array description: |- Array of sub usecases. The number of sub usecases supported can be 0-5, and depends on the primary usecase. Valid sub usecases are: - 2FA - ACCOUNT_NOTIFICATION - CUSTOMER_CARE - DELIVERY_NOTIFICATION - FRAUD_ALERT - HIGHER_EDUCATION - MARKETING - POLLING_VOTING - PUBLIC_SERVICE_ANNOUNCEMENT - SECURITY_ALERT items: type: string campaignName: maxLength: 128 type: string description: Optional name to help track and view campaign. vertical: title: campaign Vertical Type type: string description: |- - PROFESSIONAL - REAL_ESTATE - HEALTHCARE - HUMAN_RESOURCES - ENERGY - ENTERTAINMENT - RETAIL - AGRICULTURE - INSURANCE - POSTAL - EDUCATION - HOSPITALITY - FINANCIAL - POLITICAL - GAMBLING - LEGAL - CONSTRUCTION - NGO - MANUFACTURING - GOVERNMENT - TECHNOLOGY - COMMUNICATION enum: - PROFESSIONAL - REAL_ESTATE - HEALTHCARE - HUMAN_RESOURCES - ENERGY - ENTERTAINMENT - RETAIL - TRANSPORTATION - AGRICULTURE - INSURANCE - POSTAL - EDUCATION - HOSPITALITY - FINANCIAL - POLITICAL - GAMBLING - LEGAL - CONSTRUCTION - NGO - MANUFACTURING - GOVERNMENT - TECHNOLOGY - COMMUNICATION description: maxLength: 4096 type: string description: Summary description of this campaign. embeddedLink: title: Does message generated by the campaign include URL link in SMS? type: boolean embeddedPhone: title: Does message generated by the campaign include phone number in SMS? type: boolean affiliateMarketing: title: Does message content controlled by affiliate marketing other than the brand? type: boolean numberPool: title: |- Will this campaign have more than 50 numbers associated with it? A special business review is required to support this campaign. In addition to setting this flag to true, please contact your Sinch Account Manager type: boolean ageGated: type: boolean description: Age gated content in campaign. directLending: type: boolean description: is direct lending. subscriberOptIn: title: Does campaign require subscriber to opt-in before SMS is sent to subscriber? type: boolean subscriberOptOut: title: Does campaign support subscriber opt-out keyword(s)? type: boolean subscriberHelp: title: Does campaign responds to help keyword(s)? type: boolean sample1: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 1 or more message samples. sample2: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 2 or more message samples. sample3: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 3 or more message samples. sample4: maxLength: 1024 type: string description: Message sample. Some campaign tiers require 4 or more message samples. stopMessage: maxLength: 255 type: string description: Message that will be returned if a subscriber opts out of the campaign. optInDescription: maxLength: 500 type: string description: descriptive text of how customers are opting in. helpMessage: maxLength: 255 type: string description: Help message of the campaign. estimatedMonthlyMessageVolume: title: Estimated monthly message volume type: integer format: int32 createdBy: title: |- info about who is creating this campaign. This field is read only for rest api user. It must be set when this API called from UI type: string readOnly: true optInWorkflowImageUrls: type: array description: Images showing the opt in workflow. items: type: string maxLength: 1000 v1alpha1ListCampaignRegistrationResponse: type: object properties: campaignRegistrations: type: array items: $ref: '#/components/schemas/v1alpha1CampaignResponse' nextPageToken: type: string totalSize: type: integer format: int32 v1alpha1GetCampaignRegistrationFeedbackResponse: type: object properties: campaignRegistrationId: type: string campaignId: type: string status: type: string tcrErrorResponse: type: array items: $ref: '#/components/schemas/v1alpha1TcrErrorResponse' internalErrorResponse: type: array items: $ref: '#/components/schemas/v1alpha1InternalErrorResponse' v1alpha1TcrErrorResponse: type: object properties: code: type: string field: type: string description: type: string v1alpha1InternalErrorResponse: type: object properties: code: type: string description: type: string v1alpha1VettingClass: type: string default: STANDARD enum: - STANDARD v1alpha1VettingProvider: type: string default: AEGIS enum: - AEGIS v1alpha1VettingInfo: type: object properties: vettingId: type: string readOnly: true provider: $ref: '#/components/schemas/v1alpha1VettingProvider' vettingStatus: $ref: '#/components/schemas/v1alpha1VettingStatus' vettingClass: $ref: '#/components/schemas/v1alpha1VettingClass' vettingToken: type: string readOnly: true vettingScore: type: integer format: int32 readOnly: true reasons: type: array readOnly: true items: type: string vettingDetails: type: object additionalProperties: type: string readOnly: true vettedDate: type: string format: date-time readOnly: true createDate: type: string format: date-time readOnly: true v1alpha1VettingStatus: type: string default: ACTIVE enum: - PENDING - UNSCORE - ACTIVE - FAILED - EXPIRED x-explorer-enabled: false x-samples-languages: - curl - java - csharp - node - php x-original-swagger-version: "2.0"