by Intelliverse X

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}
    ]
  }
}