Flavours Partner API
Endpoints

Order List

GET
/api/v2/orders

Orders of the caller's market and branch, paginated, with the standard sort, key_by, includes[] and filter.* parameters. Rows that tie on the sort key (or on created_at, newest first, when no sort is sent) are ordered by id in the same direction, so consecutive pages never repeat or skip an order. Every row carries workday (the business day the order was stamped with, YYYY-MM-DD in the branch timezone; additive, at every X-API-Version). Workday range (FP-1083): filter.workday_min / filter.workday_max (Y-m-d, inclusive, at most 366 dates) are sent together with filter.created_at_min/max (or the legacy created_at_after/before). With WORKDAY_ENABLED on, a branch whose workday switch is ON is then bounded by orders.workday (an order rung up after midnight or in overtime belongs to the workday it was taken in) and OFF branches keep the epochs; the response adds meta.workday (per-branch period, orders/sales and per-workday rows: the /v2/reports/overview block). The live list (filter.start_at + filter.close_at) and filter.period_type / time_period win over the range and ignore the workday dates. Without the workday params the response is unchanged. filter.attendance_id matches the orders of a shift: on a workday branch by the shift's workday (so overtime orders stay with their shift), otherwise by the shift's start and close times.

Authorization

API-TOKEN
API-TOKEN<token>

Your partner API key. Send it in the API-TOKEN header on every request.

In: header

Query Parameters

page?|

Must be at least 1.

per_page?|

Must be at least 1.

search?|
sort?|
key_by?|
includes*array<>
settle_requested?|

Only orders a waiter asked the till to settle (orders.settle_requested_at, waiter contract §6.2). Accepted bare, which is what the terminal sends, and as filter[settle_requested]. Additive and absent by default — no version gate.

filter?object
filter.settle_requested?|
filter.market_id?|

Must match an existing stored value.

filter.branch_id?|

Must match an existing stored value.

filter.table_id?|

Must match an existing stored value.

filter.cashier_id?|

Must match an existing stored value.

filter.customer_id?|

Must match an existing stored value.

filter.product_categories_ids*array<>

Must match an existing stored value.

filter.payment_method_key?|

Must match an existing stored value.

filter.attendance_id?|

Only orders that belong to this attendance (POS session) — exactly the orders whose attendance_id pseudo-include resolves to this id: same market and branch, the order's start_at .. close_at inside the session's start_schedule_at .. close_schedule_at (a session checked in while the branch workday switch was ON matches on the same workday instead), and on overlapping sessions only the latest-starting one claims the order. An unknown id, or one from another market, returns an empty list. Additive — no version gate. Must be at least 1.

filter.number?|
filter.sources*array<>
filter.types*array<>
filter.statuses*array<>
filter.transaction?object
filter.transaction.statuses*array<>
filter.transaction_status?|
Value in"PAID" | "UNPAID"
filter.period_type?|
Value in"LAST_DAY" | "LAST_WEEK" | "LAST_MONTH" | "LAST_YEAR" | "ALL_TIME" | "CUSTOM"
filter.time_period?|
Value in"LAST_DAY" | "LAST_WEEK" | "LAST_MONTH" | "LAST_YEAR" | "ALL_TIME" | "CUSTOM"
filter.start_at?|

Must be 13 digits.

filter.close_at?|

Must be 13 digits.

filter.created_at_min?|

This field is required when filter.workday_min is present. Must be 13 digits.

filter.created_at_max?|

This field is required when filter.workday_min is present. Must be 13 digits.

filter.updated_at_min?|

Must be 13 digits.

filter.updated_at_max?|

Must be 13 digits.

filter.workday_min?|

First workday (Y-m-d) of the range, sent together with filter[workday_max] and the filter[created_at_min/max] epochs. A branch whose workday switch is ON lists its orders by orders.workday (an order taken at 01:30 after midnight or in overtime belongs to the workday it was rung up in); an OFF branch keeps the epoch filter. The response then carries meta.workday (same block as /v2/reports/overview). Ignored by the live list (filter[start_at/close_at]) and by filter[period_type/time_period]. Additive — no version gate. This field is required when filter.workday_max is present. Must be a valid date in the format Y-m-d.

