> ## Documentation Index
> Fetch the complete documentation index at: https://www.vobiz.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a brand

> Replaces the brand with the body you send and pushes the change to the US 10DLC registry. This is a full replacement, not a patch: send the same shape as create, including `name` and `brandType`, and any field you leave out is cleared.



## OpenAPI

````yaml openapi-sms.yaml PUT /10dlc/brands/{id}
openapi: 3.0.3
info:
  title: Vobiz Messaging API
  description: >
    Send and receive SMS, MMS and RCS messages, buy messaging numbers, register
    for

    US 10DLC and toll-free, run broadcasts, manage conversations, opt-outs and
    webhooks.


    **Base URL:** `https://api.vobiz.ai/api/v1/sms`


    **Authentication:** every request needs the `X-Auth-ID` and `X-Auth-Token`
    headers.

    The account is taken from your credentials; you never put an account ID in a
    path or body.

    Field names in this API are camelCase.
  version: '1.0'
  contact:
    email: support@vobiz.ai
    url: https://vobiz.ai
servers:
  - url: https://api.vobiz.ai/api/v1/sms
    description: Production
security:
  - AuthID: []
    AuthToken: []
tags:
  - name: Messages
    description: Send messages and inspect their delivery state.
  - name: Numbers
    description: >-
      Messaging-capable numbers on your account, inventory search, purchase and
      release.
  - name: Coverage
    description: Where you can send, per country.
  - name: Conversations
    description: Two-way threads between one of your numbers and a contact.
  - name: Opt-outs
    description: Numbers that must not receive messages on a channel.
  - name: Webhooks
    description: Subscriptions that deliver message and broadcast events to your server.
  - name: Broadcasts
    description: Bulk sends from an uploaded recipient list.
  - name: RCS Senders
    description: RCS sender (agent) identities and their message templates.
  - name: 10DLC Brands
    description: US 10DLC brand registration.
  - name: 10DLC Campaigns
    description: US 10DLC campaigns, toll-free verification and supporting documents.
