> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Brand SMS OTP Status by Brand ID

> Query the status of an SMS OTP (One-Time Password) for Sole Proprietor brand verification using the Brand ID.

This endpoint allows you to check the delivery and verification status of an OTP sent during the Sole Proprietor brand verification process by looking it up with the brand ID.

The response includes delivery status, verification dates, and detailed delivery information.

**Note:** This is an alternative to the `/10dlc/brand/smsOtp/{referenceId}` endpoint when you have the Brand ID but not the reference ID.



## OpenAPI

````yaml /openapi/source/external/messaging/10dlc.json get /10dlc/brand/{brandId}/smsOtp
openapi: 3.1.0
info:
  title: Telnyx 10DLC API
  description: >-
    # Overview

    The Telnyx 10DLC API facilitates interaction with The Campaign Registry
    (TCR), allowing the creation and registration of brands and campaigns with
    TCR.


    # API Interaction

    ## Request Authorization

    Telnyx 10DLC API endpoints require authorization for each request. To
    properly authorize requests, send an Authorization header with `Bearer `
    plus your Telnyx API key as the value. See the following curl request for
    example usage:


    ```sh

    curl --location --request GET
    'https://api.telnyx.com/10dlc/example/endpoint' \ 

    --header 'Authorization: Bearer YOUR_API_KEY_GOES_HERE' \ 

    --data-raw ''

    ```


    You can obtain your API key by logging into your <a
    href="https://portal.telnyx.com">Telnyx portal account</a> and clicking the
    "API Keys" tab. From there, you can copy your desired API key for use in
    your requests, similar to the above example curl request.


    ## The 10DLC Work Flow

    1. Create a brand


    2. Apply for brand vetting


    3. Create a campaign or campaigns (associated with the created brand)


    4. Assign a phone number or phone numbers to the created campaign

    ## 10DLC Costs

    **Brands:**

    1. Brand registration: $4 one time charge


    2.  Brand vetting: $40 one time charge


    **Campaigns:**


    1. Campaign registration T-Mobile: $50 one time charge


    2. Campaign creation: first 3 month's charge upfront. After the first 3
    months, this charge will change to a once a month recurring charge (see
    charge values below, based on campaign use case)

       a. Charity Campaign Use Case: $15 upfront (first 3 months), and $5 month to month after

       b. Low Mixed Volume Campaign Use Case: $6 upfront (first 3 months), and $2 month to month after

       c. Any Other Campaign Use Case: $30 upfront (first 3 months), and $10 month to month after
    3. Phone number to campaign assignment: $0.03 one time charge for each
    assignment


    ## Frequently Asked Questions

    For frequently asked questions, visit <a
    href="https://support.telnyx.com/en/articles/3679260-frequently-asked-questions-about-10dlc">Telnyx
    10DLC FAQs</a>.
  version: '0.1'
  x-latency-category: responsive
servers:
  - url: https://api.telnyx.com/v2
    description: Version 2.0.0 of the Telnyx API
security:
  - bearerAuth: []
tags:
  - name: Brands
    description: Brand operations
  - name: Campaign
    description: Campaign operations
  - name: Phone Number Campaigns
    description: Phone number campaign assignment
  - name: Bulk Small Business
    description: >-
      Endpoints for creating and checking the status of campaigns, brands, and
      phone numbers
  - name: Bulk Phone Number Campaigns
    description: Phone number campaign bulk assignment
  - name: Callbacks
    description: Callbacks
