Sinch Compliance API - Brands

Manage brand records in the Sinch Compliance Center.

Operations 21

POST /v1/projects/{projectId}/us/brands Creates a new Draft Brand in US with the request data. #
GET /v1/projects/{projectId}/us/brands List brands for a project #
POST /v1/projects/{projectId}/us/brands/import Imports an existing Brand in US. #
GET /v1/projects/{projectId}/us/brands/{brandId} Get a brand by project and brand id. #
DELETE /v1/projects/{projectId}/us/brands/{brandId} Delete a brand by project and brand id. #
PATCH /v1/projects/{projectId}/us/brands/{brandId} Patches an existing Brand in US with the request data. #
POST /v1/projects/{projectId}/us/brands/{brandId}/attachments Uploads an attachment to be linked to a brand. The attachment will be automatically assigned to the new Brand Orders when needed. #
GET /v1/projects/{projectId}/us/brands/{brandId}/attachments/{attachmentId} Download brand attachment #
DELETE /v1/projects/{projectId}/us/brands/{brandId}/attachments/{attachmentId} Delete Brand Attachment #
GET /v1/projects/{projectId}/us/orders List Brand Orders according to the filters applied. #
POST /v1/projects/{projectId}/us/brands/{brandId}/orders Creates a new Brand Order for the specified process. #
GET /v1/projects/{projectId}/us/brands/{brandId}/orders List Brand Orders by Brand Id according to the filters applied. #
GET /v1/projects/{projectId}/us/brands/{brandId}/orders/{orderId} Get a brand order by project id, brand id and order id. #
DELETE /v1/projects/{projectId}/us/brands/{brandId}/orders/{orderId} Delete Brand Order #
POST /v1/projects/{projectId}/us/brands/{brandId}/orders/{orderId}/retry Updates a Brand Order. #
POST /v1/projects/{projectId}/us/brands/{brandId}/orders/{orderId}/resendConfirmationEmail resendConfirmationEmail request for Brand Order. #
POST /v1/projects/{projectId}/us/brands/{brandId}/orders/{orderId}/verifyOtp Verify OTP code for 10DLC Sole Proprietor verification #
POST /v1/projects/{projectId}/us/brands/{brandId}/orders/{orderId}/resendOtp Resend OTP for 10DLC Sole Proprietor verification #
GET /v1/projects/{projectId}/callbackConfig Get a callback configuration by project id. #
PATCH /v1/projects/{projectId}/callbackConfig Set a customer-provided HMAC secret for webhook signing. #
POST /v1/projects/{projectId}/callbackConfig/rotate Rotate the HMAC secret for webhook signing. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sinch:sinch-compliance-brands-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sinch-compliance-brands-api-openapi.yml Raw ↑
openapi: 3.2.0
externalDocs:
  description: All endpoints available under this API require Bearer token authentication. Please check oauth api documentation if you need more details.
  url: https://developers.sinch.com/docs/numbers/api-reference/authentication/oauth/
info:
  x-sinch-standards-version: standards-2026-03-31
  description: 'This API describes the set of endpoints available to create customer brands.


    The list of endpoints allows to create, update and delete a customer brand and also get the current state.'
  title: Sinch Compliance API - Brands
  version: 1.0.0
  contact:
    name: Support
    url: https://www.sinch.com
    email: Support@sinch.com
  license:
    name: MIT
    url: https://www.sinch.com/legal
webhooks:
  BrandOrderStatusUpdated:
    post:
      x-sinch-stability: preview
      tags:
      - brand-webhooks-delivery
      summary: Callback for brand order status update
      description: The endpoint receives a callback when the brand order status is updated. To receive callback notifications, the customer must provide a callback URL in the create Order (/us/brands/{brandId}/orders) request body or when importing (/us/brands/import) a brand. The callback URL must be a valid URL and must be reachable from Sinch. Read brands callback configuration documentation for more details.
      operationId: brandOrderStatusCallback
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallbackBrandOrderStatusUpdatedBody'
      responses:
        '200':
          description: OK
      security:
      - hmacAuth: []