filter.workday_max?|

Last workday (Y-m-d) of the range, at most 366 dates after filter[workday_min]. This field is required when filter.workday_min is present. Must be a valid date in the format Y-m-d.

filter.period_id?|

A branch business day, <branch_id>:<YYYY-MM-DD>, as GET /v2/attendances/state returns it in business_day.period_id (FP-1188). The server sets filter[created_at_min/max] to that business day (and filter[workday_min/max] when it is a scheduled workday), so a client never computes a day boundary. Without filter[branch_id] the list is scoped to the period's branch. Send it instead of every other window, never with one (422): filter[created_at_min/max], the legacy created_at_after/before, workday_min/max, the live start_at/close_at/end_at and period_type/time_period. A branch outside the caller's markets, a malformed id, or a filter[branch_id] naming another branch is a 422 on filter.period. Additive — no version gate.

Header Parameters

X-API-Version*string

API contract version to target. See the Changelog for what changed in each version.

Default"2.0.0"
Value in"2.3.0" | "2.2.0" | "2.1.0" | "2.0.0"

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.flavours.sa/dev/api/v2/orders?page=80&per_page=38&search=cumque&sort=dicta&key_by=quod&includes=error&settle_requested=true&filter.settle_requested=false&filter.market_id=consequatur&filter.branch_id=et&filter.table_id=15&filter.cashier_id=praesentium&filter.customer_id=sunt&filter.product_categories_ids=4&filter.payment_method_key=rerum&filter.attendance_id=18084&filter.number=maiores&filter.sources=WAITER_APP&filter.types=DRIVE_THROUGH&filter.statuses=PROCESS&filter.transaction.statuses=PAID&filter.transaction_status=PAID&filter.period_type=ALL_TIME&filter.time_period=ALL_TIME&filter.start_at=5300821905604&filter.close_at=1311383810238&filter.created_at_min=1102953455734&filter.created_at_max=8641367324688&filter.updated_at_min=2920053821827&filter.updated_at_max=2647080249712&filter.workday_min=2026-05-04&filter.workday_max=2026-05-05&filter.period_id=9a1f6c2e-4b7d-4e8a-9c3f-2d5b8e7a1c40%3A2026-10-05" \  -H "X-API-Version: 2.3.0"
{
  "meta": {
    "code": 200,
    "status": "success",
    "message": "Data Loaded Successfully"
  },
  "data": {
    "current_page": 1,
    "data": [
      {
        "id": "b2fd0de3-0e45-4377-b6f3-45647f47199e",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "number": "DOC-LIST-1",
        "source": null,
        "type": "TAKE_AWAY",
        "status": "COMPLETED",
        "table_code": null,
        "notes": null,
        "customer_id": null,
        "cashier_id": null,
        "created_at": 1792593340545,
        "updated_at": null,
        "deleted_at": null,
        "is_product_changed": false,
        "table_id": null,
        "state": "ONLINE",
        "close_at": null,
        "encoded_number": null,
        "driver_id": null,
        "start_at": null,
        "external_reference": null,
        "waiter_user_id": null,
        "guest_count": null,
        "has_rounds": false,
        "version": 0,
        "cancel_reason": null,
        "unconfirmed_since": null,
        "client_id": null,
        "locked_at": null,
        "locked_by_user_id": null,
        "locked_by_device_id": null,
        "lock_reason": null,
        "lock_expires_at": null,
        "settle_requested_at": null,
        "workday": "2026-10-06",
        "qr_img": "data:image/png;base64,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",
        "requires_table": false,
        "requires_driver": false,
        "requires_reference": false,
        "requires_customer": false,
        "market": {
          "id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
          "sector_id": 15,
          "name_en": "Franecki Ltd",
          "name_ar": "Wintheiser-Barrows",
          "description_en": "Eaque distinctio fuga nihil vitae velit.",
          "description_ar": null,
          "logo_img": "https://via.placeholder.com/200x200.png/009955?text=business+logo+facilis",
          "cover_img": "https://via.placeholder.com/200x200.png/009999?text=business+cover+amet",
          "email": "[email protected]",
          "phone_prefix": "967",
          "phone_number": "7856586642",
          "crn": "033-466-2828",
          "tax_number": "66596607090",
          "created_by": null,
          "email_verified_at": 1792593329562,
          "phone_verified_at": 1792593329562,
          "created_at": 1792593329465,
          "updated_at": 1792593340021,
          "deleted_at": null,
          "is_active": true,
          "merchant_id": null,
          "reseller_id": null,
          "slug": "wisoky-feest",
          "code": "ENT-0000000001",
          "links": {
            "website": null,
            "instagram": null,
            "youtube": null,
            "x": null,
            "call_center": null
          },
          "phone": "7856586642"
        },
        "transaction": null
      },
      {
        "id": "refund-order-6ad8cdb302df0",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "number": "refund-num-6ad8cdb302df0",
        "source": null,
        "type": "TAKE_AWAY",
        "status": "COMPLETED",
        "table_code": null,
        "notes": null,
        "customer_id": null,
        "cashier_id": null,
        "created_at": 2000,
        "updated_at": null,
        "deleted_at": null,
        "is_product_changed": false,
        "table_id": null,
        "state": "ONLINE",
        "close_at": null,
        "encoded_number": null,
        "driver_id": null,
        "start_at": null,
        "external_reference": null,
        "waiter_user_id": null,
        "guest_count": null,
        "has_rounds": false,
        "version": 0,
        "cancel_reason": null,
        "unconfirmed_since": null,
        "client_id": null,
        "locked_at": null,
        "locked_by_user_id": null,
        "locked_by_device_id": null,
        "lock_reason": null,
        "lock_expires_at": null,
        "settle_requested_at": null,
        "workday": null,
        "qr_img": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAACx0UUtAAAABnRSTlMA/wD/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFaUlEQVR4nO3dy27jOhBF0ZuL/v9fTs81UIPgaztZaxpbspMDIoUSi1/f39//Qdj/tz8A/IOMUiej1MkodTJKnYxSJ6PUySh1MkqdjFIno9TJKHUySp2MUiej1MkodTJKnYxSJ6PU/Zl589fX16rP8e6x6epx34U/fZj5gu/3fX/xu6EvOPOpFprZNmcdpU5GqZNR6mSUuqma6WHhOImF//gPlQVDFdXQjRZWRe+XmqmKjv0Fh1hHqZNR6mSUOhmlbmXN9LDvv/WFV56ptxaWQe9XPtYNerhVbz1YR6mTUepklDoZpW5jzdS0r96aKRpmGku3KqpjrKPUySh1MkqdjFL3E2qmmZLi2HsXPk84VJz9gPO3rKPUySh1MkqdjFK3sWba9996pNCZGSexbzLFwl97pN6yjlIno9TJKHUySt3KmunYQ2IL9wbNlAUz8/qGLGxZfeJjftZR6mSUOhmlTkapm6qZbvUhbnWwHo6VXzOGCsom6yh1MkqdjFIno9RdO58p8iTbsbOOFlZUQ/Zt53q/1MKC0jpKnYxSJ6PUySh1G/tMM8XKwr5L5BTXY/P6Zs6jmvkYQ+8dYh2lTkapk1HqZJS6jX2mW92RoUu9WzgDYsjC6RJDL164NWoh6yh1MkqdjFIno9R9fcSOllv21S4LbzTjVvU5xDpKnYxSJ6PUySh1K/tMC/f3fESj5eHYoLx3Q1//2I1mWEepk1HqZJQ6GaVu46zxYyOxb+1Yejj2pOKxwQ1D9v3araPUySh1MkqdjFJ3btb4whLq2KFK72amLRzb/LSvk7TvvQ/WUepklDoZpU5GqVvZZ3q3b3Dc+3v3vfjYuPSFbt13hnWUOhmlTkapk1HqNs6AOHYy0LuhYuXYU3/7znY61tB62Bck6yh1MkqdjFIno9Rt3M/0sPBBvn1HHy1877EzpRY+uNhkHaVORqmTUepklLqpPlOkKzPz2Nu+yQWfOEVw6FPtu9SDdZQ6GaVORqmTUeo27meKdIOOjdPeNxEjYuj7mgHBLyKj1MkodTJKXWVu3r5xdvueVVvY35rpBt0a035syIV1lDoZpU5GqZNR6q6dzzTUpbg1TvvYGIuh2erNptS+UtU6Sp2MUiej1MkodZX9TAsHhN86PXbfhIhjraNmP886Sp2MUiej1MkodStrpodjD6e93/cjpjy8i5xHdWxH2oN1lDoZpU5GqZNR6q71mW7Nc4u0Uo5VckP33fcF7WfiJ5NR6mSUOhmlbuWZts0jX28NJj/2QN2QY19wIesodTJKnYxSJ6PUbZw1/jBUFhx7wGzop8d6VPumCL7/dN8YvRnWUepklDoZpU5GqYs+m/d+o1uXujXV+9ixvLc2t72zjlIno9TJKHUySt3KZ/PGbvwJe6HerxwZAR6pqPSZ+L1klDoZpU5GqbtWM804VlHdaiy9uzVNfOZSM6yj1MkodTJKnYxSN7Wf6VhnZeaM18hzfTMvHrrUsU1IxwZGWEepk1HqZJQ6GaVu5QyIHzCC7/29D49L3erKzPyuZj7VvpOFH6yj1MkodTJKnYxSt3FuXmRw9czguKEX7ysa3j/Gw/ununXCrz4TP5mMUiej1MkodedmjS+0b372zINtMy+eKTgWTl6fefG+asw6Sp2MUiej1MkodR9ZM72LjEiYuXJEpK9mHaVORqmTUepklLqNNdOxKmGoDTNk3/yIha2jyClZ+1hHqZNR6mSUOhmlbmXNdOt/6iELeycLGy3vl7p1HtUQZ9rye8kodTJKnYxS95HnM/GrWEepk1HqZJQ6GaVORqmTUepklDoZpU5GqZNR6mSUOhmlTkapk1HqZJQ6GaVORqmTUepklLq/N7ig23FGu/oAAAAASUVORK5CYII=",
        "requires_table": false,
        "requires_driver": false,
        "requires_reference": false,
        "requires_customer": false,
        "market": {
          "id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
          "sector_id": 15,
          "name_en": "Franecki Ltd",
          "name_ar": "Wintheiser-Barrows",
          "description_en": "Eaque distinctio fuga nihil vitae velit.",
          "description_ar": null,
          "logo_img": "https://via.placeholder.com/200x200.png/009955?text=business+logo+facilis",
          "cover_img": "https://via.placeholder.com/200x200.png/009999?text=business+cover+amet",
          "email": "[email protected]",
          "phone_prefix": "967",
          "phone_number": "7856586642",
          "crn": "033-466-2828",
          "tax_number": "66596607090",
          "created_by": null,
          "email_verified_at": 1792593329562,
          "phone_verified_at": 1792593329562,
          "created_at": 1792593329465,
          "updated_at": 1792593340021,
          "deleted_at": null,
          "is_active": true,
          "merchant_id": null,
          "reseller_id": null,
          "slug": "wisoky-feest",
          "code": "ENT-0000000001",
          "links": {
            "website": null,
            "instagram": null,
            "youtube": null,
            "x": null,
            "call_center": null
          },
          "phone": "7856586642"
        },
        "transaction": null
      },
      {
        "id": "50ecf11b-b298-4759-b9e3-b0f9321bf3af",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "number": "DOC-1",
        "source": null,
        "type": "DINING",
        "status": "PROCESS",
        "table_code": null,
        "notes": null,
        "customer_id": null,
        "cashier_id": "ebc30223-fb55-4cb6-9a34-5dba696a57b1",
        "created_at": 1100,
        "updated_at": null,
        "deleted_at": null,
        "is_product_changed": false,
        "table_id": null,
        "state": "ONLINE",
        "close_at": null,
        "encoded_number": null,
        "driver_id": null,
        "start_at": null,
        "external_reference": null,
        "waiter_user_id": null,
        "guest_count": null,
        "has_rounds": false,
        "version": 0,
        "cancel_reason": null,
        "unconfirmed_since": null,
        "client_id": null,
        "locked_at": null,
        "locked_by_user_id": null,
        "locked_by_device_id": null,
        "lock_reason": null,
        "lock_expires_at": null,
        "settle_requested_at": null,
        "workday": null,
        "qr_img": "data:image/png;base64,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",
        "requires_table": false,
        "requires_driver": false,
        "requires_reference": false,
        "requires_customer": false,
        "market": {
          "id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
          "sector_id": 15,
          "name_en": "Franecki Ltd",
          "name_ar": "Wintheiser-Barrows",
          "description_en": "Eaque distinctio fuga nihil vitae velit.",
          "description_ar": null,
          "logo_img": "https://via.placeholder.com/200x200.png/009955?text=business+logo+facilis",
          "cover_img": "https://via.placeholder.com/200x200.png/009999?text=business+cover+amet",
          "email": "[email protected]",
          "phone_prefix": "967",
          "phone_number": "7856586642",
          "crn": "033-466-2828",
          "tax_number": "66596607090",
          "created_by": null,
          "email_verified_at": 1792593329562,
          "phone_verified_at": 1792593329562,
          "created_at": 1792593329465,
          "updated_at": 1792593340021,
          "deleted_at": null,
          "is_active": true,
          "merchant_id": null,
          "reseller_id": null,
          "slug": "wisoky-feest",
          "code": "ENT-0000000001",
          "links": {
            "website": null,
            "instagram": null,
            "youtube": null,
            "x": null,
            "call_center": null
          },
          "phone": "7856586642"
        },
        "transaction": {
          "id": 4,
          "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
          "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
          "order_id": "50ecf11b-b298-4759-b9e3-b0f9321bf3af",
          "discount": 0,
          "tax": 0,
          "subtotal": 0,
          "total": 100,
          "cost": 0,
          "profit": 0,
          "created_at": null,
          "updated_at": null,
          "status": "PAID",
          "discount_id": null,
          "charge": 0,
          "payment_fees": 0
        }
      },
      {
        "id": "2c9791c5-a1db-4788-99e9-ae6328cabb0d",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "number": "DOC-2",
        "source": null,
        "type": "TAKE_AWAY",
        "status": "WAITING",
        "table_code": null,
        "notes": null,
        "customer_id": null,
        "cashier_id": "ebc30223-fb55-4cb6-9a34-5dba696a57b1",
        "created_at": 1100,
        "updated_at": null,
        "deleted_at": null,
        "is_product_changed": false,
        "table_id": null,
        "state": "ONLINE",
        "close_at": null,
        "encoded_number": null,
        "driver_id": null,
        "start_at": null,
        "external_reference": null,
        "waiter_user_id": null,
        "guest_count": null,
        "has_rounds": false,
        "version": 0,
        "cancel_reason": null,
        "unconfirmed_since": null,
        "client_id": null,
        "locked_at": null,
        "locked_by_user_id": null,
        "locked_by_device_id": null,
        "lock_reason": null,
        "lock_expires_at": null,
        "settle_requested_at": null,
        "workday": null,
        "qr_img": "data:image/png;base64,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",
        "requires_table": false,
        "requires_driver": false,
        "requires_reference": false,
        "requires_customer": false,
        "market": {
          "id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
          "sector_id": 15,
          "name_en": "Franecki Ltd",
          "name_ar": "Wintheiser-Barrows",
          "description_en": "Eaque distinctio fuga nihil vitae velit.",
          "description_ar": null,
          "logo_img": "https://via.placeholder.com/200x200.png/009955?text=business+logo+facilis",
          "cover_img": "https://via.placeholder.com/200x200.png/009999?text=business+cover+amet",
          "email": "[email protected]",
          "phone_prefix": "967",
          "phone_number": "7856586642",
          "crn": "033-466-2828",
          "tax_number": "66596607090",
          "created_by": null,
          "email_verified_at": 1792593329562,
          "phone_verified_at": 1792593329562,
          "created_at": 1792593329465,
          "updated_at": 1792593340021,
          "deleted_at": null,
          "is_active": true,
          "merchant_id": null,
          "reseller_id": null,
          "slug": "wisoky-feest",
          "code": "ENT-0000000001",
          "links": {
            "website": null,
            "instagram": null,
            "youtube": null,
            "x": null,
            "call_center": null
          },
          "phone": "7856586642"
        },
        "transaction": {
          "id": 5,
          "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
          "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
          "order_id": "2c9791c5-a1db-4788-99e9-ae6328cabb0d",
          "discount": 0,
          "tax": 0,
          "subtotal": 0,
          "total": 50,
          "cost": 0,
          "profit": 0,
          "created_at": null,
          "updated_at": null,
          "status": "UNPAID",
          "discount_id": null,
          "charge": 0,
          "payment_fees": 0
        }
      },
      {
        "id": "2a779185-f4a4-45d0-be45-1a39c146bbd9",
        "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
        "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
        "number": "DOC-3",
        "source": null,
        "type": "DINING",
        "status": "COMPLETED",
        "table_code": null,
        "notes": null,
        "customer_id": null,
        "cashier_id": "ebc30223-fb55-4cb6-9a34-5dba696a57b1",
        "created_at": 500,
        "updated_at": null,
        "deleted_at": null,
        "is_product_changed": false,
        "table_id": null,
        "state": "ONLINE",
        "close_at": null,
        "encoded_number": null,
        "driver_id": null,
        "start_at": null,
        "external_reference": null,
        "waiter_user_id": null,
        "guest_count": null,
        "has_rounds": false,
        "version": 0,
        "cancel_reason": null,
        "unconfirmed_since": null,
        "client_id": null,
        "locked_at": null,
        "locked_by_user_id": null,
        "locked_by_device_id": null,
        "lock_reason": null,
        "lock_expires_at": null,
        "settle_requested_at": null,
        "workday": null,
        "qr_img": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAACx0UUtAAAABnRSTlMA/wD/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFb0lEQVR4nO3dy27kOBBFwfFg/v+Xe/ZasEGIj1OuiG3bksp9QVQixeTPnz9//oGwf28/APyFjFIno9TJKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFIno9TJKHUySp2MUiej1P335pd/fn5WPcfYY9PV477H/vVh/PHHVx7/8NjUR3jzVAu92TZnHaVORqmTUepklLpXNdPDwnESC7/4T5UFU0XSrapofKk3VdGx/8Ep1lHqZJQ6GaVORqlbWTM97Pu2HimDpkx1sG51gx5u1VsP1lHqZJQ6GaVORqnbWDM1vWlKvXmRb+qpphpLtyqqY6yj1MkodTJKnYxS9xtqpoW7jsbe7HZa+D7h1DP/gvO3rKPUySh1MkqdjFK3sWba9219X5E01e/ZV0IdqwLHIvWWdZQ6GaVORqmTUepW1kzHXhJbuDdo38C6hXuSFrasPvE1P+sodTJKnYxSJ6PUvaqZbvUhbnWwHhbuZ9o39GGqoGyyjlIno9TJKHUySt2185kib7It/Aj7XplbOF1i6spv5uYtLCito9TJKHUySp2MUreyz7TvFbI3X8BvHfm675ykhS8B7quoFnawrKPUySh1MkqdjFL3s29C9tTvTll4o2OXijS0Fm7JOvZen3WUOhmlTkapk1HqXtVMr268bujcwh9+OLa96dakhmaZ+2AdpU5GqZNR6mSUupX7mfa1Q6YeY+qHx8/cHJQ3NvWHPXajN6yj1MkodTJKnYxSt3Fu3q05crf2JO3b37OvC7WvzlvIOkqdjFIno9TJKHUbz7Td9+V930iIN0c9je3bDHRsfMYUMyD4IjJKnYxSJ6PUXZs1PnbsLbjIdLtju8pu3fcN6yh1MkqdjFIno9Rdm5s3vtTDwoLj1qtrb65866Td8ZUf9pVf1lHqZJQ6GaVORqnbuJ9p7FiRNL7ym6cauzVc/CNaR1Oso9TJKHUySp2MUreyzzTl1ktxY81O0ieOWn9zqQfrKHUySp2MUiej1G2cAfGwcFLDvuELC9+Cu3Xk0j77/pJj1lHqZJQ6GaVORqlb+W7ewuOaFradFnrzAfedVrWwC7XvpCt9Jn4zGaVORqmTUerOnWm78PTYhSINnvHHP/bXeGPf7AnrKHUySp2MUiej1L3az/SXS6+rqH7f4LhbQ83f3GjqvgtZR6mTUepklDoZpW7jDIiF0wdu7Q2KDEFY+FrjJ74waR2lTkapk1HqZJS6lX2mYyfPTmme4nrsOOCp+x4LwxTrKHUySp2MUiej1F2bmxfpcEQeY2F9ua/5N3UpfSa+iIxSJ6PUySh152qmWyMh9g33e5j6CGP7dneN/3XfGL03rKPUySh1MkqdjFK3cj9TpMHz5lLHzpbdNwPijVub28aso9TJKHUySp2MUndtbt7U744tLHTGbg1EH4tUVPpMfC8ZpU5GqZNR6jbWTPvc6m8d25I11tzstY91lDoZpU5GqZNR6laeabvP+IzXh2MjsSOjuG9tQjr2ea2j1MkodTJKnYxSt3IGxLHTY988xsL5EWPHZpzfGuK+cFDFmHWUOhmlTkapk1HqNs7Nu9V32VfZ3NrQM77Rw9RAwn2cz8QXkVHqZJQ6GaXu3Kzxhcbfx9/0md5MxhtbuI9q6neP/fA+1lHqZJQ6GaVORqn7yJrp4SOmev++WRvH+mrWUepklDoZpU5GqdtYMx2rEvZ9l1/YhtnXOtp3Su/4RsdYR6mTUepklDoZpW5lzXTrO/WUfRXGvpOf3nS/jlWuzrTle8kodTJKnYxS95HnM/FVrKPUySh1MkqdjFIno9TJKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFIno9TJKHUySt3/DTuX7USF/44AAAAASUVORK5CYII=",
        "requires_table": false,
        "requires_driver": false,
        "requires_reference": false,
        "requires_customer": false,
        "market": {
          "id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
          "sector_id": 15,
          "name_en": "Franecki Ltd",
          "name_ar": "Wintheiser-Barrows",
          "description_en": "Eaque distinctio fuga nihil vitae velit.",
          "description_ar": null,
          "logo_img": "https://via.placeholder.com/200x200.png/009955?text=business+logo+facilis",
          "cover_img": "https://via.placeholder.com/200x200.png/009999?text=business+cover+amet",
          "email": "[email protected]",
          "phone_prefix": "967",
          "phone_number": "7856586642",
          "crn": "033-466-2828",
          "tax_number": "66596607090",
          "created_by": null,
          "email_verified_at": 1792593329562,
          "phone_verified_at": 1792593329562,
          "created_at": 1792593329465,
          "updated_at": 1792593340021,
          "deleted_at": null,
          "is_active": true,
          "merchant_id": null,
          "reseller_id": null,
          "slug": "wisoky-feest",
          "code": "ENT-0000000001",
          "links": {
            "website": null,
            "instagram": null,
            "youtube": null,
            "x": null,
            "call_center": null
          },
          "phone": "7856586642"
        },
        "transaction": {
          "id": 6,
          "market_id": "eef0da10-dd19-4a4c-ab3d-23dd1b548801",
          "branch_id": "2438ea30-370a-4ca0-9423-f635f83f1bec",
          "order_id": "2a779185-f4a4-45d0-be45-1a39c146bbd9",
          "discount": 0,
          "tax": 0,
          "subtotal": 0,
          "total": 20,
          "cost": 0,
          "profit": 0,
          "created_at": null,
          "updated_at": null,
          "status": "PAID",
          "discount_id": null,
          "charge": 0,
          "payment_fees": 0
        }
      }
    ],
    "first_page_url": "https://localhost:8000/api/v2/orders?page=1",
    "from": 1,
    "last_page": 1,
    "last_page_url": "https://localhost:8000/api/v2/orders?page=1",
    "links": [
      {
        "url": null,
        "label": "&laquo; Previous",
        "page": null,
        "active": false
      },
      {
        "url": "https://localhost:8000/api/v2/orders?page=1",
        "label": "1",
        "page": 1,
        "active": true
      },
      {
        "url": null,
        "label": "Next &raquo;",
        "page": null,
        "active": false
      }
    ],
    "next_page_url": null,
    "path": "https://localhost:8000/api/v2/orders",
    "per_page": 10,
    "prev_page_url": null,
    "to": 5,
    "total": 5
  }
}
{
  "meta": {
    "code": 401,
    "status": "error",
    "message": "Unauthenticated."
  },
  "data": null
}
{
  "meta": {
    "code": 403,
    "status": "error",
    "message": "Unauthorized."
  },
  "data": null
}
{
  "meta": {
    "code": 404,
    "status": "error",
    "message": "Resource not found."
  },
  "data": null
}
{
  "meta": {
    "code": 500,
    "status": "error",
    "message": "Internal server error."
  },
  "data": null
}

