---
title: "Trigger Brand SMS OTP"
method: POST
path: "/10dlc/brand/{brandId}/smsOtp"
tags: ["Brands"]
---

# Trigger Brand SMS OTP

`POST /10dlc/brand/{brandId}/smsOtp`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/10dlc/brand/{brandId}/smsOtp`
- Auth: HTTP bearer

Trigger or re-trigger an SMS OTP (One-Time Password) for Sole Proprietor brand verification.

**Important Notes:**

* Only allowed for Sole Proprietor (`SOLE_PROPRIETOR`) brands
* Triggers generation of a one-time password sent to the `mobilePhone` number in the brand's profile
* Campaigns cannot be created until OTP verification is complete
* US/CA numbers only for real OTPs; mock brands can use non-US/CA numbers for testing
* Returns a `referenceId` that can be used to check OTP status via the GET `/10dlc/brand/smsOtp/{referenceId}` endpoint

**Use Cases:**

* Initial OTP trigger after Sole Proprietor brand creation
* Re-triggering OTP if the user didn't receive or needs a new code

## Path parameters

- `brandId` string, required

## Request body

- TriggerBrandSmsOtpRequest: Request body for triggering a Brand SMS OTP
  - `pinSms` string, required: SMS message template to send the OTP. Must include `@OTP_PIN@` placeholder which will be replaced with the actual PIN
  - `successSms` string, required: SMS message to send upon successful OTP verification

## Response `200`

Successful Response

- TriggerBrandSmsOtpResponse: Response after successfully triggering a Brand SMS OTP
  - `brandId` string, required: The Brand ID for which the OTP was triggered
  - `referenceId` string, required: The reference ID that can be used to check OTP status

## Other responses

- `400`: Bad Request - Brand is not a Sole Proprietor or invalid mobile phone number
- `422`: Validation Error
- `4XX`: Generic response error

## Changes

- **2026-10-21** `67df31283a8a`: 1 breaking, 1 info
  - the `errors/items/code` response's property type changed from `integer` to `string`, and format from `int32` to no format for status `4XX`
  - added the optional property `errors/items/description` to the response with the `4XX` status
- **2026-10-15** `a72569d69430`: 1 breaking, 1 info
  - the `errors/items/code` response's property type changed from `string` to `integer`, and format from no format to `int32` for status `4XX`
  - added the optional property `errors/items/meta` to the response with the `4XX` status

[Operation history](https://skmtc.dev/team-telnyx/apis/telnyx-api/changes/10dlc/brand/:brandId/smsOtp/post.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api.md) - [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api/llms.txt) - [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api/revisions/0f17b8167873?raw)