paths:
  /v1/projects/{projectId}/us/brands:
    post:
      x-sinch-stability: preview
      description: 'Creates a new Draft Brand in US with the request data.


        Note: The `Idempotency-Key` header is not supported in this version. Submitting the same request twice may create duplicate resources. Callers are responsible for deduplicating on their end. Idempotency-Key support will be added when this operation reaches Stable stability.'
      operationId: createBrand
      parameters:
      - in: path
        description: Customer's project id
        name: projectId
        required: true
        schema:
          type: string
      requestBody:
        required: true
        description: Brand object to be created. The request body must include all the required fields for the brand creation, as well as the optional field contentProvider that indicates whether the brand is a Content Provider or a standard Brand. Depending on the value of this field, the brand will follow different registration processes and will have access to different types of orders and products.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBrandRequest'
      responses:
        '201':
          description: Brand created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Brand'
              example:
                brandId: b1c7ccbf-919d-462f-8587-dec95a1b11ee
                displayName: Alpha Adventures Corp.
                status: DRAFT
                legalCompanyName: Alpha Adventures Corp.
                entityType: CORPORATION
                verticalType: RETAIL
                country: US
                street: 129 MacDougal Street, Manhattan
                city: New York
                state: New York
                zip: '10012'
                taxCountry: US
                federalTaxId: '123456789'
                website: https://www.alphaadventures.com
                companyEmail: contact@alphaadventures.com
                contactEmail: contact@alphaadventures.com
                contentProvider: false
                channels: []
                attachments: []
                logs: []
                createTime: '2024-01-15T10:00:00Z'
                updateTime: '2024-01-15T10:00:00Z'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'BAD_REQUEST: Any validation error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: The project id introduced does not exist.'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'INTERNAL: Internal server error. Typically, a server bug.'
      security:
      - OAuth2:
        - write
      summary: Creates a new Draft Brand in US with the request data.
      tags:
      - brands
    get:
      x-sinch-stability: preview
      description: List existing brands according to the specified filters.
      operationId: listBrands
      parameters:
      - in: path
        description: Customer's project id
        name: projectId
        required: true
        schema:
          type: string
      - in: query
        description: The brand status to filter the brands.
        name: status
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/BrandStatus'
      - in: query
        name: displayName
        description: Filter brands by brand name.
        schema:
          type: string
      - in: query
        description: Filter by specific channel available.
        name: channelName
        required: false
        schema:
          $ref: '#/components/schemas/Channel'
      - in: query
        name: contentProvider
        description: Optional boolean flag to filter by content provider. If true, it returns content providers. If false, it returns standard brands. Default is false.
        schema:
          type: boolean
          default: false
      - in: query
        name: thirdPartyMetadataId
        description: Filter brands by an external system's identifier, such as a 10DLC or US Short Code Registry brand ID. Matches against the `value` of any `thirdPartyMetadata` entry (see the `ThirdPartyElement` schema) on any of the brand's registration processes, regardless of which `name` (e.g. `TCR_BRAND_ID`, `gch_brand_id`) it was stored under.
        schema:
          type: string
      - in: query
        name: sort
        description: 'Sorting of the results using SQL-like syntax: comma-separated field names with an optional '':desc'' or '':asc'' suffix. Fields that support sorting are ''displayName'', ''status'', ''createTime'', ''updateTime''. Defaults to ascending order when no suffix is provided.'
        schema:
          type: string
        example: displayName,status:desc
      - in: query
        name: pageSize
        description: Size of the page to be returned. Default is 20. Maximum is 100.
        schema:
          format: int32
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        example: 20
      - in: query
        name: pageToken
        description: Page token to request subsequent pages when using pagination. This should be the value generated by the system in a previous list request.
        schema:
          type: string
      responses:
        '200':
          description: OK
          headers:
            Link:
              description: Pagination links per RFC 8288. A `rel="next"` link is present when there are more results. Absence of a `next` link indicates the last page.
              schema:
                type: string
                example: <https://compliance.api.sinch.com/v1/projects/{projectId}/us/brands?pageToken=abc123>; rel="next"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListBrandResponse'
              example:
                brands:
                - brandId: b1c7ccbf-919d-462f-8587-dec95a1b11ee
                  displayName: Alpha Adventures Corp.
                  status: DRAFT
                  channels: []
                  createTime: '2024-01-15T10:00:00Z'
                  updateTime: '2024-01-15T10:00:00Z'
                links:
                  next: https://compliance.api.sinch.com/v1/projects/proj-123/us/brands?pageToken=eyJsYXN0SWQiOiJiMWM3Y2NiZiJ9
                meta:
                  totalCount: 42
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: The project id introduced does not exist.'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'INTERNAL: Internal server error. Typically, a server bug.'
      security:
      - OAuth2:
        - read
      summary: List brands for a project
      tags:
      - brands
  /v1/projects/{projectId}/us/brands/import:
    post:
      x-sinch-stability: preview
      description: 'This endpoint allows you to import a brand that has already been registered through another reseller or directly by the end-customer, enabling you to manage it through your account. To initiate the transfer, you must specify one of the available import options (IMPORT_TCR_BRAND or IMPORT_GCH_BRAND) and provide the brand''s unique ID from its original registry.


        Upon receiving the request, the system will copy the brand''s information from the source and create an import order that includes all existing third-party metadata from the original registration. Depending on the brand''s original registry, an email will be sent to the brand''s registered contact address to approve or deny the import request.


        Please note that an imported brand cannot be directly modified or updated through our system. For example, a brand imported via IMPORT_GCH_BRAND cannot have its Short Code registration details changed, although it can be extended for other services like 10DLC if required. All maintenance and update operations for the brand remain the responsibility of the original register.'
      operationId: importBrand
      parameters:
      - in: path
        description: Customer's project id
        name: projectId
        required: true
        schema:
          type: string
      requestBody:
        required: true
        description: Import Brand request body. It includes the import option to be used and the unique identifier of the brand in its original registry. Depending on the import option selected, the required identifier will differ, for IMPORT_TCR_BRAND, the required identifier is the 10DLC Brand ID; for IMPORT_GCH_BRAND, the required identifier is the US Short Code Registry Account ID.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportBrandRequest'
      responses:
        '201':
          description: Brand import initiated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImportBrandResponse'
              example:
                brandId: b1c7ccbf-919d-462f-8587-dec95a1b11ee
                brandOrderId: '212421442412'
                brandOwnerContactEmail: jo***@alphaadventures.com
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'BAD_REQUEST: Any validation error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: The project id introduced does not exist.'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'INTERNAL: Internal server error. Typically, a server bug.'
      security:
      - OAuth2:
        - write
      summary: Imports an existing Brand in US.
      tags:
      - brands
  /v1/projects/{projectId}/us/brands/{brandId}:
    get:
      x-sinch-stability: preview
      description: The endpoint receives as path param project id and brand id. If the project and brand exist, the details of the brand are returned.
      operationId: getBrand
      parameters:
      - in: path
        description: Customer's project id
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        description: Customer's brand id
        name: brandId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Brand'
              example:
                brandId: b1c7ccbf-919d-462f-8587-dec95a1b11ee
                displayName: Alpha Adventures Corp.
                status: DRAFT
                legalCompanyName: Alpha Adventures Corp.
                entityType: CORPORATION
                verticalType: RETAIL
                country: US
                street: 129 MacDougal Street, Manhattan
                city: New York
                state: New York
                zip: '10012'
                taxCountry: US
                federalTaxId: '123456789'
                website: https://www.alphaadventures.com
                companyEmail: contact@alphaadventures.com
                contactEmail: contact@alphaadventures.com
                contentProvider: false
                channels: []
                attachments: []
                logs: []
                createTime: '2024-01-15T10:00:00Z'
                updateTime: '2024-01-15T10:00:00Z'
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: The project or brand id introduced does not exist.'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'INTERNAL: Internal server error. Typically, a server bug.'
      security:
      - OAuth2:
        - read
      summary: Get a brand by project and brand id.
      tags:
      - brands
    delete:
      x-sinch-stability: preview
      description: The endpoint receives as path param project id and brand id. If the project and brand exist, the brand is deleted.
      operationId: deleteBrand
      parameters:
      - in: path
        description: Customer's project id
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        description: Customer's brand id
        name: brandId
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Brand deleted successfully. No content is returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: The project or brand id introduced does not exist.'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'INTERNAL: Internal server error. Typically, a server bug.'
      security:
      - OAuth2:
        - write
      summary: Delete a brand by project and brand id.
      tags:
      - brands
    patch:
      x-sinch-stability: preview
      description: Patches an existing brand. Fields omitted from the request body are unchanged. Fields set to `null` are treated as an explicit request to clear the field; if a field does not support clearing, the request will fail with 400.
      operationId: patchBrand
      parameters:
      - in: path
        description: Customer's project id
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        description: Brand Id
        name: brandId
        required: true
        schema:
          type: string
      requestBody:
        required: true
        description: Brand object to be updated. The request body can include any subset of the fields required for the brand creation. Only the fields included in the request body with a non-null value will be updated, while the rest of the fields will remain unchanged. This method allows partial updates to the brand properties without the need to provide all the details as in the case of a full update. About attachments, the patch endpoint will not delete any existing attachments, and will include the new ones.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchBrandRequest'
      responses:
        '200':
          description: Brand Content OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Brand'
              example:
                brandId: b1c7ccbf-919d-462f-8587-dec95a1b11ee
                displayName: Alpha Adventures Corp.
                status: DRAFT
                legalCompanyName: Alpha Adventures Corp.
                entityType: CORPORATION
                verticalType: RETAIL
                country: US
                street: 129 MacDougal Street, Manhattan
                city: New York
                state: New York
                zip: '10012'
                taxCountry: US
                federalTaxId: '123456789'
                website: https://www.alphaadventures.com
                companyEmail: contact@alphaadventures.com
                contactEmail: contact@alphaadventures.com
                contentProvider: false
                channels: []
                attachments: []
                logs: []
                createTime: '2024-01-15T10:00:00Z'
                updateTime: '2024-01-15T10:00:00Z'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'BAD_REQUEST: Any validation error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: The project id introduced does not exist.'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'INTERNAL: Internal server error. Typically, a server bug.'
      security:
      - OAuth2:
        - write
      summary: Patches an existing Brand in US with the request data.
      tags:
      - brands
  /v1/projects/{projectId}/us/brands/{brandId}/attachments:
    post:
      x-sinch-stability: preview
      description: Upload an attachment to be linked to a brand.
      operationId: uploadBrandAttachment
      parameters:
      - description: Customer's project id
        in: path
        name: projectId
        required: true
        schema:
          examples:
          - eeew32344324edewe2e3
          type: string
      - in: path
        description: Customer's brand id
        name: brandId
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - file
              - attachmentType
              properties:
                file:
                  type: string
                  format: binary
                  examples:
                  - file.txt
                  description: File content body
                attachmentType:
                  $ref: '#/components/schemas/AttachmentType'
        description: File content body
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
              example:
                attachmentId: d1c7ccbf-919d-462f-8587-dec95a1b11ee
                fileName: company_logo.png
                attachmentType: COMPANY_LOGO
                mimeType: image/png
                uploadStatus: COMPLETED
                createTime: '2024-01-15T10:00:00Z'
                updateTime: '2024-01-15T10:00:00Z'
          description: Attachment uploaded successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: Brand ID not found'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'INTERNAL: Internal server error. Typically, a server bug.'
      security:
      - OAuth2:
        - write
      summary: Uploads an attachment to be linked to a brand. The attachment will be automatically assigned to the new Brand Orders when needed.
      tags:
      - brands
  /v1/projects/{projectId}/us/brands/{brandId}/attachments/{attachmentId}:
    get:
      x-sinch-stability: preview
      description: Download Brand Attachment.
      operationId: downloadBrandAttachment
      parameters:
      - in: path
        description: Customer's project id
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        description: Customer's brand id
        name: brandId
        required: true
        schema:
          type: string
      - in: path
        description: Attachment ID
        name: attachmentId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: Request Successful with binary file returned in octet stream
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: Brand ID/Attachment ID not found'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'INTERNAL: Internal server error. Typically, a server bug.'
      security:
      - OAuth2:
        - read
      summary: Download brand attachment
      tags:
      - brands
    delete:
      x-sinch-stability: preview
      description: Delete a Brand attachment.
      operationId: deleteBrandAttachment
      parameters:
      - in: path
        description: Customer's project id
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        description: Brand ID
        name: brandId
        required: true
        schema:
          type: string
      - in: path
        description: Attachment ID
        name: attachmentId
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Resource successfully deleted. No content is returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: Brand ID/Attachment ID not found'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'INTERNAL: Internal server error. Typically, a server bug.'
      security:
      - OAuth2:
        - write
      summary: Delete Brand Attachment
      tags:
      - brands
  /v1/projects/{projectId}/us/orders:
    get:
      x-sinch-stability: preview
      description: List Brand Orders, according to the filters applied. This endpoint allows filtering over all brands.
      operationId: listBrandOrders
      parameters:
      - in: path
        description: Customer's project id
        name: projectId
        required: true
        schema:
          type: string
      - in: query
        description: The brand Order status to filter the brand orders.
        name: status
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/BrandOrderStatus'
      - in: query
        name: metadataName
        description: Filter brand orders by brand registration process metadata name.
        schema:
          $ref: '#/components/schemas/BrandOrderMetadata'
      - in: query
        name: sort
        description: 'Sorting of the results using SQL-like syntax: comma-separated field names with an optional '':desc'' or '':asc'' suffix. Fields that support sorting are ''metadataName'', ''status'', ''createTime'', ''updateTime''. Defaults to ascending order when no suffix is provided.'
        schema:
          type: string
        example: metadataName,status:desc
      - in: query
        name: pageSize
        description: Size of the page to be returned. Default is 20. Maximum is 100.
        schema:
          format: int32
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        example: 20
      - in: query
        name: pageToken
        description: Page token to request subsequent pages when using pagination. This should be the value generated by the system in a previous list request.
        schema:
          type: string
      responses:
        '200':
          description: OK
          headers:
            Link:
              description: Pagination links per RFC 8288. A `rel="next"` link is present when there are more results. Absence of a `next` link indicates the last page.
              schema:
                type: string
                example: <https://compliance.api.sinch.com/v1/projects/{projectId}/us/orders?pageToken=abc123>; rel="next"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListBrandOrderResponse'
              example:
                orders:
                - brandOrderId: '212421442412'
                  brandId: b1c7ccbf-919d-462f-8587-dec95a1b11ee
                  status: NEW
                  metadataName: US_10DLC_TCR_PRIVATE_BRAND_REGISTRATION
                  createTime: '2024-01-15T10:00:00Z'
                  updateTime: '2024-01-15T10:00:00Z'
                links:
                  next: https://compliance.api.sinch.com/v1/projects/proj-123/us/orders?pageToken=eyJsYXN0SWQiOiIyMTI0MjEifQ
                meta:
                  totalCount: 15
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: The project id introduced does not exist.'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'INTERNAL: Internal server error. Typically, a server bug.'
      security:
      - OAuth2:
        - read
      summary: List Brand Orders according to the filters applied.
      tags:
      - orders
  /v1/projects/{projectId}/us/brands/{brandId}/orders:
    post:
      x-sinch-stability: preview
      description: 'Creates a new Brand Order for the specified brand ID and process selected.


        Note: The `Idempotency-Key` header is not supported in this version. Submitting the same request twice may create duplicate orders. Callers are responsible for deduplicating on their end. Idempotency-Key support will be added when this operation reaches Stable stability.'
      operationId: createBrandOrder
      parameters:
      - in: path
        description: Customer's project id
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        description: Brand ID reference
        name: brandId
        required: true
        schema:
          type: string
      requestBody:
        required: true
        description: Brand Order object to be created. The request body must include all the required fields for the brand order creation, as well as the optional field callbackUrl that indicates the URL that will receive callbacks with updates on the brand order status. Depending on the process selected for the brand order, different fields will be required and different validations will be applied. Please check the Brand Order object definition for more details on the required fields depending on the process.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrandOrderRequest'
      responses:
        '201':
          description: Brand Order Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandOrder'
              example:
                brandOrderId: '212421442412'
                brandId: b1c7ccbf-919d-462f-8587-dec95a1b11ee
                status: NEW
                metadataName: US_10DLC_TCR_PRIVATE_BRAND_REGISTRATION
                logs: []
                channels: []
                thirdPartyMetadata: []
                pricing:
                  amount: '5.00'
                  currencyCode: USD
                callbackUrl: https://example.com/callback
                createTime: '2024-01-15T10:00:00Z'
                updateTime: '2024-01-15T10:00:00Z'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'BAD_REQUEST: Any validation error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description: 'NOT_FOUND: The project id introduced does not exist.'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/RestError'
          description

# --- truncated at 32 KB (126 KB total) ---
# Full source: https://artifacts.apis.io/sinch/openapi/sinch-compliance-brands-api-openapi.yml