Skip to main content
GET
/
orders
List orders
curl --request GET \
  --url https://integrations.clopos.com/open-api/orders \
  --header 'x-brand: <api-key>' \
  --header 'x-token: <api-key>' \
  --header 'x-venue: <api-key>'
{
  "data": [
    {
      "id": "<string>",
      "customer_id": "<string>",
      "status": "pending",
      "total_amount": 123,
      "line_items": [
        {
          "id": "<string>",
          "product_id": "<string>",
          "quantity": 2,
          "unit_price": 123,
          "total_price": 123
        }
      ],
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z"
    }
  ],
  "pagination": {
    "page": 123,
    "per_page": 123,
    "total": 123,
    "total_pages": 123
  }
}

Purpose

Fetches the statuses, customer details, and line items of your multi-channel orders in a single request.

HTTP Request

GET https://integrations.clopos.com/open-api/orders

Authorization

This request requires three custom headers:
  • x-token: Your authentication token
  • x-brand: The brand code you want to access
  • x-venue: The branch ID to operate on

Request Example

curl -X GET "https://integrations.clopos.com/open-api/orders?limit=20&status=completed" \
  -H "x-token: oauth_example_token" \
  -H "x-brand: openapitest" \
  -H "x-venue: 1"

Response

200 OK — Orders list

{
  "success": true,
  "data": [
    {
      "id": "ORD-12345",
      "number": "A-001",
      "status": "accepted",
      "created_at": "2025-08-18 13:44:10",
      "updated_at": "2025-08-18 13:45:01",
      "total": 42000,
      "customer_id": 1,
      "payment_status": "pending",
      "delivery_type": "pickup",
      "receipt_id": 6
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 50,
    "total": 1,
    "total_pages": 1
  }
}

400 Bad Request — Invalid filters

{
  "success": false,
  "error": "invalid_parameter",
  "message": "status must be one of pending, confirmed, completed, cancelled"
}

401 Unauthorized — Authentication is missing or invalid

{
  "success": false,
  "error": "unauthorized",
  "message": "Missing or invalid authentication headers"
}

429 Too Many Requests — Limit exceeded

{
  "success": false,
  "error": "rate_limited",
  "message": "Too many requests. Retry later."
}

Field Reference

FieldTypeDescription
idstringOrder identifier.
statusstringCurrent lifecycle state. accepted orders are sent to the POS.
receipt_idnumberLinked open receipt ID once the POS accepts the order.
payment_statusstringPayment state (e.g., pending, paid).
totalnumberOrder grand total.
created_atstringCreation timestamp (ISO 8601).
updated_atstringLast update timestamp (ISO 8601).

Notes

  • When an order is created through this endpoint, the POS receives a push notification and notifies the clerk of the new order. Accepted orders automatically transition into open receipts.
  • Use status=pending to monitor orders awaiting POS confirmation.
  • Poll or subscribe to webhooks to track further status changes if your integration requires real-time updates.

Authorizations

x-token
string
header
required

Access token obtained from /auth endpoint

x-brand
string
header
required

Brand identifier

x-venue
string
header
required

Venue identifier

Query Parameters

limit
integer
default:20

Maximum number of orders to return (1-100)

Required range: 1 <= x <= 100
status
enum<string>

Filter by order status

Available options:
pending,
confirmed,
completed,
cancelled

Response

200 - application/json

Orders retrieved successfully

data
object[]
pagination
object