iRetail PRO store node 1.0.0-m1: floor

8 operations

← All documentation · Source: contracts openapi/store-v1.yaml at 8000474.

← iRetail PRO store node 1.0.0-m1

Operations

GET /v1/floor The floor's areas and tables with their live state (spec/RESTAURANT.md, The floor), with check.use or floor.manage; QR tokens only with floor.manage.

Without the restaurant license module, tables past the store's first three by id are marked locked (spec/LICENSE.md, The restaurant's three places).

operationId getFloor · Permission check.use

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).

Responses

  • 200 OK Floor
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
POST /v1/areas Add an area (a room) to the floor.

operationId createArea · Permission floor.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
Idempotency-Key header string spec/API.md, Idempotency.

Request body required

Responses

  • 201 OK Area
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
PATCH /v1/areas/{id} Rename or reorder an area.

operationId updateArea · Permission floor.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
id required path string (uuid) Id.
If-Match header string The version the change is based on.

Request body required

Responses

  • 200 OK Area
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 412 Error (spec/API.md). Error
DELETE /v1/areas/{id} Delete an area with no tables (409 area_not_empty otherwise).

operationId deleteArea · Permission floor.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
id required path string (uuid) Id.

Responses

  • 204 Done
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
POST /v1/tables Draw a table on an area's grid; it gets its QR token.

Without the restaurant license module a store has three places, each table and each open or billed tab taking one; a table past them is 409 license_limit with details tables 3 (spec/LICENSE.md, The restaurant's three places).

operationId createTable · Permission floor.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
Idempotency-Key header string spec/API.md, Idempotency.

Request body required

Responses

  • 201 OK Table
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
  • 422 Error (spec/API.md). Error
PATCH /v1/tables/{id} Move, resize, rotate, rename a table or change its seats or area.

operationId updateTable · Permission floor.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
id required path string (uuid) Id.
If-Match header string The version the change is based on.

Request body required

Responses

  • 200 OK Table
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
  • 412 Error (spec/API.md). Error
  • 422 Error (spec/API.md). Error
DELETE /v1/tables/{id} Delete a table with no open or billed check (409 table_in_use otherwise).

operationId deleteTable · Permission floor.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
id required path string (uuid) Id.

Responses

  • 204 Done
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
POST /v1/tables/{id}/token Draw a new QR token for a table; the old one is retired and answers 404 to guests from now on.

operationId regenerateTableToken · Permission floor.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
id required path string (uuid) Id.
If-Match header string The version the change is based on.

Responses

  • 200 OK Table
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 412 Error (spec/API.md). Error

Schemas

Error object

Every error response.

error required string Stable code, see spec/API.md.
message required string English text for logs.
details object

LocalizedText map of string

Text by language code; the organization's default language must be present.

Area object

A room of the floor (spec/RESTAURANT.md, The floor).

id required string (uuid)
name required LocalizedText
position required integer The area's order among the floor's tabs.
version required integer (int64)

AreaWrite object

name required LocalizedText
position integer The area's order among the floor's tabs.

AreaPatch object

name LocalizedText
position integer The area's order among the floor's tabs.

TableShape "rect" | "circle"

rect · circle

Table object

A table on its area's grid (spec/RESTAURANT.md, The floor).

id required string (uuid)
area_id required string (uuid)
name required string
shape required TableShape
x required integer
y required integer
w required integer
h required integer
rotation required 0 | 90 | 180 | 270
seats required integer
qr_token required string | null 128 random bits in lower-case base32 for the table's QR code; null unless the caller holds floor.manage.
version required integer (int64)

TableWrite object

area_id required string (uuid)
name required string
shape required TableShape
x required integer
y required integer
w required integer
h required integer
rotation 0 | 90 | 180 | 270
seats required integer

TablePatch object

area_id string (uuid)
name string
shape TableShape
x integer
y integer
w integer
h integer
rotation 0 | 90 | 180 | 270
seats integer

CheckState "open" | "billed" | "closed" | "canceled"

open · billed · closed · canceled

CheckSummary object

A check as the floor and the agents see it, without its lines.

id required string (uuid)
number required integer (int64)
kind required "table" | "tab"
table_id required string (uuid) | null
table_name required string | null
name required string | null A tab's name; null for a check on a table.
waiter_id required string (uuid)
waiter_name required string The waiter's name as the staff list has it, the same a kitchen ticket prints (spec/RESTAURANT.md, The floor).
covers required integer
state required CheckState
total_minor required integer (int64)
opened_at required string (date-time)
version required integer (int64)

FloorTable object

table required Table
checks required array of CheckSummary The table's open and billed checks, oldest first.
guest_orders_pending required integer
locked required boolean True when the store lacks the restaurant license module and this table is past its first three by id; no new check opens on it, the checks already on it go on, and its QR code answers guests 404 (spec/LICENSE.md, The restaurant's three places).

Floor object

areas required array of Area
tables required array of FloorTable
tabs required array of CheckSummary Open and billed tabs, oldest first.