List orders
GET/v1/orders
scope orders.read
Orders placed with you. Lines carry your own external_id and sku so you can match them to your catalog without a lookup.
Query parameters#
| Name | Example | |
|---|---|---|
status | — | pending | accepted | rejected | ship_to_courier | picked_up | in_delivery | delivered | confirmed | returned | cancelled | expired | lost | not_confirmed |
updated_since | — | ISO 8601 |
created_from | — | ISO 8601 |
created_to | — | ISO 8601 |
limit | 50 | Max 100 |
cursor | — | next_cursor |
Response#
| Field | Type | Description |
|---|---|---|
count | integer | How many orders in THIS page. |
next_cursor | string|null | Pass back as ?cursor=; null on the last page. |
data | array | Your orders — a SUMMARY of each. The detail fields (delivery address, fees, parcels, timestamps) are only on GET /v1/orders/{id}, so fetch the one you are about to act on. |
data[]. | integer | OUR order id, and what goes in the path of every other order endpoint. |
data[]. | string|null | The human-readable order reference, as the buyer sees it. Quote this to support, not the id. |
data[]. | string | Where the order is. Only pending can be accepted or rejected; accepted is the only one that can take a waybill.Accepts |
data[]. | boolean | Whether POST /v1/orders/{id}/accept would succeed right now. Branch on this rather than learning our status model — it stays right if the model changes. |
data[]. | boolean | Whether a waybill already exists. Requesting one again returns the existing AWB rather than booking a second shipment, but this lets you skip the call. |
data[]. | object | What the buyer paid, in total. |
data[]. | integer|null | Minor units. |
data[]. | string|null | The order currency, decided by the listing. This is the balance it settles into. |
data[]. | object | What has been refunded to the buyer so far (short shipment, return, cancellation). total stays what the buyer PAID; this is the part that went back. |
data[]. | integer | Minor units. 0 when nothing was refunded. |
data[]. | string|null | The order currency. |
data[]. | array | The order lines. |
data[]. | integer | The order LINE id. This is what a parcel plan references, so you cannot pack an order without reading these first. |
data[]. | integer | Our product id. |
data[]. | string|null | YOUR product id, carried onto the line so you can match it to your catalogue without a lookup. |
data[]. | string|null | Your SKU, for the same reason. |
data[]. | string | The product title at the time of sale. |
data[]. | integer | How many pieces of this line ship. Equal to quantity_ordered unless the seller short-shipped. |
data[]. | integer | How many pieces the buyer ordered. |
data[]. | integer | Pieces the seller did not have (short shipment), refunded to the buyer. 0 normally. total_price covers only the pieces that ship. |
data[]. | object | Price for ONE unit. |
data[]. | integer|null | Minor units. This is what the buyer actually paid, so it reflects an accepted price offer rather than the listed price. |
data[]. | string|null | Currency of the unit price. |
data[]. | object | Price for the whole line. |
data[]. | integer|null | Minor units — unit price times quantity. |
data[]. | string|null | Currency of the line total. |
data[]. | object|null | The waybill, once one exists — {number, tracking_url}, described on GET /v1/orders/{id}. null before the waybill is requested, which is what the example above shows: the order is still pending. |
data[]. | boolean | Whether this order ships from a pickup point rather than your own address. The return address stays your seller address either way. |
data[]. | string|null | ISO-8601 UTC, when the courier recorded delivery; null until then. status stays accepted while the parcel travels and after it arrives, so this — not status — is how a poll sees the delivery (the delivery also bumps updated_at). |
data[]. | string | ISO-8601 UTC. When the buyer paid. |
data[]. | string | ISO-8601 UTC. What ?updated_since= compares against. |
Example
{
"count": 1,
"next_cursor": null,
"data": [
{
"id": 711,
"reference": "SBXORD-SJP6NHXY",
"status": "pending",
"can_accept": true,
"has_awb": false,
"total": {
"amount": 359800,
"currency": "RON"
},
"refunded": {
"amount": 0,
"currency": "RON"
},
"items": [
{
"id": 1123,
"product_id": 237224,
"external_id": "ERP-1001",
"sku": "MTB-29-001",
"title": "Bicicleta MTB Hardtail 29 inch",
"quantity": 2,
"quantity_ordered": 2,
"quantity_short": 0,
"unit_price": {
"amount": 179900,
"currency": "RON"
},
"total_price": {
"amount": 359800,
"currency": "RON"
}
}
],
"awb": null,
"is_dropshipping": false,
"delivered_at": null,
"created_at": "2026-09-11T09:20:14Z",
"updated_at": "2026-09-11T09:20:14Z"
}
]
}