paths:
  /10dlc/brands/{id}:
    put:
      tags:
        - 10DLC Brands
      summary: Update a brand
      description: >-
        Replaces the brand with the body you send and pushes the change to the
        US 10DLC registry. This is a full replacement, not a patch: send the
        same shape as create, including `name` and `brandType`, and any field
        you leave out is cleared. `referenceId` is ignored on update. Use it to
        correct a brand before registering it, or to fix the points listed in
        `rejectionReasons` before resubmitting.
      operationId: update-brand
      parameters:
        - name: id
          in: path
          required: true
          description: >-
            Brand ID (UUID) returned by `POST /10dlc/brands`. An unknown ID, an
            ID from another account, or a value that is not a UUID returns `404`
            with `{"error":"brand not found"}`.
          schema:
            type: string
            format: uuid
          example: 8e6c4a2f-0d9b-4b7a-a5c3-1e9f7d5b3a10
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBrandRequest'
            example:
              name: Example Corp
              legalName: Example Corporation Inc.
              brandType: TENDLC_PRIVATE_COMPANY
              legalEntityType: PRIVATE_COMPANY
              vertical: TECHNOLOGY
              website: https://example.com
              supportEmail: help@example.com
              supportPhone: '+14155550100'
              taxId: 12-3456789
              taxIdIssuingCountry: US
              countryCode: US
              address:
                street: 100 Example Street
                city: San Francisco
                state: CA
                zipCode: '94105'
              businessContactFirstName: Alex
              businessContactLastName: Doe
              businessContactEmail: alex.doe@example.com
      responses:
        '200':
          description: The updated brand.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Brand'
              example:
                id: 5f1c3a2e-7b4d-4e8f-9a0b-1c2d3e4f5a60
                accountId: MA_XXXXXXXX
                name: Example Corp
                legalName: Example Corporation Inc.
                brandType: TENDLC_PRIVATE_COMPANY
                stage: DRAFT
                website: https://example.com
                supportEmail: help@example.com
                supportPhone: '+14155550100'
                vertical: TECHNOLOGY
                taxId: 12-3456789
                taxIdIssuingCountry: US
                countryCode: US
                address:
                  street: 100 Example Street
                  city: San Francisco
                  state: CA
                  zipCode: '94105'
                businessContactFirstName: Alex
                businessContactLastName: Doe
                businessContactEmail: alex.doe@example.com
                legalEntityType: PRIVATE_COMPANY
                createdAt: '2026-10-12T10:30:00Z'
                updatedAt: '2026-10-12T11:02:45Z'
        '400':
          description: Invalid body or a missing required field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: 'invalid request: name is required'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: The brand does not exist on your account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: brand not found
        '422':
          description: >-
            The US 10DLC registry rejected the update. `error` carries the
            registry's description.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenDLCError'
              example:
                error: >-
                  registration provider rejected the request: brand is under
                  review; wait for the registrar's decision
                providerError: 'registration error 403 (HTTP 403): brand is under review'
        '500':
          $ref: '#/components/responses/ServerError'
        '502':
          description: The US 10DLC registry did not answer. Retry the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenDLCError'
              example:
                error: registration provider unavailable
                providerError: 'registration error 500 (HTTP 500): upstream timeout'
      x-codeSamples:
        - lang: typescript
          label: Node SDK
          source: >
            import { VobizClient } from "@vobiz/sdk";


            const client = new VobizClient({ apiKey: "MA_XXXXXXXX", authToken:
            "YOUR_AUTH_TOKEN" });


            await client.sms.brands.updateBrand({
                id: "8e6c4a2f-0d9b-4b7a-a5c3-1e9f7d5b3a10",
                body: {
                    name: "Example Corp",
                    legalName: "Example Corporation Inc.",
                    brandType: "TENDLC_PRIVATE_COMPANY",
                    website: "https://example.com",
                    supportEmail: "help@example.com",
                    supportPhone: "+14155550100",
                    vertical: "TECHNOLOGY",
                    taxId: "12-3456789",
                    taxIdIssuingCountry: "US",
                    countryCode: "US",
                    address: {
                        street: "100 Example Street",
                        city: "San Francisco",
                        state: "CA",
                        zipCode: "94105"
                    },
                    businessContactFirstName: "Alex",
                    businessContactLastName: "Doe",
                    businessContactEmail: "alex.doe@example.com",
                    legalEntityType: "PRIVATE_COMPANY"
                }
            })
        - lang: python
          label: Python SDK
          source: |
            from vobiz import Vobiz

            client = Vobiz(api_key="MA_XXXXXXXX", auth_token="YOUR_AUTH_TOKEN")

            from vobiz.sms import BrandAddress

            client.sms.brands.update_brand(
                id="8e6c4a2f-0d9b-4b7a-a5c3-1e9f7d5b3a10",
                name="Example Corp",
                legal_name="Example Corporation Inc.",
                brand_type="TENDLC_PRIVATE_COMPANY",
                website="https://example.com",
                support_email="help@example.com",
                support_phone="+14155550100",
                vertical="TECHNOLOGY",
                tax_id="12-3456789",
                tax_id_issuing_country="US",
                country_code="US",
                address=BrandAddress(
                    street="100 Example Street",
                    city="San Francisco",
                    state="CA",
                    zip_code="94105",
                ),
                business_contact_first_name="Alex",
                business_contact_last_name="Doe",
                business_contact_email="alex.doe@example.com",
                legal_entity_type="PRIVATE_COMPANY",
            )
        - lang: go
          label: Go SDK
          source: |
            import (
                "context"

                vobiz "github.com/vobiz-ai/Vobiz-Go-SDK"
                "github.com/vobiz-ai/Vobiz-Go-SDK/client"
                "github.com/vobiz-ai/Vobiz-Go-SDK/option"
                "github.com/vobiz-ai/Vobiz-Go-SDK/sms"
            )

            c := client.NewClient(
                option.WithAPIKey("MA_XXXXXXXX"),
                option.WithAuthToken("YOUR_AUTH_TOKEN"),
            )

            request := &sms.UpdateBrandRequest{
                    ID: "8e6c4a2f-0d9b-4b7a-a5c3-1e9f7d5b3a10",
                    Body: &sms.CreateBrandRequest{
                        Name: "Example Corp",
                        LegalName: vobiz.String(
                            "Example Corporation Inc.",
                        ),
                        BrandType: sms.CreateBrandRequestBrandTypeTendlcPrivateCompany,
                        Website: vobiz.String(
                            "https://example.com",
                        ),
                        SupportEmail: vobiz.String(
                            "help@example.com",
                        ),
                        SupportPhone: vobiz.String(
                            "+14155550100",
                        ),
                        Vertical: vobiz.String(
                            "TECHNOLOGY",
                        ),
                        TaxID: vobiz.String(
                            "12-3456789",
                        ),
                        TaxIDIssuingCountry: vobiz.String(
                            "US",
                        ),
                        CountryCode: vobiz.String(
                            "US",
                        ),
                        Address: &sms.BrandAddress{
                            Street: vobiz.String(
                                "100 Example Street",
                            ),
                            City: vobiz.String(
                                "San Francisco",
                            ),
                            State: vobiz.String(
                                "CA",
                            ),
                            ZipCode: vobiz.String(
                                "94105",
                            ),
                        },
                        BusinessContactFirstName: vobiz.String(
                            "Alex",
                        ),
                        BusinessContactLastName: vobiz.String(
                            "Doe",
                        ),
                        BusinessContactEmail: vobiz.String(
                            "alex.doe@example.com",
                        ),
                        LegalEntityType: vobiz.String(
                            "PRIVATE_COMPANY",
                        ),
                    },
                }
            c.Sms.Brands.UpdateBrand(
                    context.TODO(),
                    request,
                )
        - lang: java
          label: Java SDK
          source: |
            import com.vobiz.api.VobizApiClient;

            VobizApiClient client = VobizApiClient
                .builder()
                .apiKey("MA_XXXXXXXX")
                .authToken("YOUR_AUTH_TOKEN")
                .build();

            client.sms().brands().updateBrand(
                "8e6c4a2f-0d9b-4b7a-a5c3-1e9f7d5b3a10",
                UpdateBrandRequest
                    .builder()
                    .body(
                        CreateBrandRequest
                            .builder()
                            .name("Example Corp")
                            .brandType(CreateBrandRequestBrandType.TENDLC_PRIVATE_COMPANY)
                            .legalName("Example Corporation Inc.")
                            .website("https://example.com")
                            .supportEmail("help@example.com")
                            .supportPhone("+14155550100")
                            .vertical("TECHNOLOGY")
                            .taxId("12-3456789")
                            .taxIdIssuingCountry("US")
                            .countryCode("US")
                            .address(
                                BrandAddress
                                    .builder()
                                    .street("100 Example Street")
                                    .city("San Francisco")
                                    .state("CA")
                                    .zipCode("94105")
                                    .build()
                            )
                            .businessContactFirstName("Alex")
                            .businessContactLastName("Doe")
                            .businessContactEmail("alex.doe@example.com")
                            .legalEntityType("PRIVATE_COMPANY")
                            .build()
                    )
                    .build()
            );
        - lang: ruby
          label: Ruby SDK
          source: >
            require 'vobiz'


            client = Vobiz::Client.new(api_key: 'MA_XXXXXXXX', auth_token:
            'YOUR_AUTH_TOKEN')


            client.sms.brands.update_brand(
              id: "8e6c4a2f-0d9b-4b7a-a5c3-1e9f7d5b3a10",
              name: "Example Corp",
              legal_name: "Example Corporation Inc.",
              brand_type: "TENDLC_PRIVATE_COMPANY",
              website: "https://example.com",
              support_email: "help@example.com",
              support_phone: "+14155550100",
              vertical: "TECHNOLOGY",
              tax_id: "12-3456789",
              tax_id_issuing_country: "US",
              country_code: "US",
              address: {
                street: "100 Example Street",
                city: "San Francisco",
                state: "CA",
                zip_code: "94105"
              },
              business_contact_first_name: "Alex",
              business_contact_last_name: "Doe",
              business_contact_email: "alex.doe@example.com",
              legal_entity_type: "PRIVATE_COMPANY"
            )
        - lang: csharp
          label: C# SDK
          source: |
            using Vobiz;
            using Vobiz.Sms;

            var client = new VobizApiClient("YOUR_AUTH_TOKEN", "MA_XXXXXXXX");

            await client.Sms.Brands.UpdateBrandAsync(
                new UpdateBrandRequest
                {
                    Id = "8e6c4a2f-0d9b-4b7a-a5c3-1e9f7d5b3a10",
                    Body = new CreateBrandRequest
                    {
                        Name = "Example Corp",
                        LegalName = "Example Corporation Inc.",
                        BrandType = CreateBrandRequestBrandType.TendlcPrivateCompany,
                        Website = "https://example.com",
                        SupportEmail = "help@example.com",
                        SupportPhone = "+14155550100",
                        Vertical = "TECHNOLOGY",
                        TaxId = "12-3456789",
                        TaxIdIssuingCountry = "US",
                        CountryCode = "US",
                        Address = new BrandAddress
                        {
                            Street = "100 Example Street",
                            City = "San Francisco",
                            State = "CA",
                            ZipCode = "94105",
                        },
                        BusinessContactFirstName = "Alex",
                        BusinessContactLastName = "Doe",
                        BusinessContactEmail = "alex.doe@example.com",
                        LegalEntityType = "PRIVATE_COMPANY",
                    },
                }
            );
        - lang: php
          label: PHP SDK
          source: >
            <?php


            require 'vendor/autoload.php';


            use Vobiz\VobizClient;


            $client = new VobizClient(apiKey: 'MA_XXXXXXXX', authToken:
            'YOUR_AUTH_TOKEN');


            $client->sms->brands->updateBrand(
                '8e6c4a2f-0d9b-4b7a-a5c3-1e9f7d5b3a10',
                new UpdateBrandRequest([
                    'body' => new CreateBrandRequest([
                        'name' => 'Example Corp',
                        'legalName' => 'Example Corporation Inc.',
                        'brandType' => CreateBrandRequestBrandType::TendlcPrivateCompany->value,
                        'website' => 'https://example.com',
                        'supportEmail' => 'help@example.com',
                        'supportPhone' => '+14155550100',
                        'vertical' => 'TECHNOLOGY',
                        'taxId' => '12-3456789',
                        'taxIdIssuingCountry' => 'US',
                        'countryCode' => 'US',
                        'address' => new BrandAddress([
                            'street' => '100 Example Street',
                            'city' => 'San Francisco',
                            'state' => 'CA',
                            'zipCode' => '94105',
                        ]),
                        'businessContactFirstName' => 'Alex',
                        'businessContactLastName' => 'Doe',
                        'businessContactEmail' => 'alex.doe@example.com',
                        'legalEntityType' => 'PRIVATE_COMPANY',
                    ]),
                ]),
            );
