Qui La Carne API (1.0)

Download OpenAPI specification:

Manager

Change report status and process bans

Allows a manager to accept or reject an existing guest report. If the report is accepted (isAccepted: true), the system automatically issues a ban for the reported guest until the specified expiresAt date and sends an email notification. Requires MANAGER role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
reportToken
string

Unique identifier (token) of the report being evaluated

expiresAt
string <date-time>

The exact date and time when the ban should expire. Required if the report is accepted.

accepted
boolean

Responses

Request samples

Content type
application/json
{
  • "reportToken": "550e8400-e29b-41d4-a716-446655440000",
  • "expiresAt": "2026-12-31T23:59:59Z",
  • "accepted": true
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get full restaurant menu

Returns a list of all available dishes including ingredients and allergens. The names of categories and allergens are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
query Parameters
page
integer <int32> >= 1

Page number (Default 1)

size
integer <int32> >= 1

Number of item per page (Default 10)

excludedAllergens
Array of strings

List of allergen tokens to exclude (e.g., GLUTEN, LACTOSE)

header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Edit an existing dish

Updates dish details and/or replaces its photo on S3. Requires ROLE_MANAGER privileges. Uses multipart/form-data.

Authorizations:
bearerAuth
Request Body schema: multipart/form-data
dishToken
required
string non-empty
newName
string
categoryToken
string
price
integer <int32>
ingredientTokens
Array of strings
photo
string <binary>

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Add a new dish

Creates a new dish in the menu and optionally uploads its photo to S3. Requires ROLE_MANAGER privileges. Uses multipart/form-data.

Authorizations:
bearerAuth
Request Body schema: multipart/form-data
name
required
string non-empty
price
required
integer <int32>
categoryToken
required
string non-empty
ingredientTokens
Array of strings
photo
string <binary>

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Change dish availability

Toggles the availability of a dish. If marking as unavailable, an optional reason can be provided. Requires ROLE_MANAGER privileges.

Authorizations:
bearerAuth
Request Body schema: application/json
required
token
required
string non-empty
unavailableReason
string [ 0 .. 500 ] characters
available
boolean

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "unavailableReason": "string",
  • "available": true
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Add a new employee

Creates a new employee account (Manager or Waiter) and automatically activates it. Requires ROLE_MANAGER privileges.

Authorizations:
bearerAuth
Request Body schema: application/json
required
object (RegisterRequest)
admin
boolean

Responses

Request samples

Content type
application/json
{
  • "register": {
    },
  • "admin": true
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Edit employee details

Updates the email and/or username of an existing employee. Only provided fields will be updated. Requires ROLE_MANAGER privileges.

Authorizations:
bearerAuth
Request Body schema: application/json
required
employeeToken
string
email
string
userName
string

Responses

Request samples

Content type
application/json
{
  • "employeeToken": "string",
  • "email": "string",
  • "userName": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Generate 2FA QR code for setup

Generates a new 2FA secret and returns a QR code URI along with a manual code. Does NOT enable 2FA yet. Requires ROLE_MANAGER.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Verify code and enable 2FA on account

Verifies the 6-digit code from the authenticator app. If correct, permanently enables 2FA for the manager's account. Requires ROLE_MANAGER.

Authorizations:
bearerAuth
Request Body schema: application/json
required
code
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "code": 0
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get full list of restaurant tables or check availability

Returns a list of tables. If startTime and endTime are provided, it filters out tables that are reserved or unavailable in that timeframe. The names of table status are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
query Parameters
required
object (TableFilterRequest)
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Add a new restaurant table

Creates a new table with the specified number and capacity. The table is automatically assigned the default 'AVAILABLE' status. Requires ROLE_MANAGER.

Authorizations:
bearerAuth
Request Body schema: application/json
required
tableNumber
integer <int32>
capacity
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "tableNumber": 0,
  • "capacity": 0
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Add a new table status

Creates a new table status in the system. The English name is automatically used to generate a unique token. Requires MANAGER role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
namePl
required
string non-empty
nameEn
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "namePl": "string",
  • "nameEn": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get user reservations history

Retrieves a paginated and filterable list of reservations made by the currently authenticated user. Supports filtering by date range and status.

Authorizations:
bearerAuth
query Parameters
page
integer <int32> >= 1

Page number (Default 1)

size
integer <int32> >= 1

Number of item per page (Default 10)

fromDate
string <date-time>

From this date

toDate
string <date-time>

To this date

statusToken
string

If give status token, list show only reservation with this status

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Create a new guest report

Creates a new incident report for a specific client. The user being reported must have the ROLE_CLIENT. The report is created with an initial status of IN_PROGRESS. Requires WAITER or MANAGER role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
clientToken
required
string non-empty
reason
required
string [ 10 .. 500 ] characters

Responses

Request samples

Content type
application/json
{
  • "clientToken": "string",
  • "reason": "stringstri"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Add a new order status

Creates a new order status in the system. The English name is automatically used to generate a unique token. Requires MANAGER role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
namePl
required
string non-empty
nameEn
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "namePl": "string",
  • "nameEn": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Add a new order item status

Creates a new order item status in the system. The English name is automatically used to generate a unique token. Requires MANAGER role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
namePl
required
string non-empty
nameEn
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "namePl": "string",
  • "nameEn": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Add a new ingredient

Creates a new ingredient in the system. The English name is automatically used to generate a unique token. Requires MANAGER role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
object (AddEntityRequest)
allergenTokens
Array of strings unique

Responses

Request samples

Content type
application/json
{
  • "entity": {
    },
  • "allergenTokens": [
    ]
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Add a new dish category

Creates a new dish category in the system. The English name is automatically used to generate a unique token. Requires MANAGER role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
namePl
required
string non-empty
nameEn
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "namePl": "string",
  • "nameEn": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Add a new allergen

Creates a new allergen in the system. The English name is automatically used to generate a unique token. Requires MANAGER role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
namePl
required
string non-empty
nameEn
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "namePl": "string",
  • "nameEn": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Ban a user manually

Allows a manager to manually ban a client without needing a prior report. The targeted user must have the ROLE_CLIENT. Automatically deactivates the user and sends an email notification. Requires MANAGER role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
clientToken
required
string non-empty

Unique identifier (token) of the client to be banned

reason
required
string [ 0 .. 500 ] characters

The detailed reason for the ban. This will be included in the email sent to the user.

expiresAt
required
string <date-time>

The exact date and time when the ban should expire

Responses

Request samples

Content type
application/json
{
  • "clientToken": "330e8400-e29b-41d4-a716-116655440000",
  • "reason": "Repeated aggressive behavior towards staff.",
  • "expiresAt": "2026-12-31T23:59:59Z"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Verify 2FA code and get JWT Token

Validates the 6-digit 2FA code along with the Pre-Auth token. If valid, returns the final JWT Bearer token giving full access to the system.

Authorizations:
bearerAuth
Request Body schema: application/json
required
preAuthToken
required
string non-empty
code
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "preAuthToken": "string",
  • "code": 0
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Refresh Access Token

Exchanges a valid Refresh Token for a new pair of Access and Refresh tokens.

Authorizations:
bearerAuth
cookie Parameters
refreshToken
string
Request Body schema: application/json
refreshToken
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Logout user

Logs out the authenticated user by revoking their refresh token. The client application must also delete the JWT and Refresh Token locally.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Authenticate user (Login Step 1)

Authenticates a user using their username (or email) and password. If credentials are valid and 2FA is OFF, a final JWT token is returned. If 2FA is ON, a Pre-Auth token is returned and the 'requires2fa' flag is set to true. In that case, the client must proceed to the /verify-2fa endpoint.

Authorizations:
bearerAuth
Request Body schema: application/json
required
username
required
string non-empty

Username or Email address

password
required
string non-empty

User password

Responses

Request samples

Content type
application/json
Example

Admin Login

{
  • "username": "admin",
  • "password": "Admin123!"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Change employee role

Allows a manager to change the role of an employee (e.g., promote to Manager or demote to Waiter). Managers cannot change their own role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
employeeToken
required
string non-empty
admin
boolean

Responses

Request samples

Content type
application/json
{
  • "employeeToken": "string",
  • "admin": true
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Change employee password

Allows a manager to forcefully change an employee's password. Managers cannot change their own password using this endpoint.

Authorizations:
bearerAuth
Request Body schema: application/json
required
employeeToken
required
string non-empty
password
required
string [ 6 .. 100 ] characters ^(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?"{}|<>...

Password (min. 6 chars, 1 uppercase, 1 digit, 1 special)

confirmPassword
required
string non-empty

Must match the password field

Responses

Request samples

Content type
application/json
{
  • "employeeToken": "string",
  • "password": "SecurePass123!",
  • "confirmPassword": "SecurePass123!"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Change employee availability (Block/Unblock)

Allows a manager to block or unblock an employee's access to the system. Managers cannot change their own availability.

Authorizations:
bearerAuth
Request Body schema: application/json
required
employeeToken
required
string non-empty
available
boolean

Responses

Request samples

Content type
application/json
{
  • "employeeToken": "string",
  • "available": true
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of table statuses

Retrieves a dictionary list of all table statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Review cache List

Review list of all Redis caches names (e.g., 'usersList', 'dishMenu'). Requires ROLE_MANAGER.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of users (Sync)

Returns a paginated, flat list of users (both staff and guests) with their role tokens and a convenient isStaff flag.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of tables (Sync)

Returns a paginated, flat list of tables with their statuses.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch system roles

Returns a flat list of all available roles in the system. Used to synchronize the roles dictionary on client devices.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of reservations (Sync)

Returns a paginated, flat list of reservations with foreign key tokens (user, table, statuses).

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of reports

Returns a paginated, flat list of guest reports with foreign key tokens (guest, reporter, statuses). Page size is strictly fixed by the server.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of orders (Sync)

Returns a paginated, flat list of orders with foreign key tokens (reservation, table, waiter, statuses).

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of order items (Sync)

Returns a paginated, flat list of order items with foreign key tokens (order, product, statuses).

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of ingredients (Sync)

Returns a paginated, flat list of ingredients with their translations and associated allergen tokens.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of dishes

Returns a paginated, flat list of dishes with foreign key tokens. Page size is strictly fixed by the server.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch all system dictionaries

Returns flat lists of all dictionaries (statuses, categories, allergens) with EN/PL translations, perfect for saving in local SQLite

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "allergens": [
    ],
  • "dishCategories": [
    ],
  • "banStatuses": [
    ],
  • "reportStatuses": [
    ],
  • "orderStatuses": [
    ],
  • "orderItemStatuses": [
    ],
  • "reservationStatuses": [
    ],
  • "tableStatuses": [
    ]
}

Download the sync manifest (Bootstrap)

Returns the number of records and pages for each system module. Used to initialize the database on mobile and desktop devices.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "modules": {
    },
  • "serverTime": "2019-08-24T14:15:22Z"
}

Fetch flat list of bans

Returns a paginated, flat list of bans with foreign key tokens (user, bannedBy, statuses). Page size is strictly fixed by the server.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get reservation details

Retrieves the full details of a specific reservation, including pre-ordered dishes and total price.

Authorizations:
bearerAuth
path Parameters
token
required
string

Reservaton token

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of reservation statuses

Retrieves a dictionary list of all reservation statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of order item statuses

Retrieves a dictionary list of all order item statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of order statuses

Retrieves a dictionary list of all order statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of ingredients (dictionary)

Retrieves a dictionary list of all ingredients available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of dish categories

Retrieves a dictionary list of all dish categories available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of allergens

Retrieves a dictionary list of all allergens available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of bans statuses

Retrieves a dictionary list of all bans statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Delete employee

Performs a soft delete of an employee account, anonymizing their personal data and deactivating the account. Managers cannot delete themselves.

Authorizations:
bearerAuth
path Parameters
employeeToken
required
string

Token of the employee to delete

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Delete a restaurant table

Performs a soft delete of a table. It will no longer be visible in the active tables list. Requires ROLE_MANAGER.

Authorizations:
bearerAuth
path Parameters
token
required
string

Table token

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Remove a table status (Soft Delete)

Marks a table status as deleted and reassigns tables to 'AVAILABLE'. Requires ROLE_MANAGER.

Authorizations:
bearerAuth
path Parameters
token
required
string

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Clear specific cache

Flushes a specific Redis cache by its name (e.g., 'usersList', 'dishMenu'). Requires ROLE_MANAGER.

Authorizations:
bearerAuth
path Parameters
cacheName
required
string

Name of the cache to clear

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Clear all caches

Flushes all Redis caches managed by the application. Requires ROLE_MANAGER.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Remove an order status (Soft Delete)

Marks an order status as deleted and automatically reassigns all associated orders to the default 'OTHER' status. Requires ROLE_MANAGER.

Authorizations:
bearerAuth
path Parameters
token
required
string

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Remove an order item status (Soft Delete)

Marks an order item status as deleted and automatically reassigns all associated order items to the default 'OTHER' status. Requires ROLE_MANAGER.

Authorizations:
bearerAuth
path Parameters
token
required
string

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Remove an ingredient

Performs a soft delete on an ingredient by its token. Also automatically marks all dishes containing this ingredient as unavailable. Requires MANAGER role.

Authorizations:
bearerAuth
path Parameters
token
required
string

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Remove a dish (Soft Delete)

Marks a dish as deleted by setting its availability to false, adding an unavailable reason, and setting the deleted_at timestamp. Requires ROLE_MANAGER privileges.

Authorizations:
bearerAuth
path Parameters
token
required
string

The unique token of the dish to be removed

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Remove a dish category (Soft Delete)

Marks a dish category as deleted and automatically reassigns all associated dishes to the default 'OTHER' category. Requires ROLE_MANAGER privileges.

Authorizations:
bearerAuth
path Parameters
token
required
string

The unique token of the dish category to be removed

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Remove a allergen (Soft Delete)

Marks a dish as allergen by setting its availability to false, adding an unavailable reason, and setting the deleted_at timestamp. Requires ROLE_MANAGER privileges.

Authorizations:
bearerAuth
path Parameters
token
required
string

The unique token of the dish to be removed

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Client

Get full restaurant menu

Returns a list of all available dishes including ingredients and allergens. The names of categories and allergens are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
query Parameters
page
integer <int32> >= 1

Page number (Default 1)

size
integer <int32> >= 1

Number of item per page (Default 10)

excludedAllergens
Array of strings

List of allergen tokens to exclude (e.g., GLUTEN, LACTOSE)

header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get full list of restaurant tables or check availability

Returns a list of tables. If startTime and endTime are provided, it filters out tables that are reserved or unavailable in that timeframe. The names of table status are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
query Parameters
required
object (TableFilterRequest)
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get user reservations history

Retrieves a paginated and filterable list of reservations made by the currently authenticated user. Supports filtering by date range and status.

Authorizations:
bearerAuth
query Parameters
page
integer <int32> >= 1

Page number (Default 1)

size
integer <int32> >= 1

Number of item per page (Default 10)

fromDate
string <date-time>

From this date

toDate
string <date-time>

To this date

statusToken
string

If give status token, list show only reservation with this status

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Create a new table reservation

Creates a new table reservation for the authenticated user. Optionally, a list of dishes can be provided to pre-order food for the reservation.

Authorizations:
bearerAuth
Request Body schema: application/json
required
Array of objects (ReservationDishRequest)
tableToken
required
string non-empty
startTime
required
string <date-time>
endTime
required
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "dishes": [
    ],
  • "tableToken": "string",
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Set new password

Updates the user's password using the reset token received via email.

Authorizations:
bearerAuth
Request Body schema: application/json
required
token
required
string non-empty

Token to reset passowrd

password
required
string [ 6 .. 100 ] characters ^(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?"{}|<>...
confirmPassword
required
string non-empty

Must match the password field

Responses

Request samples

Content type
application/json
{
  • "token": "adadfafrfwerfwerferfwfs",
  • "password": "string",
  • "confirmPassword": "SecurePass123!"
}

Response samples

Content type
application/json
{
  • "data": true,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Request password reset

Sends a password reset link to the provided email address if the account exists. For privacy reasons, always returns a success message.

Authorizations:
bearerAuth
query Parameters
email
required
string

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Register a new customer account (Step 1)

Creates a new account with 'isActive' set to false and sends an activation email containing a unique token. The user must call the /confirm endpoint with this token to enable the account.

Authorizations:
bearerAuth
Request Body schema: application/json
required
username
required
string non-empty ^[a-zA-Z0-9_.-]+$

Unique username for the account

email
required
string <email> non-empty

Valid email address for account activation

password
required
string [ 6 .. 100 ] characters ^(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?"{}|<>...

Password (min. 6 chars, 1 uppercase, 1 digit, 1 special)

confirmPassword
required
string non-empty

Must match the password field

Responses

Request samples

Content type
application/json
{
  • "username": "Mati_99",
  • "email": "mati@example.pl",
  • "password": "SecurePass123!",
  • "confirmPassword": "SecurePass123!"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Refresh Access Token

Exchanges a valid Refresh Token for a new pair of Access and Refresh tokens.

Authorizations:
bearerAuth
cookie Parameters
refreshToken
string
Request Body schema: application/json
refreshToken
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Logout user

Logs out the authenticated user by revoking their refresh token. The client application must also delete the JWT and Refresh Token locally.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Authenticate user (Login Step 1)

Authenticates a user using their username (or email) and password. If credentials are valid and 2FA is OFF, a final JWT token is returned. If 2FA is ON, a Pre-Auth token is returned and the 'requires2fa' flag is set to true. In that case, the client must proceed to the /verify-2fa endpoint.

Authorizations:
bearerAuth
Request Body schema: application/json
required
username
required
string non-empty

Username or Email address

password
required
string non-empty

User password

Responses

Request samples

Content type
application/json
Example

Admin Login

{
  • "username": "admin",
  • "password": "Admin123!"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Continue with Google (Login/Register)

Accepts a Google ID Token. If the user doesn't exist, an account is created automatically. Returns a standard JWT Bearer token.

Authorizations:
bearerAuth
Request Body schema: application/json
required
token
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Update username

Allows the authenticated user to change their display name.

Authorizations:
bearerAuth
query Parameters
userName
required
string non-empty

New user name

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Update user password

Allows an authenticated user to change their password by verifying the current password.

Authorizations:
bearerAuth
Request Body schema: application/json
required
oldPassword
required
string non-empty
password
required
string [ 6 .. 100 ] characters ^(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?"{}|<>...

Password (min. 6 chars, 1 uppercase, 1 digit, 1 special)

confirmPassword
required
string non-empty

Must match the password field

Responses

Request samples

Content type
application/json
{
  • "oldPassword": "string",
  • "password": "SecurePass123!",
  • "confirmPassword": "SecurePass123!"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Request email update

Initiates the email update process by saving the new email in a pending state and sending a verification link to it.

Authorizations:
bearerAuth
query Parameters
email
required
string <email> non-empty

New email

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Confirm email change

Finalizes the email update process by validating the verification token sent to the user's new email address.

Authorizations:
bearerAuth
query Parameters
verificationToken
required
string non-empty

New email confirm token

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Cancel a reservation

Cancels an active reservation by changing its status to CANCELLED.

Authorizations:
bearerAuth
path Parameters
token
required
string

Reservation token

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of table statuses

Retrieves a dictionary list of all table statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get reservation details

Retrieves the full details of a specific reservation, including pre-ordered dishes and total price.

Authorizations:
bearerAuth
path Parameters
token
required
string

Reservaton token

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of reservation statuses

Retrieves a dictionary list of all reservation statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of order item statuses

Retrieves a dictionary list of all order item statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of order statuses

Retrieves a dictionary list of all order statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of ingredients (dictionary)

Retrieves a dictionary list of all ingredients available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of dish categories

Retrieves a dictionary list of all dish categories available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of allergens

Retrieves a dictionary list of all allergens available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Activate account with email token (Step 2)

Finalizes the registration process by activating the user account. Expects a unique token received via email. Once activated, the user can log in.

Authorizations:
bearerAuth
query Parameters
token
required
string
Example: token=f47ac10b-58cc-4372-a567-0e02b2c3d479

The unique activation token from the email

Responses

Response samples

Content type
application/json
{
  • "data": true,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Delete user

Allows the authenticated user to delete account.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Waiter

Get full restaurant menu

Returns a list of all available dishes including ingredients and allergens. The names of categories and allergens are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
query Parameters
page
integer <int32> >= 1

Page number (Default 1)

size
integer <int32> >= 1

Number of item per page (Default 10)

excludedAllergens
Array of strings

List of allergen tokens to exclude (e.g., GLUTEN, LACTOSE)

header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get full list of restaurant tables or check availability

Returns a list of tables. If startTime and endTime are provided, it filters out tables that are reserved or unavailable in that timeframe. The names of table status are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
query Parameters
required
object (TableFilterRequest)
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get user reservations history

Retrieves a paginated and filterable list of reservations made by the currently authenticated user. Supports filtering by date range and status.

Authorizations:
bearerAuth
query Parameters
page
integer <int32> >= 1

Page number (Default 1)

size
integer <int32> >= 1

Number of item per page (Default 10)

fromDate
string <date-time>

From this date

toDate
string <date-time>

To this date

statusToken
string

If give status token, list show only reservation with this status

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Add multiple dishes to a reservation

Allows adding as many new dishes as you want to an existing reservation in a single request. Pass a list of dishes in the request body. If a requested dish (with the exact same note) already exists on the order, its quantity will be automatically increased. If it is a new dish or has a different note, it will be added as a separate line item. The total price of the order is automatically recalculated.

Authorizations:
bearerAuth
query Parameters
reservationToken
required
string
Request Body schema: application/json
required
Array
dishToken
required
string non-empty
quantity
required
integer <int32> >= 1
note
string

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Create a new guest report

Creates a new incident report for a specific client. The user being reported must have the ROLE_CLIENT. The report is created with an initial status of IN_PROGRESS. Requires WAITER or MANAGER role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
clientToken
required
string non-empty
reason
required
string [ 10 .. 500 ] characters

Responses

Request samples

Content type
application/json
{
  • "clientToken": "string",
  • "reason": "stringstri"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Refresh Access Token

Exchanges a valid Refresh Token for a new pair of Access and Refresh tokens.

Authorizations:
bearerAuth
cookie Parameters
refreshToken
string
Request Body schema: application/json
refreshToken
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Logout user

Logs out the authenticated user by revoking their refresh token. The client application must also delete the JWT and Refresh Token locally.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Authenticate user (Login Step 1)

Authenticates a user using their username (or email) and password. If credentials are valid and 2FA is OFF, a final JWT token is returned. If 2FA is ON, a Pre-Auth token is returned and the 'requires2fa' flag is set to true. In that case, the client must proceed to the /verify-2fa endpoint.

Authorizations:
bearerAuth
Request Body schema: application/json
required
username
required
string non-empty

Username or Email address

password
required
string non-empty

User password

Responses

Request samples

Content type
application/json
Example

Admin Login

{
  • "username": "admin",
  • "password": "Admin123!"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Change table status to out of service

Updates the status of a specific table to OUT_OF_SERVICE. This is typically used by waiters to indicate that a table have a problem (leg is broken).

Authorizations:
bearerAuth
path Parameters
token
required
string

Table token

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Change table status to cleaning

Updates the status of a specific table to CLEANING. This is typically used by waiters to indicate that a table needs to be prepared for the next guests.

Authorizations:
bearerAuth
path Parameters
token
required
string

Table token

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Assign waiter to a reservation

Assigns a specific waiter to a reservation and its associated order. Automatically changes the status of the order and pending dishes to IN_PROGRESS.

Authorizations:
bearerAuth
path Parameters
token
required
string

Reservation token

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Mark reservation as absent (No-show)

Changes the reservation status to NO_SHOW. If an order is attached to the reservation, its status (and the status of its items) is changed to CANCELLED. Requires the reservation to be in the ACTIVE state. Available only for waiters.

Authorizations:
bearerAuth
path Parameters
token
required
string

Reservation token

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of table statuses

Retrieves a dictionary list of all table statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of users (Sync)

Returns a paginated, flat list of users (both staff and guests) with their role tokens and a convenient isStaff flag.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of tables (Sync)

Returns a paginated, flat list of tables with their statuses.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch system roles

Returns a flat list of all available roles in the system. Used to synchronize the roles dictionary on client devices.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of reservations (Sync)

Returns a paginated, flat list of reservations with foreign key tokens (user, table, statuses).

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of reports

Returns a paginated, flat list of guest reports with foreign key tokens (guest, reporter, statuses). Page size is strictly fixed by the server.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of orders (Sync)

Returns a paginated, flat list of orders with foreign key tokens (reservation, table, waiter, statuses).

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of order items (Sync)

Returns a paginated, flat list of order items with foreign key tokens (order, product, statuses).

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of ingredients (Sync)

Returns a paginated, flat list of ingredients with their translations and associated allergen tokens.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch flat list of dishes

Returns a paginated, flat list of dishes with foreign key tokens. Page size is strictly fixed by the server.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Fetch all system dictionaries

Returns flat lists of all dictionaries (statuses, categories, allergens) with EN/PL translations, perfect for saving in local SQLite

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "allergens": [
    ],
  • "dishCategories": [
    ],
  • "banStatuses": [
    ],
  • "reportStatuses": [
    ],
  • "orderStatuses": [
    ],
  • "orderItemStatuses": [
    ],
  • "reservationStatuses": [
    ],
  • "tableStatuses": [
    ]
}

Download the sync manifest (Bootstrap)

Returns the number of records and pages for each system module. Used to initialize the database on mobile and desktop devices.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "modules": {
    },
  • "serverTime": "2019-08-24T14:15:22Z"
}

Fetch flat list of bans

Returns a paginated, flat list of bans with foreign key tokens (user, bannedBy, statuses). Page size is strictly fixed by the server.

Authorizations:
bearerAuth
query Parameters
page
integer <int32>
Default: 1

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get reservation details

Retrieves the full details of a specific reservation, including pre-ordered dishes and total price.

Authorizations:
bearerAuth
path Parameters
token
required
string

Reservaton token

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of reservation statuses

Retrieves a dictionary list of all reservation statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of order item statuses

Retrieves a dictionary list of all order item statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of order statuses

Retrieves a dictionary list of all order statuses available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of ingredients (dictionary)

Retrieves a dictionary list of all ingredients available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of dish categories

Retrieves a dictionary list of all dish categories available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Get list of allergens

Retrieves a dictionary list of all allergens available in the system. The names are translated based on the 'Accept-Language' header.

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Remove a dish from reservation

Decreases the quantity of a specific dish in the reservation's order. If the quantity to remove is equal to or greater than the current quantity, the dish is completely removed from the order.

Authorizations:
bearerAuth
query Parameters
reservationToken
required
string
Request Body schema: application/json
required
dishToken
required
string non-empty
quantity
required
integer <int32> >= 1
note
string

Responses

Request samples

Content type
application/json
{
  • "dishToken": "string",
  • "quantity": 1,
  • "note": "string"
}

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}

Public

Get public restaurant menu

Retrieves the public menu grouped by category. Returns only available dishes without internal tokens. Category names, ingredients, and allergens are translated dynamically based on the 'Accept-Language' header. This endpoint is strictly public and does not require any authentication (JWT token).

Authorizations:
bearerAuth
header Parameters
Accept-Language
string
Default: pl
Enum: "pl" "en"

Preferred language (e.g., 'pl' or 'en')

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "message": "string",
  • "statusCode": 0,
  • "errorMessages": [
    ],
  • "success": true
}