We use cookies to give you the best possible experience while you browse through our site. By continuing to use our website you implicitly agree to the usage of cookies on this site.

Read More
← Atlas API & Provisioning Reference

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
expires_at String(format:date-time) Desc. expires_at
filename String Desc. filename
id String(format:ulid) Desc. id
inserted_at String(format:date-time) An ISO8601 formatted timestamp
name String(1..128) Desc. name
notes String Desc. notes
updated_at String(format:date-time) An ISO8601 formatted timestamp

Desc. content_type

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

Desc. expires_at

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

The filename of the document.

Desc. id

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

Desc. name

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

Desc. notes

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

Example

{
  "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

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

Path Desc. request_id

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

Request multipart/form-data

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/1.1 201
Content-Type: application/json
Content-Length: 422
{
  "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/1.1 403
Content-Type: application/json
Content-Length: 312
{
  "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/1.1 404
Content-Type: application/json
Content-Length: 314
{
  "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/1.1 422
Content-Type: application/json
Content-Length: 241
{
  "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

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

Path Desc. request_id

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

Request

DELETE /api/v1/carts/{cart_id}/requests/{request_id}/documents/{id} HTTP/1.1
Accept: application/json

Response 200

application/json
HTTP/1.1 200
Content-Type: application/json
Content-Length: 422
{
  "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/1.1 403
Content-Type: application/json
Content-Length: 312
{
  "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/1.1 404
Content-Type: application/json
Content-Length: 314
{
  "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/1.1 422
Content-Type: application/json
Content-Length: 241
{
  "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

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

Query Parameters

Name Type Description
first Integer Query Desc. first
last Integer Query Desc. last
after String Query Desc. after
before String Query Desc. before

Path Desc. request_id

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

Query Desc. first

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

Query Desc. last

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

Query Desc. after

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

Query Desc. before

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

Request

GET /api/v1/carts/{cart_id}/requests/{request_id}/documents HTTP/1.1
Accept: application/json

Response 200

application/json
HTTP/1.1 200
Content-Type: application/json
Content-Length: 635
{
  "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/1.1 403
Content-Type: application/json
Content-Length: 312
{
  "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/1.1 404
Content-Type: application/json
Content-Length: 314
{
  "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

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

Path Desc. request_id

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

Request

GET /api/v1/carts/{cart_id}/requests/{request_id}/documents/{id} HTTP/1.1
Accept: application/json

Response 200

application/json
HTTP/1.1 200
Content-Type: application/json
Content-Length: 422
{
  "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/1.1 403
Content-Type: application/json
Content-Length: 312
{
  "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/1.1 404
Content-Type: application/json
Content-Length: 314
{
  "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"
    }
  ]
}

Updated 2026-08-12 · Generated from the Atlas OpenAPI spec.