Orders
Sales and order history for your machines. The sandbox seeds ~380 orders over the trailing 90 days.
List orders
GET /api/v1/orders — scope orders:read
| Query param | Type | Notes |
|---|---|---|
operatorEmail |
string | Admin keys only |
machineId |
string | UUID-style machine id |
machineNo |
string | hardware serial |
startTime |
string | yyyy-MM-dd HH:mm:ss (UTC) |
endTime |
string | yyyy-MM-dd HH:mm:ss (UTC) |
page |
int | 1-based, default 1 |
size |
int | default 20, max 100 |
curl "https://api.kiosk-x.ai/api/v1/orders?machineNo=866903013700011&startTime=2026-08-01%2000:00:00" \
-H "X-API-Key: vtm_e08725ea09876af65f431c6a3742d7c0"
{
"code": 200, "message": "success",
"data": {
"page": 1, "size": 20, "total": 47,
"records": [{
"orderNumber": "20260810000000000342",
"machineNo": "866903013700011",
"aisleNo": 3,
"productName": "Trailblazer Trail Mix",
"quantity": 1,
"sellingPrice": 5.99,
"paidPrice": 5.99,
"payState": 3,
"payStatus": "shipped",
"payType": 2,
"payment": {
"processor": "nayax",
"method": "card",
"terminalId": "NYX903013700011",
"transactionId": "nyx_9f2c1a7d3e5b0846",
"settlementAccountId": "nyx-act-63f2a9c01b",
"settlementAccountName": "Superior Vending Co.",
"cardBrand": "visa",
"last4": "4242",
"amount": 5.99,
"currency": "USD",
"settlementStatus": "settled"
},
"buyTime": "2026-08-10T09:14:31.000+0000"
}]
}
}
Field reference
| Field | Meaning |
|---|---|
payState |
0 cancelled · 1 pending · 2 paid · 3 shipped (vended) · 4 refunded |
payStatus |
string form of payState |
payType |
1 cash · 2 card · 3 mobile wallet |
payment |
how the sale was acquired and which Nayax account it settled to — see Payments & Nayax |
Card and wallet sales (payType 2/3) are acquired by the machine's Nayax
reader; payment.settlementAccountId is the operator's Nayax merchant
account. Cash sales show payment.processor = "cash"; free loyalty vends
show "reward".
Get order detail
GET /api/v1/orders/{orderNumber} — scope orders:read
Single order by number. Unknown or not-owned order → 404 Order not found.
Get orders summary
GET /api/v1/orders/summary — scope orders:read
Total count, revenue, and per-machine breakdown. Only shipped orders
(payState = 3) are counted.
{
"code": 200, "message": "success",
"data": {
"totalOrders": 168,
"totalRevenue": 1013.32,
"byMachine": [
{"machineNo": "866903013700011", "orderCount": 89, "revenue": 540.11},
{"machineNo": "866903013700022", "orderCount": 79, "revenue": 473.21}
]
}
}