Order Create POST

Creates an order. On a branch whose `waiter.qr.enabled` is on, in a table section whose `qr_enabled` is on, a body from a **customer** carrying a `table_id` is a QR self-order (waiter contract §15.2, W13): the table's open order is reused when it has one and created `WAITING` / `DINING` with no owner when it has not, and the lines become a round on that order with `status = PENDING` — priced at once, so the guest sees a total, but held back from the kitchen until a waiter sends `ROUND_ACCEPT` (or at once when `waiter.qr.auto_accept` is on). The response is the order with `rounds[]`, which on a reused table is the table's existing order and not a second one. A pending round the waiter never answers is auto-rejected after `waiter.qr.pending_minutes` with `reject_reason = EXPIRED`. A QR round on a table whose open order ZATCA has already reported (`order_zatcas.is_synced` 1 or 2) answers `423 order.money_locked` (`data.error.code`, `data.money_lock`) and adds no round. A branch or section with QR off, and every caller that is not a customer, keep today's behaviour exactly: a new order per submission and no round. **Gated by the branch cutover switch** (`branch_settings.waiter.table_service`, contract §15.7): a **staff** body with `type = DINING` **and** a `table_id` answers `409 waiter.table_service_off` — `data.error.code`, with the branch's current value at `data.table_service` — on a branch set to `SETTLE_ONLY` or `OFF`, because opening a table belongs to the waiter app there. A `DINING` body **without** a `table_id` is allowed at every value, and a guest's QR submission is never refused by the switch. **Off-hours (FP-1083):** on a branch that uses its schedule as the workday, a caller with no open attendance (guest QR — a first order or another round on the table's order —, online, admin/merchant) is refused outside the trading window, i.e. before the opening (the early check-in window is for cashier prep only) or once closing plus overtime has passed: `409 branch.closed` at `data.error.code`, with `data.next_opening_at` (epoch ms) and `data.timezone` (the branch's IANA zone) for the client's "closed, opens at" note. A branch with no open day at all is never refused. An order by a cashier with an open attendance, `POST /v2/sync/orders` and `/v2/orders/calc` are never refused.

Create Ingredient POST

Create a new ingredient with its initial branch stock.