paths:
  /10dlc/brand/{brandId}/smsOtp:
    get:
      tags:
        - Brands
      summary: Get Brand SMS OTP Status by Brand ID
      description: >-
        Query the status of an SMS OTP (One-Time Password) for Sole Proprietor
        brand verification using the Brand ID.


        This endpoint allows you to check the delivery and verification status
        of an OTP sent during the Sole Proprietor brand verification process by
        looking it up with the brand ID.


        The response includes delivery status, verification dates, and detailed
        delivery information.


        **Note:** This is an alternative to the
        `/10dlc/brand/smsOtp/{referenceId}` endpoint when you have the Brand ID
        but not the reference ID.
      operationId: GetBrandSmsOtpStatusByBrandId
      parameters:
        - required: true
          schema:
            title: Brandid
            type: string
            example: 4b20019b-043a-78f8-0657-b3be3f4b4002
          name: brandId
          in: path
          description: The Brand ID for which to query OTP status
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandSmsOtpStatus'
        '404':
          description: OTP status not found for this brand
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        4XX:
          $ref: '#/components/responses/GenericErrorResponse'
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import Telnyx from 'telnyx';


            const client = new Telnyx({
              apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
            });


            const response = await
            client.messaging10dlc.brand.retrieveSMSOtpStatus(
              '4b20019b-043a-78f8-0657-b3be3f4b4002',
            );


            console.log(response.brandId);
        - lang: Python
          source: |
            import os
            from telnyx import Telnyx

            client = Telnyx(
                api_key=os.environ.get("TELNYX_API_KEY"),  # This is the default and can be omitted
            )
            response = client.messaging_10dlc.brand.retrieve_sms_otp_status(
                "4b20019b-043a-78f8-0657-b3be3f4b4002",
            )
            print(response.brand_id)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/team-telnyx/telnyx-go\"\n\t\"github.com/team-telnyx/telnyx-go/option\"\n)\n\nfunc main() {\n\tclient := telnyx.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tresponse, err := client.Messaging10dlc.Brand.GetSMSOtpStatus(context.TODO(), \"4b20019b-043a-78f8-0657-b3be3f4b4002\")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", response.BrandID)\n}\n"
        - lang: Java
          source: >-
            package com.telnyx.sdk.example;


            import com.telnyx.sdk.client.TelnyxClient;

            import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;

            import
            com.telnyx.sdk.models.messaging10dlc.brand.BrandRetrieveSmsOtpStatusParams;

            import
            com.telnyx.sdk.models.messaging10dlc.brand.BrandRetrieveSmsOtpStatusResponse;


            public final class Main {
                private Main() {}

                public static void main(String[] args) {
                    TelnyxClient client = TelnyxOkHttpClient.fromEnv();

                    BrandRetrieveSmsOtpStatusResponse response = client.messaging10dlc().brand().retrieveSmsOtpStatus("4b20019b-043a-78f8-0657-b3be3f4b4002");
                }
            }
        - lang: Ruby
          source: >-
            require "telnyx"


            telnyx = Telnyx::Client.new(api_key: "My API Key")


            response =
            telnyx.messaging_10dlc.brand.retrieve_sms_otp_status("4b20019b-043a-78f8-0657-b3be3f4b4002")


            puts(response)
        - lang: PHP
          source: >-
            <?php


            require_once dirname(__DIR__) . '/vendor/autoload.php';


            use Telnyx\Client;

            use Telnyx\Core\Exceptions\APIException;


            $client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API
            Key');


            try {
              $response = $client->messaging10dlc->brand->retrieveSMSOtpStatus(
                '4b20019b-043a-78f8-0657-b3be3f4b4002'
              );

              var_dump($response);
            } catch (APIException $e) {
              echo $e->getMessage();
            }
        - lang: CLI
          source: |-
            telnyx messaging-10dlc:brand retrieve-sms-otp-status \
              --api-key 'My API Key' \
              --brand-id 4b20019b-043a-78f8-0657-b3be3f4b4002
components:
  schemas:
    BrandSmsOtpStatus:
      title: BrandSmsOtpStatus
      required:
        - brandId
        - referenceId
        - mobilePhone
        - requestDate
        - deliveryStatus
      type: object
      properties:
        brandId:
          title: Brandid
          type: string
          description: The Brand ID associated with this OTP request
          example: B123ABC
        referenceId:
          title: Referenceid
          type: string
          description: The reference ID for this OTP request, used for status queries
          example: OTP4B2001
        mobilePhone:
          title: Mobilephone
          type: string
          description: The mobile phone number where the OTP was sent, in E.164 format
          example: '+11234567890'
        requestDate:
          title: Requestdate
          type: string
          format: date-time
          description: The timestamp when the OTP request was initiated
          example: '2024-12-03T17:12:33.560000+00:00'
        verifyDate:
          title: Verifydate
          type: string
          format: date-time
          description: The timestamp when the OTP was successfully verified (if applicable)
          example: '2024-12-03T17:12:33.560000+00:00'
        deliveryStatus:
          title: Deliverystatus
          type: string
          description: >-
            The current delivery status of the OTP SMS message. Common values
            include: `DELIVERED_HANDSET`, `PENDING`, `FAILED`, `EXPIRED`
          example: DELIVERED_HANDSET
        deliveryStatusDate:
          title: Deliverystatusdate
          type: string
          format: date-time
          description: The timestamp when the delivery status was last updated
          example: '2024-12-03T17:12:33.560000+00:00'
        deliveryStatusDetails:
          title: Deliverystatusdetails
          type: string
          description: Additional details about the delivery status
          example: Delivered to handset
      description: >-
        Status information for an SMS OTP sent during Sole Proprietor brand
        verification
    HTTPValidationError:
      title: HTTPValidationError
      type: object
      properties:
        detail:
          title: Detail
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
    ValidationError:
      title: ValidationError
      required:
        - loc
        - msg
        - type
      type: object
      properties:
        loc:
          title: Location
          type: array
          items:
            anyOf:
              - type: string
              - type: integer
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
    Errors:
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      type: object
    Error:
      required:
        - code
        - title
      type: object
      properties:
        code:
          type: string
        title:
          type: string
        detail:
          type: string
        source:
          type: object
          properties:
            pointer:
              description: JSON pointer (RFC6901) to the offending entity.
              type: string
            parameter:
              description: Indicates which query parameter caused the error.
              type: string
  responses:
    GenericErrorResponse:
      description: Generic response error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          example:
            errors:
              - code: string
                title: string
                detail: string
                source:
                  pointer: string
                  parameter: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````