Skip to content

Orders ListBy

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 PageSize orders — including none — yet that does not mean there are no further results. Treat the presence of a continuationToken as the signal that more pages exist, and keep following it until it is null.

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

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:

  • From cannot be earlier than 2023-10-14 → 400
  • From cannot be later than To → 400

Parameter Values Default
sortBy placedDate newest first
sortDir asc, desc desc

sortDir=asc returns oldest orders first.


Parameter Valid range Default
PageSize 1–50 —
  • PageSize=0 or PageSize=51 → 400 with "PageSize must be between 1 and 50."
  • Pass the continuationToken value from the previous response as ContinuationToken in the next request to fetch the next page
  • continuationToken: null in the response means this is the last page
  • A page may contain fewer than PageSize orders (even none) and still have a continuationToken — 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.


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
}

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
}

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
}

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
}

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
}

Both list endpoints share the same error envelope. The code field identifies the error type.

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
}