curl --request GET \
--url https://{host}/v1/sellers/{sellerId}/orders/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/sellers/{sellerId}/orders/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/v1/sellers/{sellerId}/orders/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}import requests
url = "https://{host}/v1/sellers/{sellerId}/orders/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"type": "orders",
"id": "7741",
"attributes": {
"number": "202610100",
"status": "payment_received",
"paid": true,
"reservationLapsed": false,
"subtotal": 1295000,
"shipping": 0,
"serviceCosts": 2500,
"total": 1297500,
"applicationFee": 64750,
"payoutAmount": 1230250,
"paymentMethod": "card",
"buyerEmail": "j.devries@example.test",
"buyerPhone": "+31 6 12345678",
"receiptUrl": "https://api.wristler.eu/v1/sellers/42/orders/7741/receipt",
"paymentMethods": null,
"reservedUntil": null,
"notes": "Graag vóór vrijdag",
"coupon": null,
"courier": null,
"trackingNumber": null,
"trackingUrl": null,
"paidAt": "2026-09-21T14:52:40.000000Z",
"shippedAt": null,
"cancelledAt": null,
"deliveredAt": null,
"timeline": [
{
"event": "placed",
"at": "2026-09-21T16:40:02+02:00"
},
{
"event": "paid",
"at": "2026-09-21T16:52:40+02:00"
}
],
"paidOutAt": null,
"createdAt": "2026-09-21T14:40:02.000000Z",
"updatedAt": "2026-09-21T14:52:40.000000Z"
},
"relationships": {
"seller": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/orders/7741/seller"
}
},
"items": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/orders/7741/items"
}
},
"addresses": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/orders/7741/addresses"
}
}
},
"links": {
"self": "https://api.wristler.eu/v1/sellers/42/orders/7741"
}
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}Show order
Scope: orders:read
Besides what was sold and where it goes, what the dashboard’s order page shows the
shop: paymentMethod (card, ideal, bancontact, eps, p24, paypal, or
customer_balance for a bank transfer), and buyerEmail and buyerPhone — from
the buyer’s account, so null when they gave none. They are for our own app only: a
partner gets the addresses shipping needs, not a person’s contact details, and reads
null. Both are null while the order is awaiting_payment or
awaiting_manual_review, as on the dashboard: until it goes through, the buyer is not
the shop’s customer yet. receiptUrl is the receipt, at
/v1/sellers/{sellerId}/orders/{id}/receipt; null until the order is paid.
curl --request GET \
--url https://{host}/v1/sellers/{sellerId}/orders/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/sellers/{sellerId}/orders/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/v1/sellers/{sellerId}/orders/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}import requests
url = "https://{host}/v1/sellers/{sellerId}/orders/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"type": "orders",
"id": "7741",
"attributes": {
"number": "202610100",
"status": "payment_received",
"paid": true,
"reservationLapsed": false,
"subtotal": 1295000,
"shipping": 0,
"serviceCosts": 2500,
"total": 1297500,
"applicationFee": 64750,
"payoutAmount": 1230250,
"paymentMethod": "card",
"buyerEmail": "j.devries@example.test",
"buyerPhone": "+31 6 12345678",
"receiptUrl": "https://api.wristler.eu/v1/sellers/42/orders/7741/receipt",
"paymentMethods": null,
"reservedUntil": null,
"notes": "Graag vóór vrijdag",
"coupon": null,
"courier": null,
"trackingNumber": null,
"trackingUrl": null,
"paidAt": "2026-09-21T14:52:40.000000Z",
"shippedAt": null,
"cancelledAt": null,
"deliveredAt": null,
"timeline": [
{
"event": "placed",
"at": "2026-09-21T16:40:02+02:00"
},
{
"event": "paid",
"at": "2026-09-21T16:52:40+02:00"
}
],
"paidOutAt": null,
"createdAt": "2026-09-21T14:40:02.000000Z",
"updatedAt": "2026-09-21T14:52:40.000000Z"
},
"relationships": {
"seller": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/orders/7741/seller"
}
},
"items": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/orders/7741/items"
}
},
"addresses": {
"links": {
"related": "https://api.wristler.eu/v1/sellers/42/orders/7741/addresses"
}
}
},
"links": {
"self": "https://api.wristler.eu/v1/sellers/42/orders/7741"
}
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}Authorizations
Query Parameters
Related resources to return alongside, comma separated: seller, items,
items.watch, items.watch.cover, addresses. items.watch is the one that
matters — it carries the externalIdentifier you gave the listing, which is how
you recognise your own product. Add items.watch.cover when you are drawing order
rows: one photo per order, rather than a request per row to find it.
There is deliberately no seller.watches: that would return every listing a
seller has, unpaged, in the middle of an order. Nor items.watch.images: a row
draws one photo, and a page of orders carrying every gallery is the payload
problem cover exists to avoid.
seller, items, items.watch, items.watch.cover, addresses