Orders ListBy
List Endpoints
Section titled “List Endpoints”Two endpoints return a paginated summary list of orders. They share the same query parameters, response shape, sorting, and paging — they differ only in which account field they match on.
| Endpoint | Returns |
|---|---|
GET /orders/v1/list/sold-to/{customerId} |
Orders sold to the given account |
GET /orders/v1/list/placed-by/{customerId} |
Orders placed by the given account |
Paging: a page may contain fewer than
PageSizeorders — including none — yet that does not mean there are no further results. Treat the presence of acontinuationTokenas the signal that more pages exist, and keep following it until it isnull.
Response Model
Section titled “Response Model”Response — paginated list of orders
{ "orders": [ { "orderId": "2000100006", "checkoutId": "be3a829055...", "placedAt": "2026-06-19T08:48:04.6270466+02:00", "status": "Open", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "placedBy": "f0e1d2c3-b4a5-6789-0fed-cba987654321", "productNames": [ "Logitech MX Keys + MX Master Kombo", "Logitech MX Keys S Trådløst Tastatur", "Logitech MX Master 3S Trådløs Mus", "Hjemlevering" ], "references": { "billingReference": null, "deliveryReference": null } } ], "continuationToken": "W3sidG9rZW4i..."}| Field | Notes |
|---|---|
status |
Explicit string — "Open", "InProgress", "Completed", "Cancelled" |
soldTo |
The account the order is billed/sold to |
placedBy |
The account that placed the order; equals soldTo when the customer placed it themselves, and a different account when one party placed it for another |
checkoutId |
Identifier of the originating checkout; may be null |
productNames |
Flat list of all product and delivery names on the order |
continuationToken |
Pagination cursor — null on the last page |
Filtering
Section titled “Filtering”The same filter parameters apply to both endpoints.
| Parameter | Type | Notes |
|---|---|---|
Status |
string | Open, InProgress, Completed, or Cancelled |
From |
date (YYYY-MM-DD) |
Earliest placedAt to include. Minimum: 2023-10-14 |
To |
date (YYYY-MM-DD) |
Latest placedAt to include |
Validation rules:
Fromcannot be earlier than2023-10-14→ 400Fromcannot be later thanTo→ 400
Sorting
Section titled “Sorting”| Parameter | Values | Default |
|---|---|---|
sortBy |
placedDate |
newest first |
sortDir |
asc, desc |
desc |
sortDir=asc returns oldest orders first.
Pagination
Section titled “Pagination”| Parameter | Valid range | Default |
|---|---|---|
PageSize |
1–50 | — |
PageSize=0orPageSize=51→ 400 with"PageSize must be between 1 and 50."- Pass the
continuationTokenvalue from the previous response asContinuationTokenin the next request to fetch the next page continuationToken: nullin the response means this is the last page- A page may contain fewer than
PageSizeorders (even none) and still have acontinuationToken— rely on the token, not the number of records returned, to decide whether to fetch more
Example — first page:
GET /list/{sold-to|placed-by}/{customerId}?PageSize=10&From=2026-06-15&To=2026-06-20
Response — first page
{ "orders": [ ... ], "continuationToken": "W3sidG9rZW4i..."}Example — next page using the token:
GET /list/{sold-to|placed-by}/{customerId}?PageSize=10&From=2026-06-15&To=2026-06-20&ContinuationToken=W3sidG9rZW4i...
Response — final page
{ "orders": [ ... ], "continuationToken": null}continuationToken: null confirms this is the final page.
Sample Dataset
Section titled “Sample Dataset”The examples below reference the same set of orders, which mixes orders a customer placed themselves with orders a purchaser placed on their behalf. placedBy is who placed the order; soldTo is whom the goods are sold to — they are equal when the customer placed the order themselves, and differ when another account placed it on their behalf.
Filtering and sorting are always scoped to one of the two list endpoints — there is no way to list orders without a placed-by or sold-to account. The status, date-range and sort examples below are all issued against GET /list/placed-by/f0e1d2c3-… (Purchaser P’s six orders); the same parameters behave identically on sold-to. The final section contrasts the two endpoints.
orderId |
status |
placedAt |
placedBy |
soldTo |
Relationship |
|---|---|---|---|---|---|
| 2000100016 | InProgress |
2026-06-21 | Customer A |
Customer A |
self-placed |
| 2000100015 | Open |
2026-06-20 | Purchaser P |
Customer A |
on behalf of A |
| 2000100014 | Completed |
2026-06-19 | Purchaser P |
Customer B |
on behalf of B |
| 2000100013 | Open |
2026-06-18 | Purchaser P |
Customer A |
on behalf of A |
| 2000100012 | InProgress |
2026-06-16 | Purchaser P |
Customer C |
on behalf of C |
| 2000100011 | Cancelled |
2026-06-10 | Purchaser P |
Customer B |
on behalf of B |
| 2000100010 | Completed |
2023-10-20 | Purchaser P |
Purchaser P |
self-placed |
The accounts referenced above:
| Label | customerId |
|---|---|
Customer A |
a1b2c3d4-e5f6-7890-abcd-ef1234567890 |
Customer B |
b2c3d4e5-f6a7-8901-bcde-f23456789012 |
Customer C |
c3d4e5f6-a7b8-9012-cdef-345678901234 |
Purchaser P |
f0e1d2c3-b4a5-6789-0fed-cba987654321 |
Purchaser P both places orders on behalf of Customers A/B/C and places one for their own account (2000100010, where placedBy == soldTo == P).
GET /list/placed-by/f0e1d2c3-… — Purchaser P, no filters (six orders, newest first)
{ "orders": [ { "orderId": "2000100015", "checkoutId": "be3a829055...", "placedAt": "2026-06-20T16:42:00.0000000+02:00", "status": "Open", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "placedBy": "f0e1d2c3-b4a5-6789-0fed-cba987654321", "productNames": ["Logitech MX Master 3S Trådløs Mus", "Hjemlevering"], "references": { "billingReference": null, "deliveryReference": null } }, { "orderId": "2000100014", "checkoutId": "be3a829055...", "placedAt": "2026-06-19T08:48:00.0000000+02:00", "status": "Completed", "soldTo": "b2c3d4e5-f6a7-8901-bcde-f23456789012", "placedBy": "f0e1d2c3-b4a5-6789-0fed-cba987654321", "productNames": ["Logitech MX Keys S Trådløst Tastatur", "Hjemlevering"], "references": { "billingReference": null, "deliveryReference": null } }, { "orderId": "2000100013", "checkoutId": "be3a829055...", "placedAt": "2026-06-18T14:20:00.0000000+02:00", "status": "Open", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "placedBy": "f0e1d2c3-b4a5-6789-0fed-cba987654321", "productNames": ["Logitech G700s Trådløs Gaming Mus", "Hjemlevering"], "references": { "billingReference": null, "deliveryReference": null } }, { "orderId": "2000100012", "checkoutId": "be3a829055...", "placedAt": "2026-06-16T09:05:00.0000000+02:00", "status": "InProgress", "soldTo": "c3d4e5f6-a7b8-9012-cdef-345678901234", "placedBy": "f0e1d2c3-b4a5-6789-0fed-cba987654321", "productNames": [ "Logitech MX Keys + MX Master Kombo", "Logitech MX Keys S Trådløst Tastatur", "Logitech MX Master 3S Trådløs Mus", "Hjemlevering" ], "references": { "billingReference": null, "deliveryReference": null } }, { "orderId": "2000100011", "checkoutId": "be3a829055...", "placedAt": "2026-06-10T11:30:00.0000000+02:00", "status": "Cancelled", "soldTo": "b2c3d4e5-f6a7-8901-bcde-f23456789012", "placedBy": "f0e1d2c3-b4a5-6789-0fed-cba987654321", "productNames": ["Logitech MX Master 3S Trådløs Mus", "Hjemlevering"], "references": { "billingReference": null, "deliveryReference": null } }, { "orderId": "2000100010", "checkoutId": "be3a829055...", "placedAt": "2023-10-20T10:15:00.0000000+02:00", "status": "Completed", "soldTo": "f0e1d2c3-b4a5-6789-0fed-cba987654321", "placedBy": "f0e1d2c3-b4a5-6789-0fed-cba987654321", "productNames": ["Logitech MX Keys S Trådløst Tastatur", "Hjemlevering"], "references": { "billingReference": null, "deliveryReference": null } } ], "continuationToken": null}Filtering by Status
Section titled “Filtering by Status”Status selects orders in a single state within the chosen list. These examples filter Purchaser P’s list (GET /list/placed-by/f0e1d2c3-…?Status=…). continuationToken is null because every match fits on one page.
GET /list/placed-by/f0e1d2c3-…?Status=Open → 2000100015, 2000100013
{ "orders": [ { "orderId": "2000100015", "status": "Open", "placedAt": "2026-06-20T16:42:00.0000000+02:00", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, { "orderId": "2000100013", "status": "Open", "placedAt": "2026-06-18T14:20:00.0000000+02:00", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" } ], "continuationToken": null}GET /list/placed-by/f0e1d2c3-…?Status=InProgress → 2000100012
{ "orders": [ { "orderId": "2000100012", "status": "InProgress", "placedAt": "2026-06-16T09:05:00.0000000+02:00", "soldTo": "c3d4e5f6-a7b8-9012-cdef-345678901234" } ], "continuationToken": null}GET /list/placed-by/f0e1d2c3-…?Status=Completed → 2000100014, 2000100010
{ "orders": [ { "orderId": "2000100014", "status": "Completed", "placedAt": "2026-06-19T08:48:00.0000000+02:00", "soldTo": "b2c3d4e5-f6a7-8901-bcde-f23456789012" }, { "orderId": "2000100010", "status": "Completed", "placedAt": "2023-10-20T10:15:00.0000000+02:00", "soldTo": "f0e1d2c3-b4a5-6789-0fed-cba987654321" } ], "continuationToken": null}GET /list/placed-by/f0e1d2c3-…?Status=Cancelled → 2000100011
{ "orders": [ { "orderId": "2000100011", "status": "Cancelled", "placedAt": "2026-06-10T11:30:00.0000000+02:00", "soldTo": "b2c3d4e5-f6a7-8901-bcde-f23456789012" } ], "continuationToken": null}Filtering by Date Range
Section titled “Filtering by Date Range”From/To match against placedAt. Against Purchaser P’s list, From=2026-06-15&To=2026-06-20 keeps the four orders placed in that window and drops 2000100011 (placed 2026-06-10) and 2000100010 (placed 2023-10-20).
GET /list/placed-by/f0e1d2c3-…?From=2026-06-15&To=2026-06-20 → 2000100015, 2000100014, 2000100013, 2000100012
{ "orders": [ { "orderId": "2000100015", "status": "Open", "placedAt": "2026-06-20T16:42:00.0000000+02:00", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, { "orderId": "2000100014", "status": "Completed", "placedAt": "2026-06-19T08:48:00.0000000+02:00", "soldTo": "b2c3d4e5-f6a7-8901-bcde-f23456789012" }, { "orderId": "2000100013", "status": "Open", "placedAt": "2026-06-18T14:20:00.0000000+02:00", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, { "orderId": "2000100012", "status": "InProgress", "placedAt": "2026-06-16T09:05:00.0000000+02:00", "soldTo": "c3d4e5f6-a7b8-9012-cdef-345678901234" } ], "continuationToken": null}Sort Direction
Section titled “Sort Direction”sortDir=asc returns the same list oldest-first. Against Purchaser P’s list (GET /list/placed-by/f0e1d2c3-…?sortDir=asc), order 2000100010 now leads instead of trailing.
GET /list/placed-by/f0e1d2c3-…?sortDir=asc → 2000100010, 2000100011, 2000100012, 2000100013, 2000100014, 2000100015
{ "orders": [ { "orderId": "2000100010", "status": "Completed", "placedAt": "2023-10-20T10:15:00.0000000+02:00" }, { "orderId": "2000100011", "status": "Cancelled", "placedAt": "2026-06-10T11:30:00.0000000+02:00" }, { "orderId": "2000100012", "status": "InProgress", "placedAt": "2026-06-16T09:05:00.0000000+02:00" }, { "orderId": "2000100013", "status": "Open", "placedAt": "2026-06-18T14:20:00.0000000+02:00" }, { "orderId": "2000100014", "status": "Completed", "placedAt": "2026-06-19T08:48:00.0000000+02:00" }, { "orderId": "2000100015", "status": "Open", "placedAt": "2026-06-20T16:42:00.0000000+02:00" } ], "continuationToken": null}Sold-to vs Placed-by
Section titled “Sold-to vs Placed-by”placed-by/{party} returns the orders that party placed; sold-to/{customer} returns the orders sold to that customer. They overlap but are not the same set — Customer A shows the difference clearly:
GET /list/placed-by/a1b2c3d4-… (Customer A) → 2000100016
{ "orders": [ { "orderId": "2000100016", "placedBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" } ], "continuationToken": null}GET /list/sold-to/a1b2c3d4-… (Customer A) → 2000100016, 2000100015, 2000100013
{ "orders": [ { "orderId": "2000100016", "placedBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, { "orderId": "2000100015", "placedBy": "f0e1d2c3-b4a5-6789-0fed-cba987654321", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, { "orderId": "2000100013", "placedBy": "f0e1d2c3-b4a5-6789-0fed-cba987654321", "soldTo": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" } ], "continuationToken": null}Error Responses
Section titled “Error Responses”Both list endpoints share the same error envelope. The code field identifies the error type.
400 — Validation Error
Section titled “400 — Validation Error”Returned when the path customerId, filter, or pagination parameters are invalid. The errors[] array lists each invalid field with a human-readable message.
Path customerId missing or whitespace — sold-to endpoint:
{ "errors": [ { "fieldName": "SoldToCustomerId", "message": "CustomerId cannot be null or empty." } ], "code": "ERR_VALIDATION_0001", "status": 400}Path customerId missing or whitespace — placed-by endpoint:
{ "errors": [ { "fieldName": "PlacedByCustomerId", "message": "CustomerId cannot be null or empty." } ], "code": "ERR_VALIDATION_0001", "status": 400}PageSize outside the 1–50 range:
{ "errors": [ { "fieldName": "Filter.PageSize", "message": "PageSize must be between 1 and 50." } ], "code": "ERR_VALIDATION_0001", "status": 400}From later than To:
{ "errors": [ { "fieldName": "Filter.From", "message": "From cannot be later than To." } ], "code": "ERR_VALIDATION_0001", "status": 400}From earlier than the minimum supported date:
{ "errors": [ { "fieldName": "Filter.From", "message": "From cannot be earlier than 2023-10-14." } ], "code": "ERR_VALIDATION_0001", "status": 400}