> Tychron Atlas API & Provisioning Reference — chapter 7 of 35 as Markdown. Web version: https://docs.tychron.com/api-reference/cart-request-documents/
> 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

# Cart Request Documents

Before checkout, it's possible to upload request documents to help streamline the process.

There are no hard requirements for any content, but keep in mind access may be restricted if abused.

Files should be no larger than 4MB, while larger files MAY be accepted, they are not guaranteed to be supported moving forward, only a limit of 4MB will be guaranteed.

## Schema

__Type__ Object

| Name           | Type                     | Description                      |
| -------------- | ------------------------ | -------------------------------- |
| `content_type` | String                   | [Desc. `content_type`](https://docs.tychron.com/api-reference/cart-request-documents/#desc-54) |
| `expires_at`   | String(format:date-time) | [Desc. `expires_at`](https://docs.tychron.com/api-reference/cart-request-documents/#desc-55)   |
| `filename`     | String                   | [Desc. `filename`](https://docs.tychron.com/api-reference/cart-request-documents/#desc-56)     |
| `id`           | String(format:ulid)      | [Desc. `id`](https://docs.tychron.com/api-reference/cart-request-documents/#desc-57)           |
| `inserted_at`  | String(format:date-time) | An ISO8601 formatted timestamp   |
| `name`         | String(1..128)           | [Desc. `name`](https://docs.tychron.com/api-reference/cart-request-documents/#desc-58)         |
| `notes`        | String                   | [Desc. `notes`](https://docs.tychron.com/api-reference/cart-request-documents/#desc-59)        |
| `updated_at`   | String(format:date-time) | An ISO8601 formatted timestamp   |

#### Desc. `content_type` {#desc-54}

The mime type of the document, this will be returned as the content-type header when downloading the asset.

#### Desc. `expires_at` {#desc-55}

An ISO8601 timestamp denoting when the document will be considered expired, note you may still be able to retrieve the associated file, but once over the timestamp, it will not be guaranteed.

#### Desc. `filename` {#desc-56}

The filename of the document.

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

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

#### Desc. `name` {#desc-58}

A unique name identifying the document, must be unique to the request

#### Desc. `notes` {#desc-59}

Any additional information about the request, may be read by an operations personel in case of manual action



__Example__

```json
{
  "content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
  "expires_at": "2021-08-13T04:08:44.762841Z",
  "filename": "acme_corp-lrn-2025-03-03.docx",
  "id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
  "inserted_at": "2021-08-13T04:08:44.762841Z",
  "name": "LOA",
  "notes": "string",
  "updated_at": "2021-08-13T04:08:44.762841Z"
}
```


## API

### Upload Cart Request Document

```http
POST /api/v1/carts/{cart_id}/requests/{request_id}/documents HTTP/1.1
```

Attach a document or any file to the request currently in a cart, these documents can be
removed later if needed.


__Path Parameters__

| Name       | Type                 | Description                       |
| ---------- | -------------------- | --------------------------------- |
| request_id | String(format:ulid)! | [Path Desc. request_id](https://docs.tychron.com/api-reference/cart-request-documents/#desc-60) |

#### Path Desc. request_id {#desc-60}

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

#### Request multipart/form-data

```http
POST /api/v1/carts/{cart_id}/requests/{request_id}/documents HTTP/1.1
Accept: application/json
Content-Type: multipart/form-data; boundary=ExampleBoundary7MA4YWxkTrZu0gW
Content-Length: 592

--ExampleBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="example.bin"
Content-Type: application/octet-stream

<binary file contents>
--ExampleBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file_hint"

DEFAULT
--ExampleBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="filename"

abc.pdf
--ExampleBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="name"

LOA
--ExampleBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="notes"

LOA from client on 2026-05-20.
--ExampleBoundary7MA4YWxkTrZu0gW--
```

#### Response 201

##### application/json

```http
HTTP/1.1 201
Content-Type: application/json
Content-Length: 422
```

```json
{
  "data": {
    "content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
    "expires_at": "2021-08-13T04:08:44.762841Z",
    "filename": "acme_corp-lrn-2025-03-03.docx",
    "id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
    "inserted_at": "2021-08-13T04:08:44.762841Z",
    "name": "LOA",
    "notes": "string",
    "updated_at": "2021-08-13T04:08:44.762841Z"
  },
  "type": "request_document"
}
```
#### 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"
    }
  ]
}
```
#### Response 422

##### application/json

```http
HTTP/1.1 422
Content-Type: application/json
Content-Length: 241
```

```json
{
  "errors": [
    {
      "code": "invalid_parameter",
      "detail": "The specified resource could not be found",
      "source": {
        "pointer": "/data/type"
      },
      "sub_code": "none",
      "title": "Not Found"
    }
  ]
}
```


### Delete Cart Request Document

```http
DELETE /api/v1/carts/{cart_id}/requests/{request_id}/documents/{id} HTTP/1.1
```

Removes a request document and any associated uploaded files.


__Path Parameters__

| Name       | Type                 | Description                       |
| ---------- | -------------------- | --------------------------------- |
| request_id | String(format:ulid)! | [Path Desc. request_id](https://docs.tychron.com/api-reference/cart-request-documents/#desc-61) |

#### Path Desc. request_id {#desc-61}

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

#### Request

```http
DELETE /api/v1/carts/{cart_id}/requests/{request_id}/documents/{id} HTTP/1.1
Accept: application/json
```
#### Response 200

##### application/json

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

```json
{
  "data": {
    "content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
    "expires_at": "2021-08-13T04:08:44.762841Z",
    "filename": "acme_corp-lrn-2025-03-03.docx",
    "id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
    "inserted_at": "2021-08-13T04:08:44.762841Z",
    "name": "LOA",
    "notes": "string",
    "updated_at": "2021-08-13T04:08:44.762841Z"
  },
  "type": "request_document"
}
```
#### 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"
    }
  ]
}
```
#### Response 422

##### application/json

```http
HTTP/1.1 422
Content-Type: application/json
Content-Length: 241
```

```json
{
  "errors": [
    {
      "code": "invalid_parameter",
      "detail": "The specified resource could not be found",
      "source": {
        "pointer": "/data/type"
      },
      "sub_code": "none",
      "title": "Not Found"
    }
  ]
}
```


### List Cart Request Documents

```http
GET /api/v1/carts/{cart_id}/requests/{request_id}/documents HTTP/1.1
```

List request documents.


__Path Parameters__

| Name       | Type                 | Description                       |
| ---------- | -------------------- | --------------------------------- |
| request_id | String(format:ulid)! | [Path Desc. request_id](https://docs.tychron.com/api-reference/cart-request-documents/#desc-62) |

__Query Parameters__

| Name   | Type    | Description                    |
| ------ | ------- | ------------------------------ |
| first  | Integer | [Query Desc. first](https://docs.tychron.com/api-reference/cart-request-documents/#desc-63)  |
| last   | Integer | [Query Desc. last](https://docs.tychron.com/api-reference/cart-request-documents/#desc-64)   |
| after  | String  | [Query Desc. after](https://docs.tychron.com/api-reference/cart-request-documents/#desc-65)  |
| before | String  | [Query Desc. before](https://docs.tychron.com/api-reference/cart-request-documents/#desc-66) |

#### Path Desc. request_id {#desc-62}

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

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

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

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

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

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

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

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

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

#### Request

```http
GET /api/v1/carts/{cart_id}/requests/{request_id}/documents HTTP/1.1
Accept: application/json
```
#### Response 200

##### application/json

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

```json
{
  "count": 1,
  "page_info": {
    "first": "string",
    "has_next_page": true,
    "has_previous_page": true,
    "last": "string"
  },
  "results": [
    {
      "data": {
        "content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
        "expires_at": "2021-08-13T04:08:44.762841Z",
        "filename": "acme_corp-lrn-2025-03-03.docx",
        "id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
        "inserted_at": "2021-08-13T04:08:44.762841Z",
        "name": "LOA",
        "notes": "string",
        "updated_at": "2021-08-13T04:08:44.762841Z"
      },
      "type": "request_document"
    }
  ]
}
```
#### 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"
    }
  ]
}
```


### Get Cart Request Document

```http
GET /api/v1/carts/{cart_id}/requests/{request_id}/documents/{id} HTTP/1.1
```

Retrieve a Request Document record by its ID.

Note this is the "record" and not the uploaded file.


__Path Parameters__

| Name       | Type                 | Description                       |
| ---------- | -------------------- | --------------------------------- |
| request_id | String(format:ulid)! | [Path Desc. request_id](https://docs.tychron.com/api-reference/cart-request-documents/#desc-67) |

#### Path Desc. request_id {#desc-67}

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

#### Request

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

##### application/json

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

```json
{
  "data": {
    "content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
    "expires_at": "2021-08-13T04:08:44.762841Z",
    "filename": "acme_corp-lrn-2025-03-03.docx",
    "id": "01EH2Y28M6KXG14QMPM3HSP1Y0",
    "inserted_at": "2021-08-13T04:08:44.762841Z",
    "name": "LOA",
    "notes": "string",
    "updated_at": "2021-08-13T04:08:44.762841Z"
  },
  "type": "request_document"
}
```
#### 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"
    }
  ]
}
```

---

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