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

# Trigger Brand SMS OTP

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

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

> 78 revisions in range; 1 not diffed.

- **2026-09-16** `a6a61a29ecdd` — 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
- **2026-08-17** `1571b0380bd7` — 1 breaking, 1 warning
  - the `errors/items/code` response's property type changed from `integer` to `string`, and format from `int32` to no format for status `4XX`
  - removed the optional property `errors/items/meta` from the response with the `4XX` status
- **2026-08-04** `8f5f4e537994` — 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

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

---

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