components:
  schemas:
    CreateBrandRequest:
      type: object
      description: >-
        The business that will send messages. `name` and `brandType` are
        required; every other value is passed to the US 10DLC registry as given,
        so use the values the registry accepts (listed per field) and match your
        official records.
      required:
        - name
        - brandType
      properties:
        referenceId:
          type: string
          description: >-
            Your own idempotency reference, any string unique per brand on your
            account. Repeating a create with the same value reconciles to the
            same brand instead of creating a second one. Ignored on update.
          example: brand-example-corp-01
        name:
          type: string
          description: >-
            Display name of the brand, usually the name customers know you by.
            Required.
          example: Example Corp
        legalName:
          type: string
          description: >-
            Registered legal name of the business, exactly as it appears on tax
            records.
          example: Example Corporation Inc.
        brandType:
          type: string
          enum:
            - TENDLC_PRIVATE_COMPANY
            - TENDLC_PUBLIC_COMPANY
            - TENDLC_NON_PROFIT
            - TENDLC_GOVERNMENT
            - TOLL_FREE_NUMBER
          description: >-
            Kind of business. Required. One of `TENDLC_PRIVATE_COMPANY`
            (privately held business), `TENDLC_PUBLIC_COMPANY` (publicly traded
            company; also goes through brand authentication),
            `TENDLC_NON_PROFIT` (registered non-profit), `TENDLC_GOVERNMENT`
            (government body) or `TOLL_FREE_NUMBER` (a business registered for
            toll-free messaging).
        website:
          type: string
          format: uri
          example: https://example.com
          description: >-
            Business website. It must be live, match the business and show your
            privacy policy.
        supportEmail:
          type: string
          format: email
          example: support@example.com
          description: >-
            Support email address for the business, ideally on the website's
            domain.
        supportPhone:
          type: string
          description: >-
            Support phone number for the business, in E.164 format (for example
            `+14155550100`).
          example: '+14155550100'
        vertical:
          type: string
          description: >-
            Industry of the business. Values accepted by the US 10DLC registry
            include `AGRICULTURE`, `COMMUNICATION`, `CONSTRUCTION`, `EDUCATION`,
            `ENERGY`, `ENTERTAINMENT`, `FINANCIAL`, `GAMBLING`, `GOVERNMENT`,
            `HEALTHCARE`, `HOSPITALITY`, `HUMAN_RESOURCES`,
            `INFORMATION_TECHNOLOGY_SERVICES`, `INSURANCE`, `LEGAL`,
            `MANUFACTURING`, `NGO`, `POLITICAL`, `POSTAL`, `PROFESSIONAL`,
            `REAL_ESTATE`, `RETAIL`, `TECHNOLOGY`, `TRANSPORTATION`.
          example: TECHNOLOGY
        taxId:
          type: string
          description: >-
            Tax identifier of the business, for example the 9-digit US EIN. It
            must match `legalName` in the issuing country's records.
          example: 12-3456789
        taxIdIssuingCountry:
          type: string
          description: >-
            ISO 3166-1 alpha-2 code of the country that issued `taxId`, for
            example `US`.
          example: US
        countryCode:
          type: string
          description: >-
            ISO 3166-1 alpha-2 code of the country where the business is
            registered, for example `US`.
          example: US
        address:
          allOf:
            - $ref: '#/components/schemas/BrandAddress'
          description: >-
            Postal address of the business as it appears on its registration
            records.
        alternateBusinessId:
          type: object
          description: >-
            Alternate business identifier (for example a DUNS or LEI record),
            passed to the registry as given. Send it only when the registry asks
            for one.
          additionalProperties: true
          example:
            type: DUNS
            id: '123456789'
        businessContactFirstName:
          type: string
          example: Alex
          description: First name of the person the registry can contact about the brand.
        businessContactLastName:
          type: string
          example: Doe
          description: Last name of the person the registry can contact about the brand.
        businessContactEmail:
          type: string
          format: email
          description: >-
            Email address of the business contact. The registry sends
            brand-authentication and 2FA requests for `TENDLC_PUBLIC_COMPANY`
            brands here.
          example: alex.doe@example.com
        businessDba:
          type: string
          description: >-
            Trading name ("doing business as") when it differs from `legalName`.
            Note the casing `businessDba` on brand requests.
          example: Example
        legalEntityType:
          type: string
          description: >-
            Legal form of the business. Values accepted by the US 10DLC
            registry: `PRIVATE_COMPANY`, `PUBLIC_COMPANY`, `NON_PROFIT`,
            `GOVERNMENT`, `SOLE_PROPRIETOR`.
          example: PRIVATE_COMPANY
        businessRegistrationType:
          type: string
          description: >-
            Type of registration number for a business outside the US. Values
            accepted by the US 10DLC registry: `VAT`, `CBN`,
            `PROVINCIAL_NUMBER`, `ABN`, `SIREN`, `NZBN`, `CIF`, `CNPJ`, `OTHER`.
        taxExemptStatus:
          type: string
          description: Tax-exempt status of a `TENDLC_NON_PROFIT` brand.
          example: 501c3
        stockExchange:
          type: string
          description: >-
            Exchange where the company is listed, for example `NASDAQ` or
            `NYSE`. `TENDLC_PUBLIC_COMPANY` brands only.
          example: NASDAQ
        stockSymbol:
          type: string
          description: >-
            Ticker symbol on `stockExchange`. `TENDLC_PUBLIC_COMPANY` brands
            only.
          example: EXMP
    Brand:
      type: object
      description: >-
        A brand on your account: the business behind your 10DLC traffic and its
        state at the US 10DLC registry. Optional fields are omitted when empty,
        and registry state is refreshed when you retrieve the brand.
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Brand ID (UUID) on your account. Use it in every
            `/10dlc/brands/{id}` path and as `brandId` when you create a
            campaign.
          example: 5f1c3a2e-7b4d-4e8f-9a0b-1c2d3e4f5a60
        accountId:
          type: string
          example: MA_XXXXXXXX
          description: >-
            Your Vobiz account ID (`MA_...`). Always the account whose
            credentials made the request.
        name:
          type: string
          example: Example Corp
          description: Display name you gave the brand when you created it.
        legalName:
          type: string
          example: Example Corporation Inc.
          description: Registered legal name of the business. Omitted when not set.
        brandType:
          type: string
          enum:
            - TENDLC_PRIVATE_COMPANY
            - TENDLC_PUBLIC_COMPANY
            - TENDLC_NON_PROFIT
            - TENDLC_GOVERNMENT
            - TOLL_FREE_NUMBER
          description: >-
            Kind of business behind the brand: `TENDLC_PRIVATE_COMPANY`
            (privately held business), `TENDLC_PUBLIC_COMPANY` (publicly traded
            company; also goes through brand authentication),
            `TENDLC_NON_PROFIT` (registered non-profit), `TENDLC_GOVERNMENT`
            (government body) or `TOLL_FREE_NUMBER` (a business registered for
            toll-free messaging).
        stage:
          type: string
          enum:
            - DRAFT
            - SUBMITTED
          description: >-
            Where the brand is in your workflow: `DRAFT` until you call `POST
            /10dlc/brands/{id}/register`, then `SUBMITTED`.
        registrationStatus:
          type: string
          enum:
            - ACTIVE
            - PENDING
            - PENDING_2FA
            - PENDING_APPEAL
            - REJECTED
          description: >-
            The registrar's decision, present once the brand is submitted.
            `PENDING` while under review, `PENDING_2FA` while a public company's
            business contact completes brand authentication, `PENDING_APPEAL`
            while an appeal is reviewed, `ACTIVE` when approved and `REJECTED`
            when declined (see `rejectionReasons`).
        brandIdentityStatus:
          type: string
          description: >-
            Identity verification result from the registry, for example
            `VERIFIED`, `UNVERIFIED` or `VETTED_VERIFIED`. Omitted until the
            registry reports one.
          example: VERIFIED
        rejectionReasons:
          type: array
          description: >-
            Rejections recorded by registrars, one entry per registrar. Omitted
            when there are none; fix the brand with `PUT /10dlc/brands/{id}` and
            register it again.
          items:
            $ref: '#/components/schemas/BrandRejectionReason'
        website:
          type: string
          format: uri
          example: https://example.com
          description: Business website as submitted to the registry. Omitted when not set.
        supportEmail:
          type: string
          example: support@example.com
          description: Support email address for the business. Omitted when not set.
        supportPhone:
          type: string
          example: '+14155550100'
          description: >-
            Support phone number for the business, in E.164 format. Omitted when
            not set.
        vertical:
          type: string
          example: TECHNOLOGY
          description: >-
            Industry vertical code as submitted to the registry, for example
            `TECHNOLOGY`. Omitted when not set.
        taxId:
          type: string
          example: 12-3456789
          description: >-
            Tax identifier of the business, for example a US EIN. Omitted when
            not set.
        taxIdIssuingCountry:
          type: string
          example: US
          description: >-
            ISO 3166-1 alpha-2 code of the country that issued `taxId`, for
            example `US`. Omitted when not set.
        countryCode:
          type: string
          example: US
          description: >-
            ISO 3166-1 alpha-2 code of the country where the business is
            registered. Omitted when not set.
        address:
          allOf:
            - $ref: '#/components/schemas/BrandAddress'
          description: >-
            Postal address of the business as submitted to the registry. Omitted
            when not set.
        alternateBusinessId:
          type: object
          additionalProperties: true
          description: >-
            Alternate business identifier (for example a DUNS or LEI record),
            returned as you sent it. Omitted when not set.
        businessContactFirstName:
          type: string
          example: Alex
          description: >-
            First name of the business contact the registry can reach. Omitted
            when not set.
        businessContactLastName:
          type: string
          example: Doe
          description: >-
            Last name of the business contact the registry can reach. Omitted
            when not set.
        businessContactEmail:
          type: string
          example: alex.doe@example.com
          description: >-
            Email address of the business contact; brand-authentication and 2FA
            requests go here. Omitted when not set.
        businessDba:
          type: string
          description: >-
            Trading name ("doing business as") when it differs from `legalName`.
            Omitted when not set.
        legalEntityType:
          type: string
          example: PRIVATE_COMPANY
          description: >-
            Legal entity type as submitted to the registry, for example
            `PRIVATE_COMPANY`. Omitted when not set.
        businessRegistrationType:
          type: string
          description: >-
            Type of business registration number for a business outside the US,
            for example `VAT`. Omitted when not set.
        stockExchange:
          type: string
          description: >-
            Exchange where a `TENDLC_PUBLIC_COMPANY` brand is listed. Omitted
            when not set.
        stockSymbol:
          type: string
          description: >-
            Ticker symbol of a `TENDLC_PUBLIC_COMPANY` brand. Omitted when not
            set.
        taxExemptStatus:
          type: string
          description: >-
            Tax-exempt status of a `TENDLC_NON_PROFIT` brand. Omitted when not
            set.
        lastSyncedAt:
          type: string
          format: date-time
          description: >-
            When Vobiz last refreshed this record from the US 10DLC registry, in
            ISO 8601 (RFC 3339) UTC. Omitted until the first refresh.
          example: '2026-10-12T10:35:00Z'
        createdAt:
          type: string
          format: date-time
          example: '2026-10-12T10:30:00Z'
          description: >-
            When the record was created on your account, in ISO 8601 (RFC 3339)
            UTC.
        updatedAt:
          type: string
          format: date-time
          example: '2026-10-12T10:35:00Z'
          description: >-
            When the record last changed on your account, in ISO 8601 (RFC 3339)
            UTC.
    Error:
      type: object
      description: >-
        The body of every error response: a flat object with one `error` string
        that explains what went wrong. Use the HTTP status code to decide how to
        handle the error, and log `error` for diagnosis.
      required:
        - error
      properties:
        error:
          type: string
          example: 'recipient has opted out: +14155550123'
          description: >-
            Human-readable explanation of the error, for example `phoneNumber is
            required` or `recipient has opted out: +14155550123`. Branch on the
            HTTP status code rather than on this text.
    TenDLCError:
      description: >-
        Error returned when the US 10DLC registry declines or cannot process a
        request. `error` is a human-readable message you can show or log. When
        the registry answers with `400`, `404`, `409`, `422` or `429`, the same
        status is passed through with this body; `502` means the registry did
        not answer and `503` means it did not accept Vobiz's service
        credentials.
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          properties:
            providerError:
              type: string
              description: >-
                Opaque diagnostic string you can quote to support. Do not parse
                it.
              example: 'registration error 400 (HTTP 400): brand legalName is required'
    BrandAddress:
      type: object
      description: >-
        Postal address of the business. Keys are passed to the US 10DLC registry
        as given, so you can add any address key the registry accepts.
      additionalProperties: true
      properties:
        street:
          type: string
          example: 100 Example Street
          description: Street address, including number and suite.
        city:
          type: string
          example: San Francisco
          description: City or locality.
        state:
          type: string
          example: CA
          description: >-
            State, province or region; for US addresses, the two-letter state
            code (for example `CA`).
        zipCode:
          type: string
          example: '94105'
          description: ZIP or postal code, as a string (for example `94105`).
    BrandRejectionReason:
      type: object
      description: One rejection recorded by a registrar for the brand.
      properties:
        registrar:
          type: string
          description: Registrar that recorded the rejection.
          example: TCR
        state:
          type: string
          description: >-
            The brand's state at that registrar when the rejection was recorded.
            Omitted when not reported.
          example: REJECTED
        rejectionReason:
          type: string
          example: Tax ID does not match the legal name on file.
          description: >-
            The registrar's explanation of what to fix before you register
            again.
  responses:
    Unauthorized:
      description: Missing or invalid `X-Auth-ID` / `X-Auth-Token`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: missing or invalid credentials
    ServerError:
      description: Unexpected error. Retry with the same idempotency key where one applies.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: internal error
  securitySchemes:
    AuthID:
      type: apiKey
      in: header
      name: X-Auth-ID
      description: Your Vobiz account Auth ID (`MA_XXXXXXXX`).
    AuthToken:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: Your Vobiz account Auth Token.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.