> Tychron Atlas API & Provisioning Reference — chapter 9 of 35 as Markdown. Web version: https://docs.tychron.com/api-reference/requests/
> Source: https://docs.tychron.com/api-reference/ · Updated 2026-08-12 · Generated from the Atlas OpenAPI spec (https://api.atlas.tychron.online/api/v1/openapi is the live contract; this file is a dated snapshot of it).
> Source revision: atlas_api_reference_2026-08-12.md · sha256 482ebd3b014af053 · sanitize gate v1 clean · reconciled with OpenAPI 2026.8.25-p01 (spec sha256 cc049ef38c71cd6e) on 2026-09-05 · content last modified 2026-09-09 · newer definition under review since 2026-09-09 (not yet reconciled)
> Scope: the Atlas platform API only. The SMS, MMS, CNAM, LRN and MCL services are separate APIs with their own specifications: https://docs.tychron.com/openapi/
> Machine index: https://docs.tychron.com/llms.txt

# Requests

## Schema

Specific action or operation that should take place

__Type__ Object

| Name          | Type                                     | Description                    |
| ------------- | ---------------------------------------- | ------------------------------ |
| `error_code`  | [OrderErrorCode](https://docs.tychron.com/api-reference/schemas/#schema-ordererrorcode) |                                |
| `id`          | String(format:ulid)                      | [Desc. `id`](https://docs.tychron.com/api-reference/requests/#desc-75)         |
| `inserted_at` | String(format:date-time)                 | An ISO8601 formatted timestamp |
| `name`        | String(1..255)                           |                                |
| `notes`       | String                                   |                                |
| `status`      | [OrderStatus](https://docs.tychron.com/api-reference/schemas/#schema-orderstatus)       |                                |
| `type`        | [RequestType](https://docs.tychron.com/api-reference/schemas/#schema-requesttype)       |                                |
| `updated_at`  | String(format:date-time)                 | An ISO8601 formatted timestamp |
| `*`           | [One-Of](https://docs.tychron.com/api-reference/requests/#type-76)                       |                                |

#### Desc. `id` {#desc-75}

Another format for UUID, used primarily for tasks, requests and messages.

#### One-Of {#type-76}

Types

* [RequestAddCampaignNumbersData](https://docs.tychron.com/api-reference/schemas/#schema-requestaddcampaignnumbersdata)
* [RequestAddMessagingNumbersData](https://docs.tychron.com/api-reference/schemas/#schema-requestaddmessagingnumbersdata)
* [RequestAddVoiceNumbersData](https://docs.tychron.com/api-reference/schemas/#schema-requestaddvoicenumbersdata)
* [RequestNewNumbersData](https://docs.tychron.com/api-reference/schemas/#schema-requestnewnumbersdata)
* [RequestRegisterBrandData](https://docs.tychron.com/api-reference/schemas/#schema-requestregisterbranddata)
* [RequestRegisterCampaignData](https://docs.tychron.com/api-reference/schemas/#schema-requestregistercampaigndata)
* [RequestRemoveCampaignNumbersData](https://docs.tychron.com/api-reference/schemas/#schema-requestremovecampaignnumbersdata)
* [RequestRemoveMessagingNumbersData](https://docs.tychron.com/api-reference/schemas/#schema-requestremovemessagingnumbersdata)
* [RequestRemoveNumbersData](https://docs.tychron.com/api-reference/schemas/#schema-requestremovenumbersdata)
* [RequestRemoveVoiceNumbersData](https://docs.tychron.com/api-reference/schemas/#schema-requestremovevoicenumbersdata)
* [RequestUnregisterBrandData](https://docs.tychron.com/api-reference/schemas/#schema-requestunregisterbranddata)
* [RequestUnregisterCampaignData](https://docs.tychron.com/api-reference/schemas/#schema-requestunregistercampaigndata)
* [RequestVetBrandData](https://docs.tychron.com/api-reference/schemas/#schema-requestvetbranddata)



__Example__

```json
{
  "error_code": "OK",
  "id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
  "inserted_at": "2021-08-13T04:08:44.762841Z",
  "name": "SMS Tollfree Numbers 2021-08-12",
  "notes": "SMS Enablements",
  "status": "NEW",
  "type": "ADD_CAMPAIGN_NUMBERS",
  "updated_at": "2021-08-13T04:08:44.762841Z",
  "*": {
    "campaign_id": "5b502159-a3f4-48bd-87e7-205b7f0d6c7f",
    "numbers": [
      "12003004000"
    ],
    "tcr_campaign_id": "C000000",
    "tmobile_enabled": true
  }
}
```


## API

### Updating An Existing Request

```http
PATCH /api/v1/requests/{id} HTTP/1.1
```

Update an existing request.

Only the name and notes can be updated on the request once it has been checked out.


__Path Parameters__

| Name | Type                 | Description |
| ---- | -------------------- | ----------- |
| id   | String(format:ulid)! | Request ID  |

#### Request

```http
PATCH /api/v1/requests/{id} HTTP/1.1
Accept: application/json
```
#### Response 200

##### application/json

```http
HTTP/1.1 200
Content-Type: application/json
Content-Length: 533
```

```json
{
  "data": {
    "error_code": "OK",
    "id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
    "inserted_at": "2021-08-13T04:08:44.762841Z",
    "name": "SMS Tollfree Numbers 2021-08-12",
    "notes": "SMS Enablements",
    "status": "NEW",
    "type": "ADD_CAMPAIGN_NUMBERS",
    "updated_at": "2021-08-13T04:08:44.762841Z",
    "*": {
      "campaign_id": "5b502159-a3f4-48bd-87e7-205b7f0d6c7f",
      "numbers": [
        "12003004000"
      ],
      "tcr_campaign_id": "C000000",
      "tmobile_enabled": true
    }
  },
  "type": "request"
}
```
#### Response 403

##### application/json

```http
HTTP/1.1 403
Content-Type: application/json
Content-Length: 312
```

```json
{
  "errors": [
    {
      "code": "access_denied.no_scope",
      "detail": "No scope available to user role",
      "params": {
        "action": "index",
        "level": "guest",
        "resource": "resource"
      },
      "sub_code": "none",
      "title": "Access Denied, no scope available"
    }
  ]
}
```
#### Response 404

##### application/json

```http
HTTP/1.1 404
Content-Type: application/json
Content-Length: 314
```

```json
{
  "errors": [
    {
      "code": "not_found",
      "detail": "The specified resource could not be found",
      "params": {
        "resource": {
          "id": "3fbb573a-6049-44a0-a12c-d3a1ffae0b69",
          "type": "user"
        }
      },
      "sub_code": "none",
      "title": "Not Found"
    }
  ]
}
```


### List Existing Requests

```http
GET /api/v1/requests HTTP/1.1
```

Retrieve a list of all requests under the parent account


__Query Parameters__

| Name   | Type    | Description                    |
| ------ | ------- | ------------------------------ |
| first  | Integer | [Query Desc. first](https://docs.tychron.com/api-reference/requests/#desc-77)  |
| last   | Integer | [Query Desc. last](https://docs.tychron.com/api-reference/requests/#desc-78)   |
| after  | String  | [Query Desc. after](https://docs.tychron.com/api-reference/requests/#desc-79)  |
| before | String  | [Query Desc. before](https://docs.tychron.com/api-reference/requests/#desc-80) |

#### Query Desc. first {#desc-77}

The number of items to return starting from the 'after' cursor

#### Query Desc. last {#desc-78}

The number of items to return behind the 'before' cursor

#### Query Desc. after {#desc-79}

The cursor representing the starting point of a 'first' based paging

#### Query Desc. before {#desc-80}

The cursor representing the starting point of a 'last' based paging

#### Request

```http
GET /api/v1/requests HTTP/1.1
Accept: application/json
```
#### Response 200

##### application/json

```http
HTTP/1.1 200
Content-Type: application/json
Content-Length: 778
```

```json
{
  "count": 1,
  "page_info": {
    "first": "string",
    "has_next_page": true,
    "has_previous_page": true,
    "last": "string"
  },
  "results": [
    {
      "data": {
        "error_code": "OK",
        "id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
        "inserted_at": "2021-08-13T04:08:44.762841Z",
        "name": "SMS Tollfree Numbers 2021-08-12",
        "notes": "SMS Enablements",
        "status": "NEW",
        "type": "ADD_CAMPAIGN_NUMBERS",
        "updated_at": "2021-08-13T04:08:44.762841Z",
        "*": {
          "campaign_id": "5b502159-a3f4-48bd-87e7-205b7f0d6c7f",
          "numbers": [
            "12003004000"
          ],
          "tcr_campaign_id": "C000000",
          "tmobile_enabled": true
        }
      },
      "type": "request"
    }
  ]
}
```
#### Response 403

##### application/json

```http
HTTP/1.1 403
Content-Type: application/json
Content-Length: 312
```

```json
{
  "errors": [
    {
      "code": "access_denied.no_scope",
      "detail": "No scope available to user role",
      "params": {
        "action": "index",
        "level": "guest",
        "resource": "resource"
      },
      "sub_code": "none",
      "title": "Access Denied, no scope available"
    }
  ]
}
```


### Get Request

```http
GET /api/v1/requests/{id} HTTP/1.1
```

Lookup a request by ID


__Path Parameters__

| Name | Type                 | Description |
| ---- | -------------------- | ----------- |
| id   | String(format:ulid)! | Request ID  |

#### Request

```http
GET /api/v1/requests/{id} HTTP/1.1
Accept: application/json
```
#### Response 200

##### application/json

```http
HTTP/1.1 200
Content-Type: application/json
Content-Length: 533
```

```json
{
  "data": {
    "error_code": "OK",
    "id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
    "inserted_at": "2021-08-13T04:08:44.762841Z",
    "name": "SMS Tollfree Numbers 2021-08-12",
    "notes": "SMS Enablements",
    "status": "NEW",
    "type": "ADD_CAMPAIGN_NUMBERS",
    "updated_at": "2021-08-13T04:08:44.762841Z",
    "*": {
      "campaign_id": "5b502159-a3f4-48bd-87e7-205b7f0d6c7f",
      "numbers": [
        "12003004000"
      ],
      "tcr_campaign_id": "C000000",
      "tmobile_enabled": true
    }
  },
  "type": "request"
}
```
#### Response 403

##### application/json

```http
HTTP/1.1 403
Content-Type: application/json
Content-Length: 312
```

```json
{
  "errors": [
    {
      "code": "access_denied.no_scope",
      "detail": "No scope available to user role",
      "params": {
        "action": "index",
        "level": "guest",
        "resource": "resource"
      },
      "sub_code": "none",
      "title": "Access Denied, no scope available"
    }
  ]
}
```
#### Response 404

##### application/json

```http
HTTP/1.1 404
Content-Type: application/json
Content-Length: 314
```

```json
{
  "errors": [
    {
      "code": "not_found",
      "detail": "The specified resource could not be found",
      "params": {
        "resource": {
          "id": "3fbb573a-6049-44a0-a12c-d3a1ffae0b69",
          "type": "user"
        }
      },
      "sub_code": "none",
      "title": "Not Found"
    }
  ]
}
```


## Request Types

Requests have many subtypes which determine what kind of action will be taken, this can range from
adding messaging-only numbers to removing existing numbers or just some of their components.

### New Numbers

Request new numbers from inventory.

#### Parameters

Request for acquiring new numbers.

__Type__ Object

| Name           | Type                                      | Description                      |
| -------------- | ----------------------------------------- | -------------------------------- |
| `addons`       | [AddonsData](https://docs.tychron.com/api-reference/schemas/#schema-addonsdata)          |                                  |
| `city`         | String                                    |                                  |
| `min_quantity` | String                                    | [Desc. `min_quantity`](https://docs.tychron.com/api-reference/requests/#desc-81) |
| `npa`          | String                                    | [Desc. `npa`](https://docs.tychron.com/api-reference/requests/#desc-82)          |
| `number_type`  | Enum(`NONE`, `TENDLC`, `TOLLFREE`):String | [Desc. `number_type`](https://docs.tychron.com/api-reference/requests/#desc-83)  |
| `numbers`      | Array:String(format:tel)                  | [Desc. `numbers`](https://docs.tychron.com/api-reference/requests/#desc-84)      |
| `nxx`          | String                                    | [Desc. `nxx`](https://docs.tychron.com/api-reference/requests/#desc-85)          |
| `quantity`     | String                                    | [Desc. `quantity`](https://docs.tychron.com/api-reference/requests/#desc-86)     |
| `rate_center`  | String                                    | [Desc. `rate_center`](https://docs.tychron.com/api-reference/requests/#desc-87)  |
| `state`        | String                                    | [Desc. `state`](https://docs.tychron.com/api-reference/requests/#desc-88)        |

#### Desc. `min_quantity` {#desc-81}

Sometimes there are legitimately not enough numbers to fill the order.

The `min_quantity` or minimum quantity informs the system if you are willing to tolerate a smaller quantity.

#### Desc. `npa` {#desc-82}

The 3 digit Area Code.

#### Desc. `number_type` {#desc-83}

The wanted number type either TENDLC or TOLLFREE.

NONE is effectively a no-op or null.

#### Desc. `numbers` {#desc-84}

If the numbers that should be provisioned are known ahead of time, they can be provided in
this field, however normally you'll want to avoid using this due to reservations.

#### Desc. `nxx` {#desc-85}

The 3 digit Exchange Code.

#### Desc. `quantity` {#desc-86}

The maximum numbers that should be requested based on the search critierias.

This pairs with `min_quantity` to form a range.

#### Desc. `rate_center` {#desc-87}

The rate center code.

#### Desc. `state` {#desc-88}

The 2 character state code, such as FL for Florida.



__Example__

```json
{
  "addons": {
    "messaging": {
      "api_key_ids": [
        "c6be45e4-b7dd-412c-96c4-777e83fb9c48"
      ],
      "csp_campaign_id": "string",
      "enabled": false,
      "mms_enabled": true,
      "notes": "This is for a state child support centre and will be enabled on Campaign X.\n",
      "switch_id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
      "tcr_campaign_id": "C000000"
    },
    "voip_destinations": {
      "destinations": [
        {
          "activated": true,
          "auth_identity": "username",
          "auth_method": "BASIC",
          "auth_secret": "password",
          "destination": "http://example.com/http/route/call",
          "priority": 1,
          "type": "HTTP_ROUTE"
        }
      ],
      "enabled": true,
      "switch_id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48"
    }
  },
  "city": "string",
  "min_quantity": 10,
  "npa": "202",
  "number_type": "NONE",
  "numbers": [
    "12004005000"
  ],
  "nxx": "203",
  "quantity": 10,
  "rate_center": "NPLSFLGF3MD",
  "state": "FL"
}
```


### Remove Numbers

A number can be deprovisioned with a `REMOVE_NUMBERS` request.

#### Parameters

Request data for removing existing numbers regardless of components.

This request can handle the removal of all components safely.


__Type__ Object

| Name      | Type         | Description                 |
| --------- | ------------ | --------------------------- |
| `numbers` | Array:String | [Desc. `numbers`](https://docs.tychron.com/api-reference/requests/#desc-89) |

#### Desc. `numbers` {#desc-89}

A list of NANP 11-digit numbers to remove



__Example__

```json
{
  "numbers": [
    "12003004000"
  ]
}
```


### Add Messaging Numbers

Messaging can be added to an existing number or messaging-only numbers provisioned using a `ADD_MESSAGING_NUMBERS` request.

Numbers provisioned by this request that are new to the parent account will be treated as as BYON (Bring-Your-Own-Number).

#### Parameters

Request for enabling numbers for messaging.

Note that this request handles two different kinds of enablements:

* BYON (Bring Your Own Number) type enablements, wheree a number will be registered for messaging only.
* Enabling messaging on an existing number.


__Type__ Object

| Name            | Type                      | Description                       |
| --------------- | ------------------------- | --------------------------------- |
| `api_key_ids`   | Array:String(format:uuid) | [Desc. `api_key_ids`](https://docs.tychron.com/api-reference/requests/#desc-90)   |
| `message_class` | Enum(`A2P`, `P2P`):String | [Desc. `message_class`](https://docs.tychron.com/api-reference/requests/#desc-91) |
| `mms_enabled`   | Boolean                   | [Desc. `mms_enabled`](https://docs.tychron.com/api-reference/requests/#desc-92)   |
| `numbers`       | Array:String(format:tel)  | [Desc. `numbers`](https://docs.tychron.com/api-reference/requests/#desc-93)       |
| `switch_id`     | String(format:uuid)       | [Desc. `switch_id`](https://docs.tychron.com/api-reference/requests/#desc-94)     |

#### Desc. `api_key_ids` {#desc-90}

A list of API Keys that should be bound to the numbers once enabled.

If the number is already bound to the listed keys, then nothing will change.

Note that this will __add__ new keys and not replace the existing bindings.

#### Desc. `message_class` {#desc-91}

The messaging class of the numbers to be provisioned, by default this will be A2P.

* `A2P` - Application to Person
* `P2P` - Person to Person

#### Desc. `mms_enabled` {#desc-92}

Should the numbers be MMS enabled?

MMS can also be enabled later by simply toggling it via the DID API.

Note. If your account does not support MMS by default, then toggling this flag does nothing.

#### Desc. `numbers` {#desc-93}

A list of NANP 11-digit numbers to enable messaging on.

Non-tollfree numbers can normally be enabled outside of some special cases.

For tollfree, additional action may be required before completion.

#### Desc. `switch_id` {#desc-94}

The ID of the switch that should be attached to the did for messaging.

Note. This changes the DID's messaging switch, not its voice fallback one.

Leaving this field blank will not overwrite the existing switch.



__Example__

```json
{
  "api_key_ids": [
    "c6be45e4-b7dd-412c-96c4-777e83fb9c48"
  ],
  "message_class": "A2P",
  "mms_enabled": false,
  "numbers": [
    "12003004000"
  ],
  "switch_id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48"
}
```


### Remove Messaging Numbers

A number can have its messaging be deprovisioned with a `REMOVE_MESSAGING_NUMBERS` request.

#### Parameters

Request for disabling messaging on existing numbers.

__Type__ Object

| Name      | Type         | Description                 |
| --------- | ------------ | --------------------------- |
| `numbers` | Array:String | [Desc. `numbers`](https://docs.tychron.com/api-reference/requests/#desc-95) |

#### Desc. `numbers` {#desc-95}

A list of NANP 11-digit numbers to disable messaging for



__Example__

```json
{
  "numbers": [
    "12003004000"
  ]
}
```


### Register Brand

TCR Brands can be registered using a `REGISTER_BRAND` request.

If you are a CSP who is sharing a Campaign (and by extension brand) with Tychron, please use the TCR API and select Tychron as the CNP.

#### Parameters

Request for registering a TCR Brand.

__Type__ Object

| Name                       | Type                 | Description                  |
| -------------------------- | -------------------- | ---------------------------- |
| `address1`                 | String               |                              |
| `alt_business_id`          | String               |                              |
| `alt_business_id_type`     | String               |                              |
| `brand_id`                 | String(format:uuid)  | [Desc. `brand_id`](https://docs.tychron.com/api-reference/requests/#desc-96) |
| `brand_relationship`       | String               |                              |
| `business_contact_email`   | String(format:email) |                              |
| `cdr_id`                   | String(format:uuid)  | [Desc. `cdr_id`](https://docs.tychron.com/api-reference/requests/#desc-97)   |
| `city`                     | String               |                              |
| `company_name`             | String               |                              |
| `country_code`             | String               |                              |
| `display_name`             | String               |                              |
| `ein`                      | String               |                              |
| `ein_issuing_country_code` | String               |                              |
| `email`                    | String(format:email) |                              |
| `entity_type`              | String               |                              |
| `first_name`               | String               |                              |
| `last_name`                | String               |                              |
| `phone_number`             | String               |                              |
| `state`                    | String               |                              |
| `stock_exchange`           | String               |                              |
| `stock_symbol`             | String               |                              |
| `tcr_brand_id`             | String               |                              |
| `tcr_csp_id`               | String               |                              |
| `vertical`                 | String               |                              |
| `website`                  | String               |                              |
| `zip_code`                 | String               |                              |

#### Desc. `brand_id` {#desc-96}

A Universally unique identifier, which identifies the resource

#### Desc. `cdr_id` {#desc-97}

A Universally unique identifier, which identifies the resource



__Example__

```json
{
  "address1": "string",
  "alt_business_id": "string",
  "alt_business_id_type": "string",
  "brand_id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
  "brand_relationship": "string",
  "business_contact_email": "string",
  "cdr_id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
  "city": "string",
  "company_name": "ACME Corp",
  "country_code": "string",
  "display_name": "ACME Corp Brand",
  "ein": "00000000",
  "ein_issuing_country_code": "US",
  "email": "string",
  "entity_type": "string",
  "first_name": "John",
  "last_name": "Doe",
  "phone_number": "12003004000",
  "state": "string",
  "stock_exchange": "string",
  "stock_symbol": "string",
  "tcr_brand_id": "B000000",
  "tcr_csp_id": "S000000",
  "vertical": "string",
  "website": "string",
  "zip_code": "string"
}
```


### Unregister Brand

Brands registered using `REGISTER_BRAND` can be removed using `UNREGISTER_BRAND`.

#### Parameters

Request for unregistering a TCR Brand.

__Type__ Object

| Name           | Type                | Description         |
| -------------- | ------------------- | ------------------- |
| `brand_id`     | String(format:uuid) | Internal UUID       |
| `tcr_brand_id` | String              | TCR issued Brand ID |



__Example__

```json
{
  "brand_id": "89900e23-aafc-4b03-954d-0b11d3948042",
  "tcr_brand_id": "B000000"
}
```


### Register Campaign

Registering a new campaign can be done with a `REGISTER_CAMPAIGN` request.

#### Parameters

Request Data for registering TCR Campaigns.

Please note: the completion of the Request does not signify that the Campaign is ready to
accept numbers, please check for the `dca_approved` flag on the campaign itself, or listen
for the `CSP_CAMPAIGN_REGISTERED` event via Subscription Events.


__Type__ Object

| Name                        | Type                            | Description                               |
| --------------------------- | ------------------------------- | ----------------------------------------- |
| `message_flow`              | String                          |                                           |
| `tcr_campaign_id`           | String                          | [Desc. `tcr_campaign_id`](https://docs.tychron.com/api-reference/requests/#desc-98)       |
| `help_message`              | String                          |                                           |
| `embedded_phone`            | Boolean                         |                                           |
| `tcr_brand_id`              | String                          | [Desc. `tcr_brand_id`](https://docs.tychron.com/api-reference/requests/#desc-99)          |
| `embedded_link`             | Boolean                         |                                           |
| `tcr_reseller_id`           | String                          | [Desc. `tcr_reseller_id`](https://docs.tychron.com/api-reference/requests/#desc-100)      |
| `age_gated`                 | Boolean                         |                                           |
| `vertical`                  | String                          |                                           |
| `optout_message`            | String                          |                                           |
| `description`               | String                          |                                           |
| `auto_renewal`              | Boolean                         |                                           |
| `embedded_link_sample`      | String                          |                                           |
| `optout_keywords`           | String                          | [Desc. `optout_keywords`](https://docs.tychron.com/api-reference/requests/#desc-101)      |
| `terms_and_conditions_link` | String                          |                                           |
| `direct_lending`            | Boolean                         |                                           |
| `sub_use_cases`             | Array:String                    |                                           |
| `optin_message`             | String                          |                                           |
| `mno_ids`                   | Array:String                    |                                           |
| `reseller_id`               | String(format:uuid)             | Internal UUID of CSP Reseller             |
| `subscriber_optout`         | Boolean                         |                                           |
| `brand_id`                  | String(format:uuid)             | Internal UUID of CSP Brand                |
| `use_case`                  | String                          |                                           |
| `tcr_csp_id`                | String                          | [Desc. `tcr_csp_id`](https://docs.tychron.com/api-reference/requests/#desc-102)           |
| `subscriber_optin`          | Boolean                         |                                           |
| `help_keywords`             | String                          | [Desc. `help_keywords`](https://docs.tychron.com/api-reference/requests/#desc-103)        |
| `expedite_tier`             | Enum(`NONE`, `PRIORITY`):String | [Desc. `expedite_tier`](https://docs.tychron.com/api-reference/requests/#desc-104)        |
| `affiliate_marketing`       | Boolean                         |                                           |
| `subscriber_help`           | Boolean                         |                                           |
| `samples`                   | Array:String                    |                                           |
| `optin_keywords`            | String                          | [Desc. `optin_keywords`](https://docs.tychron.com/api-reference/requests/#desc-105)       |
| `privacy_policy_link`       | String                          |                                           |
| `number_pool`               | Boolean                         |                                           |
| `terms_and_conditions`      | Boolean                         | [Desc. `terms_and_conditions`](https://docs.tychron.com/api-reference/requests/#desc-106) |

#### Desc. `tcr_campaign_id` {#desc-98}

TCR issued Campaign ID.

#### Desc. `tcr_brand_id` {#desc-99}

TCR issued Brand ID.

#### Desc. `tcr_reseller_id` {#desc-100}

TCR issued Reseller ID.

#### Desc. `optout_keywords` {#desc-101}

Must be a CSV, that is a comma separated list of keywords.

Excess spaces will be trimmed around each keyword.

#### Desc. `tcr_csp_id` {#desc-102}

The Campaign Service Provider ID.

Typically in the form of SNNNNNN.

#### Desc. `help_keywords` {#desc-103}

Must be a CSV, that is a comma separated list of keywords.

Excess spaces will be trimmed around each keyword.

#### Desc. `expedite_tier` {#desc-104}

Request that the campaign's provisioning be expedited with upstream.

* `NONE` - the default, no expedite, campaign will be processed at its normal rate

#### Desc. `optin_keywords` {#desc-105}

Must be a CSV, that is a comma separated list of keywords.

Excess spaces will be trimmed around each keyword.

#### Desc. `terms_and_conditions` {#desc-106}

Do you accept TCR's Terms and Conditions, this flag MUST be true in order to register a
campaign.

If false the campaign will not be accepted for registration.



__Example__

```json
{
  "message_flow": "string",
  "tcr_campaign_id": "C000000",
  "help_message": "string",
  "embedded_phone": false,
  "tcr_brand_id": "B000000",
  "embedded_link": false,
  "tcr_reseller_id": "R000000",
  "age_gated": false,
  "vertical": "TECHNOLOGY",
  "optout_message": "string",
  "description": "string",
  "auto_renewal": true,
  "embedded_link_sample": "string",
  "optout_keywords": "OPTOUT,STOP,UNSUBSCRIBE",
  "terms_and_conditions_link": "string",
  "direct_lending": false,
  "sub_use_cases": [
    "string"
  ],
  "optin_message": "string",
  "mno_ids": [
    "string"
  ],
  "reseller_id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
  "subscriber_optout": false,
  "brand_id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
  "use_case": "string",
  "tcr_csp_id": "S000000",
  "subscriber_optin": false,
  "help_keywords": "HELP,INFO",
  "expedite_tier": "NONE",
  "affiliate_marketing": false,
  "subscriber_help": false,
  "samples": [
    "string"
  ],
  "optin_keywords": "OPTIN,START,SUBSCRIBE",
  "privacy_policy_link": "string",
  "number_pool": false,
  "terms_and_conditions": false
}
```


### Unregister Campaign

#### Parameters

Request for unregistering a TCR Campaign.

__Type__ Object

| Name              | Type                | Description   |
| ----------------- | ------------------- | ------------- |
| `campaign_id`     | String(format:uuid) | Internal UUID |
| `tcr_campaign_id` | String              | TCR issued ID |



__Example__

```json
{
  "campaign_id": "89900e23-aafc-4b03-954d-0b11d3948042",
  "tcr_campaign_id": "B000000"
}
```


### TCR Campaign

Before any numbers can be added to a campaign, the campaign must be either created by Tychron, or be shared by a valid CSP with Tychron and approved.

Please contact Tychron Support on the setup process for campaign sharing before attempting to provision any numbers with campaigns.

If there are existing campaigns (see `GET /api/v1/campaigns`), you can provision numbers under a campaign, if it has been `dca_approved`.

### Add Campaign Numbers

Numbers can be added to an existing campaign with with a `ADD_CAMPAIGN_NUMBERS` request.

#### Parameters

Request for register numbers under campaign


__Type__ Object

| Name              | Type                | Description                          |
| ----------------- | ------------------- | ------------------------------------ |
| `campaign_id`     | String(format:uuid) | [Desc. `campaign_id`](https://docs.tychron.com/api-reference/requests/#desc-107)     |
| `numbers`         | Array:String        | [Desc. `numbers`](https://docs.tychron.com/api-reference/requests/#desc-108)         |
| `tcr_campaign_id` | String              | [Desc. `tcr_campaign_id`](https://docs.tychron.com/api-reference/requests/#desc-109) |
| `tmobile_enabled` | Boolean             | [Desc. `tmobile_enabled`](https://docs.tychron.com/api-reference/requests/#desc-110) |

#### Desc. `campaign_id` {#desc-107}

The internal UUID of a known campaign.

* This field will be backfilled if `tcr_campaign_id` is provided instead.
* If this field AND `tcr_campaign_id` are provided they must resolve to the same campaign.

#### Desc. `numbers` {#desc-108}

A list of NANP 11-digit numbers to add campaigns to.

Keep in mind, campaigns are only supported on non-tollfree TenDLC numbers.

For example: 12003004000.

#### Desc. `tcr_campaign_id` {#desc-109}

The TCR issued Campaign ID, typically in the form of CNNNNNN.

* This field will be backfilled if `campaign_id` is provided instead.
* If this field AND `campaign_id` are provided they must resolve to the same campaign.

#### Desc. `tmobile_enabled` {#desc-110}

Whether or not this request is subject to additional T-Mobile enablement, this will be auto-populated during request processing.

Note that this is based on a campaign's supported MNOs.



__Example__

```json
{
  "campaign_id": "5b502159-a3f4-48bd-87e7-205b7f0d6c7f",
  "numbers": [
    "12003004000"
  ],
  "tcr_campaign_id": "C000000",
  "tmobile_enabled": true
}
```


### Remove Campaign Numbers

Numbers can be removed from their campaign with a `REMOVE_CAMPAIGN_NUMBERS` request.

#### Parameters

Request for detaching numbers from their known campaign.

__Type__ Object

| Name      | Type         | Description                  |
| --------- | ------------ | ---------------------------- |
| `numbers` | Array:String | [Desc. `numbers`](https://docs.tychron.com/api-reference/requests/#desc-111) |

#### Desc. `numbers` {#desc-111}

A list of NANP 11-digit numbers to disable messaging for



__Example__

```json
{
  "numbers": [
    "12003004000"
  ]
}
```

---

Previous chapter: https://docs.tychron.com/api-reference/orders.md  
Next chapter: https://docs.tychron.com/api-reference/request-documents.md  
Complete reference in one file: https://docs.tychron.com/llms-full.txt
