openapi: 3.1.0
info:
version: 1.0.0
title: Lightspeed Restaurant K Series API
description: "**Lightspeed Restaurant** offers a **REST API** in order to communicate with the data in the system. These APIs are built using the RESTful standards and adhere to the basic verb interactions as defined by the REST standard.\nDetailed developer guides can be found in the [Lightspeed Restaurant API Portal](https://api-portal.lsk.lightspeed.app/).\nThese services are in continuous development and subject to change. Please find our versioning policy [here](https://api-portal.lsk.lightspeed.app/quick-start/versioning).\n"
x-logo:
altText: Lightspeed Commerce
url: static/lightspeed@2x.png
contact:
name: Lightspeed Commerce
url: https://api-portal.lsk.lightspeed.app/
x-generated-from: documentation
x-last-validated: '2026-06-02'
x-source-url: https://api-docs.lsk.lightspeed.app/source.json
servers:
- url: https://api.trial.lsk.lightspeed.app
description: Demo URL
x-bump-branch-name: demo
- url: https://api.lsk.lightspeed.app
description: Production URL
x-bump-branch-name: prod
tags:
- name: Rich Item
- name: Tax Breakdown
- name: Staff
description: Staff API. Authorisation Code grant type is required for this API with permission ROLE_CONFIG_USERS.
- name: Reservations for Platforms
- name: PMS
- name: Items
- name: ID Cards
- name: Financial
description: "V1 endpoints (`/f/finance/...`) for retrieving sales and financial data.\n\nFor the newer V2 versions of these endpoints see FinancialV2\n\n### V1 behaviour\n\n- **Sorting**: No guaranteed sorting order; internal transformations may alter order unpredictably\n- **Transitory Accounts / Unsettled Sales**: Returns closed transactions only\n- **Pagination**: `pageSize` max of 1000. Uses HATEOAS `_links` with `self` and `nextPage` URLs\n- **Daily endpoints** (`getDailyFinancials`): No pagination, no hard cap on results. May have slower response times for larger data sets\n- **Backoffice transactions**: Historical dating supported. Transactions will be dated to a past date if the action impacts past reports. Can query transactions by original business date\n- **Backoffice modifications** (payment method change and canceling): Modifications appear on the original transaction date\n"
- name: FinancialV2
description: "V2 endpoints (`/f/v2/...`) for retrieving sales and financial data.\n\n### Endpoint Mapping\n\n| V1 Endpoint | V2 Endpoint |\n|-------------|-------------|\n| `getFinancials` (`/f/finance/{id}/financials/{from}/{to}`) | `getSales` (`/f/v2/business-location/{id}/sales`) |\n| `getDailyFinancials` (`/f/finance/{id}/dailyFinancials`) | `getBusinessDaySales` (`/f/v2/business-location/{id}/sales-daily`) |\n\nResponse DTOs are nearly identical to V1 with the exceptions noted below\n\n### V2 behaviour\n\n- **Sorting**: Explicitly sorted by `timeClosed`\n- **Transitory Accounts / Unsettled Sales**: Returns closed transactions and ensures no transitory (unclosed) transactions are included in reporting\n- **Pagination**: `pageSize` max of 100. No HATEOAS `_links`; uses `nextPageToken` string for pagination instead\n- **Daily endpoints** (`getBusinessDaySales`): No pagination, no hard cap on results. May have slower response times for larger data sets\n- **Backoffice transactions**: Historical dating not currently supported — transactions appear as if created at current time. Transactions can only be found by the date/time they were actually created. *Historical dating support is planned for a future release.*\n- **Backoffice modifications** (payment method change and canceling): Modifications appear on the date the modification was performed, not the original transaction date\n\nIf you need to query transactions by their original business date (e.g. for historical reporting or reconciliation); The V1 endpoints may be more suitable until backwards compatibility is added to V2 for this aspect.\n"
- name: Order and Pay
- name: 'Order and Pay: Webhook'
webhooks:
apeOrder notification:
post:
summary: Order Notification
operationId: onlineOrderNotification
description: What your webhook implementation will receive when placing an order
tags:
- Order and Pay
requestBody:
content:
application/json:
examples:
successfulWithoutAccountInfo:
summary: successful
value:
status: SUCCESS
ikentooAccountId: '2114502594134196'
ikentooAccountIdentifier: A123080.14
thirdPartyReference: REF11
type: ORDER
readyForPickUp:
summary: ready for pickup
value:
thirdPartyReference: order-wFUBVgHNGPAJsryIrSaE
businessLocationId: 247158188015618
status: READY_FOR_PICKUP
account:
clientCount: 2
uuid: 5a81c7f4-9e2f-4db2-965d-6946a4f9c25b
openDate: 2021-12-21T13:24:49.265+0000
paidAmount: '4.00'
serviceCharge: '0.00'
name: Order NZVV
currentAmount: '4.00'
staffName: Manager
staffId: 31930
salesEntries:
- id: 304087979524125
itemName: Appetizer 2
itemSku: '21'
unitAmount: '4.00'
quantity: 1
modifiers: []
amountWithTax: '4.00'
amountLessTax: '3.33'
discountedAmount: '0.00'
grossUnitAmount: '4.00'
active: true
taxIncluded: true
paymentEntries:
- paymentMethodDescription: API Payment
externalReference: '1234567890'
paymentMethodCode: APM
amountPaid: '4.00'
paymentDate: 2021-12-21T13:25:25.082+0000
active: true
ikaccountId: A17700.3
tableNumber: 3
posId: 17700
ikentooAccountId: 304087979524124
ikentooAccountIdentifier: A17700.3
type: ORDER
failure:
summary: failure
value:
status: FAILURE
reason: A consumer already exists for this email address with a different external reference.
thirdPartyReference: REF12212
succesfulWithAccount:
summary: successful with account info
value:
thirdPartyReference: order-wFUBVgHNGPAJsryIrSaE
businessLocationId: 247158188015618
status: SUCCESS
account:
clientCount: 2
uuid: 5a81c7f4-9e2f-4db2-965d-6946a4f9c25b
openDate: 2021-12-21T13:24:49.265+0000
paidAmount: '0.00'
serviceCharge: '0.00'
name: Order NZVV
currentAmount: '4.00'
staffName: Online Order
staffId: 31930
salesEntries:
- id: 304087979524125
uuid: 1b8d016e-2c7f-456d-9349-8476eacd99bf
itemName: Appetizer 2
itemSku: '21'
unitAmount: '4.00'
quantity: 1
modifiers: []
amountWithTax: '4.00'
amountLessTax: '3.33'
discountedAmount: '0.00'
grossUnitAmount: '4.00'
timeOfTransactionUtc: 2023-11-08T13:33:52.641+0000
active: true
subLineItems: []
taxIncluded: true
paymentEntries: []
ikaccountId: A17700.3
tableNumber: 3
posId: 17700
ikentooAccountId: 304087979524124
ikentooAccountIdentifier: A17700.3
type: ORDER
checkWasUpdated:
summary: check was updated
value:
thirdPartyReference: order-wFUBVgHNGPAJsryIrSaE
businessLocationId: 247158188015618
status: CHECK_WAS_UPDATED
account:
clientCount: 2
uuid: 5a81c7f4-9e2f-4db2-965d-6946a4f9c25b
openDate: 2021-12-21T13:24:49.265+0000
paidAmount: '4.00'
serviceCharge: '0.00'
name: Order NZVV
currentAmount: '4.00'
staffName: Manager
staffId: 31930
salesEntries:
- id: 304087979524125
itemName: Appetizer 2
itemSku: '21'
unitAmount: '4.00'
quantity: 1
modifiers: []
amountWithTax: '4.00'
amountLessTax: '3.33'
discountedAmount: '0.00'
grossUnitAmount: '4.00'
active: true
taxIncluded: true
paymentEntries:
- paymentMethodDescription: API Payment
externalReference: '1234567890'
paymentMethodCode: APM
amountPaid: '4.00'
paymentDate: 2021-12-21T13:25:25.082+0000
active: true
ikaccountId: A17700.3
tableNumber: 3
posId: 17700
ikentooAccountId: 304087979524124
ikentooAccountIdentifier: A17700.3
type: ORDER
closed:
summary: closed
value:
thirdPartyReference: order-wFUBVgHNGPAJsryIrSaE
businessLocationId: 247158188015618
status: CLOSED
account:
clientCount: 2
uuid: 5a81c7f4-9e2f-4db2-965d-6946a4f9c25b
openDate: 2021-12-21T13:24:49.265+0000
paidAmount: '4.00'
serviceCharge: '0.00'
name: Order NZVV
currentAmount: '4.00'
staffName: Manager
staffId: 31930
salesEntries:
- id: 304087979524125
itemName: Appetizer 2
itemSku: '21'
unitAmount: '4.00'
quantity: 1
modifiers: []
amountWithTax: '4.00'
amountLessTax: '3.33'
discountedAmount: '0.00'
grossUnitAmount: '4.00'
active: true
taxIncluded: true
paymentEntries:
- paymentMethodDescription: API Payment
externalReference: '1234567890'
paymentMethodCode: APM
amountPaid: '4.00'
paymentDate: 2021-12-21T13:25:25.082+0000
active: true
ikaccountId: A17700.3
tableNumber: 3
posId: 17700
ikentooAccountId: 304087979524124
ikentooAccountIdentifier: A17700.3
type: ORDER
schema:
allOf:
- $ref: '#/components/schemas/apeBaseWebhookInformation'
- properties:
status:
enum:
- SUCCESS
- FAILURE
- IN_DELIVERY
- READY_FOR_PICKUP
- CLOSED
- ABANDONED
- CANCELLED
description: Status of the order operation.
type: string
type:
description: Notification type
default: ORDER
type: string
account:
allOf:
- description: Related account (if the webhook is configured to provide it)
- $ref: '#/components/schemas/apeAccountSnapshot'
type: object
required: true
responses:
'200':
description: Your server returns this code if it accepts the callback
apePayment notification:
post:
summary: Payment Notification
operationId: onlinePaymentNotification
description: What your webhook implementation will receive when placing a payment
tags:
- Order and Pay
requestBody:
content:
application/json:
examples:
successfulPayment:
summary: successful
value:
thirdPartyReference: REF11
businessLocationId: 247158188015618
status: SUCCESS
ikentooAccountId: '2114502594134196'
ikentooAccountIdentifier: A123080.14
type: PAYMENT
failurePayment:
summary: failure
value:
reason: the payment amount is greater than the amount due
thirdPartyReference: REF12212
businessLocationId: 141948669832802
status: FAILURE
ikentooAccountIdentifier: A78094.73
type: PAYMENT
failurePaymentAccountError:
summary: failure with account error
value:
reason: Account not found
thirdPartyReference: REF12213
businessLocationId: 141948669832802
status: FAILURE
errors:
account:
type: ACCOUNT_NOT_FOUND
type: PAYMENT
schema:
allOf:
- $ref: '#/components/schemas/apeBaseWebhookInformation'
- properties:
status:
enum:
- SUCCESS
- FAILURE
description: Status of the order or payment operation.
type: string
errors:
description: Error details when status is FAILURE.
type: object
properties:
timeout:
description: Timeout error details.
type: object
properties:
errorKey:
type: string
example: errors.payment.pos.task_timeout
message:
type: string
example: Not processed before validity ended
account:
description: Account error details.
type: object
properties:
type:
type: string
enum:
- ACCOUNT_NOT_FOUND
- ACCOUNT_ALREADY_CLOSED
- INVALID_TASK
- ITEM_NOT_ADDED
- ITEM_NOT_FOUND
- MISSING_STAFF
- NATIVE_PAYMENT_NOT_SUPPORTED
- OVERPAID
- PAYMENT_ID_NOT_FOUND
- PAYMENT_METHOD_NOT_FOUND
- STAFF_NOT_FOUND
- UPDATE_FAILED
- UNKNOWN
example: ACCOUNT_NOT_FOUND
type:
description: Notification type
default: PAYMENT
type: string
type: object
required: true
responses:
'200':
description: Your server returns this code if it accepts the callback
apeItem availability notification:
post:
summary: Item Availability Notification
operationId: salesRestrictionUpdatedNotification
description: What your webhook implementation will receive when item sales restrictions are updated
tags:
- Order and Pay
requestBody:
content:
application/json:
examples:
itemRestricted:
summary: item restricted
value:
sku: UGG-BB-PUR-06
businessLocationId: 247158188015618
count: 5
countUpdatedAt: '2024-04-04T09:42:00.000+00:00'
status: RESTRICTED
type: ITEM
itemNotRestricted:
summary: item not restricted
value:
sku: UGG-BB-PUR-06
businessLocationId: 247158188015618
count:
countUpdatedAt: '2024-04-04T09:42:00.000+00:00'
status: NOT_RESTRICTED
type: ITEM
schema:
type: object
properties:
sku:
type: string
description: The SKU of the item with updated availability
examples:
- UGG-BB-PUR-06
businessLocationId:
$ref: '#/components/schemas/apeBusinessLocationId'
count:
type:
- integer
- 'null'
format: int64
description: The available count of the item. null indicates no restriction
examples:
- 5
countUpdatedAt:
type: string
format: date-time
description: The timestamp when the count was last updated
examples:
- '2024-04-04T09:42:00.000+00:00'
status:
type: string
enum:
- RESTRICTED
- NOT_RESTRICTED
description: The restriction status of the item
examples:
- RESTRICTED
type:
type: string
description: Notification type
default: ITEM
examples:
- ITEM
required:
- sku
- businessLocationId
- countUpdatedAt
- status
- type
required: true
responses:
'200':
description: Your server returns this code if it accepts the callback
pms-integration{subscriber-host}/charge:
post:
summary: Transaction Details
operationId: transactionDetails
description: "What subscriber endpoint implementation will receive when a transaction is made.\nSubscriber path need to end with `/charge`.\nSubscriber implementation should follow the payload backward compatibility rules below:\n - What considered as backward **compatible**:\n - Addition of new fields, enums, headers, or parameters.\n - Transition from optional to required fields. Which means Lightspeed will consistently send the parameter/field from now on.\n - What considered as backward **incompatible**:\n - Alteration of schema structure, such as switching from a map to an array.\n - Removal of field/enum/header\n - Changes in data types, such as converting from string to integer.\n - Changes of property name\n"
parameters:
- in: header
name: Accept
required: true
schema:
type: string
example: application/json
description: "The expected response content type from subscriber.\nOnly application/json is supported.\n"
- in: header
name: X-Lightspeed-Idempotency-Key
required: true
schema:
type: string
example: LS1_123e4567-e89b-12d3-a456-426614174000
description: "Subscribers should utilize the Idempotency Key to ensure duplicates are handled appropriately on their end.\n"
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/pms-integrationSalesWebhookDto'
responses:
'200':
description: "Subscriber should return this code if it successfully processed the charge request at PMS.\nFollowing that, Lightspeed will mark the PMS charge transaction as SUCCESS as well.\n"
5XX:
description: "If any server error occurs subscriber can pass their own custom message to the POS.\nThe response body content need to follow the schema, else only `5XX {Error Type}` will be sent.\n"
content:
application/json:
schema:
$ref: '#/components/schemas/pms-integrationErrorWebhookDto'
4XX:
description: "If any client error occurs subscriber can pass their own custom message to the POS.\nThe response body content need to follow the schema, else only `4XX {Error Type}` will be sent.\n"
content:
application/json:
schema:
$ref: '#/components/schemas/pms-integrationErrorWebhookDto'
tags:
- PMS Integration
reservation-serviceReservation error notification:
post:
summary: Error notification
operationId: reservationErrorNotification
description: These notifications are sent to the URL provided in the[`errorsWebhookUrl` field](https://api-docs.lsk.lightspeed.app/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-errorswebhookurl).
tags:
- Reservations for Platforms
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-serviceErrorWebhook'
required: true
responses:
'200':
description: Your server returns this code if it accepts the callback.
reservation-serviceReservation integration notification:
post:
summary: Integration notification
operationId: reservationIntegrationNotification
description: These notifications are sent to the URL provided in the[`integrationWebhookUrl` field](https://api-docs.lsk.lightspeed.app/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-integrationwebhookurl).
tags:
- Reservations for Platforms
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-serviceIntegrationWebhook'
required: true
responses:
'200':
description: Your server returns this code if it accepts the callback.
reservation-serviceReservation onboarding notification:
post:
summary: Onboarding notification
operationId: reservationOnboardingNotification
description: These notifications are sent to the URL provided in the[`onboardingWebhookUrl` field](https://api-docs.lsk.lightspeed.app/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-onboardingwebhookurl).
tags:
- Reservations for Platforms
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-serviceOnboardingWebhook'
required: true
responses:
'200':
description: Your server returns this code if it accepts the callback.
reservation-serviceReservation order notification:
post:
summary: Order notification
operationId: reservationOrderNotification
description: These notifications are sent to the URL provided in the[`orderWebhookUrl` field](https://api-docs.lsk.lightspeed.app/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-orderwebhookurl).
tags:
- Reservations for Platforms
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-serviceOrderUpdate'
required: true
responses:
'200':
description: Your server returns this code if it accepts the callback.
reservation-servicePOS reservation updated notification:
post:
summary: POS reservation updated notification
operationId: posReservationUpdatedNotification
description: These notifications are sent to the URL provided in the[`posReservationUpdateWebhookUrl` field](https://api-docs.lsk.lightspeed.app/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-posreservationupdatewebhookurl).
tags:
- Reservations for Platforms
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePosReservationUpdate'
required: true
responses:
'200':
description: Your server returns this code if it accepts the callback.
staff-apiShift notification:
post:
summary: Shift notification
operationId: shiftNotification
description: Notify about a shift event.
tags:
- Staff
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiWebhookEventDto'
required: true
responses:
'200':
description: Your server returns this code if it accepts the callback.
paths:
/o/op/data/businesses:
get:
summary: Lightspeed Get Businesses
operationId: apeLookupBusinesses
description: Returns a list of all businesses and business locations associated with the access token.
tags:
- Order and Pay
responses:
'200':
description: Businesses
content:
application/json:
schema:
items:
properties:
name:
example: My Awesome Business
description: The business name.
type: string
id:
example: 454335871
description: The unique identifier for the business.
type: integer
format: int64
businessLocations:
description: The business locations within this business.
items:
properties:
id:
$ref: '#/components/schemas/apeBusinessLocationId'
name:
example: My Awesome Business - Location 1
description: The business location name.
type: string
type: object
type: array
type: object
type: array
examples:
ApeLookupBusinesses200Example:
summary: Default apeLookupBusinesses 200 response
x-microcks-default: true
value:
- name: My Awesome Business
id: 454335871
businessLocations:
- id: 45454565682155
name: My Awesome Business - Location 1
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/data/{businessLocationId}/floorplans:
get:
summary: Lightspeed Get All Floorplans
operationId: apeLookupFloorPlans
description: Returns the floorplans for a specific business location.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: path
required: true
- name: expandTables
in: query
required: false
description: "If true, the response will include the table details for each floorplan.\nIf false, the response will only include the [`name`](https://api-docs.lsk.lightspeed.app/operation/operation-apelookupfloorplans#operation-apelookupfloorplans-200-body-application-json-name) and [`id`](https://api-docs.lsk.lightspeed.app/operation/operation-apelookupfloorplans#operation-apelookupfloorplans-200-body-application-json-id) for the floorplans."
schema:
type: boolean
default: true
responses:
'200':
description: Floorplans
content:
application/json:
schema:
items:
properties:
id:
example: 141948669132976
description: The unique identifier for the floorplan.
format: int64
type: integer
name:
description: The name of the floorplan.
example: Terrace
type: string
tables:
items:
$ref: '#/components/schemas/apeTable'
type: array
type: object
type: array
examples:
ApeLookupFloorPlans200Example:
summary: Default apeLookupFloorPlans 200 response
x-microcks-default: true
value:
- id: 141948669132976
name: Terrace
tables:
- number: 1
reference: abcdefg123456
id: '141948669132977'
active: true
description: Table 1
defaultClientCount: 4
'404':
description: "Not Found\n\nIndicates that the business location has no floorplans configured."
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/data/{businessLocationId}/floorplans/{floorPlanId}/tables:
get:
summary: Lightspeed Get Floorplan Tables
operationId: apeGetTables
description: Returns the tables for a specific floorplan of a business location
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: path
required: true
- schema:
$ref: '#/components/schemas/apeFloorPlanId'
name: floorPlanId
in: path
required: true
responses:
'200':
description: Tables
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/apeTable'
examples:
ApeGetTables200Example:
summary: Default apeGetTables 200 response
x-microcks-default: true
value:
- number: 1
reference: abcdefg123456
id: '141948669132977'
active: true
description: Table 1
defaultClientCount: 4
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/data/account-profiles:
get:
summary: Lightspeed Get All Order Profiles
operationId: apeAccountProfiles
description: "Returns a list of active [order profiles](https://k-series-support.lightspeedhq.com/hc/en-us/articles/1260804657389-About-order-profiles) for a specific business location.\n\nThe order profile [code](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code) can be used to retrieve a specific price list when [loading a menu](https://api-docs.lsk.lightspeed.app/operation/operation-apegetmenubyid).\n\nNote: Order Profiles were previously called Account Profiles, and may still be referred to in this way in the API, in some cases."
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: Order profiles
content:
application/json:
schema:
$ref: '#/components/schemas/apeAccountProfiles'
examples:
ApeAccountProfiles200Example:
summary: Default apeAccountProfiles 200 response
x-microcks-default: true
value:
businessLocationId: 45454565682155
accountProfileList:
- id: 12454575601144
code: takeaway
name: Takeaway
deliveryMode: TAKE_AWAY
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/data/{businessLocationId}/account-profiles/tagcode/{tagCode}:
get:
summary: Lightspeed Get Single Order Profile
operationId: apeGetAccountProfile
description: "Returns details of an active [order profile](https://k-series-support.lightspeedhq.com/hc/en-us/articles/1260804657389-About-order-profiles) based on its [code](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code).\n\nNote: Order Profiles were previously called Account Profiles, and may still be referred to in this way in the API, in some cases."
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: path
required: true
- schema:
$ref: '#/components/schemas/apeTagCode'
name: tagCode
in: path
required: true
responses:
'200':
description: Order profile
content:
application/json:
schema:
$ref: '#/components/schemas/apeAccountProfile'
examples:
ApeGetAccountProfile200Example:
summary: Default apeGetAccountProfile 200 response
x-microcks-default: true
value:
id: 12454575601144
code: takeaway
name: Takeaway
deliveryMode: TAKE_AWAY
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/menu/list:
get:
summary: Lightspeed Get All Menus
operationId: apeLoadMenus
description: Returns a list of menus for a given business location.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: Load menus
content:
application/json:
schema:
items:
properties:
menuName:
description: The name of the menu.
example: Lunch Menu
type: string
ikentooMenuId:
type: integer
description: The unique identifier for the menu.
example: 141948669132851
format: int64
type: object
type: array
examples:
ApeLoadMenus200Example:
summary: Default apeLoadMenus 200 response
x-microcks-default: true
value:
- menuName: Lunch Menu
ikentooMenuId: 141948669132851
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/menu/load/{menuId}:
get:
summary: Lightspeed Get Single Menu
operationId: apeGetMenuById
deprecated: true
description: '**Deprecated:** Use [/o/op/2/menu/load/{menuId}](#/Order%20and%20Pay/getMenuByIdV2) instead. V2 includes product modifier groups and product modifiers on menu items and deal items. Returns details of a particular menu based on its unique identifier and other query parameters.'
tags:
- Order and Pay
parameters:
- name: menuId
in: path
required: true
description: The unique identifier for the menu.
schema:
type: integer
description: The unique identifier for the menu.
example: 141948669132851
format: int64
- name: businessLocationId
in: query
required: true
schema:
$ref: '#/components/schemas/apeBusinessLocationId'
- name: accountProfile
in: query
required: false
schema:
type: string
description: The order profile [`code`](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code). Item prices returned will be those associated with this order profile, when applicable. See the [order profiles](https://api-portal.lsk.lightspeed.app/guides/definitions/order-profiles) definition for more details.
example: TAKEAWAY
default: ''
- name: richContent
in: query
required: false
schema:
type: boolean
description: Query parameter to include rich content of menu items.
example: true
default: false
responses:
'200':
description: Successful retrieval of menu details.
content:
application/json:
schema:
$ref: '#/components/schemas/apeMenu'
examples:
ApeGetMenuById200Example:
summary: Default apeGetMenuById 200 response
x-microcks-default: true
value:
menuName: Main Menu
menuEntryGroups:
- '@type': group
id: '141948669133028'
name: Mains
color: blue
menuEntry: []
richDataMissing: false
ikentooMenuId: 141948669132851
conditionalTaxRules: false
'503':
description: Service Unavailable
content:
'*/*':
schema:
properties:
status:
enum:
- '503'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/2/menu/load/{menuId}:
get:
summary: Lightspeed Get Single Menu V2
operationId: apeGetMenuByIdV2
description: "Returns details of a particular menu based on its unique identifier and other query parameters. Product modifier groups and product modifiers are always included in the response.\n\n**Migration from V1:** The response includes `menuModifierGroups` on each menu item and deal item, containing product modifier details (name, price, extraPrice, sku, rich data). Items with product modifier groups are no longer marked as `asSubItem`."
tags:
- Order and Pay
parameters:
- name: menuId
in: path
required: true
description: The unique identifier for the menu.
schema:
type: integer
description: The unique identifier for the menu.
example: 141948669132851
format: int64
- name: businessLocationId
in: query
required: true
schema:
$ref: '#/components/schemas/apeBusinessLocationId'
- name: accountProfile
in: query
required: false
schema:
type: string
description: The order profile [`code`](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code). Item prices returned will be those associated with this order profile, when applicable. See the [order profiles](https://api-portal.lsk.lightspeed.app/guides/definitions/order-profiles) definition for more details.
example: TAKEAWAY
default: ''
- name: richContent
in: query
required: false
schema:
type: boolean
description: Query parameter to include rich content of menu items.
example: true
default: false
responses:
'200':
description: Successful retrieval of menu details including product modifiers.
content:
application/json:
schema:
$ref: '#/components/schemas/apeMenuV2'
examples:
ApeGetMenuByIdV2200Example:
summary: Default apeGetMenuByIdV2 200 response
x-microcks-default: true
value:
menuName: Main Menu
menuEntryGroups:
- '@type': group
id: '141948669133028'
name: Mains
color: blue
menuEntry: []
richDataMissing: false
ikentooMenuId: 141948669132851
conditionalTaxRules: false
'503':
description: Service Unavailable
content:
'*/*':
schema:
properties:
status:
enum:
- '503'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/menu/modifiers:
get:
summary: Lightspeed Get Modifiers
operationId: apeLoadAllModifiers
description: Returns a list of production instructions for a specific business location.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: Load modifiers
content:
application/json:
schema:
items:
$ref: '#/components/schemas/apeProductionInstruction'
type: array
examples:
- - multiSelectionPermitted: false
productionInstructionGroupName: Meat cooking
productionIntructionGroupId: 236025632784487
productionInstructionList:
- instruction: Bleu
ikentooModifierId: 236025632784488
- instruction: Rare
ikentooModifierId: 236025632784490
- instruction: Medium Rare
ikentooModifierId: 236025632784492
- instruction: Medium
ikentooModifierId: 236025632784494
- instruction: Medium well
ikentooModifierId: 236025632784496
- instruction: Well done
ikentooModifierId: 236025632784498
- multiSelectionPermitted: false
productionInstructionGroupName: Fish cooking
productionIntructionGroupId: 236025632784501
productionInstructionList:
- instruction: Seared
ikentooModifierId: 236025632784502
- instruction: Medium
ikentooModifierId: 236025632784504
- instruction: Well done
ikentooModifierId: 236025632784506
- multiSelectionPermitted: false
productionInstructionGroupName: Egg cooking
productionIntructionGroupId: 236025632784509
productionInstructionList:
- instruction: Sunny Side
ikentooModifierId: 236025632784510
- instruction: Over Easy
ikentooModifierId: 236025632784512
- instruction: Hard
ikentooModifierId: 236025632784514
- instruction: Scrambled
ikentooModifierId: 236025632784516
- multiSelectionPermitted: false
productionInstructionGroupName: Garnish
productionIntructionGroupId: 236025632784519
productionInstructionList:
- instruction: Fries
ikentooModifierId: 236025632784520
- instruction: Pasta
ikentooModifierId: 236025632784522
- instruction: Rice
ikentooModifierId: 236025632784524
- instruction: Vegetables
ikentooModifierId: 236025632784526
- instruction: Salad
ikentooModifierId: 236025632784528
- multiSelectionPermitted: false
productionInstructionGroupName: Flavors
productionIntructionGroupId: 236025632784531
productionInstructionList:
- instruction: Vanilla
ikentooModifierId: 236025632784532
- instruction: Strawberry
ikentooModifierId: 236025632784534
- instruction: Chocolate
ikentooModifierId: 236025632784536
- instruction: Coffee
ikentooModifierId: 236025632784538
- instruction: Caramel
ikentooModifierId: 236025632784540
examples:
ApeLoadAllModifiers200Example:
summary: Default apeLoadAllModifiers 200 response
x-microcks-default: true
value:
- multiSelectionPermitted: true
productionInstructionGroupName: Sample productionInstructionGroupName
productionIntructionGroupId: 760
productionInstructionList:
- {}
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/menu/discounts:
get:
summary: Lightspeed Get Discounts
operationId: apeLoadAllDiscounts
description: Returns a list of discounts for a specific business location.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: Load discounts
content:
application/json:
schema:
items:
$ref: '#/components/schemas/apeDiscount'
type: array
examples:
- - name: Free
code: FREE
discountPercentage: 100.0
- name: Ten Euros Off
code: TEN_OFF
discountAmount: 10.0
examples:
ApeLoadAllDiscounts200Example:
summary: Default apeLoadAllDiscounts 200 response
x-microcks-default: true
value:
- name: Staff Discount
code: STAFF
discountPercentage: 15
discountAmount: 5
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/order/local:
post:
summary: Lightspeed Create Local Order
description: "Creates a new dine-in order for a specific business location. See [Online Ordering Basics](https://api-portal.lsk.lightspeed.app/guides/tutorials/online-ordering-basics) for more details.\n\nIf the [accountIdentifier](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-accountidentifier) of an existing order is provided in the body of the request, the request will update the existing order."
operationId: apeLocalOrder
requestBody:
content:
application/json:
schema:
required:
- businessLocationId
- thirdPartyReference
- endpointId
- customerInfo
properties:
businessLocationId:
$ref: '#/components/schemas/apeBusinessLocationId'
thirdPartyReference:
description: The external reference provided for this order. Must be unique. This value will be included in the order details sent to the [webhook URL](https://api-docs.lsk.lightspeed.app/operation/operation-apecreatewebhookoo#operation-apecreatewebhookoo-body-application-json-url).
type: string
minLength: 1
maxLength: 48
examples:
- MyAwesomeThirdPartyReference
endpointId:
description: Endpoint ID for a unique webhook that has been created using [the webhook endpoint](https://api-docs.lsk.lightspeed.app/operation/operation-apecreatewebhookoo).
type: string
examples:
- MY-AWESOME-ENDPOINT-ID
customerInfo:
$ref: '#/components/schemas/apeCustomerInfo'
orderNote:
description: A note added to this order and displayed on the printed dockets.
type: string
examples:
- Sample Order Note
maxTimeToAttemptOrderDeliverToPos:
description: "** Use of this feature is strongly recommended **\n\nMaximum time to attempt delivery of this order to the POS. In milliseconds. The minimum value is 60000ms (1 minute).\n\nIf [`scheduledTimeForOrderAsIso8601`](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-scheduledtimefororderasiso8601) is used, this value will be added to the scheduled order time."
type: integer
format: int32
examples:
- 60000
staffId:
description: The unique identifier for the staff member.
type: integer
format: int64
examples:
- 1234567890
accountProfileCode:
description: A valid order profile [code](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code) to associate with this order. See the [order profiles](https://api-portal.lsk.lightspeed.app/guides/definitions/order-profiles) definition for more details.
type: string
examples:
- LOCALORDER
scheduledTimeForOrderAsIso8601:
description: The time that the order will be sent to the POS. Must be in the future.
type: string
format: date-time
examples:
- '2024-04-04T09:42:00.000+00:00'
payment:
$ref: '#/components/schemas/apeOrderPayment'
accountId:
description: The system-generated account identifier for this order (Applies to iKentoo V2). If this is specified, the associated order will be updated.
deprecated: true
type: string
examples:
- '1234567890'
accountIdentifier:
description: The system-generated account identifier for this order (Applies to iKentoo V3+). If this is specified, the associated order will be updated.
type: string
examples:
- A1235.89
tableNumber:
description: The table number for this local order. If updating an existing order, (ie.`accountIdentifier` is specified), the `tableNumber` cannot be updated.
type: string
examples:
- '1'
clientCount:
description: The number of customers for this order. If updating an existing order, (ie.`accountIdentifier` is specified), the `clientCount` cannot be updated.
type: integer
format: int32
examples:
- 4
items:
description: The items in this order.
items:
$ref: '#/components/schemas/apeLocalOrderItemLine'
type: array
targetPrinterProfileId:
description: The printer profile id to use for printing the receipt for this payment. If not provided, the default active printer profile for the business location will be used.
type: integer
format: int64
examples:
- 1773881235
type: object
examples:
ApeLocalOrderRequestExample:
summary: Default apeLocalOrder request
x-microcks-default: true
value:
businessLocationId: 45454565682155
thirdPartyReference: example
endpointId: '500123'
customerInfo:
firstName: Jane
lastName: Doe
thirdPartyReference: ZEN-7074522d-c71d-403f
email: jane.doe@example.com
contactNumberAsE164: '+14155552671'
notes: Notes about the customer.
salutation: Mr.
sendEmailReceipts: true
emailNotification: DONT_CHANGE
orderNote: example
maxTimeToAttemptOrderDeliverToPos: 510
staffId: 131
accountProfileCode: example
scheduledTimeForOrderAsIso8601: '2026-03-15T14:30:00Z'
payment:
paymentMethod: OOPAYMENT
paymentAmount: 14.0
tipAmount: 2.0
accountId: '500123'
accountIdentifier: '500123'
tableNumber: example
clientCount: 776
items:
- quantity: 1
sku: UGG-BB-PUR-06
customItemName: My Custom Item Name
customItemPrice: 10.0
discountAmountOverride: 5.0
discountPercentOverride: 10.0
modifiers:
- {}
discountCode: FIVEPERCENT
course: 2
subItems:
- {}
targetPrinterProfileId: 670
required: true
tags:
- Order and Pay
responses:
'200':
description: accepted
content:
application/json:
schema:
properties:
status:
description: The response.
type: string
examples:
- ok
type: object
examples:
ApeLocalOrder200Example:
summary: Default apeLocalOrder 200 response
x-microcks-default: true
value:
status: OPEN
'400':
description: Bad Request.
content:
application/json:
schema:
type: object
description: Response object for error code 400
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T19:15:05.043+0000
status:
type: integer
description: The HTTP status code of the error response.
examples:
- 400
error:
type: string
description: A brief title of the error status.
examples:
- Bad Request
message:
type: string
description: A message describing the nature of the error in detail.
examples:
- "Validation failed for object='localOrder'. Error count: 1"
errors:
type: array
description: An array of error details, outlining specific issues with the request.
items:
type: object
properties:
codes:
type: array
items:
type: string
description: A set of code strings that correspond to the validation error.
example: &id001
- NotNull.localOrder.thirdPartyReference
- NotNull.thirdPartyReference
- NotNull.java.lang.String
- NotNull
arguments:
type: array
items:
type: object
properties:
codes:
type: array
items:
type: string
description: Argument codes that are related to the field in validation.
example: &id002
- localOrder.thirdPartyReference
- thirdPartyReference
defaultMessage:
type: string
description: The default message associated with the failed validation.
example: thirdPartyReference
code:
type: string
description: A single code that represents the specific validation rule that was not satisfied.
example: thirdPartyReference
defaultMessage:
type: string
description: The default error message provided when the associated field fails validation.
example: must not be null
objectName:
type: string
description: The name of the object that failed validation.
example: localOrder
field:
type: string
description: The name of the field that failed validation.
example: thirdPartyReference
bindingFailure:
type: boolean
description: Indicates whether the error was a result of a binding failure.
example: false
code:
type: string
description: A code representing the specific type of validation error.
example: NotNull
path:
type: string
description: The path of the failed request.
examples:
- /o/op/1/order/local
examples:
ApeLocalOrder400Example:
summary: Default apeLocalOrder 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 764
error: example
message: example
errors:
- codes: *id001
arguments:
- codes: *id002
defaultMessage: thirdPartyReference
code: thirdPartyReference
defaultMessage: must not be null
objectName: localOrder
field: thirdPartyReference
bindingFailure: false
code: NotNull
path: example
'409':
description: Conflict
content:
'*/*':
schema:
properties:
status:
description: The request status.
type: string
examples:
- fail
msg:
description: A message describing the error.
type: string
examples:
- reference has already been used 123456789
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/order/toGo:
post:
summary: Lightspeed Create to Go Order
operationId: apePlaceToGoOrder
description: Creates a new takeaway or delivery order for a specific business location. See [Online Ordering Basics](https://api-portal.lsk.lightspeed.app/guides/tutorials/online-ordering-basics) for more details.
requestBody:
content:
application/json:
schema:
required:
- businessLocationId
- thirdPartyReference
- endpointId
- customerInfo
properties:
businessLocationId:
$ref: '#/components/schemas/apeBusinessLocationId'
thirdPartyReference:
description: The external reference provided for this order. Must be unique. This value will be included in the order details sent to the [webhook URL](https://api-docs.lsk.lightspeed.app/operation/operation-apecreatewebhookoo#operation-apecreatewebhookoo-body-application-json-url).
type: string
minLength: 1
maxLength: 48
examples:
- MyAwesomeThirdPartyReference
endpointId:
description: Endpoint id for a unique webhook that has been created using [the webhook endpoint](https://api-docs.lsk.lightspeed.app/operation/operation-apecreatewebhookoo).
type: string
examples:
- MY-AWESOME-ENDPOINT-ID
customerInfo:
$ref: '#/components/schemas/apeCustomerInfo'
orderNote:
description: A note added to this order and displayed on the printed dockets.
type: string
examples:
- Sample Order Note
maxTimeToAttemptOrderDeliverToPos:
description: "** Use of this feature is strongly recommended **\n\nMaximum time to attempt delivery of this order to the POS. In milliseconds. The minimum value is 60000ms (1 minute).\n\nIf [`scheduledTimeForOrderAsIso8601`](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-scheduledtimefororderasiso8601) is used, this value will be added to the scheduled order time."
type: integer
format: int32
examples:
- 60000
staffId:
description: The unique identifier for the staff member.
type: integer
format: int64
examples:
- 1234567890
accountProfileCode:
description: A valid order profile [code](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code) to associate with this order. See the [order profiles](https://api-portal.lsk.lightspeed.app/guides/definitions/order-profiles) definition for more details.
type: string
examples:
- TOGOORDER
scheduledTimeForOrderAsIso8601:
description: The time that the order will be sent to the POS. Must be in the future.
type: string
format: date-time
examples:
- '2024-04-04T09:42:00.000+00:00'
payment:
$ref: '#/components/schemas/apeOrderPayment'
collectionCode:
maxLength: 8
description: Unique collection code for this order. If left blank, one will be automatically generated.
type: string
examples:
- '12345'
orderCollectionTimeAsIso8601:
description: The expected collection time of the order. Must be in the future.
type: string
format: date-time
examples:
- '2024-04-04T09:42:00.000+00:00'
items:
type: array
items:
$ref: '#/components/schemas/apeToGoOrderItemLine'
deliveryAddress:
type: object
description: The address to which the order should be delivered.
properties:
addressLine1:
type: string
description: The first line of the street address.
addressLine2:
type: string
description: The second line of the street address (if applicable).
zip:
type: string
description: The postal code for the delivery address.
city:
type: string
description: The city in which the delivery address is located.
targetPrinterProfileId:
description: The printer profile id to use for printing the receipt for this payment. If not provided, the default active printer profile for the business location will be used.
type: integer
format: int64
examples:
- 1773881235
type: object
examples:
ApePlaceToGoOrderRequestExample:
summary: Default apePlaceToGoOrder request
x-microcks-default: true
value:
businessLocationId: 45454565682155
thirdPartyReference: example
endpointId: '500123'
customerInfo:
firstName: Jane
lastName: Doe
thirdPartyReference: ZEN-7074522d-c71d-403f
email: jane.doe@example.com
contactNumberAsE164: '+14155552671'
notes: Notes about the customer.
salutation: Mr.
sendEmailReceipts: true
emailNotification: DONT_CHANGE
orderNote: example
maxTimeToAttemptOrderDeliverToPos: 449
staffId: 370
accountProfileCode: example
scheduledTimeForOrderAsIso8601: '2026-03-15T14:30:00Z'
payment:
paymentMethod: OOPAYMENT
paymentAmount: 14.0
tipAmount: 2.0
collectionCode: example
orderCollectionTimeAsIso8601: '2026-03-15T14:30:00Z'
items:
- quantity: 1
sku: UGG-BB-PUR-06
customItemName: My Custom Item Name
customItemPrice: 10.0
discountAmountOverride: 5.0
discountPercentOverride: 10.0
modifiers:
- {}
discountCode: FIVEPERCENT
subItems:
- {}
deliveryAddress:
addressLine1: example
addressLine2: example
zip: example
city: example
targetPrinterProfileId: 258
required: true
tags:
- Order and Pay
responses:
'200':
description: accepted
content:
application/json:
schema:
properties:
status:
description: The response.
type: string
examples:
- ok
type: object
examples:
ApePlaceToGoOrder200Example:
summary: Default apePlaceToGoOrder 200 response
x-microcks-default: true
value:
status: OPEN
'400':
description: Bad Request.
content:
application/json:
schema:
type: object
description: Response object for error code 400
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T19:15:05.043+0000
status:
type: integer
description: The HTTP status code of the error response.
examples:
- 400
error:
type: string
description: A brief title of the error status.
examples:
- Bad Request
message:
type: string
description: A message describing the nature of the error in detail.
examples:
- "Validation failed for object='toGoOrder'. Error count: 1"
errors:
type: array
description: An array of error details, outlining specific issues with the request.
items:
type: object
properties:
codes:
type: array
items:
type: string
description: A set of code strings that correspond to the validation error.
example: &id003
- NotNull.toGoOrder.thirdPartyReference
- NotNull.thirdPartyReference
- NotNull.java.lang.String
- NotNull
arguments:
type: array
items:
type: object
properties:
codes:
type: array
items:
type: string
description: Argument codes that are related to the field in validation.
example: &id004
- toGoOrder.thirdPartyReference
- thirdPartyReference
defaultMessage:
type: string
description: The default message associated with the failed validation.
example: thirdPartyReference
code:
type: string
description: A single code that represents the specific validation rule that was not satisfied.
example: thirdPartyReference
defaultMessage:
type: string
description: The default error message provided when the associated field fails validation.
example: must not be null
objectName:
type: string
description: The name of the object that failed validation.
example: toGoOrder
field:
type: string
description: The name of the field that failed validation.
example: thirdPartyReference
bindingFailure:
type: boolean
description: Indicates whether the error was a result of a binding failure.
example: false
code:
type: string
description: A code representing the specific type of validation error.
example: NotNull
path:
type: string
description: The path of the failed request.
examples:
- /o/op/1/order/toGo
examples:
ApePlaceToGoOrder400Example:
summary: Default apePlaceToGoOrder 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 866
error: example
message: example
errors:
- codes: *id003
arguments:
- codes: *id004
defaultMessage: thirdPartyReference
code: thirdPartyReference
defaultMessage: must not be null
objectName: toGoOrder
field: thirdPartyReference
bindingFailure: false
code: NotNull
path: example
'409':
description: Conflict
content:
'*/*':
schema:
properties:
status:
description: The request status.
type: string
examples:
- fail
msg:
description: A message describing the error.
type: string
examples:
- reference has already been used 123456789
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/order/table/getCheck:
get:
summary: Lightspeed Get All Open Checks
operationId: apeGetCheck
description: Returns all open orders for the current day.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: All open orders for the current day.
content:
application/json:
schema:
items:
$ref: '#/components/schemas/apeAccountSnapshot'
type: array
examples:
ApeGetCheck200Example:
summary: Default apeGetCheck 200 response
x-microcks-default: true
value:
- clientCount: 4
identifier: '500123'
uuid: a3bb189e-8f29-4cce-b0e9-f29b123dfe3d
openDate: '2021-06-21T14:20:00Z'
closeDate: '2021-06-22T10:15:00Z'
paidAmount: 100.0
serviceCharge: 10.0
name: ORDER A1C2E
currentAmount: 110.0
staffName: Jane Smith
staffId: 7701234
salesEntries:
- {}
paymentEntries:
- {}
id: '500123'
ikaccountId: A78094.48
number: 255
tableNumber: 2
posId: 54321
deviceId: 186
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T22:18:49.101+0000
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 400
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Bad Request
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- Required request parameter 'businessLocationId' for method parameter type Long is not present
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/order/table/getCheck
examples:
ApeGetCheck400Example:
summary: Default apeGetCheck 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 47
error: example
message: example
path: example
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/order/table/{tableNumber}/getCheck:
get:
summary: Lightspeed Get Open Check by Table
operationId: apeCheckLookup
description: "Returns an open order for a specific table.\nNote: If more than one order is assigned to the table, the oldest order will be returned."
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
- schema:
example: 1
description: The table [number](https://api-docs.lsk.lightspeed.app/operation/operation-apelookupfloorplans#operation-apelookupfloorplans-200-body-application-json-tables-number).
type: integer
format: int32
name: tableNumber
in: path
required: true
responses:
'200':
description: Check
content:
application/json:
schema:
$ref: '#/components/schemas/apeAccountSnapshot'
examples:
ApeCheckLookup200Example:
summary: Default apeCheckLookup 200 response
x-microcks-default: true
value:
clientCount: 4
identifier: '500123'
uuid: a3bb189e-8f29-4cce-b0e9-f29b123dfe3d
openDate: '2021-06-21T14:20:00Z'
closeDate: '2021-06-22T10:15:00Z'
paidAmount: 100.0
serviceCharge: 10.0
name: ORDER A1C2E
currentAmount: 110.0
staffName: Jane Smith
staffId: 7701234
salesEntries:
- id: 1341648999023061
uuid: 2c83b049-a2c1-4bc5-8479-eb152e5a54be
itemName: Burger
itemSku: '14'
unitAmount: 10.0
quantity: 1.0
modifiers: []
amountWithTax: 11.5
amountLessTax: 10.0
discountedAmount: 0.0
timeOfTransactionUtc: 2023-11-07T21:24:44.741+0000
active: true
parentId: 478
subLineItems: &id005
- id: 1341648999023062
uuid: 2c83b049-a2c1-4bc5-8479-eb152e5a54be
itemName: Extra Cheese
itemSku: '35'
unitAmount: 1.0
quantity: 1.0
modifiers: []
amountWithTax: 1.15
amountLessTax: 1.0
discountedAmount: 0.0
grossUnitAmount: 1.0
timeOfTransactionUtc: 2023-11-07T21:24:44.755+0000
active: true
subLineItems: []
taxIncluded: false
isTaxIncluded: true
taxIncluded: false
paymentEntries:
- paymentMethodDescription: API Payment
externalReference: '12345678901234'
paymentMethodCode: APM
amountPaid: 12.65
paymentDate: 2023-11-07T22:05:16.127+0000
active: true
accountCancelled: true
id: '500123'
ikaccountId: A78094.48
number: 819
tableNumber: 2
posId: 54321
deviceId: 931
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T22:18:49.101+0000
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 404
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Not Found
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- account not found for BL 123456789
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/order/table/1/getCheck
examples:
ApeCheckLookup404Example:
summary: Default apeCheckLookup 404 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 498
error: example
message: example
path: example
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/order/accounts/{accountIdentifier}:
get:
summary: Lightspeed Get Single Check
operationId: apeCheckLookupWithaccountIdentifier
description: Returns a check based on the Account Identifier.
tags:
- Order and Pay
parameters:
- schema:
description: "The ID of the account being requested.\n(ex: A78094.69)"
example: A739800.52
type: string
name: accountIdentifier
in: path
required: true
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: The account requested.
content:
application/json:
schema:
$ref: '#/components/schemas/apeAccountSnapshot'
examples:
ApeCheckLookupWithaccountIdentifier200Example:
summary: Default apeCheckLookupWithaccountIdentifier 200 response
x-microcks-default: true
value:
clientCount: 4
identifier: '500123'
uuid: a3bb189e-8f29-4cce-b0e9-f29b123dfe3d
openDate: '2021-06-21T14:20:00Z'
closeDate: '2021-06-22T10:15:00Z'
paidAmount: 100.0
serviceCharge: 10.0
name: ORDER A1C2E
currentAmount: 110.0
staffName: Jane Smith
staffId: 7701234
salesEntries:
- id: 1341648999023061
uuid: 2c83b049-a2c1-4bc5-8479-eb152e5a54be
itemName: Burger
itemSku: '14'
unitAmount: 10.0
quantity: 1.0
modifiers: []
amountWithTax: 11.5
amountLessTax: 10.0
discountedAmount: 0.0
timeOfTransactionUtc: 2023-11-07T21:24:44.741+0000
active: true
parentId: 656
subLineItems: *id005
isTaxIncluded: true
taxIncluded: false
paymentEntries:
- paymentMethodDescription: API Payment
externalReference: '12345678901234'
paymentMethodCode: APM
amountPaid: 12.65
paymentDate: 2023-11-07T22:05:16.127+0000
active: true
accountCancelled: false
id: '500123'
ikaccountId: A78094.48
number: 742
tableNumber: 2
posId: 54321
deviceId: 989
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T22:18:49.101+0000
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 400
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Bad Request
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- Invalid account identifier
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/order/accounts/-1
examples:
ApeCheckLookupWithaccountIdentifier400Example:
summary: Default apeCheckLookupWithaccountIdentifier 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 75
error: example
message: example
path: example
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T22:18:49.101+0000
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 404
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Not Found
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- account not found for BL 123456789
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/order/accounts/A78094.697/
examples:
ApeCheckLookupWithaccountIdentifier404Example:
summary: Default apeCheckLookupWithaccountIdentifier 404 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 463
error: example
message: example
path: example
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/pay:
post:
summary: Lightspeed Apply a Payment
operationId: apeMakePayment
description: Add a payment to an existing order.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/apeStandalonePayment'
examples:
ApeMakePaymentRequestExample:
summary: Default apeMakePayment request
x-microcks-default: true
value:
iKaccountId: 0
iKaccountIdentifier: A1234.56
thirdPartyPaymentReference: '12345678901234'
endpointId: MY-AWESOME-ENDPOINT-ID
businessLocationId: 45454565682155
taskTtlInMs: 60000
staffId: 118
deviceId: 12345678980
paymentMethod: OOPAYMENT
paymentAmount: 20.06
tipAmount: 2.5
targetPrinterProfileId: 1773881235
required: true
tags:
- Order and Pay
responses:
'200':
description: accepted
content:
application/json:
schema:
$ref: '#/components/schemas/apePaymentSubmissionResponse'
examples:
ApeMakePayment200Example:
summary: Default apeMakePayment 200 response
x-microcks-default: true
value:
status: ok
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/apePaymentBadRequestError'
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/printMsg:
post:
summary: Lightspeed Print Message
operationId: apePrintMsg
description: Send a message to the POS. Generates a notification on the register screen. Can also be sent to the printer.
If the POS is offline, the message will be stored for up to 24h and sent when the POS comes online.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
requestBody:
content:
application/json:
schema:
properties:
message:
description: The message to be printed.
type: string
examples:
- The Print Message
alsoToPrinter:
description: Print on the receipt printer as well as till (highly recommended).
type: boolean
examples:
- true
type: object
required:
- message
examples:
ApePrintMsgRequestExample:
summary: Default apePrintMsg request
x-microcks-default: true
value:
message: example
alsoToPrinter: false
required: true
responses:
'200':
description: accepted
content:
application/json:
schema:
properties:
status:
description: The response.
type: string
examples:
- ok
type: object
examples:
ApePrintMsg200Example:
summary: Default apePrintMsg 200 response
x-microcks-default: true
value:
status: OPEN
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/itemAvailability:
get:
summary: Lightspeed Get Item Availability Information
description: Returns item availability information, by business location and SKUs.
operationId: apeGetRestrictedItems
tags:
- Order and Pay
security:
- OAuth2:
- orders-api
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
- name: skus
in: query
description: List of SKUs to return.
required: true
schema:
type: array
items:
type: string
example: SKU1
maxItems: 50
minItems: 1
- name: page
in: query
description: Starting page of results, when paginating. Starts at 0.
required: false
schema:
minimum: 0
type: integer
format: int32
default: 0
example: 0
- name: size
in: query
description: Number of results to return, when paginating.
required: false
schema:
maximum: 50
minimum: 1
type: integer
format: int32
default: 25
example: 25
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/apeRestrictedItemPaginatedResponse'
examples:
ApeGetRestrictedItems200Example:
summary: Default apeGetRestrictedItems 200 response
x-microcks-default: true
value:
data:
- sku: SKU1
count: 50
updatedAt: '2025-07-08T14:20:00Z'
metadata:
warnings:
- {}
current: {}
total: 1
totalPages: 10
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- '2023-11-07T22:18:49.101Z'
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 400
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Bad Request
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- Required request parameter 'businessLocationId' for method parameter type Long is not present
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/itemAvailability
examples:
ApeGetRestrictedItems400Example:
summary: Default apeGetRestrictedItems 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 362
error: example
message: example
path: example
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: Lightspeed Get Item Availability Information by POST
description: Returns item availability information filtered by business location and SKUs. The list of SKUs must be provided in the request body.
operationId: apeGetRestrictedItemsByPost
tags:
- Order and Pay
security:
- OAuth2:
- orders-api
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
- name: page
in: query
description: Starting page of results, when paginating. Starts at 0.
required: false
schema:
minimum: 0
type: integer
format: int32
default: 0
example: 0
- name: size
in: query
description: Number of results to return, when paginating.
required: false
schema:
maximum: 100
minimum: 1
type: integer
format: int32
default: 25
example: 25
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/apeSkusRequest'
examples:
ApeGetRestrictedItemsByPostRequestExample:
summary: Default apeGetRestrictedItemsByPost request
x-microcks-default: true
value:
skus:
- SKU1
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/apeRestrictedItemPaginatedResponse'
examples:
ApeGetRestrictedItemsByPost200Example:
summary: Default apeGetRestrictedItemsByPost 200 response
x-microcks-default: true
value:
data:
- sku: SKU1
count: 50
updatedAt: '2025-07-08T14:20:00Z'
metadata:
warnings:
- {}
current: {}
total: 1
totalPages: 10
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- '2023-11-07T22:18:49.101Z'
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 400
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Bad Request
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- Required request parameter 'businessLocationId' for method parameter type Long is not present
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/itemAvailability
examples:
ApeGetRestrictedItemsByPost400Example:
summary: Default apeGetRestrictedItemsByPost 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 255
error: example
message: example
path: example
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/wh/1/webhook:
put:
summary: Lightspeed Create a Webhook
operationId: apeCreateWebhookOo
description: Configures a new webhook to be used for order status updates.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/apeWebhookEndpoint'
examples:
ApeCreateWebhookOoRequestExample:
summary: Default apeCreateWebhookOo request
x-microcks-default: true
value:
endpointId: MY-AWESOME-ENDPOINT-ID
url: https://webhook.site/1dc40b86-3d0d
withBasicAuth: true
username: username
password: password
provideAccount: true
expandTransactions: true
expandPayments: true
subscribeTo:
- &id006
name: DELIVERED
resource: order
required: true
tags:
- 'Order and Pay: Webhook'
responses:
'200':
description: Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/apeWebhookEndpoint'
examples:
ApeCreateWebhookOo200Example:
summary: Default apeCreateWebhookOo 200 response
x-microcks-default: true
value:
endpointId: MY-AWESOME-ENDPOINT-ID
url: https://webhook.site/1dc40b86-3d0d
withBasicAuth: true
username: username
password: password
provideAccount: true
expandTransactions: true
expandPayments: true
subscribeTo:
- *id006
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Response object for error code 400.
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T19:15:05.043+0000
status:
type: integer
description: The HTTP status code of the error response.
examples:
- 400
error:
type: string
description: A brief title of the error status.
examples:
- Bad Request
message:
type: string
description: A message describing the nature of the error in detail.
examples:
- "Validation failed for object='webhookEndpointDto'. Error count: 1"
errors:
type: array
description: An array of error details, outlining specific issues with the request.
items:
type: object
properties:
codes:
type: array
items:
type: string
description: A set of code strings that correspond to the validation error.
example: &id007
- NotNull.webhookEndpointDto.endpointId
- NotNull.endpointId
- NotNull.java.lang.String
- NotNull
arguments:
type: array
items:
type: object
properties:
codes:
type: array
items:
type: string
description: Argument codes that are related to the field in validation.
example: &id008
- webhookEndpointDto.endpointId
- endpointId
defaultMessage:
type: string
description: The default message associated with the failed validation.
example: endpointId
code:
type: string
description: A single code that represents the specific validation rule that was not satisfied.
example: endpointId
defaultMessage:
type: string
description: The default error message provided when the associated field fails validation.
example: must not be null
objectName:
type: string
description: The name of the object that failed validation.
example: webhookEndpointDto
field:
type: string
description: The name of the field that failed validation.
example: endpointId
bindingFailure:
type: boolean
description: Indicates whether the error was a result of a binding failure.
example: false
code:
type: string
description: A code representing the specific type of validation error.
example: NotNull
path:
type: string
description: The path of the failed request.
examples:
- /o/wh/1/webhook
examples:
ApeCreateWebhookOo400Example:
summary: Default apeCreateWebhookOo 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 147
error: example
message: example
errors:
- codes: *id007
arguments:
- codes: *id008
defaultMessage: endpointId
code: endpointId
defaultMessage: must not be null
objectName: webhookEndpointDto
field: endpointId
bindingFailure: false
code: NotNull
path: example
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: Lightspeed Update a Webhook
operationId: apeUpdateWebhookOo
description: "Updates an existing webhook entry.\n\nImportant Note: if `provideAccount`, `expandTransactions`, or `expandPayments` are excluded from the update request, they will be reset to their default values."
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/apeWebhookEndpoint'
examples:
ApeUpdateWebhookOoRequestExample:
summary: Default apeUpdateWebhookOo request
x-microcks-default: true
value:
endpointId: MY-AWESOME-ENDPOINT-ID
url: https://webhook.site/1dc40b86-3d0d
withBasicAuth: true
username: username
password: password
provideAccount: true
expandTransactions: true
expandPayments: true
subscribeTo:
- *id006
required: true
tags:
- 'Order and Pay: Webhook'
responses:
'200':
description: Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/apeWebhookEndpoint'
examples:
ApeUpdateWebhookOo200Example:
summary: Default apeUpdateWebhookOo 200 response
x-microcks-default: true
value:
endpointId: MY-AWESOME-ENDPOINT-ID
url: https://webhook.site/1dc40b86-3d0d
withBasicAuth: true
username: username
password: password
provideAccount: true
expandTransactions: true
expandPayments: true
subscribeTo:
- *id006
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Response object for error code 400.
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T19:15:05.043+0000
status:
type: integer
description: The HTTP status code of the error response.
examples:
- 400
error:
type: string
description: A brief title of the error status.
examples:
- Bad Request
message:
type: string
description: A message describing the nature of the error in detail.
examples:
- "Validation failed for object='webhookEndpointDto'. Error count: 1"
errors:
type: array
description: An array of error details, outlining specific issues with the request.
items:
type: object
properties:
codes:
type: array
items:
type: string
description: A set of code strings that correspond to the validation error.
example: &id009
- NotNull.webhookEndpointDto.endpointId
- NotNull.endpointId
- NotNull.java.lang.String
- NotNull
arguments:
type: array
items:
type: object
properties:
codes:
type: array
items:
type: string
description: Argument codes that are related to the field in validation.
example: &id010
- webhookEndpointDto.endpointId
- endpointId
defaultMessage:
type: string
description: The default message associated with the failed validation.
example: endpointId
code:
type: string
description: A single code that represents the specific validation rule that was not satisfied.
example: endpointId
defaultMessage:
type: string
description: The default error message provided when the associated field fails validation.
example: must not be null
objectName:
type: string
description: The name of the object that failed validation.
example: webhookEndpointDto
field:
type: string
description: The name of the field that failed validation.
example: endpointId
bindingFailure:
type: boolean
description: Indicates whether the error was a result of a binding failure.
example: false
code:
type: string
description: A code representing the specific type of validation error.
example: NotNull
path:
type: string
description: The path of the failed request.
examples:
- /o/wh/1/webhook
examples:
ApeUpdateWebhookOo400Example:
summary: Default apeUpdateWebhookOo 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 357
error: example
message: example
errors:
- codes: *id009
arguments:
- codes: *id010
defaultMessage: endpointId
code: endpointId
defaultMessage: must not be null
objectName: webhookEndpointDto
field: endpointId
bindingFailure: false
code: NotNull
path: example
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/wh/1/webhook/{endpointId}:
get:
summary: Lightspeed Retrieve a Webhook
operationId: apeGetWebhookOo
description: Retrieve an existing webhook.
parameters:
- schema:
example: endpoint
type: string
name: endpointId
in: path
required: true
tags:
- 'Order and Pay: Webhook'
responses:
'200':
description: Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/apeWebhookEndpoint'
examples:
ApeGetWebhookOo200Example:
summary: Default apeGetWebhookOo 200 response
x-microcks-default: true
value:
endpointId: MY-AWESOME-ENDPOINT-ID
url: https://webhook.site/1dc40b86-3d0d
withBasicAuth: true
username: username
password: password
provideAccount: true
expandTransactions: true
expandPayments: true
subscribeTo:
- *id006
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T22:18:49.101+0000
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 404
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Not Found
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- endpoint ID not found for MISSING-ENDPOINT
path:
type: string
description: The request path where the error occurred.
examples:
- /o/wh/1/webhook/MISSING-ENDPOINT
examples:
ApeGetWebhookOo404Example:
summary: Default apeGetWebhookOo 404 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 370
error: example
message: example
path: example
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
summary: Lightspeed Delete a Webhook
operationId: apeDeleteWebhookEndpoint
description: Delete an existing webhook.
parameters:
- schema:
example: endpoint
type: string
name: endpointId
in: path
required: true
tags:
- 'Order and Pay: Webhook'
responses:
'200':
description: Webhook deleted
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/wh/1/webhook/{endpointId}/business-locations:
get:
summary: Lightspeed Get Webhook Business Locations
operationId: apeGetWebhookBusinessLocations
description: Get all business locations added to a webhook endpoint via the API.
parameters:
- schema:
type: string
example: endpoint
name: endpointId
in: path
required: true
tags:
- 'Order and Pay: Webhook'
responses:
'200':
description: Business location IDs
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/apeWebhookEndpointBusinessLocationDto'
examples:
ApeGetWebhookBusinessLocations200Example:
summary: Default apeGetWebhookBusinessLocations 200 response
x-microcks-default: true
value:
- businessLocationId: 45454565682155
createdAt: 2023-11-07T19:15:05.043+0000
updatedAt: 2023-11-07T19:15:05.043+0000
warnings:
- {}
'404':
description: Not Found
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/wh/1/webhook/{endpointId}/business-locations/{businessLocationId}:
parameters:
- in: path
name: businessLocationId
required: true
schema:
$ref: '#/components/schemas/apeBusinessLocationId'
put:
summary: Lightspeed Add a Business Location to a Webhook
operationId: apeAddWebhookBusinessLocation
description: "Enables a webhook for the specified business location.\nRequired to receive item availability notifications (type 'item').\nNot required for 'order' and 'payment' webhooks."
parameters:
- schema:
type: string
example: endpoint
name: endpointId
in: path
required: true
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: path
required: true
tags:
- 'Order and Pay: Webhook'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/apeWebhookEndpointBusinessLocationDto'
examples:
ApeAddWebhookBusinessLocation200Example:
summary: Default apeAddWebhookBusinessLocation 200 response
x-microcks-default: true
value:
businessLocationId: 45454565682155
createdAt: 2023-11-07T19:15:05.043+0000
updatedAt: 2023-11-07T19:15:05.043+0000
warnings:
- information: example
type: example
'404':
description: Not Found
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
summary: Lightspeed Remove Business Location from a Webhook
operationId: apeRemoveWebhookBusinessLocation
description: Remove a business location ID from a webhook endpoint.
parameters:
- schema:
type: string
example: endpoint
name: endpointId
in: path
required: true
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: path
required: true
tags:
- 'Order and Pay: Webhook'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/apeWebhookEndpointBusinessLocationDto'
examples:
ApeRemoveWebhookBusinessLocation200Example:
summary: Default apeRemoveWebhookBusinessLocation 200 response
x-microcks-default: true
value:
businessLocationId: 45454565682155
createdAt: 2023-11-07T19:15:05.043+0000
updatedAt: 2023-11-07T19:15:05.043+0000
warnings:
- information: example
type: example
'404':
description: Not Found
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/data/businesses:
get:
summary: Lightspeed Get Businesses
operationId: financial-apiGetBusinesses
description: Returns all businesses the token has access to. Pagination is supported by providing the `page` and `size` query parameters. The maximum number of business locations per business returned is 500.
tags:
- Financial
parameters:
- description: Starting page of results, when paginating.
in: query
name: page
required: false
schema:
default: 0
format: int32
type: integer
- description: Number of results to return, when paginating.
in: query
name: size
required: false
schema:
default: 1000
format: int32
type: integer
responses:
'200':
description: Businesses returned
content:
application/json:
schema:
properties:
_embedded:
properties:
businessList:
items:
properties:
businessName:
type: string
example: My Business
description: The name of the business.
businessId:
type: number
example: 1234
description: The unique identifier for the business.
currencyCode:
type: string
description: The ISO 4217 currency code
example: GBP
businessLocations:
items:
properties:
blName:
type: string
example: My Business Location 1
description: The name of the business location.
blID:
type: number
example: 1234567890
description: The unique identifier for the business location.
country:
type: string
example: GB
description: The ISO 3166 country code.
timezone:
type: string
example: Europe/London
description: The time zone in ICANN format.
type: object
type: array
type: object
type: array
type: object
_links:
properties:
self:
properties:
href:
example: https:///api.ikentoo.com/data/businesses
type: string
type: object
type: object
type: object
examples:
Financial-apiGetBusinesses200Example:
summary: Default financial-apiGetBusinesses 200 response
x-microcks-default: true
value:
_embedded:
businessList:
- businessName: My Business
businessId: 1234
currencyCode: GBP
businessLocations:
- {}
_links:
self:
href: https:///api.ikentoo.com/data/businesses
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/finance/{businessLocationId}/tax-rates:
get:
summary: Lightspeed Get Tax Rates
operationId: financial-apiGetTaxRates
description: Returns tax rates for a business location.
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
tags:
- Financial
responses:
'200':
description: Tax rates returned
content:
application/json:
schema:
$ref: '#/components/schemas/financial-apiResourcesTaxRate'
examples:
Financial-apiGetTaxRates200Example:
summary: Default financial-apiGetTaxRates 200 response
x-microcks-default: true
value:
_embedded:
taxRateList:
- {}
_links:
self:
href: https://api.ikentoo.com/f/finance/141948669132802/tax-rates
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/finance/{businessLocationId}/paymentMethods:
get:
summary: Lightspeed Get Payment Methods
operationId: financial-apiGetPaymentMethods
description: Returns all payment methods for a business location.
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
tags:
- Financial
responses:
'200':
description: Payment methods returned
content:
application/json:
schema:
properties:
_embedded:
properties:
paymentMethodList:
items:
properties:
name:
type: string
description: Name of the payment type.
example: Cash
code:
type: string
description: System code for the payment type.
example: CASH
accountingReference:
type: string
description: Accounting reference code, if assigned.
example: cash-payment
pmId:
type: number
description: System identification number for payment type.
example: 1234567890
type: object
type: array
type: object
_links:
properties:
self:
properties:
href:
example: https:///api.ikentoo.com/finance/1234567/paymentMethodss
type: string
type: object
type: object
type: object
examples:
Financial-apiGetPaymentMethods200Example:
summary: Default financial-apiGetPaymentMethods 200 response
x-microcks-default: true
value:
_embedded:
paymentMethodList:
- name: Cash
code: CASH
accountingReference: cash-payment
pmId: 1234567890
_links:
self:
href: https:///api.ikentoo.com/finance/1234567/paymentMethodss
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/finance/{businessLocationId}/accountingGroups:
get:
summary: Lightspeed Get Accounting Groups
operationId: financial-apiGetAccountingGroups
description: Returns all accounting groups for a business location.
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
tags:
- Financial
responses:
'200':
description: Accounting groups returned
content:
application/json:
schema:
properties:
_embedded:
description: The list of accounting groups.
properties:
accountingGroupList:
items:
properties:
accountingGroupId:
type: number
example: 1234567890
description: The numeric identifier of the accounting group.
name:
type: string
example: Food
description: The name of the accounting group.
statisticGroup:
type: string
example: '[{"category":"default","value":"Food"}]'
description: The assigned statistic group, if applicable.
code:
type: string
example: fd
description: The code assigned to the accounting group, if applicable.
type: object
type: array
type: object
_links:
properties:
self:
properties:
href:
example: https://api.ikentoo.com/f/finance/1234567/accountingGroups
type: string
type: object
type: object
type: object
examples:
Financial-apiGetAccountingGroups200Example:
summary: Default financial-apiGetAccountingGroups 200 response
x-microcks-default: true
value:
_embedded:
accountingGroupList:
- accountingGroupId: 1234567890
name: Food
statisticGroup: '[{"category":"default","value":"Food"}]'
code: fd
_links:
self:
href: https://api.ikentoo.com/f/finance/1234567/accountingGroups
'400':
description: Bad Request
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/finance/{businessLocationId}/financials/{from}/{to}:
get:
summary: Lightspeed Get Financials
operationId: financial-apiGetFinancials
description: "Returns financial data for a business location for a specified date range.\n\nNote: Will only return sales created after migration from iKentoo 2.0 to Lightspeed K-Series."
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
- schema:
example: '2022-09-21T10:11:56Z'
type: string
format: date-time
name: from
description: "Start of requested results, in ISO 8601 format.\n\nThe date range between 'from' and 'to' cannot exceed 365 days (1 year).\n\nExample:`2022-09-21T10:11:56Z` or `2022-09-21T06:11:56-04:00`"
in: path
required: true
- schema:
example: '2022-09-21T10:11:56Z'
type: string
format: date-time
name: to
description: "End of requested results, in ISO 8601 format.\n\nExample:`2022-09-21T10:11:56Z` or `2022-09-21T06:11:56-04:00`"
in: path
required: true
- $ref: '#/components/parameters/financial-apiIncludeParameter'
- schema:
default: 1000
maximum: 1000
type: integer
format: int32
name: pageSize
description: Number of entries to return.
in: query
required: false
- schema:
type: string
name: nextPageToken
description: "The `accountId` where the results should begin.\n\nExample: `A65315.18`"
in: query
required: false
tags:
- Financial
responses:
'200':
description: Financials returned
content:
application/json:
schema:
$ref: '#/components/schemas/financial-apiFinancialDto'
examples:
Financial-apiGetFinancials200Example:
summary: Default financial-apiGetFinancials 200 response
x-microcks-default: true
value:
businessName: My Business
nextStartOfDayAsIso8601: '2023-07-28T05:30:00-05:00'
businessLocationId: 123456789
sales:
- accountReference: 57X0j3hzTZ2oo9sdVWiUog==
accountFiscId: A65315.17
receiptId: R65315.13
source: {}
salesLines: []
payments: []
timeofOpening: '2023-02-14T19:58:48.224Z'
timeofCloseAndPaid: '2023-02-14T20:04:08.734Z'
cancelled: false
externalFiscalNumber: example
tableNumber: '1'
tableName: Dining Room, Table 1
accountProfileCode: AAP
ownerName: Manager
ownerId: 14670
type: SALE
externalReferences: []
nbCovers: 2.0
dineIn: true
deviceId: 75125
dataComplete: false
_links:
self:
href: https://api.ikentoo.com/f/finance/141948669132802/financials/2021-08-30T14:00:00Z/2023-09-03T15:30:00Z?pageSize=10&include=payments
templated: true
nextPage:
href: https://api.ikentoo.com/f/finance/141948669132802/financials/2021-08-30T14:00:00Z/2023-09-03T15:30:00Z?pageSize=10&include=payments&nextPageToken=A65315.18
templated: true
'400':
description: Bad Request
content:
'*/*':
schema:
type: object
additionalProperties:
type: object
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/finance/{businessLocationId}/dailyFinancials:
get:
summary: Lightspeed Get Daily Financials
operationId: financial-apiGetDailyFinancials
description: Returns the financial data for the current business day or for the specified date.
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
- $ref: '#/components/parameters/financial-apiIncludeParameter'
- $ref: '#/components/parameters/financial-apiDateParameter'
- schema:
example: true
default: false
type: boolean
name: includeConsumers
in: query
required: false
tags:
- Financial
responses:
'200':
description: Daily financials returned
content:
application/json:
schema:
$ref: '#/components/schemas/financial-apiFinancialDto'
examples:
Financial-apiGetDailyFinancials200Example:
summary: Default financial-apiGetDailyFinancials 200 response
x-microcks-default: true
value:
businessName: My Business
nextStartOfDayAsIso8601: '2023-07-28T05:30:00-05:00'
businessLocationId: 123456789
sales:
- accountReference: 57X0j3hzTZ2oo9sdVWiUog==
accountFiscId: A65315.17
receiptId: R65315.13
source: {}
salesLines: []
payments: []
timeofOpening: '2023-02-14T19:58:48.224Z'
timeofCloseAndPaid: '2023-02-14T20:04:08.734Z'
cancelled: false
externalFiscalNumber: example
tableNumber: '1'
tableName: Dining Room, Table 1
accountProfileCode: AAP
ownerName: Manager
ownerId: 14670
type: SALE
externalReferences: []
nbCovers: 2.0
dineIn: true
deviceId: 75125
dataComplete: false
_links:
self:
href: https://api.ikentoo.com/f/finance/141948669132802/financials/2021-08-30T14:00:00Z/2023-09-03T15:30:00Z?pageSize=10&include=payments
templated: true
nextPage:
href: https://api.ikentoo.com/f/finance/141948669132802/financials/2021-08-30T14:00:00Z/2023-09-03T15:30:00Z?pageSize=10&include=payments&nextPageToken=A65315.18
templated: true
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/finance/{businessLocationId}/saleByExternalReference:
get:
summary: Lightspeed Get Receipt by External Reference
operationId: financial-apiGetReceiptByExternalReference
description: Returns a single receipt matching the external reference supplied in the request. See [`externalReferences`](https://api-docs.lsk.lightspeed.app/operation/operation-financial-apigetfinancials#operation-financial-apigetfinancials-200-body-application-json-sales-externalreferences) for examples.
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
- $ref: '#/components/parameters/financial-apiExternalReferenceId'
tags:
- Financial
responses:
'200':
description: Receipt returned
content:
application/json:
schema:
$ref: '#/components/schemas/financial-apiSaleDto'
examples:
Financial-apiGetReceiptByExternalReference200Example:
summary: Default financial-apiGetReceiptByExternalReference 200 response
x-microcks-default: true
value:
accountReference: 57X0j3hzTZ2oo9sdVWiUog==
accountFiscId: A65315.17
receiptId: R65315.13
source:
initialAccountId: A65315.13
previousAccountId: A65315.15
salesLines:
- id: S65315.33
parentLineId: S65315.32
totalNetAmountWithTax: '11.00'
totalNetAmountWithoutTax: '8.33'
menuListPrice: '10.00'
unitCostPrice: '5.00'
serviceCharge: '1.00'
serviceChargeType: APPORTIONED
serviceChargeRate: '10.00'
discountAmount: '0.00'
taxCode: VAT20
taxAmount: '1.6667'
taxRatePercentage: '20.00'
taxLines: example
discountType: DISCOUNT
discountCode: 10PCT
discountName: 10% Discount
accountDiscountAmount: '1.00'
accountDiscountType: DISCOUNT
accountDiscountCode: Staff 20%
payments:
- code: CASH
description: Cash
paymentMethodId: 141948669132824
netAmountWithTax: '11.00'
currency: GBP
tip: '0.00'
consumer:
id: ec021fb0-4c12-425e-b30f-320ab720448b
customerId: 120913
title: Mr
firstName: John
lastName: Doe
phoneNumber1: 555-555-5555
phoneNumber2: 555-555-5556
companyName: Company Name
addressLine1: 123 Street st.
addressLine2: Unit 123
zipCode: '12345'
city: Some City
state: Some State
email: customer@email.com
taxIdentifier: '123456789'
fiscalCode: '123456789'
destinationCode: '123456789'
type: NORMAL
deviceId: '72676'
deviceName: ipad9
staffId: 180480
staffName: Manager
authorization: '001'
externalReference: '1000'
revenueCenter: Fixed POS
revenueCenterId: 141948669132822
fiscId: T72691.8
uuid: bc7i2X_CTkeg8qlec66wmg==
fiscDate: '2023-02-14T20:04:08.665Z'
surcharge: '0.00'
timeofOpening: '2023-02-14T19:58:48.224Z'
timeofCloseAndPaid: '2023-02-14T20:04:08.734Z'
cancelled: false
externalFiscalNumber: example
tableNumber: '1'
tableName: Dining Room, Table 1
accountProfileCode: AAP
ownerName: Manager
ownerId: 14670
type: SALE
externalReferences:
- '"TASK:OO-{businessLocationId}-{unique-reference-code}", "TASK:OO-{businessLocationId}-(another-unique-reference-code)"'
nbCovers: 2.0
dineIn: true
deviceId: 75125
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/finance/{businessLocationId}/aggregatedSales:
get:
summary: Lightspeed Get Aggregated Sales
operationId: financial-apiGetAggregatedSales
description: "Get sales for the current business day or the specified date range, aggregated by one or more values.\nThe values are specified in the `groupBy` parameter and are nested in the order provided in the request.\n\n- Use either the `date` parameter **or** the `from` and `to` parameters to specify the period.\n- The `date` parameter specifies a single date for aggregation.\n- The `from` and `to` parameters specify a date-time range and must be used together.\n- **If neither `date` nor `from`/`to` are provided it defaults to today's date**.\n- The date range between `from` and `to` cannot exceed 365 days (1 year).\n"
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
- name: date
in: query
required: false
description: "Specify a single date for which to retrieve aggregated sales data. Cannot be combined with `from` and `to`. Use either `date`, or both `from` and `to`.\n"
schema:
type: string
format: date
- name: from
in: query
required: false
description: "Specify the start datetime for the aggregation range. Must be used together with `to`. Cannot be combined with `date`.\n"
schema:
type: string
format: date-time
- name: to
in: query
required: false
description: "Specify the end datetime for the aggregation range. Must be used together with `from`. Cannot be combined with `date`.\n"
schema:
type: string
format: date-time
- $ref: '#/components/parameters/financial-apiFlattenedParameter'
- $ref: '#/components/parameters/financial-apiGroupByParameter'
tags:
- Financial
responses:
'200':
description: Aggregated sales returned
content:
application/json:
schema:
properties:
groupByKey:
type: string
description: The groupBy parameter provided.
examples:
- staff
groupByValue:
type: string
description: The value that corresponds to the groupBy parameter.
examples:
- manager
totalAmount:
type: string
description: 'The aggregated total of sales for this data set (ex. `staff: manager`).'
examples:
- '47.00'
serviceCharge:
type: string
description: 'The aggregated total of service charges for this data set (ex. `staff: manager`).'
examples:
- '0.00'
totalDiscountedAmount:
type: string
description: 'The aggregated total of discounts for this data set (ex. `staff: manager`).'
examples:
- '0.00'
totalTaxAmount:
type: string
description: 'The aggregated tax total for this data set (ex. `staff: manager`).'
examples:
- '7.04'
numberOfSales:
type: number
description: 'The total number of sale lines for this data set (ex. `staff: manager`).'
examples:
- 7.0
children:
items:
properties:
groupByKey:
type: string
description: The second groupBy parameter provided, if applicable. The parameters will be nested based on the order provided. For example, `staff,device` will show totals for each `staff` value, and then those totals broken down by `device`.
example: device
children:
items:
properties:
groupByValue:
type: string
description: The value that corresponds to the second groupBy parameter provided.
example: iPad7
totalAmount:
type: string
description: 'The aggregated total of sales for this nested data set (ex. `staff:manager -> device: iPad7 `).'
example: '28.00'
serviceCharge:
type: string
description: 'The aggregated total of service charges for this nested data set (ex. `staff:manager -> device: iPad7 `).'
example: '0.00'
totalDiscountedAmount:
type: string
description: 'The aggregated total of discounts for this nested data set (ex. `staff:manager -> device: iPad7 `).'
example: '0.00'
totalTaxAmount:
type: string
description: 'The aggregated tax total for this nested data set (ex. `staff:manager -> device: iPad7 `).'
example: '4.19'
numberOfSales:
type: number
description: 'The total number of sales for this nested data set (ex. `staff:manager -> device: iPad7 `).'
example: 3.0
children:
items:
properties:
groupByKey:
type: string
children:
description: This would continue with as many nested data sets as specified by the groupBy parameters.
items:
properties: {}
type: object
type: array
type: object
type: array
type: object
type: array
type: object
type: array
nextStartOfDayAsIso8601:
type: string
dataComplete:
type: boolean
businessName:
type: string
type: object
examples:
Financial-apiGetAggregatedSales200Example:
summary: Default financial-apiGetAggregatedSales 200 response
x-microcks-default: true
value:
groupByKey: example
groupByValue: example
totalAmount: '12.50'
serviceCharge: example
totalDiscountedAmount: '12.50'
totalTaxAmount: '12.50'
numberOfSales: 49.89
children:
- groupByKey: device
children:
- groupByValue: iPad7
totalAmount: '28.00'
serviceCharge: '0.00'
totalDiscountedAmount: '0.00'
totalTaxAmount: '4.19'
numberOfSales: 3.0
children: []
nextStartOfDayAsIso8601: example
dataComplete: false
businessName: Sample businessName
'400':
description: Bad Request
content:
'*/*':
schema:
type: object
additionalProperties:
type: object
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/v2/business-location/{businessLocationId}/sales:
get:
x-generated: true
summary: Lightspeed Get Sales
operationId: financial-apiGetBusinessLocationSales
description: Returns financial data for a business location for a specified date range. Sorted by the `timeClosed` field of the sales.
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
- schema:
example: '2023-01-01T14:00:00Z'
type: string
format: date-time
name: from
description: "Start of requested results, in ISO 8601 format.\n\nThe date range between 'from' and 'to' cannot exceed 365 days (1 year).\n\nBased on the timeClosed sales field."
in: query
required: true
- schema:
example: '2023-01-01T13:00:00Z'
type: string
format: date-time
name: to
description: "End of requested results, in ISO 8601 format.\n\nBased on the timeClosed sales field.\n\nIf the `to` date is set to a future date or not included, it will be adjusted to the current\ndate and time to retrieve the most recent data available."
in: query
required: false
- $ref: '#/components/parameters/financial-apiIncludeParameter'
- $ref: '#/components/parameters/financial-apiPageSize'
- $ref: '#/components/parameters/financial-apiNextPageToken'
tags:
- FinancialV2
responses:
'200':
description: Financial data returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/financial-apiSalesExportDto'
examples:
Financial-apiGetBusinessLocationSales200Example:
summary: Default financial-apiGetBusinessLocationSales 200 response
x-microcks-default: true
value:
sales:
- accountReference: 57X0j3hzTZ2oo9sdVWiUog==
accountFiscId: A65315.17
receiptId: R65315.13
source: {}
salesLines: []
payments: []
timeOfOpening: '2023-02-14T19:58:48.224Z'
timeClosed: '2023-02-14T20:04:08.734Z'
cancelled: false
externalFiscalNumber: IntegratorReferenceId
tableNumber: '1'
tableName: Dining Room, Table 1
accountProfileCode: AAP
ownerName: Manager
ownerId: 14670
type: SALE
externalReferences: []
nbCovers: 2.0
dineIn: true
deviceId: 75125
nextPageToken: example
'400':
description: Bad Request - Invalid request parameters or format.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
examples:
wrongDateFormat:
summary: Wrong DateTime Format
value:
error: 'Invalid date format: 12/12/2023'
missingParameter:
summary: Missing 'from' or 'to' Parameter
value:
error: Required request parameter 'from' for method parameter type OffsetDateTime is not present
invalidDateRange:
summary: Invalid Date Range
value:
error: "Invalid date range: 'from' date %s should not be after 'to' date %s"
invalidFromDate:
summary: Invalid 'from' date query Parameter
value:
error: "Invalid 'from' date query parameter. The requested business location was not operational on the provided date.\nPlease specify a date and time after: {earliest_date}, which is the earliest available date for this location.\n"
'500':
description: Internal Server Error - An error occurred on the server.
content:
application/json:
schema:
$ref: '#/components/schemas/financial-apiErrorResponse'
examples:
Financial-apiGetBusinessLocationSales500Example:
summary: Default financial-apiGetBusinessLocationSales 500 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
path: example
status: 576
error: example
requestId: '500123'
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/v2/business-location/{businessLocationId}/sales-daily:
get:
x-generated: true
summary: Lightspeed Get Business Day Sales
operationId: financial-apiGetBusinessLocationSalesOfABusinessDay
description: Returns financial data for a business location for a specified business day.
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
- schema:
example: '2021-09-21'
type: string
format: date
name: date
description: "The date of the business day to get sales for.\n\nExample:`2022-09-21` or `2022-12-01`"
in: query
required: true
- $ref: '#/components/parameters/financial-apiIncludeParameter'
tags:
- FinancialV2
responses:
'200':
description: Financial data returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/financial-apiSalesDailyExportDto'
examples:
Financial-apiGetBusinessLocationSalesOfABusinessDay200Example:
summary: Default financial-apiGetBusinessLocationSalesOfABusinessDay 200 response
x-microcks-default: true
value:
sales:
- accountReference: 57X0j3hzTZ2oo9sdVWiUog==
accountFiscId: A65315.17
receiptId: R65315.13
source: {}
salesLines: []
payments: []
timeOfOpening: '2023-02-14T19:58:48.224Z'
timeClosed: '2023-02-14T20:04:08.734Z'
cancelled: false
externalFiscalNumber: IntegratorReferenceId
tableNumber: '1'
tableName: Dining Room, Table 1
accountProfileCode: AAP
ownerName: Manager
ownerId: 14670
type: SALE
externalReferences: []
nbCovers: 2.0
dineIn: true
deviceId: 75125
nextStartOfDayAsIso8601: '2023-07-28T05:30:00-05:00'
dataComplete: false
'400':
description: Bad Request - Invalid request parameters or format.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
examples:
Financial-apiGetBusinessLocationSalesOfABusinessDay400Example:
summary: Default financial-apiGetBusinessLocationSalesOfABusinessDay 400 response
x-microcks-default: true
value:
error: example
'500':
description: Internal Server Error - An error occurred on the server.
content:
application/json:
schema:
$ref: '#/components/schemas/financial-apiErrorResponse'
examples:
Financial-apiGetBusinessLocationSalesOfABusinessDay500Example:
summary: Default financial-apiGetBusinessLocationSalesOfABusinessDay 500 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
path: example
status: 195
error: example
requestId: '500123'
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/v2/business-location/{businessLocationId}/lightspeed-payments:
get:
x-generated: true
summary: Lightspeed Payments Data
operationId: financial-apiGetLightspeedPayments
description: "Returns Lightspeed Payments fee and surcharge data for a business location for a specified date range. Results are queried and sorted based on the specified dateType.\n\nNote: Will only return sales created after migration from iKentoo 2.0 to Lightspeed K-Series. See [this article](https://k-series-support.lightspeedhq.com/hc/en-us/articles/360056758333-Upgrading-to-K-Series-from-iKentoo-2-0) for more details."
tags:
- FinancialV2
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
- schema:
example: '2023-01-01T14:00:00Z'
type: string
format: date-time
name: from
description: "Start of requested results, in ISO 8601 format.\n\nThe date range between 'from' and 'to' cannot exceed 365 days (1 year).\n\nResults queried by the dateType parameter."
in: query
required: true
- schema:
example: '2023-01-01T13:00:00Z'
type: string
format: date-time
name: to
description: "End of requested results, in ISO 8601 format.\n\nResults queried by the dateType parameter."
in: query
required: false
- $ref: '#/components/parameters/financial-apiPageSize'
- name: offset
in: query
required: false
schema:
example: 0
default: 0
description: The pagination offset.
type: integer
format: int32
- name: sortDirection
in: query
required: false
schema:
$ref: '#/components/schemas/financial-apiSortDirection'
- name: dateType
in: query
required: false
schema:
$ref: '#/components/schemas/financial-apiDateType'
- name: status
in: query
description: Payment statuses to filter the result set by.
example:
- CAPTURED
- REFUNDED
required: false
schema:
type: array
items:
$ref: '#/components/schemas/financial-apiLSPaymentStatus'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/financial-apiLSPaymentsDto'
examples:
Financial-apiGetLightspeedPayments200Example:
summary: Default financial-apiGetLightspeedPayments 200 response
x-microcks-default: true
value:
payments:
- accountFiscId: A72691.8
lightspeedPaymentId: ad-GJ33PFSCGVG4NFH4
uuid: bc7i2X_CTkeg8qlec66wmg==
reference: RFOOVMIMPSDY
status: {}
createdDate: '2022-09-21T10:11:56Z'
captureDate: '2022-09-21T10:11:56Z'
modificationDate: '2022-09-21T10:11:56Z'
fees: {}
surcharge: {}
pageSize: 100
offset: 0
nextOffset: 100
'400':
description: Bad Request - Invalid request parameters or format.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
examples:
wrongDateFormat:
summary: Wrong DateTime Format
value:
error: 'Invalid date format: 12/12/2023'
invalidDateRange:
summary: Invalid Date Range
value:
error: "'from' date cannot be after 'to' date"
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/f/v2/beta/business-location/{businessLocationId}/aborted-orders:
get:
x-generated: true
summary: Lightspeed BETA - Get Aborted Orders
operationId: financial-apiGetBusinessLocationAbortedOrdersOfABusinessDay
description: "Retrieves a list of aborted orders for a specified business day.\n\nAn aborted order is defined as an instance where items were added to an order, but **all** items were subsequently removed without being committed."
x-beta: true
parameters:
- $ref: '#/components/parameters/financial-apiBusinessLocationId'
- schema:
example: '2023-01-01'
type: string
format: date
name: date
description: The business date of the aborted orders.
in: query
required: true
tags:
- FinancialV2
responses:
'200':
description: Aborted orders returned successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/financial-apiAbortedOrderDto'
examples:
Financial-apiGetBusinessLocationAbortedOrdersOfABusinessDay200Example:
summary: Default financial-apiGetBusinessLocationAbortedOrdersOfABusinessDay 200 response
x-microcks-default: true
value:
- staffName: Employee 1
timeOfAbortedOrder: '2023-03-14T19:58:48.224Z'
totalAmountAborted: '33.32'
abortedLineItems:
- {}
'400':
description: Bad Request - Invalid request parameters or format.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
examples:
Financial-apiGetBusinessLocationAbortedOrdersOfABusinessDay400Example:
summary: Default financial-apiGetBusinessLocationAbortedOrdersOfABusinessDay 400 response
x-microcks-default: true
value:
error: example
'500':
description: Internal Server Error - An error occurred on the server.
content:
application/json:
schema:
$ref: '#/components/schemas/financial-apiErrorResponse'
examples:
Financial-apiGetBusinessLocationAbortedOrdersOfABusinessDay500Example:
summary: Default financial-apiGetBusinessLocationAbortedOrdersOfABusinessDay 500 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
path: example
status: 926
error: example
requestId: '500123'
security:
- OAuth2:
- financial-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/id-cards/v1/business-locations/{businessLocationId}/batches:
post:
summary: Lightspeed Create an ID Card Batch
description: Creates a new batch of ID cards for a specific business location.
operationId: id-cards-apiCreateIdCardBatch
x-beta: true
security:
- OAuth2:
- id-cards
parameters:
- $ref: '#/components/parameters/id-cards-apiBusinessLocationId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/id-cards-apiCreateIdCardBatchRequest'
examples:
Id-cards-apiCreateIdCardBatchRequestExample:
summary: Default id-cards-apiCreateIdCardBatch request
x-microcks-default: true
value:
name: Sample Batch Name
responses:
'201':
description: Successfully created an ID card batch.
content:
application/json:
schema:
$ref: '#/components/schemas/id-cards-apiIdCardBatch'
examples:
Id-cards-apiCreateIdCardBatch201Example:
summary: Default id-cards-apiCreateIdCardBatch 201 response
x-microcks-default: true
value:
batchId: 12345
name: Sample name
businessLocationId: 67890
tags:
- ID Cards
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/id-cards/v1/business-locations/{businessLocationId}/batches/{batchId}/cards:
post:
summary: Lightspeed Create ID Cards
description: Creates a specified number of ID cards for an existing ID card batch.
operationId: id-cards-apiCreateIdCards
x-beta: true
security:
- OAuth2:
- id-cards
parameters:
- $ref: '#/components/parameters/id-cards-apiBusinessLocationId'
- name: batchId
in: path
required: true
description: The unique identifier for the ID card batch.
schema:
type: integer
format: int64
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/id-cards-apiCreateIdCardsRequest'
examples:
Id-cards-apiCreateIdCardsRequestExample:
summary: Default id-cards-apiCreateIdCards request
x-microcks-default: true
value:
cardCount: 1
responses:
'201':
description: Successfully created ID cards.
content:
application/json:
schema:
$ref: '#/components/schemas/id-cards-apiCreateIdCardsResponse'
examples:
Id-cards-apiCreateIdCards201Example:
summary: Default id-cards-apiCreateIdCards 201 response
x-microcks-default: true
value:
batchId: 12345
cards:
- id: 98765
consumerRecordId: 54321
consumerId: 13579
url: https://example.com/id-cards/98765/qr-code
tags:
- ID Cards
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/items/v1/items/{id}:
get:
summary: Lightspeed Get Item by ID
operationId: items-apiGetItemById
description: Returns the details of a specific item.
tags:
- Items
parameters:
- in: path
schema:
$ref: '#/components/schemas/items-apiItemId'
name: id
required: true
- in: query
name: businessLocationId
schema:
$ref: '#/components/schemas/items-apiBusinessLocationId'
required: true
responses:
'200':
description: Item found
content:
application/json:
schema:
$ref: '#/components/schemas/items-apiItemDTO'
examples:
Items-apiGetItemById200Example:
summary: Default items-apiGetItemById 200 response
x-microcks-default: true
value:
id: 3012455645
name: Burger
docketName: The Burger
sku: UGG-BB-PUR-06
active: true
barcode: '00000001'
barcodes:
- '10011101100'
accountingGroup:
id: 40570261078058
name: Alcoholic beverages
statisticGroups:
- category: default
value: Food
costPrice: 5.0
prices:
- amount: 10.0
name: Tuesday Special
sharingType: SHARED
priceMode: POSITIVE_OPEN_PRICE
inventorySource: PURCHASED
disabled: false
contentDimension: MASS
contentUom: kg
contentValue: 1
itemType: ITEM
'404':
description: Item not found
content:
'*/*':
schema:
properties:
status:
enum:
- '404'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
security:
- OAuth2:
- items
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
summary: Lightspeed Update Item by ID
description: Modifies the values of an existing item.
operationId: items-apiPut
tags:
- Items
parameters:
- in: path
name: id
schema:
$ref: '#/components/schemas/items-apiItemId'
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/items-apiUpdateItemDTO'
examples:
Items-apiPutRequestExample:
summary: Default items-apiPut request
x-microcks-default: true
value:
name: Burger
businessLocationId: 45454565682155
docketName: The Burger
sku: UGG-BB-PUR-06
active: true
barcode: '10011101100'
barcodes:
- '10011101100'
accountingGroupId: 462478248241
costPrice: 5.0
defaultPrice: 10
priceMode: PERCENT
required: true
responses:
'200':
description: Item updated
content:
application/json:
schema:
$ref: '#/components/schemas/items-apiItemDTO'
examples:
Items-apiPut200Example:
summary: Default items-apiPut 200 response
x-microcks-default: true
value:
id: 3012455645
name: Burger
docketName: The Burger
sku: UGG-BB-PUR-06
active: true
barcode: '00000001'
barcodes:
- '10011101100'
accountingGroup:
id: 40570261078058
name: Alcoholic beverages
statisticGroups:
- category: default
value: Food
costPrice: 5.0
prices:
- amount: 10.0
name: Tuesday Special
sharingType: SHARED
priceMode: POSITIVE_OPEN_PRICE
inventorySource: PURCHASED
disabled: false
contentDimension: MASS
contentUom: kg
contentValue: 1
itemType: ITEM
'400':
description: Constraint violation
content:
'*/*':
schema:
properties:
status:
enum:
- '400'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
security:
- OAuth2:
- items
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/items/v1/items:
get:
summary: Lightspeed Get All Items
operationId: items-apiGetItems
description: Returns the items for a specific business location. Supports searching by [`accountingGroupId`](#operation-getitems-accountinggroupid), [`name`](#operation-getitems-name), [`sku`](#operation-getitems-sku), or [`itemIds`](#operation-getitems-itemids).
tags:
- Items
parameters:
- in: query
name: businessLocationId
schema:
$ref: '#/components/schemas/items-apiBusinessLocationId'
required: true
- in: query
name: sku
schema:
$ref: '#/components/schemas/items-apiSku'
required: false
- in: query
name: name
schema:
$ref: '#/components/schemas/items-apiName'
required: false
- in: query
name: accountingGroupId
schema:
$ref: '#/components/schemas/items-apiAccountingGroupId'
required: false
- in: query
name: itemIds
description: Optional list of item IDs to retrieve. When provided, offset and amount are ignored; all matching items are returned.
required: false
schema:
type: array
items:
type: integer
format: int64
maxItems: 200
- in: query
name: offset
schema:
$ref: '#/components/schemas/items-apiOffset'
required: false
- in: query
name: amount
schema:
$ref: '#/components/schemas/items-apiAmount'
required: false
responses:
'200':
description: Item found
content:
application/json:
schema:
$ref: '#/components/schemas/items-apiItemDTO'
examples:
Items-apiGetItems200Example:
summary: Default items-apiGetItems 200 response
x-microcks-default: true
value:
id: 3012455645
name: Burger
docketName: The Burger
sku: UGG-BB-PUR-06
active: true
barcode: '00000001'
barcodes:
- '10011101100'
accountingGroup:
id: 40570261078058
name: Alcoholic beverages
statisticGroups:
- category: default
value: Food
costPrice: 5.0
prices:
- amount: 10.0
name: Tuesday Special
sharingType: SHARED
priceMode: POSITIVE_OPEN_PRICE
inventorySource: PURCHASED
disabled: false
contentDimension: MASS
contentUom: kg
contentValue: 1
itemType: ITEM
'400':
description: Constraint violation
content:
'*/*':
schema:
properties:
status:
enum:
- '400'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
'404':
description: Not Found
content:
'*/*':
schema:
properties:
status:
enum:
- '404'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
security:
- OAuth2:
- items
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: Lightspeed Create Item
operationId: items-apiCreateItem
description: Create a new item for a specific business location.
tags:
- Items
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/items-apiCreateItemDTO'
examples:
Items-apiCreateItemRequestExample:
summary: Default items-apiCreateItem request
x-microcks-default: true
value:
name: Burger
businessLocationId: 45454565682155
docketName: The Burger
sku: UGG-BB-PUR-06
active: true
barcode: '10011101100'
barcodes:
- '10011101100'
accountingGroupId: 462478248241
costPrice: 5.0
defaultPrice: 10
priceMode: PERCENT
required: true
responses:
'201':
description: Item created
content:
application/json:
schema:
$ref: '#/components/schemas/items-apiItemDTO'
examples:
Items-apiCreateItem201Example:
summary: Default items-apiCreateItem 201 response
x-microcks-default: true
value:
id: 3012455645
name: Burger
docketName: The Burger
sku: UGG-BB-PUR-06
active: true
barcode: '00000001'
barcodes:
- '10011101100'
accountingGroup:
id: 40570261078058
name: Alcoholic beverages
statisticGroups:
- category: default
value: Food
costPrice: 5.0
prices:
- amount: 10.0
name: Tuesday Special
sharingType: SHARED
priceMode: POSITIVE_OPEN_PRICE
inventorySource: PURCHASED
disabled: false
contentDimension: MASS
contentUom: kg
contentValue: 1
itemType: ITEM
'404':
description: Could not create item
content:
'*/*':
schema:
properties:
status:
enum:
- '404'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
security:
- OAuth2:
- items
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/pms/v1/business-locations/{businessLocationId}/revenue-centers:
get:
summary: Lightspeed Get PMS Revenue Centers
operationId: pms-apiGetRevenueCenters
description: Returns a list of all POS Configurations which can be mapped to PMS Revenue Centers. For more details on revenue centers, see our [Integration Guide](https://api-portal.lsk.lightspeed.app/guides/integration-guides/property-management-systems/financial-api-endpoints#revenue-centers).
tags:
- PMS
parameters:
- name: businessLocationId
in: path
required: true
schema:
$ref: '#/components/schemas/pms-apiBusinessLocationId'
responses:
'200':
description: Found a list of Revenue Centers
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
$ref: '#/components/schemas/pms-apiRevenueCenterId'
name:
$ref: '#/components/schemas/pms-apiRevenueCenterName'
examples:
Pms-apiGetRevenueCenters200Example:
summary: Default pms-apiGetRevenueCenters 200 response
x-microcks-default: true
value:
- id: 343243933
name: Bar
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/pms-apiErrorResponse'
'404':
description: Invalid input business location id
content:
'*/*':
schema:
$ref: '#/components/schemas/pms-apiErrorResponse'
security:
- OAuth2:
- propertymanagement
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/pms/v1/providers/{id}:
get:
summary: Lightspeed Get a PMS Provider by ID
operationId: pms-apiGetProvider
description: "Returns the details of a specific PMS provider.\n\nOnly PMS providers created by the authenticated OAuth client will be returned.\n"
tags:
- PMS
parameters:
- in: path
schema:
$ref: '#/components/schemas/pms-apiProviderId'
name: id
required: true
responses:
'200':
description: Provider found
content:
application/json:
schema:
$ref: '#/components/schemas/pms-apiGetProvider'
examples:
Pms-apiGetProvider200Example:
summary: Default pms-apiGetProvider 200 response
x-microcks-default: true
value:
id: 3012455645
name: Sample name
apiKey: fake-secret
businessLocationId: 45454565682155
endpoint: http://integration.com/pms/endpoint
features:
- MIRRORING
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/pms-apiErrorResponse'
'404':
description: Provider not found
content:
'*/*':
schema:
$ref: '#/components/schemas/pms-apiErrorResponse'
security:
- OAuth2:
- propertymanagement
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
summary: Lightspeed Update a PMS Provider
operationId: pms-apiUpdateProvider
description: "Modifies the values of an existing **PMS** provider.\n\nOnly PMS providers created by the authenticated OAuth client can be updated.\n"
tags:
- PMS
parameters:
- in: path
schema:
$ref: '#/components/schemas/pms-apiProviderId'
name: id
required: true
requestBody:
content:
application/json:
schema:
required:
- name
- endpoint
- apiKey
- features
properties:
name:
$ref: '#/components/schemas/pms-apiProviderName'
endpoint:
$ref: '#/components/schemas/pms-apiProviderEndpoint'
apiKey:
$ref: '#/components/schemas/pms-apiProviderApiKey'
features:
$ref: '#/components/schemas/pms-apiProviderFeatures'
type: object
examples:
Pms-apiUpdateProviderRequestExample:
summary: Default pms-apiUpdateProvider request
x-microcks-default: true
value:
name: My PMS Provider
endpoint: http://integration.com/pms/endpoint
apiKey: fake-secret
features:
- MIRRORING
required: true
responses:
'200':
description: Provider updated
content:
application/json:
schema:
$ref: '#/components/schemas/pms-apiGetProvider'
examples:
Pms-apiUpdateProvider200Example:
summary: Default pms-apiUpdateProvider 200 response
x-microcks-default: true
value:
id: 3012455645
name: Sample name
apiKey: fake-secret
businessLocationId: 45454565682155
endpoint: http://integration.com/pms/endpoint
features:
- MIRRORING
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/pms-apiErrorResponse'
'404':
description: Provider not found
content:
'*/*':
schema:
$ref: '#/components/schemas/pms-apiErrorResponse'
security:
- OAuth2:
- propertymanagement
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
summary: Lightspeed Delete a PMS Provider
operationId: pms-apiDeleteProvider
description: Permanently removes a PMS provider from a businessLocation.
tags:
- PMS
parameters:
- in: path
schema:
$ref: '#/components/schemas/pms-apiProviderId'
name: id
required: true
responses:
'200':
description: Provider deleted
content:
application/json:
schema:
type: integer
format: int64
examples:
Pms-apiDeleteProvider200Example:
summary: Default pms-apiDeleteProvider 200 response
x-microcks-default: true
value: 650
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/pms-apiErrorResponse'
'404':
description: Provider not found
content:
'*/*':
schema:
$ref: '#/components/schemas/pms-apiErrorResponse'
security:
- OAuth2:
- propertymanagement
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/pms/v1/providers:
get:
summary: Lightspeed Get PMS Providers
operationId: pms-apiGetProviders
description: "Returns a list of PMS providers that have been configured for the business location. Only PMS providers created by the authenticated OAuth client will be returned.\n"
tags:
- PMS
parameters:
- in: query
schema:
$ref: '#/components/schemas/pms-apiBusinessLocationId'
name: businessLocationId
required: false
responses:
'200':
description: Result
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/pms-apiGetProvider'
examples:
Pms-apiGetProviders200Example:
summary: Default pms-apiGetProviders 200 response
x-microcks-default: true
value:
- id: 3012455645
name: Sample name
apiKey: fake-secret
businessLocationId: 45454565682155
endpoint: http://integration.com/pms/endpoint
features:
- MIRRORING
security:
- OAuth2:
- propertymanagement
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: Lightspeed Create PMS Provider
operationId: pms-apiCreateProvider
description: Creates a new PMS provider for the businessLocation.
tags:
- PMS
requestBody:
content:
application/json:
schema:
required:
- name
- endpoint
- apiKey
- features
- businessLocationId
properties:
businessLocationId:
$ref: '#/components/schemas/pms-apiBusinessLocationId'
name:
$ref: '#/components/schemas/pms-apiProviderName'
endpoint:
$ref: '#/components/schemas/pms-apiProviderEndpoint'
apiKey:
$ref: '#/components/schemas/pms-apiProviderApiKey'
features:
$ref: '#/components/schemas/pms-apiProviderFeatures'
type: object
examples:
Pms-apiCreateProviderRequestExample:
summary: Default pms-apiCreateProvider request
x-microcks-default: true
value:
businessLocationId: 45454565682155
name: My PMS Provider
endpoint: http://integration.com/pms/endpoint
apiKey: fake-secret
features:
- MIRRORING
required: true
responses:
'200':
description: Provider created
content:
application/json:
schema:
$ref: '#/components/schemas/pms-apiGetProvider'
examples:
Pms-apiCreateProvider200Example:
summary: Default pms-apiCreateProvider 200 response
x-microcks-default: true
value:
id: 3012455645
name: Sample name
apiKey: fake-secret
businessLocationId: 45454565682155
endpoint: http://integration.com/pms/endpoint
features:
- MIRRORING
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/pms-apiErrorResponse'
'404':
description: Provider not found
content:
'*/*':
schema:
$ref: '#/components/schemas/pms-apiErrorResponse'
security:
- OAuth2:
- propertymanagement
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/platform/{platform-code}/integration/onboarding:
post:
description: Once the external platform receives the [onboarding webhook](https://api-docs.lsk.lightspeed.app/operation/operation-reservationonboardingnotification), the process needs to be completed using this callback.
operationId: reservation-serviceOnboardingCallback
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-serviceOnboardingCallbackRequest'
examples:
Reservation-serviceOnboardingCallbackRequestExample:
summary: Default reservation-serviceOnboardingCallback request
x-microcks-default: true
value:
businessLocationId: 9765040300495493
onboardingCode: DONE
onboardingId: 84f16177-98c5-4010-a7ab-d00144d1dede
platformRestaurantId: Restaurant-123
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-serviceOnboardingCallbackResponse'
examples:
Reservation-serviceOnboardingCallback200Example:
summary: Default reservation-serviceOnboardingCallback 200 response
x-microcks-default: true
value:
onboardingCode: DONE
description: Accepted
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-serviceOnboardingCallbackResponse'
examples:
Reservation-serviceOnboardingCallback400Example:
summary: Default reservation-serviceOnboardingCallback 400 response
x-microcks-default: true
value:
onboardingCode: DONE
description: Non relevant request
'403':
description: Scope 'reservation-{platform-code}' not found in the token
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-serviceOnboardingCallbackResponse'
examples:
Reservation-serviceOnboardingCallback404Example:
summary: Default reservation-serviceOnboardingCallback 404 response
x-microcks-default: true
value:
onboardingCode: DONE
description: Platform not found
security:
- OAuth2:
- reservation-platform-code
summary: Lightspeed Callback to Complete Onboarding
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/platform/{platform-code}/profile:
get:
description: Retrieve platform profile details.
operationId: reservation-serviceGetByPlatformCode
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformProfileResponse'
examples:
Reservation-serviceGetByPlatformCode200Example:
summary: Default reservation-serviceGetByPlatformCode 200 response
x-microcks-default: true
value:
baseUrl: https://my.platform/api/lsk
depositSupported: true
displayName: My Platform
errorsWebhookUrl: https://my.platform/api/lsk/webhook/errors
integrationWebhookUrl: https://my.platform/api/lsk/webhook/integrations
notificationTypes: &id011
- ORDER_CLOSED
onboardingWebhookUrl: https://my.platform/api/lsk/webhook/onboarding
orderWebhookUrl: https://my.platform/api/lsk/webhook/orders
posReservationUpdateWebhookUrl: https://my.platform/api/lsk/webhook/reservation
ownNotificationsOnly: true
webhookAuthType: OAUTH2
allowCourseNumberUpdates: true
inServiceTableStatuses:
- statusLabel: Appetizer
statusValue: appetizer
sequence: 1
allowedPosStatuses:
- SCHEDULED
description: Platform profile details
'400':
description: Non relevant request
'403':
description: Scope 'reservation-{platform-code}' not found in the token
security:
- OAuth2:
- reservation-platform-code
summary: Lightspeed Platform Profile Details
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
description: Create or update details for external reservation platform.
operationId: reservation-serviceSetByPlatformCode
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformProfile'
examples:
Reservation-serviceSetByPlatformCodeRequestExample:
summary: Default reservation-serviceSetByPlatformCode request
x-microcks-default: true
value:
baseUrl: https://my.platform/api/lsk
depositSupported: true
displayName: My Platform
errorsWebhookUrl: https://my.platform/api/lsk/webhook/errors
integrationWebhookUrl: https://my.platform/api/lsk/webhook/integrations
notificationTypes: &id018
- ORDER_CLOSED
onboardingWebhookUrl: https://my.platform/api/lsk/webhook/onboarding
orderWebhookUrl: https://my.platform/api/lsk/webhook/orders
posReservationUpdateWebhookUrl: https://my.platform/api/lsk/webhook/reservation
ownNotificationsOnly: true
webhookAuthDetails:
apiKeys:
headers: &id012
X-API-ID: Example-x-api-id
X-API-SECRET: Example-x-api-secret
parameters: &id013 {}
basic:
password: Example-Password
username: LightspeedKSeries
bearer:
token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
ttl: '2035-01-01T00:00:00'
oauth2:
authorizationGrantType: CLIENT_CREDENTIALS
clientAuthorizationMethod: CLIENT_SECRET_BASIC
clientId: LightspeedKSeries
clientName: LightspeedKSeries
clientSecret: Example-Client-Secret
providerJwkSetUri: https://my.platform/public-keys
providerTokenUri: https://my.platform/emitter/token
scopes: &id014
- webhooks-api
webhookAuthType: OAUTH2
allowCourseNumberUpdates: true
inServiceTableStatuses:
- statusLabel: Appetizer
statusValue: appetizer
sequence: 1
allowedPosStatuses:
- SCHEDULED
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformProfileResponse'
examples:
Reservation-serviceSetByPlatformCode200Example:
summary: Default reservation-serviceSetByPlatformCode 200 response
x-microcks-default: true
value:
baseUrl: https://my.platform/api/lsk
depositSupported: true
displayName: My Platform
errorsWebhookUrl: https://my.platform/api/lsk/webhook/errors
integrationWebhookUrl: https://my.platform/api/lsk/webhook/integrations
notificationTypes: *id011
onboardingWebhookUrl: https://my.platform/api/lsk/webhook/onboarding
orderWebhookUrl: https://my.platform/api/lsk/webhook/orders
posReservationUpdateWebhookUrl: https://my.platform/api/lsk/webhook/reservation
ownNotificationsOnly: true
webhookAuthType: OAUTH2
allowCourseNumberUpdates: true
inServiceTableStatuses:
- statusLabel: Appetizer
statusValue: appetizer
sequence: 1
allowedPosStatuses:
- SCHEDULED
description: Platform profile details
'400':
description: Non relevant request
'403':
description: Scope 'reservation-{platform-code}' not found in the token
security:
- OAuth2:
- reservation-platform-code
summary: Lightspeed Create or Update Platform Profile
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/platform/{platform-code}/course-settings:
patch:
description: Setup platform's course settings definition.
operationId: reservation-servicePlatformCourseSettings
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformCourseSettingsDto'
examples:
Reservation-servicePlatformCourseSettingsRequestExample:
summary: Default reservation-servicePlatformCourseSettings request
x-microcks-default: true
value:
allowCourseNumberUpdates: true
inServiceTableStatuses:
- statusLabel: Appetizer
statusValue: appetizer
sequence: 1
responses:
'200':
description: Accepted
'400':
description: Non relevant request
'403':
description: Scope 'reservation-{platform-code}' not found in the token
security:
- OAuth2:
- reservation-platform-code
summary: Lightspeed Platform Course Settings Definition
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/platform/{platform-code}/restaurant/{platform-restaurant-id}/reservation/{platform-reservation-id}/push:
put:
description: Create a new reservation or provide updates about guests, deposits, status, etc.
operationId: reservation-servicePushPlatformReservation
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
- in: path
name: platform-restaurant-id
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformRestaurantId'
- description: The external identifier of the reservation.
in: path
name: platform-reservation-id
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformReservationId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformReservation'
examples:
Reservation-servicePushPlatformReservationRequestExample:
summary: Default reservation-servicePushPlatformReservation request
x-microcks-default: true
value:
guest:
email: john.smith@email.com
firstName: John
lastName: Smith
phone: '+13453455555'
platformGuestId: ABC-123
walkIn: true
foodAndDrinkNotes: Only milk and cookies!
notes: Put the ring in the champagne!
language: en
allergens: &id019
- almonds
- egg
dietaryRestrictions: &id020
- no alcohol
- vegan
liability:
currency: EUR
deposits:
- {}
refunds:
- {}
notes: More balloons!
specialOffer: Free dessert
tags: &id021
- romantic meal
- special occasion
partySize: 2
sequenceId: 145789499819
status: SCHEDULED
tableNumbers: &id022
- '1'
utcScheduledAt: '2024-01-01T20:00:00'
utcUpdatedAt: '2024-01-01T20:10:00'
guestRequest: I would need two baby chairs.
expectedDuration: PT30M
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformReservationAcceptedDto'
examples:
Reservation-servicePushPlatformReservation202Example:
summary: Default reservation-servicePushPlatformReservation 202 response
x-microcks-default: true
value:
platformCode: MyPlatform
platformRestaurantId: Restaurant-123
platformReservationId: Reservation-123
accepted: true
'400':
description: Non relevant request
'403':
description: Scope 'reservation-{platform-code}' not found in the token
'404':
description: Integration not found
security:
- OAuth2:
- reservation-platform-code
summary: Lightspeed Create or Update Reservation
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/platform/{platform-code}/webhook/auth/api-keys:
patch:
description: Activate XApiKey authentication for webhooks.
operationId: reservation-serviceActivateApiKeysAuth
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformAPIKeysWebhook'
examples:
Reservation-serviceActivateApiKeysAuthRequestExample:
summary: Default reservation-serviceActivateApiKeysAuth request
x-microcks-default: true
value:
headers: *id012
parameters: *id013
responses:
'200':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformWebhookResponseDto'
examples:
Reservation-serviceActivateApiKeysAuth200Example:
summary: Default reservation-serviceActivateApiKeysAuth 200 response
x-microcks-default: true
value:
accepted: true
currentAuthType: BEARER_TOKEN
'400':
description: Non relevant request
'403':
description: Scope 'reservation-{platform-code}' not found in the token
'404':
description: Platform not found
security:
- OAuth2:
- reservation-platform-code
summary: Lightspeed Add Authentication by XApiKey
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/platform/{platform-code}/webhook/auth/basic-auth:
patch:
description: Activate BasicAuth authentication for webhooks.
operationId: reservation-serviceActivateBasicAuth
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformBasicAuthWebhook'
examples:
Reservation-serviceActivateBasicAuthRequestExample:
summary: Default reservation-serviceActivateBasicAuth request
x-microcks-default: true
value:
password: Example-Password
username: LightspeedKSeries
responses:
'200':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformWebhookResponseDto'
examples:
Reservation-serviceActivateBasicAuth200Example:
summary: Default reservation-serviceActivateBasicAuth 200 response
x-microcks-default: true
value:
accepted: true
currentAuthType: OAUTH2
'400':
description: Non relevant request
'403':
description: Scope 'reservation-{platform-code}' not found in the token
'404':
description: Platform not found
security:
- OAuth2:
- reservation-platform-code
summary: Lightspeed Add Authentication with BasicAuth
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/platform/{platform-code}/webhook/auth/bearer-auth:
patch:
description: Activate BearerAuth authentication for webhooks.
operationId: reservation-serviceActivateBearerAuthAuth
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformBearerTokenWebhook'
examples:
Reservation-serviceActivateBearerAuthAuthRequestExample:
summary: Default reservation-serviceActivateBearerAuthAuth request
x-microcks-default: true
value:
token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
ttl: '2035-01-01T00:00:00'
responses:
'200':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformWebhookResponseDto'
examples:
Reservation-serviceActivateBearerAuthAuth200Example:
summary: Default reservation-serviceActivateBearerAuthAuth 200 response
x-microcks-default: true
value:
accepted: true
currentAuthType: BEARER_TOKEN
'400':
description: Non relevant request
'403':
description: Scope 'reservation-{platform-code}' not found in the token
'404':
description: Platform not found
security:
- OAuth2:
- reservation-platform-code
summary: Lightspeed Add Authentication with BearerAuth
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/platform/{platform-code}/webhook/auth/oauth2:
patch:
description: Activate OAuth2 authentication for webhooks.
operationId: reservation-serviceActivateOAuth2
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformOAuth2Webhook'
examples:
Reservation-serviceActivateOAuth2RequestExample:
summary: Default reservation-serviceActivateOAuth2 request
x-microcks-default: true
value:
authorizationGrantType: CLIENT_CREDENTIALS
clientAuthorizationMethod: CLIENT_SECRET_BASIC
clientId: LightspeedKSeries
clientName: LightspeedKSeries
clientSecret: Example-Client-Secret
providerJwkSetUri: https://my.platform/public-keys
providerTokenUri: https://my.platform/emitter/token
scopes: *id014
responses:
'200':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformWebhookResponseDto'
examples:
Reservation-serviceActivateOAuth2200Example:
summary: Default reservation-serviceActivateOAuth2 200 response
x-microcks-default: true
value:
accepted: true
currentAuthType: BEARER_TOKEN
'400':
description: Non relevant request
'403':
description: Scope 'reservation-{platform-code}' not found in the token
'404':
description: Platform not found
security:
- OAuth2:
- reservation-platform-code
summary: Lightspeed Add Authentication with OAuth2
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/user/platform/{platform-code}/business-locations:
get:
description: Retrieve all the business locations accessible for a User
operationId: reservation-serviceGetBusinessLocations
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
- description: The page number, when paginating
in: query
name: page
required: false
schema:
default: 0
format: int32
type: integer
- description: The items per page, when paginating
in: query
name: size
required: false
schema:
default: 1000
format: int32
type: integer
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/reservation-servicePlatformBusinessLocation'
type: array
examples:
- - businessLocationId: '123456789'
city: Genève
country: CH
name: Le Gâteau
state: Canton de Genève
street1: Rue de la Servette 10
street2: Suite 2
zip: '101201'
examples:
Reservation-serviceGetBusinessLocations200Example:
summary: Default reservation-serviceGetBusinessLocations 200 response
x-microcks-default: true
value:
- businessLocationId: '500123'
city: example
country: example
name: Sample name
state: example
street1: example
street2: example
zip: example
description: A list of business locations
'400':
description: Non relevant request
'403':
description: Access token not relevant for the businessLocation, use authorization-code
'404':
description: No business locations found
security:
- OAuth2:
- user-token-by-authorization-code
summary: Lightspeed Get Business Locations
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/user/platform/{platform-code}/integration/activate:
post:
description: Activate the integration between the K-Series business location and the external reservation platform.
operationId: reservation-serviceActivatePlatformIntegration
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformIntegrationDto'
examples:
Reservation-serviceActivatePlatformIntegrationRequestExample:
summary: Default reservation-serviceActivatePlatformIntegration request
x-microcks-default: true
value:
businessLocationId: 9765040300495493
platformRestaurantId: Restaurant-123
responses:
'200':
description: Accepted
'400':
description: Non relevant request
'403':
description: Access token not relevant for the businessLocation, use authorization-code
'404':
description: Platform not found
security:
- OAuth2:
- user-token-by-authorization-code
summary: Lightspeed Activate Integration for Restaurant
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/reservation/api/1/user/platform/{platform-code}/integration/deactivate:
post:
description: Deactivate the integration between the K-Series business location and the external reservation platform.
operationId: reservation-serviceDeactivatePlatformIntegration
parameters:
- in: path
name: platform-code
required: true
schema:
$ref: '#/components/schemas/reservation-servicePlatformCode'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/reservation-servicePlatformIntegrationDto'
examples:
Reservation-serviceDeactivatePlatformIntegrationRequestExample:
summary: Default reservation-serviceDeactivatePlatformIntegration request
x-microcks-default: true
value:
businessLocationId: 9765040300495493
platformRestaurantId: Restaurant-123
responses:
'200':
description: Accepted
'400':
description: Non relevant request
'403':
description: Access token not relevant for the businessLocation, use authorization-code
'404':
description: Platform not found
security:
- OAuth2:
- user-token-by-authorization-code
summary: Lightspeed Deactivate Integration for Restaurant
tags:
- Reservations for Platforms
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/shift:
get:
tags:
- Staff
summary: Lightspeed Get Shifts
operationId: staff-apiGetShift
parameters:
- $ref: '#/components/parameters/staff-apiBusinessLocationId'
- $ref: '#/components/parameters/staff-apiPage'
- $ref: '#/components/parameters/staff-apiSize'
- $ref: '#/components/parameters/staff-apiSortByShift'
- $ref: '#/components/parameters/staff-apiStartTime'
- $ref: '#/components/parameters/staff-apiEndTime'
- $ref: '#/components/parameters/staff-apiStaffId'
responses:
'200':
description: List of shifts with related links.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/staff-apiResponseSchema'
- type: object
properties:
data:
type: object
properties:
shifts:
type: array
items:
$ref: '#/components/schemas/staff-apiShift'
examples:
Staff-apiGetShift200Example:
summary: Default staff-apiGetShift 200 response
x-microcks-default: true
value:
data:
shifts:
- uuid: REcdfpCwQJKUR53gdzIk5Q==
businessId: 12345
businessLocationId: 1234567890
deviceId: 54321
staffId: 1234
declaredCashTips: '10.00'
dateInUTC: '2020-01-01T00:00:00Z'
events: []
links:
first:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
self:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
next:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
last:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
page:
page: 1
size: 10
totalElements: 100
totalPages: 10
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/userTypes/POS:
get:
tags:
- Staff
summary: Lightspeed Get All POS Users
operationId: staff-apiGetPOSStaff
parameters:
- $ref: '#/components/parameters/staff-apiBusinessLocationId'
- $ref: '#/components/parameters/staff-apiPage'
- $ref: '#/components/parameters/staff-apiSize'
- $ref: '#/components/parameters/staff-apiSortByStaff'
- name: isActive
description: Filter on active status.
in: query
schema:
type: boolean
- name: startDate
description: Filter on user start date. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format).
in: query
schema:
type: string
format: date-time
- name: endDate
description: Filter on user end date. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format).
in: query
schema:
type: string
format: date-time
responses:
'200':
description: Staff List
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/staff-apiResponseSchema'
- type: object
properties:
data:
type: object
properties:
staff:
type: array
items:
$ref: '#/components/schemas/staff-apiPOSStaff'
examples:
Staff-apiGetPOSStaff200Example:
summary: Default staff-apiGetPOSStaff 200 response
x-microcks-default: true
value:
data:
staff:
- staffId: {}
username: {}
userTypes: []
firstName: {}
lastName: {}
active: {}
pinCodeSet: {}
createdOn: {}
modifiedOn: {}
businessId: {}
businessLocationId: {}
groups: []
reportAccess: []
roles: []
links:
first:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
self:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
next:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
last:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
page:
page: 1
size: 10
totalElements: 100
totalPages: 10
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
tags:
- Staff
summary: Lightspeed Create POS User
operationId: staff-apiCreatePOSStaff
parameters:
- $ref: '#/components/parameters/staff-apiBusinessLocationId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiCreatePosStaffDto'
examples:
Staff-apiCreatePOSStaffRequestExample:
summary: Default staff-apiCreatePOSStaff request
x-microcks-default: true
value:
username: John Doe
pinCode: '1234'
firstName: John
lastName: Doe
active: true
visible: true
group: 736
reportAccess: STAFF_REPORT_OWN_ACCESS
roles: &id023 []
responses:
'201':
description: User created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiStaff'
examples:
Staff-apiCreatePOSStaff201Example:
summary: Default staff-apiCreatePOSStaff 201 response
x-microcks-default: true
value:
staffId: 1234
username: John Doe
userTypes:
- BACK_OFFICE
firstName: John
lastName: Doe
email: guest@example.com
active: true
pinCodeSet: true
createdOn: '2026-03-15T14:30:00Z'
modifiedOn: '2026-03-15T14:30:00Z'
businessId: 12345
businessLocationId: 1234567890
groups:
- id: 1234
name: Bar Staff
reportAccess:
- STAFF_REPORT_OWN_ACCESS
roles:
- id: 1234
name: ROLE_CAN_LOGIN
'400':
description: Bad request. Invalid input parameters.
'401':
description: Authentication failed.
'403':
description: Access Denied.
'500':
description: Internal Server Error.
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/userTypes/POS/{staffId}:
put:
tags:
- Staff
summary: Lightspeed Update POS User
operationId: staff-apiUpdatePOSStaff
parameters:
- $ref: '#/components/parameters/staff-apiBusinessLocationId'
- name: staffId
in: path
required: true
description: The unique identifier for the user.
schema:
type: integer
format: int64
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiUpdatePosStaffDto'
examples:
Staff-apiUpdatePOSStaffRequestExample:
summary: Default staff-apiUpdatePOSStaff request
x-microcks-default: true
value:
username: John Doe
pinCode: '1234'
firstName: John
lastName: Doe
active: false
visible: false
group: -1
reportAccess: example
roles:
- example
responses:
'201':
description: User updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiStaff'
examples:
Staff-apiUpdatePOSStaff201Example:
summary: Default staff-apiUpdatePOSStaff 201 response
x-microcks-default: true
value:
staffId: 1234
username: John Doe
userTypes:
- BACK_OFFICE
firstName: John
lastName: Doe
email: guest@example.com
active: true
pinCodeSet: false
createdOn: '2026-03-15T14:30:00Z'
modifiedOn: '2026-03-15T14:30:00Z'
businessId: 12345
businessLocationId: 1234567890
groups:
- id: 1234
name: Bar Staff
reportAccess:
- STAFF_REPORT_OWN_ACCESS
roles:
- id: 1234
name: ROLE_CAN_LOGIN
'400':
description: Bad request. Invalid input parameters.
'401':
description: Authentication failed.
'403':
description: Access Denied.
'500':
description: Internal Server Error.
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/userTypes/BACK_OFFICE:
get:
tags:
- Staff
summary: Lightspeed Get All Back Office Users
operationId: staff-apiGetBackOfficeStaff
parameters:
- $ref: '#/components/parameters/staff-apiBusinessLocationId'
- $ref: '#/components/parameters/staff-apiPage'
- $ref: '#/components/parameters/staff-apiSize'
- $ref: '#/components/parameters/staff-apiSortByStaff'
- name: email
in: query
description: Filter on email address.
schema:
type: string
format: email
- name: isActive
description: Filter on active status.
in: query
schema:
type: boolean
- name: startDate
description: Filter on user start date. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format).
in: query
schema:
type: string
format: date-time
- name: endDate
description: Filter on user end date. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format).
in: query
schema:
type: string
format: date-time
responses:
'200':
description: Staff List
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/staff-apiResponseSchema'
- type: object
properties:
data:
type: object
properties:
staff:
type: array
items:
$ref: '#/components/schemas/staff-apiBOStaff'
examples:
Staff-apiGetBackOfficeStaff200Example:
summary: Default staff-apiGetBackOfficeStaff 200 response
x-microcks-default: true
value:
data:
staff:
- staffId: {}
userTypes: []
firstName: {}
lastName: {}
email: {}
active: {}
createdOn: {}
modifiedOn: {}
businessId: {}
businessLocationId: {}
groups: []
reportAccess: []
roles: []
links:
first:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
self:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
next:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
last:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
page:
page: 1
size: 10
totalElements: 100
totalPages: 10
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/staff/{staffId}:
get:
tags:
- Staff
summary: Lightspeed Get Single User
operationId: staff-apiGetSingleStaff
parameters:
- name: businessLocationId
in: path
description: The unique identifier for the business location.
required: true
schema:
type: integer
format: int64
- name: staffId
in: path
description: The unique identifier for the user.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: User object
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiStaff'
examples:
Staff-apiGetSingleStaff200Example:
summary: Default staff-apiGetSingleStaff 200 response
x-microcks-default: true
value:
staffId: 1234
username: John Doe
userTypes:
- API
firstName: John
lastName: Doe
email: guest@example.com
active: true
pinCodeSet: false
createdOn: '2026-03-15T14:30:00Z'
modifiedOn: '2026-03-15T14:30:00Z'
businessId: 12345
businessLocationId: 1234567890
groups:
- id: 1234
name: Bar Staff
reportAccess:
- STAFF_REPORT_OWN_ACCESS
roles:
- id: 1234
name: ROLE_CAN_LOGIN
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/groups:
get:
tags:
- Staff
summary: Lightspeed Get All User Groups
operationId: staff-apiGetPosUserGroups
parameters:
- $ref: '#/components/parameters/staff-apiBusinessLocationId'
- $ref: '#/components/parameters/staff-apiPage'
- $ref: '#/components/parameters/staff-apiSize'
- $ref: '#/components/parameters/staff-apiSortByStaffGroup'
- name: name
description: Filter on group name.
in: query
schema:
type: string
- name: roles
description: Filter on group roles.
in: query
schema:
type: array
items:
type: string
responses:
'200':
description: POS User Groups List
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/staff-apiResponseSchema'
- type: object
properties:
data:
type: object
properties:
staffGroupList:
type: array
items:
$ref: '#/components/schemas/staff-apiStaffGroup'
examples:
Staff-apiGetPosUserGroups200Example:
summary: Default staff-apiGetPosUserGroups 200 response
x-microcks-default: true
value:
data:
staffGroupList:
- id: 1234
name: Bar Staff
roles: []
reportAccess: {}
links:
first:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
self:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
next:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
last:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
page:
page: 1
size: 10
totalElements: 100
totalPages: 10
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/groups/{groupId}:
get:
tags:
- Staff
summary: Lightspeed Get Single User Group
operationId: staff-apiGetPosUserGroupById
parameters:
- $ref: '#/components/parameters/staff-apiBusinessLocationId'
- name: groupId
in: path
description: The unique identifier for the user group.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: POS User Group
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/staff-apiResponseSchema'
- type: object
properties:
data:
type: object
properties:
staffGroup:
$ref: '#/components/schemas/staff-apiStaffGroup'
examples:
Staff-apiGetPosUserGroupById200Example:
summary: Default staff-apiGetPosUserGroupById 200 response
x-microcks-default: true
value:
data:
staffGroup:
id: 1234
name: Bar Staff
roles:
- {}
reportAccess: STAFF_REPORT_OWN_ACCESS
links:
first:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
self:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
next:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
last:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
page:
page: 1
size: 10
totalElements: 100
totalPages: 10
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/business/{businessId}/assignStaff/{staffId}:
post:
tags:
- Staff
summary: Lightspeed Add Business Location Access
operationId: staff-apiAddStaffBusinessLocationAccess
parameters:
- $ref: '#/components/parameters/staff-apiBusinessId'
- name: staffId
in: path
description: The unique identifier for the user.
required: true
schema:
type: integer
format: int64
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiBusinessLocationIds'
examples:
Staff-apiAddStaffBusinessLocationAccessRequestExample:
summary: Default staff-apiAddStaffBusinessLocationAccess request
x-microcks-default: true
value:
businessLocationIds: &id015
- 123456789
- 987654321
responses:
'200':
description: User business location access added successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiBusinessLocationIds'
examples:
Staff-apiAddStaffBusinessLocationAccess200Example:
summary: Default staff-apiAddStaffBusinessLocationAccess 200 response
x-microcks-default: true
value:
businessLocationIds: *id015
'400':
description: Bad request. Invalid input parameters.
'401':
description: Authentication failed.
'403':
description: Access Denied.
'500':
description: Internal Server Error.
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/unAssignStaff/{staffId}:
delete:
tags:
- Staff
summary: Lightspeed Remove Business Location Access
operationId: staff-apiDeleteStaffBusinessLocationAccess
parameters:
- $ref: '#/components/parameters/staff-apiBusinessLocationId'
- name: staffId
in: path
description: The unique identifier for the user.
required: true
schema:
type: integer
format: int64
responses:
'204':
description: User business location access removed successfully.
'400':
description: Bad request. Invalid input parameters.
'401':
description: Authentication failed.
'403':
description: Access Denied.
'500':
description: Internal Server Error.
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/webhooks:
post:
tags:
- Staff
summary: Lightspeed Create Webhook
operationId: staff-apiCreateWebhook
parameters:
- name: businessLocationId
in: path
description: The unique identifier for the business location.
required: true
schema:
type: integer
format: int64
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiCreateWebhookRequest'
examples:
Staff-apiCreateWebhookRequestExample:
summary: Default staff-apiCreateWebhook request
x-microcks-default: true
value:
notificationType: shift.updated
url: example
webhookName: Sample webhookName
responses:
'200':
description: Webhook Created
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiWebhookDto'
examples:
Staff-apiCreateWebhook200Example:
summary: Default staff-apiCreateWebhook 200 response
x-microcks-default: true
value:
uuid: e95c2cc5-4489-4025-a7e2-a34faeaa5f9d
notificationType: shift.updated
url: example
webhookName: My Awesome Webhook
businessLocationId: 1234567890
createdAt: '2026-03-15T14:30:00Z'
updatedAt: '2026-03-15T14:30:00Z'
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
get:
tags:
- Staff
summary: Lightspeed Get Webhooks
operationId: staff-apiGetWebhooks
parameters:
- name: businessLocationId
in: path
description: The unique identifier for the business location.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Webhooks Returned
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/staff-apiWebhookDto'
examples:
Staff-apiGetWebhooks200Example:
summary: Default staff-apiGetWebhooks 200 response
x-microcks-default: true
value:
- uuid: e95c2cc5-4489-4025-a7e2-a34faeaa5f9d
notificationType: shift.deleted
url: example
webhookName: My Awesome Webhook
businessLocationId: 1234567890
createdAt: '2026-03-15T14:30:00Z'
updatedAt: '2026-03-15T14:30:00Z'
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/webhooks/{webhookId}:
patch:
tags:
- Staff
summary: Lightspeed Update Existing Webhook
description: Updates the details of an existing webhook.
operationId: staff-apiUpdateWebhook
parameters:
- $ref: '#/components/parameters/staff-apiBusinessLocationId'
- name: webhookId
in: path
required: true
description: The unique identifier for the webhook.
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiCreateWebhookRequest'
examples:
Staff-apiUpdateWebhookRequestExample:
summary: Default staff-apiUpdateWebhook request
x-microcks-default: true
value:
notificationType: shift.updated
url: example
webhookName: Sample webhookName
responses:
'200':
description: Webhook updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/staff-apiWebhookDto'
examples:
Staff-apiUpdateWebhook200Example:
summary: Default staff-apiUpdateWebhook 200 response
x-microcks-default: true
value:
uuid: e95c2cc5-4489-4025-a7e2-a34faeaa5f9d
notificationType: shift.updated
url: example
webhookName: My Awesome Webhook
businessLocationId: 1234567890
createdAt: '2026-03-15T14:30:00Z'
updatedAt: '2026-03-15T14:30:00Z'
'400':
description: Bad request. Invalid input parameters.
'404':
description: Not found. The specified webhook ID does not exist.
'409':
description: Conflict. A webhook with the specified details already exists.
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
tags:
- Staff
summary: Lightspeed Delete Webhook
operationId: staff-apiDeleteWebhook
parameters:
- name: businessLocationId
in: path
description: The unique identifier for the business location.
required: true
schema:
type: integer
format: int64
- name: webhookId
in: path
description: The unique identifier for the webhook.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Webhook successfully deleted
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/userTypes/POS/reportAccess:
get:
tags:
- Staff
summary: Lightspeed Get Report Access Levels
operationId: staff-apiGetReportAccessLevels
parameters:
- name: businessLocationId
in: path
description: The unique identifier for the business location.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: List of report access levels.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/staff-apiResponseSchema'
- type: object
properties:
data:
type: object
properties:
staff:
type: array
items:
$ref: '#/components/schemas/staff-apiReportAccessLevel'
examples:
Staff-apiGetReportAccessLevels200Example:
summary: Default staff-apiGetReportAccessLevels 200 response
x-microcks-default: true
value:
data:
staff:
- value: STAFF_REPORT_OWN_ACCESS
description: The POS user can see their own reports
links:
first:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
self:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
next:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
last:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
page:
page: 1
size: 10
totalElements: 100
totalPages: 10
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/userTypes/BACK_OFFICE/roles:
get:
tags:
- Staff
summary: Lightspeed Get All Back Office User Permissions
operationId: staff-apiGetBackOfficeUserPermissions
parameters:
- name: businessLocationId
in: path
description: The unique identifier for the business location.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: User permissions List
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/staff-apiResponseSchema'
- type: object
properties:
data:
type: object
properties:
staff:
type: array
items:
$ref: '#/components/schemas/staff-apiUserPermission'
examples:
Staff-apiGetBackOfficeUserPermissions200Example:
summary: Default staff-apiGetBackOfficeUserPermissions 200 response
x-microcks-default: true
value:
data:
staff:
- value: ROLE_MANAGER
description: POS user is a manager
links:
first:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
self:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
next:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
last:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
page:
page: 1
size: 10
totalElements: 100
totalPages: 10
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/staff/v1/businessLocations/{businessLocationId}/userTypes/POS/roles:
get:
tags:
- Staff
summary: Lightspeed Get All POS User Permissions
operationId: staff-apiGetPosUserPermissions
parameters:
- name: businessLocationId
in: path
description: The unique identifier for the business location.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: User permissions List
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/staff-apiResponseSchema'
- type: object
properties:
data:
type: object
properties:
staff:
type: array
items:
$ref: '#/components/schemas/staff-apiUserPermission'
examples:
Staff-apiGetPosUserPermissions200Example:
summary: Default staff-apiGetPosUserPermissions 200 response
x-microcks-default: true
value:
data:
staff:
- value: ROLE_MANAGER
description: POS user is a manager
links:
first:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
self:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
next:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
last:
href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
page:
page: 1
size: 10
totalElements: 100
totalPages: 10
security:
- OAuth2:
- staff-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/tp/v1/business-locations/{businessLocationId}/tax-breakdown:
post:
summary: Lightspeed Post Proposed Order
description: Returns the tax breakdown of a proposed order
operationId: tax-preview-apiTaxBreakdown
parameters:
- in: path
name: businessLocationId
required: true
schema:
format: int64
minimum: 1
type: integer
example: 45454565682155
description: the id of the businessLocation
requestBody:
content:
application/json:
schema:
properties:
accountProfileCode:
description: A valid account profile code as setup for this business location.
type: string
items:
description: The items contained in this order
items:
properties:
sku:
maxLength: 25
description: A stock-keeping unit
type: string
quantity:
description: Quantity of item to be ordered
type: number
format: double
subItems:
description: subitems applied to this item
items:
properties:
sku:
maxLength: 25
description: A stock-keeping unit
type: string
quantity:
description: Quantity of sub-item to be added to the order item
type: number
format: double
type: object
required:
- sku
type: array
type: object
required:
- sku
type: array
type: object
examples:
Tax-preview-apiTaxBreakdownRequestExample:
summary: Default tax-preview-apiTaxBreakdown request
x-microcks-default: true
value:
accountProfileCode: example
items:
- sku: SKU-1001
quantity: 34.78
subItems:
- sku: SKU-1001
quantity: 98.68
required: true
tags:
- Tax Breakdown
responses:
'200':
description: Tax Breakdown
content:
application/json:
schema:
properties:
transactions:
items:
properties:
sku:
example: UGG-BB-PUR-06
maxLength: 25
description: A stock-keeping unit
type: string
quantity:
description: Quantity of the item on this transaction line
type: number
unitPrice:
description: Cost of item
type: number
netAmount:
description: Cost of transaction line before taxes are applied
type: number
grossAmount:
description: Cost of transaction with all taxes applied
type: number
taxAmount:
description: Cost of all taxes to be applied to this transaction line
type: number
type: object
type: array
taxLines:
items:
properties:
description:
description: Description of the tax to print on the receipt
type: string
taxRate:
description: Tax rate as configured, a decimal number encoded in a string, "1.20" means 20% tax
type: string
taxCode:
description: Tax code as configured
type: string
taxName:
description: Tax name as configured
type: string
netAmount:
description: Cost of transaction line before taxes are applied
type: number
grossAmount:
description: Cost of transaction with all taxes applied
type: number
taxAmount:
description: Cost of all taxes to be applied to this transaction line
type: number
taxIncluded:
type: boolean
type: object
type: array
totalNetAmountInCents:
description: Total cost of order before taxes are applied
type: integer
format: int64
totalGrossAmountInCents:
description: Total cost of order after all taxes are applied
type: integer
format: int64
totalTaxAmountInCents:
description: Cost of all taxes due on the order
type: integer
format: int64
amountDue:
description: Total cost of order in big decimal format
type: number
type: object
examples:
Tax-preview-apiTaxBreakdown200Example:
summary: Default tax-preview-apiTaxBreakdown 200 response
x-microcks-default: true
value:
transactions:
- sku: UGG-BB-PUR-06
quantity: 32.84
unitPrice: 20.69
netAmount: 25.06
grossAmount: 6.61
taxAmount: 49.31
taxLines:
- description: example
taxRate: example
taxCode: example
taxName: Sample taxName
netAmount: 92.1
grossAmount: 85.96
taxAmount: 92.84
taxIncluded: false
totalNetAmountInCents: 204
totalGrossAmountInCents: 536
totalTaxAmountInCents: 485
amountDue: 64.49
'400':
description: Bad Request
content:
'*/*':
schema:
properties:
status:
enum:
- '400'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
'403':
description: Forbidden
content:
'*/*':
schema:
properties:
status:
enum:
- '403'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
'404':
description: Not Found
content:
'*/*':
schema:
properties:
status:
enum:
- '404'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
'503':
description: Service Unavailable
content:
'*/*':
schema:
properties:
status:
enum:
- '503'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/i/allergens:
get:
summary: Lightspeed Get Allergens
operationId: teckelGetAllergens
description: Returns a list of all possible allergens that can be added to a rich item. See [Allergens Table](https://api-portal.lsk.lightspeed.app/guides/reference/reference-tables/allergens) for more details.
tags:
- Rich Item
responses:
'200':
description: Allergens
content:
application/json:
schema:
description: A list of allergens.
items:
description: Allergen
properties:
code:
description: The allergen code.
example: fish
type: string
translations:
description: List of translations.
example: &id016
- locale: en
text: Fish
- locale: fr
text: Poisson
items:
properties:
locale:
description: Language locale (eg. 'en' or 'en_US').
example: en
nullable: false
type: string
text:
description: Translation in the language of the locale.
type: string
type: object
uniqueItems: true
type: array
type: object
type: array
examples:
TeckelGetAllergens200Example:
summary: Default teckelGetAllergens 200 response
x-microcks-default: true
value:
- code: fish
translations: *id016
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/i/locales/{businessId}:
get:
summary: Lightspeed Get Locales
operationId: teckelGetLocales
description: Returns the locales of a business in ISO Code 2 or language_localization (eg. 'en' or 'en_US').
tags:
- Rich Item
parameters:
- $ref: '#/components/parameters/teckelPathBusinessId'
responses:
'200':
description: Locales
content:
application/json:
schema:
$ref: '#/components/schemas/teckelLocalesDto'
examples:
TeckelGetLocales200Example:
summary: Default teckelGetLocales 200 response
x-microcks-default: true
value: &id017
- en
- es
- de
- fr
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
summary: Lightspeed Update Locales
operationId: teckelUpdateLocales
description: Sets business item languages. Supports language ISO code 2 or language_localization (eg. 'en' or 'en_US').
tags:
- Rich Item
parameters:
- $ref: '#/components/parameters/teckelPathBusinessId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/teckelLocalesDto'
examples:
TeckelUpdateLocalesRequestExample:
summary: Default teckelUpdateLocales request
x-microcks-default: true
value: *id017
required: true
responses:
'200':
description: OK
'201':
description: Created
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/i/richItem/{businessId}:
get:
summary: Lightspeed Get Rich Items
operationId: teckelGetRichItems
description: Returns all of the rich item information for a specific business.
tags:
- Rich Item
parameters:
- $ref: '#/components/parameters/teckelPathBusinessId'
- $ref: '#/components/parameters/teckelPage'
- $ref: '#/components/parameters/teckelSize'
- $ref: '#/components/parameters/teckelSort'
responses:
'200':
description: Rich Items
content:
application/hal+json;charset=UTF-8:
schema:
properties:
_embedded:
properties:
richItemDtoList:
description: List of rich items
items:
allOf:
- $ref: '#/components/schemas/teckelRichItemDto'
- $ref: '#/components/schemas/teckelRichItemDtoDates'
- $ref: '#/components/schemas/teckelRichItemDtoPictures'
- $ref: '#/components/schemas/teckelRichItemDtoLinks'
type: object
type: array
type: object
_links:
$ref: '#/components/schemas/teckelLinkSelfPage'
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/i/richItem/{businessId}/{sku}:
get:
summary: Lightspeed Get Rich Item by Sku
operationId: teckelGetRichItem
description: Get a rich item from its sku and the business id.
tags:
- Rich Item
parameters:
- $ref: '#/components/parameters/teckelPathBusinessId'
- $ref: '#/components/parameters/teckelPathSKU'
responses:
'200':
description: OK
content:
application/hal+json;charset=UTF-8:
schema:
allOf:
- $ref: '#/components/schemas/teckelRichItemDto'
- $ref: '#/components/schemas/teckelRichItemDtoDates'
- $ref: '#/components/schemas/teckelRichItemDtoPictures'
- $ref: '#/components/schemas/teckelRichItemDtoLinks'
type: object
'404':
description: Not Found
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
patch:
summary: Lightspeed Update Picture
operationId: teckelUpdateRichItemPicture
description: Partially updates the rich item to set the picture or rawPicture.
tags:
- Rich Item
parameters:
- $ref: '#/components/parameters/teckelPathBusinessId'
- $ref: '#/components/parameters/teckelPathSKU'
requestBody:
content:
application/json:
schema:
properties:
businessId:
description: The id of the business
type: integer
format: int64
examples:
- 454335871
sku:
maxLength: 25
description: A stock-keeping unit
type: string
examples:
- UGG-BB-PUR-06
fileType:
description: Image format (eg. 'jpeg' or 'png').
type: string
examples:
- png
picture:
description: 'The cropped picture: use this field only to update picture (PATCH method). When updating picture, this field is required.'
type: string
format: byte
examples:
- iVBORw0KGgoAAAANSUhEUgAAAIwAAACMAQMAAACUDtN9AAAAAXNSR0IB2cksfwAAAAlwSFlzAAAAJwAAACcBKgmRTwAAAANQTFRFAAAAp3o92gAAABlJREFUeJztwTEBAAAAwqD1T20JT6AAAOBrCmQAASsQRDsAAAAASUVORK5CYII=
rawPicture:
description: 'The raw picture (before cropping): use this field only to update picture (PATCH method). When updating picture, this field is optional.'
type: string
format: byte
examples:
- iVBORw0KGgoAAAANSUhEUgAAAIwAAACMAQMAAACUDtN9AAAAAXNSR0IB2cksfwAAAAlwSFlzAAAAJwAAACcBKgmRTwAAAANQTFRFAAAAp3o92gAAABlJREFUeJztwTEBAAAAwqD1T20JT6AAAOBrCmQAASsQRDsAAAAASUVORK5CYII=
type: object
required:
- businessId
- sku
examples:
TeckelUpdateRichItemPictureRequestExample:
summary: Default teckelUpdateRichItemPicture request
x-microcks-default: true
value:
businessId: 660
sku: SKU-1001
fileType: example
picture: example
rawPicture: example
required: true
responses:
'200':
description: Patched
content:
application/hal+json;charset=UTF-8:
schema:
allOf:
- $ref: '#/components/schemas/teckelRichItemDto'
- $ref: '#/components/schemas/teckelRichItemDtoDates'
- $ref: '#/components/schemas/teckelRichItemDtoPictures'
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
summary: Lightspeed Create or Update Rich Item
operationId: teckelCreateOrUpdateRichItem
description: Creates a new rich item or updates an existing rich item. To update the sku, set the new sku in the request body. The picture cannot be set using this method (use PATCH method).
tags:
- Rich Item
parameters:
- $ref: '#/components/parameters/teckelPathBusinessId'
- $ref: '#/components/parameters/teckelPathSKU'
requestBody:
content:
application/json:
schema:
properties:
businessId:
description: The id of the business
type: integer
format: int64
examples:
- 454335871
sku:
maxLength: 25
description: A stock-keeping unit
type: string
examples:
- UGG-BB-PUR-06
allergenCodes:
description: List of allergen codes
items:
type: string
uniqueItems: true
type: array
examples:
- - milk
- cereals
descriptions:
description: List of localized descriptions
items:
$ref: '#/components/schemas/teckelRichItemDescriptionDto'
uniqueItems: true
type: array
examples:
- - localeCode: en
description: This is a test for a rich item
displayName: Rich Item 1
- localeCode: de
description: Das ist ein Test
displayName: Rich Item 1 DE
type: object
required:
- businessId
- sku
examples:
TeckelCreateOrUpdateRichItemRequestExample:
summary: Default teckelCreateOrUpdateRichItem request
x-microcks-default: true
value:
businessId: 704
sku: SKU-1001
allergenCodes:
- example
descriptions:
- &id024
localeCode: fr
description: Ceci est un café. L'apostrophe.
displayName: Super expresso
required: true
responses:
'200':
description: Updated
content:
application/hal+json;charset=UTF-8:
schema:
allOf:
- $ref: '#/components/schemas/teckelRichItemDto'
- $ref: '#/components/schemas/teckelRichItemDtoDates'
- $ref: '#/components/schemas/teckelRichItemDtoPictures'
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
summary: Lightspeed Delete Rich Item
operationId: teckelDeleteRichItem
description: Delete rich item
tags:
- Rich Item
parameters:
- $ref: '#/components/parameters/teckelPathBusinessId'
- $ref: '#/components/parameters/teckelPathSKU'
responses:
'204':
description: Item deleted
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/i/richItem/{businessId}/itemsBySkus:
post:
summary: Lightspeed Get Rich Items by SKUs
operationId: teckelGetRichItemBySKUs
description: Returns a list of rich items matching the SKUs provided in the request.
tags:
- Rich Item
parameters:
- $ref: '#/components/parameters/teckelPathBusinessId'
requestBody:
content:
application/json:
schema:
items:
example: UGG-BB-PUR-06
maxLength: 25
description: A stock-keeping unit
type: string
type: array
examples:
TeckelGetRichItemBySKUsRequestExample:
summary: Default teckelGetRichItemBySKUs request
x-microcks-default: true
value:
- UGG-BB-PUR-06
required: true
responses:
'200':
description: OK
content:
application/hal+json;charset=UTF-8:
schema:
properties:
_embedded:
properties:
richItemDtoList:
description: List of rich items
items:
allOf:
- $ref: '#/components/schemas/teckelRichItemDto'
- $ref: '#/components/schemas/teckelRichItemDtoDates'
- $ref: '#/components/schemas/teckelRichItemDtoPictures'
- $ref: '#/components/schemas/teckelRichItemDtoLinks'
type: object
type: array
type: object
_links:
allOf:
- $ref: '#/components/schemas/teckelLinkSelf'
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/i/richItem/{businessId}/pictureSpec:
get:
summary: Lightspeed Get Picture Specifications
operationId: teckelGetRichItemPictureSpec
description: Get rich item picture specifications.
tags:
- Rich Item
parameters:
- $ref: '#/components/parameters/teckelPathBusinessId'
responses:
'200':
content:
application/hal+json;charset=UTF-8:
schema:
$ref: '#/components/schemas/teckelPictureSpecDto'
description: OK
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
x-tagGroups:
- name: Rich Item API
tags:
- Rich Item
- Migration
- name: Tax Preview API
tags:
- Tax Breakdown
- name: Staff Api
tags:
- Staff
- Internal Staff
- name: Reservation API
tags:
- Reservations for Platforms
- name: PMS API
tags:
- PMS
- name: Items API
tags:
- Items
- ItemsV2
- Menus
- Buttons
- Production Instructions
- Inventory
- Combos
- Groups
- MenusV2
- Accounting Group
- IntegrationMenu
- Price Lists
- Products
- ItemAppearance
- Modifiers
- ModifierGroups
- Allergens
- Locales
- RichItem
- name: id-cards-api API
tags:
- ID Cards
- name: Financial API
tags:
- Financial
- FinancialV2
- name: Online Ordering API
tags:
- Order and Pay
- 'Order and Pay: Webhook'
components:
schemas:
access-control-serviceAttributeType:
type: string
description: Specifies if the attribute is a part of action, resource or subject attributes
enum:
- ACTION
- RESOURCE
- SUBJECT
access-control-serviceAttributeDto:
type: object
description: Represents an attribute used for authorization decisions, either value or values can be set
properties:
type:
$ref: '#/components/schemas/access-control-serviceAttributeType'
key:
type: string
description: The key of the attribute. The key is matched in the authorization policies
value:
deprecated: true
type: string
description: The value of the attribute. The value is matched in the authorization policies. Deprecated in favor of 'values' field
values:
type: array
description: The values of the attribute. The values are matched in the authorization policies
items:
type: string
required:
- type
- key
access-control-serviceCallerDto:
type: object
description: Represents the application requesting the authorization
properties:
applicationName:
description: The name of the application requesting the authorization
type: string
required:
- applicationName
access-control-serviceHeaderDto:
type: object
properties:
name:
type: string
value:
type: string
access-control-serviceRequestRepresentationDto:
type: object
description: The representation of the request to be authorized
properties:
method:
$ref: '#/components/schemas/access-control-serviceHttpMethod'
uri:
type: string
description: The URI of the request, typically the path of the request
headers:
type: array
description: The headers of the request. Headers are used to extract the subject attributes. For example, from the Authorization header
items:
$ref: '#/components/schemas/access-control-serviceHeaderDto'
required:
- method
- uri
- headers
access-control-serviceDeniedResponseDto:
type: object
description: The response to be returned by the application in case of a DENY decision
properties:
payload:
type: string
statusCode:
type: integer
format: int32
headers:
type: array
items:
$ref: '#/components/schemas/access-control-serviceHeaderDto'
access-control-serviceSubjectDto:
type: object
description: The representation of a valid K-Series subject
properties:
passThroughHeaders:
type: array
description: The headers to add to the requests to the downstream services to authenticate as the user
items:
$ref: '#/components/schemas/access-control-serviceHeaderDto'
nameForDiagnostics:
type: string
description: The name of the subject. This is used for diagnostics purposes. Do not expect any specific format
attributes:
type: object
description: "The attributes of the user.\nThese may be used by the app to perform business logic.\nFor K_Series backoffice users 'email' key is present.\nFor K_Series backoffice users 'user_id' key is present.\nFor POS devices - 'device_id' and `device_location_id` keys are present.\nThe keys are subject to change for now. Please notify the team if a certain key is needed.\n"
additionalProperties:
type: string
mdc:
type: object
description: The MDC context to be set for the request
additionalProperties:
type: string
required:
- passThroughHeaders
- nameForDiagnostics
- attributes
- mdc
access-control-serviceHttpMethod:
type: string
enum:
- GET
- POST
- PUT
- DELETE
- PATCH
- HEAD
- OPTIONS
- TRACE
- CONNECT
apaleo-integrationPmsPaymentDto:
properties:
gratuity:
type: number
methodName:
type: string
reservationId:
type: string
staffName:
type: string
type: object
apaleo-integrationPmsTransactionDto:
properties:
amount:
type: number
description:
type: string
groupId:
format: int64
type: integer
quantity:
type: number
taxRate:
type: number
type: object
apaleo-integrationApaleoAuthorizationRequestAdditionalInfoDto:
properties:
authorizeUri:
type: string
clientId:
type: string
clientSecret:
type: string
scope:
type: string
tokenUri:
type: string
type: object
apaleo-integrationSubAccountMappingDto:
properties:
subAccountId:
example: MUC-TEA
description: SubAccount ID
type: string
name:
example: Finest green tea
description: SubAccount name
type: string
accountingGroups:
description: Ids of accounting groups that are mapped to the sub-account
items:
type: integer
format: int64
type: array
type: object
apaleo-integrationPaymentMethodMappingDto:
properties:
apaleoPaymentMethodId:
example: PayPal
description: Payment method ID
type: string
paymentMethodIds:
description: IDs of LSK payment methods that are mapped to the apaleo payment method
items:
type: integer
format: int64
type: array
type: object
apaleo-integrationPaymentMethod:
required:
- code
- description
- id
- type
properties:
id:
type: integer
format: int64
description:
type: string
code:
type: string
accountingReference:
type: string
type:
type: string
gratuityCutPct:
type: integer
format: int32
giveChange:
type: boolean
showPaymentsInReport:
type: boolean
clientSideHidden:
type: boolean
nativeMethod:
type: boolean
gratuityEnabled:
type: boolean
openCashDrawer:
type: boolean
noPrint:
type: boolean
virtualMerchantReceipt:
type: boolean
managerOnly:
type: boolean
printHeader:
type: boolean
printFooter:
type: boolean
refundOnFailure:
type: boolean
includeInFloatCount:
type: boolean
editable:
type: boolean
qrTokenEnabled:
type: boolean
foreignCurrencyCode:
type: string
qrToken:
type: string
config:
additionalProperties:
type: string
type: object
type: object
apaleo-integrationSubAccountMappingMode:
enum:
- PER_ACCOUNTING_GROUP
- PER_POS_CONFIG
type: string
apaleo-integrationChargesPostingAggregationMode:
enum:
- NO_AGGREGATION
- BY_SUB_ACCOUNT
type: string
apaleo-integrationPosConfigSubAccountMappingDto:
properties:
posConfigId:
format: int64
type: integer
subAccountMappings:
items:
$ref: '#/components/schemas/apaleo-integrationSubAccountMappingDto'
type: array
type: object
apeBusinessLocationId:
description: The unique identifier for the business location.
type: integer
format: int64
example: 45454565682155
apeStandalonePayment:
description: Payment to apply to an existing order.
type: object
required:
- businessLocationId
- endpointId
- paymentAmount
- thirdPartyPaymentReference
properties:
iKaccountId:
example: 0
type: integer
format: int64
deprecated: true
iKaccountIdentifier:
example: A1234.56
description: The ID of the account to apply this payment to.
type: string
thirdPartyPaymentReference:
description: A unique external reference provided for this order. This value will be sent back in the webhook.
type: string
minLength: 1
maxLength: 50
example: '12345678901234'
endpointId:
description: Endpoint ID for a unique webhook that has been created using [the webhook endpoint](https://api-docs.lsk.lightspeed.app/operation/operation-apecreatewebhookoo).
type: string
example: MY-AWESOME-ENDPOINT-ID
businessLocationId:
$ref: '#/components/schemas/apeBusinessLocationId'
taskTtlInMs:
example: 60000
description: Maximum time to attempt delivery of this payment to the POS. In milliseconds. The minimum value is 60000ms (1 minute).
type: integer
format: int32
staffId:
type: integer
format: int64
description: The ID of the employee responsible for this payment.
deviceId:
description: POS device to specifically receive this payment. If left null then all POS devices may receive the payment but only one will process it.
type: integer
format: int64
example: 12345678980
paymentMethod:
example: OOPAYMENT
description: Payment method code as configured by the merchant.
type: string
paymentAmount:
example: 20.06
description: The total amount of the payment without tips.
type: number
tipAmount:
example: 2.5
description: The tip amount, if any.
type: number
targetPrinterProfileId:
example: 1773881235
description: The printer profile id to use for printing the receipt for this payment. If not provided, the default active printer profile for the business location will be used.
type: integer
format: int64
apePreprocessedPaymentInfo:
description: Structured payment result metadata produced by an external service that already processed the payment.
type: object
required:
- id
- origin
- status
properties:
id:
description: Payment reference from Financial Services.
type: string
example: FS-PAT-123456
origin:
description: Identifier of the Financial Services pay-at-table flow. POS ignores native payments unless this value is present and exact.
type: string
enum:
- FS_PAT_PAYMENT_API
example: FS_PAT_PAYMENT_API
cardHolderName:
description: Cardholder name returned by the processor.
type: string
example: Jane Doe
cardLastDigits:
description: Last digits of the card used.
type: string
example: '6543'
cardType:
description: Card brand or type.
type: string
example: visa
fundingSource:
description: Funding source of the payment.
type: string
example: credit
issuerCountry:
description: ISO code of the country that issued the card.
type: string
example: CA
status:
description: Payment status.
type: string
enum:
- preauthorized
- captured
example: captured
userHash:
description: Card alias / user hash returned by the processor.
type: string
example: alias-1234
emailAddress:
description: Customer email address.
type: string
format: email
example: customer@example.com
customerReceipt:
description: Customer-facing receipt text resolved from the processor response.
type: string
merchantReceipt:
description: Merchant-facing receipt text resolved from the processor response.
type: string
customerReceiptDestination:
description: Customer receipt destination.
type: string
enum:
- email
- printer
- skip
- unspecified
example: email
merchantReceiptDestination:
description: Merchant receipt destination.
type: string
enum:
- printer
- skip
- unspecified
example: printer
signature:
description: Cardholder signature data, format to be explored.
type: string
terminalFirmwareVersion:
description: Terminal firmware version.
type: string
example: 1.102.4
terminalId:
description: Terminal identifier.
type: string
example: P400Plus-803566240
terminalModel:
description: Terminal model, used in analytics.
type: string
example: P400Plus
apePaymentSubmissionResponse:
description: Acknowledgement that the payment was accepted for delivery to the POS.
type: object
properties:
status:
description: The response.
example: ok
type: string
apePaymentBadRequestError:
description: Standard error payload returned for a rejected payment request.
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred, in UTC.
example: 2023-11-07T23:00:20.075+0000
status:
type: integer
description: The HTTP status code indicating the type of error.
example: 400
error:
type: string
description: A short description of the HTTP status code meaning.
example: Bad Request
message:
type: string
description: A detailed message describing the error, including any specific details about the request that led to the error.
example: reference has already been used 12345678901234
path:
type: string
description: The request path where the error occurred.
example: /o/op/1/pay
apeFloorPlanId:
type: integer
format: int64
example: 45454565682155
description: The unique identifier for the floor plan. See [Get Floorplans](https://api-docs.lsk.lightspeed.app/operation/operation-apelookupfloorplans)
apeOrderPayment:
required:
- paymentAmount
properties:
paymentMethod:
example: OOPAYMENT
description: Payment method code as configured by the merchant.
type: string
paymentAmount:
example: 14.0
description: The total amount of the payment including tips if any.
type: number
tipAmount:
example: 2.0
description: The tip amount, if any.
type: number
type: object
apeCustomerInfo:
required:
- firstName
properties:
firstName:
example: Jane
description: Customer first name.
type: string
minLength: 1
maxLength: 128
lastName:
example: Doe
description: Customer last name.
type: string
thirdPartyReference:
example: ZEN-7074522d-c71d-403f
type: string
description: The unique reference for this customer which can help to identify them later on. If the email is left empty, this should be empty as well.
email:
example: jane.doe@example.com
description: The email address for this customer.
type: string
contactNumberAsE164:
example: '+14155552671'
description: The customer phone number in E164 format.
type: string
notes:
example: Notes about the customer.
description: The notes attached to the customer.
type: string
salutation:
example: Mr.
description: Salutation for the customer (Mr., Mrs., Dr., etc...).
type: string
sendEmailReceipts:
example: true
description: Default value of emailNotification setting for new customers
type: boolean
emailNotification:
default: DONT_CHANGE
description: Update the customer email notification setting. For example, sendEmailReceipts = true, emailNotification = DONT_CHANGE - sends receipt email for all users who haven't disabled it in the Backoffice. sendEmailReceipts = false, emailNotification = DONT_CHANGE - will not send receipt email for all users except those who enabled it in the Backoffice
enum:
- ENABLE
- DISABLE
- DONT_CHANGE
type: string
type: object
apeAccountLineItem:
type: object
properties:
id:
type: integer
format: int64
description: The unique ID assigned to the sale line.
example: 1341648999023061
uuid:
type: string
description: The UUID assigned to the sale line.
example: 2c83b049-a2c1-4bc5-8479-eb152e5a54be
itemName:
type: string
description: The name given to the item.
example: Burger
itemSku:
type: string
description: The SKU assigned to the item.
example: '14'
unitAmount:
type: number
description: The price per unit.
example: 10.0
quantity:
type: number
format: double
description: The quantity of the item for this sale line.
example: 1.0
modifiers:
type: array
description: The modifiers of the item for this sale line.
items:
$ref: '#/components/schemas/apeModifier'
amountWithTax:
type: number
description: The total price of the item including tax.
example: 11.5
amountLessTax:
type: number
description: The total price of the item without tax.
example: 10.0
discountedAmount:
type: number
description: The amount the item was discounted.
example: 0.0
timeOfTransactionUtc:
type: string
format: date-time
description: The date and time in UTC when the transaction occurred.
example: 2023-11-07T21:24:44.741+0000
active:
type: boolean
deprecated: true
example: true
parentId:
type: integer
format: int64
writeOnly: true
subLineItems:
type: array
description: Collection of sub-line items associated with this sale line.
items:
$ref: '#/components/schemas/apeAccountLineItem'
example: *id005
isTaxIncluded:
type: boolean
writeOnly: true
taxIncluded:
type: boolean
description: Indicates whether tax is included in the unit amount.
example: false
apeAccountPaymentLine:
type: object
properties:
paymentMethodDescription:
type: string
description: Payment method for this payment line.
example: API Payment
externalReference:
type: string
description: Payment external reference.
example: '12345678901234'
paymentMethodCode:
type: string
description: Payment method code for this payment line.
example: APM
amountPaid:
type: number
description: Amount paid for this payment line.
example: 12.65
paymentDate:
type: string
format: date-time
description: Date/Time in UTC of this payment.
example: 2023-11-07T22:05:16.127+0000
active:
type: boolean
description: Whether this payment line is active or not.
example: true
accountCancelled:
type: boolean
writeOnly: true
description: Payments associated with this check.
apeCurrentWarning:
type: object
properties:
information:
type: string
type:
type: string
apeCurrentInfo:
type: object
properties:
page:
type: integer
format: int32
description: Current page number.
example: 0
pageSize:
type: integer
format: int32
description: Number of items per page.
example: 50
apePaginatedMetadata:
type: object
properties:
warnings:
description: A list of warnings that occurred during the request, but which did not prevent a successful response. For instance, if the Business Location does not have the required POS app version to support item availability.
type: array
items:
$ref: '#/components/schemas/apeCurrentWarning'
current:
$ref: '#/components/schemas/apeCurrentInfo'
total:
type: integer
format: int32
example: 1
description: Total number of items requested.
totalPages:
type: integer
format: int32
example: 10
description: Total number of pages of items.
apeRestrictedItemPaginatedResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/apeRestrictedItem'
metadata:
$ref: '#/components/schemas/apePaginatedMetadata'
apeRestrictedItem:
type: object
properties:
sku:
type: string
description: The SKU assigned to the item.
example: SKU1
count:
type: integer
description: The count of available items.
format: int64
example: 50
updatedAt:
type: string
format: date-time
description: The last update of the item count.
example: '2025-07-08T14:20:00Z'
apeSkusRequest:
type: object
required:
- skus
properties:
skus:
type: array
items:
type: string
example: SKU1
minItems: 1
maxItems: 50
description: List of SKUs to return.
apeAccountSnapshot:
type: object
properties:
clientCount:
type: integer
format: int32
description: The number of guests at the table.
example: 4
identifier:
type: string
deprecated: true
uuid:
type: string
description: The account uuid.
example: a3bb189e-8f29-4cce-b0e9-f29b123dfe3d
openDate:
type: string
format: date-time
description: The date this account was opened in UTC.
example: '2021-06-21T14:20:00Z'
closeDate:
type: string
format: date-time
description: The date this account was closed in UTC.
example: '2021-06-22T10:15:00Z'
paidAmount:
type: number
description: The total of all payments on the check.
example: 100.0
serviceCharge:
type: number
description: The service charge applied to the check.
example: 10.0
name:
type: string
description: The check name.
example: ORDER A1C2E
currentAmount:
type: number
description: The current total amount on the check.
example: 110.0
staffName:
type: string
description: The name of the staff member assigned to the check.
example: Jane Smith
staffId:
type: integer
format: int64
description: The unique ID of the staff member assigned to the check.
example: 7701234
salesEntries:
type: array
description: Collection of check items.
items:
$ref: '#/components/schemas/apeAccountLineItem'
paymentEntries:
type: array
description: Collection of payment entries to the check.
items:
$ref: '#/components/schemas/apeAccountPaymentLine'
id:
type: string
deprecated: true
ikaccountId:
type: string
description: The system-generated account identifier for this check.(Applies to iKentoo V3+).
example: A78094.48
number:
type: integer
format: int32
deprecated: true
tableNumber:
type: integer
format: int32
description: The table number assigned to the check.
example: 2
posId:
type: integer
format: int64
description: The unique ID of the POS station that processed the check.
example: 54321
deviceId:
type: integer
format: int64
deprecated: true
apeItemModifier:
properties:
modifierId:
example: '236025632784492'
description: Modifier ID to be applied to this item.
type: string
type: object
apeModifier:
type: object
properties:
name:
example: Rare
description: The name of the modifier.
type: string
quantity:
example: 1
description: The quantity of the modifier.
type: integer
format: int32
description: The modifiers of the item for this sale line
apeOrderApiApiConfigDto:
type: object
properties:
enabled:
type: boolean
description: A flag indicating if a business location has the Online Ordering API enabled
orderProfileId:
type: integer
format: int64
description: Order Profile id
staffId:
type: integer
format: int64
description: Staff id
apeOrderApiPosStatusDto:
type: object
properties:
salesPeriod:
description: Sales period status for the location
type: string
enum:
- OPENED
- CLOSED
acceptingOnlineOrders:
type: boolean
description: A flag indicating if a POS in the location has the option `Online Orders enabled` in `Control center`
availableDevices:
type: boolean
description: A flag indicating if the location has devices running for accepting and processing online orders
apeProductionInstruction:
type: object
properties:
multiSelectionPermitted:
type: boolean
description: Specifies if more than one production instruction can be selected for this group.
productionInstructionGroupName:
type: string
description: The group name for this production instruction.
productionIntructionGroupId:
type: integer
description: The unique identifier for this production instruction group.
format: int64
productionInstructionList:
type: array
description: Array of production instructions for this group.
items:
$ref: '#/components/schemas/apeProductionInstructionEntry'
apeProductionInstructionEntry:
type: object
properties:
instruction:
type: string
description: The name of the production instruction.
ikentooModifierId:
description: The unique identifier of this production instruction.
type: integer
format: int64
description: Array of production instructions for this group
apeItemRichData:
type: object
properties:
squareImageUrl:
description: A download link for the image associated with this item, as formatted for display in the POS.
type: string
example: http://s3-eu-west-1.amazonaws.com/com.ikentoo.trial.rich-content-store/8262_2f6c1716-0f06-488c-afc2-d888666d94fb.image/png
rawImageUrl:
description: A download link for the image associated with this item.
type: string
example: http://s3-eu-west-1.amazonaws.com/com.ikentoo.trial.rich-content-store/8262_2f6c1716-0f06-488c-afc2-d888666d94fb_raw.image/png
previewImageUrl:
description: A download link for the preview image associated with this item.
type: string
example: http://s3-eu-west-1.amazonaws.com/com.ikentoo.trial.rich-content-store/8262_2f6c1716-0f06-488c-afc2-d888666d94fb_preview.image/png
containsAlcohol:
description: Flag to indicate if the item contains alcohol.
type: boolean
example: true
alcoholPercentage:
description: The percentage of alcohol in the item.
type: number
example: 13.0
texts:
type: array
items:
$ref: '#/components/schemas/apeItemTexts'
allergenCodes:
description: The allergen codes associated with this item.
example:
- mustard
- cereals
uniqueItems: true
type: array
items:
type: string
apeItemTexts:
type: object
properties:
locale:
type: string
description: The two letter language code associated with this item text.
friendlyDisplayName:
type: string
description: The display name for this item in the configured language.
description:
type: string
description: The descriptive text for this item in the configured language.
example:
locale: en
friendlyDisplayName: Burger - ENG
description:
Burger in english
apeTagCode: description: The order profile [code](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code). type: string example: DELIVERY apeMenu: properties: menuName: description: The name of the menu. type: string example: Main Menu menuEntryGroups: description: "Menu groups of this menu. The top-level entry will always be of type \"group\", representing a menu screen. Beneath each `menuEntryGroup` will be a `menuEntry` array containing any combination of one or more menu entries:\n* A `menuItemEntry` represents an individual item.\n* A `menuGroupEntry` represents a menu sub-screen.\n* A `menuDealEntry` represents a combo." items: $ref: '#/components/schemas/apeTopLevelMenuGroupEntry' type: array richDataMissing: description: Indicates whether or not rich item data is missing, if requested. type: boolean example: false ikentooMenuId: type: integer description: The unique identifier for the menu. example: 141948669132851 format: int64 conditionalTaxRules: description: Warning that actual tax depends on a POS Account condition and may be different from what is provided in this API. type: boolean type: object apeMenuDealEntry: title: menuDeal allOf: - type: object properties: '@type': type: string description: Indicates the item is a Combo. example: menuDeal enum: - menuDeal items: description: List of items to select from. type: array items: $ref: '#/components/schemas/apeMenuItemEntry' menuDealGroups: type: array description: Array of Items in the Combo items: $ref: '#/components/schemas/apeMenuDealGroup' - $ref: '#/components/schemas/apeMenuItemEntryParent' apeMenuDealGroup: type: object properties: description: type: string description: Description of the combo item grouping. example: Side Dishes sku: type: string description: The SKU of the combo item grouping. example: '25' mustSelectAnItem: type: boolean description: Whether or not this is a required selection. example: true multiSelectionPermitted: type: boolean description: Whether or not multiple items can be selected from this item grouping. example: true minimumSelection: type: integer format: int32 description: The minimum number of items that must be selected from this item grouping. If null then no minimum is set. example: 1 maximumSelection: type: integer format: int32 description: The maximum number of items that can be selected from this item grouping. If null then no maximum is set. example: 3 itemRichData: $ref: '#/components/schemas/apeItemRichData' items: description: List of items to select from. type: array items: $ref: '#/components/schemas/apeMenuItemEntry' description: Collections of item groups within the combo to select from. apeTopLevelMenuGroupEntry: allOf: - type: object properties: '@type': type: string description: Indicates this is a menu group, which represents a menu screen in the POS. example: group enum: - group - type: object properties: id: type: string description: The menu group ID. example: '141948669133028' name: type: string description: The menu group name. example: Mains color: type: string description: The color of the button in the POS. example: blue menuEntry: type: array description: Array of menu entry objects. items: type: object oneOf: - $ref: '#/components/schemas/apeMenuItemEntry' - $ref: '#/components/schemas/apeMenuDealEntry' - $ref: '#/components/schemas/apeMenuGroupEntry' discriminator: propertyName: '@type' mapping: menuItem: '#/components/schemas/apeMenuItemEntry' menuDeal: '#/components/schemas/apeMenuDealEntry' group: '#/components/schemas/apeMenuGroupEntry' apeMenuGroupEntry: title: group allOf: - type: object properties: '@type': type: string description: Indicates this is a sub-screen of the menu in the POS. The object will have the same structure as the `menuEntryGroups` object and may contain any of the three `menuEntry` types. example: group enum: - group - type: object properties: id: type: string description: The menu group ID. example: '141948669133028' name: type: string description: The menu group name. example: Mains color: type: string description: The color of the button in the POS. example: blue menuEntry: type: array description: Array of menu entry objects. items: type: object oneOf: - $ref: '#/components/schemas/apeMenuItemEntry' - $ref: '#/components/schemas/apeMenuDealEntry' - $ref: '#/components/schemas/apeMenuGroupEntry' discriminator: propertyName: '@type' mapping: menuItem: '#/components/schemas/apeMenuItemEntry' menuDeal: '#/components/schemas/apeMenuDealEntry' group: '#/components/schemas/apeMenuGroupEntry' apeMenuItemEntry: title: menuItem allOf: - type: object properties: '@type': type: string description: Indicates this is an individual item. example: menuItem enum: - menuItem - $ref: '#/components/schemas/apeMenuItemEntryParent' - type: object properties: asSubItem: type: boolean description: Indicates whether or not this product is a sub-item that cannot be sold alone. Note - when the item is nested under a `menuDeal` this will always be false. productionInstructionList: type: array description: Array of production instructions for this product items: $ref: '#/components/schemas/apeProductionInstruction' example: - multiSelectionPermitted: false productionInstructionGroupName: Meat cooking productionIntructionGroupId: 236025632784487 productionInstructionList: - instruction: Bleu ikentooModifierId: 236025632784488 - instruction: Rare ikentooModifierId: 236025632784490 - instruction: Medium Rare ikentooModifierId: 236025632784492 - instruction: Medium ikentooModifierId: 236025632784494 - instruction: Medium well ikentooModifierId: 236025632784496 - instruction: Well done ikentooModifierId: 236025632784498 apeMenuModifierGroupV2: type: object description: A product modifier group containing product modifiers to select from. properties: description: type: string description: Description of the modifier group. example: Milk options sku: type: string description: The SKU of the modifier group. example: '30' mustSelectAnItem: type: boolean description: Whether or not this is a required selection. example: false multiSelectionPermitted: type: boolean description: Whether or not multiple items can be selected from this modifier group. example: false minimumSelection: type: integer format: int32 description: The minimum number of items that must be selected from this modifier group. If null then no minimum is set. example: 0 maximumSelection: type: integer format: int32 description: The maximum number of items that can be selected from this modifier group. If null then no maximum is set. example: 2 itemRichData: $ref: '#/components/schemas/apeItemRichData' productModifiers: description: Array of product modifiers within this modifier group. type: array items: $ref: '#/components/schemas/apeMenuProductModifierEntryV2' apeMenuProductModifierEntryV2: title: menuProductModifier allOf: - type: object properties: '@type': type: string description: Indicates this is a product modifier. example: menuProductModifier enum: - menuProductModifier - $ref: '#/components/schemas/apeMenuItemEntryParentV2' - type: object properties: productionInstructionList: type: array description: Array of production instructions for this modifier items: $ref: '#/components/schemas/apeProductionInstruction' example: - multiSelectionPermitted: false productionInstructionGroupName: Meat cooking productionIntructionGroupId: 236025632784487 productionInstructionList: - instruction: Bleu ikentooModifierId: 236025632784488 - instruction: Rare ikentooModifierId: 236025632784490 - instruction: Medium Rare ikentooModifierId: 236025632784492 - instruction: Medium ikentooModifierId: 236025632784494 - instruction: Medium well ikentooModifierId: 236025632784496 - instruction: Well done ikentooModifierId: 236025632784498 apeMenuV2: properties: menuName: description: The name of the menu. type: string example: Main Menu menuEntryGroups: description: "Menu groups of this menu. The top-level entry will always be of type \"group\", representing a menu screen. Beneath each `menuEntryGroup` will be a `menuEntry` array containing any combination of one or more menu entries:\n* A `menuItemEntry` represents an individual item and may include product modifier groups.\n* A `menuGroupEntry` represents a menu sub-screen.\n* A `menuDealEntry` represents a combo.\n* A `menuProductModifierEntry` represents a product modifier." items: $ref: '#/components/schemas/apeTopLevelMenuGroupEntryV2' type: array richDataMissing: description: Indicates whether or not rich item data is missing, if requested. type: boolean example: false ikentooMenuId: type: integer description: The unique identifier for the menu. example: 141948669132851 format: int64 conditionalTaxRules: description: Warning that actual tax depends on a POS Account condition and may be different from what is provided in this API. type: boolean type: object apeTopLevelMenuGroupEntryV2: allOf: - type: object properties: '@type': type: string description: Indicates this is a menu group. example: group enum: - group id: type: string description: The menu group ID. example: '141948669133028' name: type: string description: The menu group name. example: Mains color: type: string description: The color of the button in the POS. example: blue menuEntry: type: array description: Array of menu entry objects. items: type: object oneOf: - $ref: '#/components/schemas/apeMenuItemEntryV2' - $ref: '#/components/schemas/apeMenuDealEntryV2' - $ref: '#/components/schemas/apeMenuGroupEntryV2' - $ref: '#/components/schemas/apeMenuProductModifierEntryV2' discriminator: propertyName: '@type' mapping: menuItem: '#/components/schemas/apeMenuItemEntryV2' menuDeal: '#/components/schemas/apeMenuDealEntryV2' group: '#/components/schemas/apeMenuGroupEntryV2' menuProductModifier: '#/components/schemas/apeMenuProductModifierEntryV2' apeMenuGroupEntryV2: title: group allOf: - type: object properties: '@type': type: string description: Indicates this is a menu group. example: group enum: - group id: type: string description: The menu group ID. example: '141948669133028' name: type: string description: The menu group name. example: Mains color: type: string description: The color of the button in the POS. example: blue menuEntry: type: array description: Array of menu entry objects. items: type: object oneOf: - $ref: '#/components/schemas/apeMenuItemEntryV2' - $ref: '#/components/schemas/apeMenuDealEntryV2' - $ref: '#/components/schemas/apeMenuGroupEntryV2' - $ref: '#/components/schemas/apeMenuProductModifierEntryV2' discriminator: propertyName: '@type' mapping: menuItem: '#/components/schemas/apeMenuItemEntryV2' menuDeal: '#/components/schemas/apeMenuDealEntryV2' group: '#/components/schemas/apeMenuGroupEntryV2' menuProductModifier: '#/components/schemas/apeMenuProductModifierEntryV2' apeMenuItemEntryV2: title: menuItem allOf: - type: object properties: '@type': type: string description: Indicates this is an individual item. example: menuItem enum: - menuItem - $ref: '#/components/schemas/apeMenuItemEntryParentV2' - type: object properties: asSubItem: type: boolean description: Indicates whether or not this product is a sub-item that cannot be sold alone. Note - when the item is nested under a `menuDeal` this will always be false. productionInstructionList: type: array description: Array of production instructions for this product items: $ref: '#/components/schemas/apeProductionInstruction' example: - multiSelectionPermitted: false productionInstructionGroupName: Meat cooking productionIntructionGroupId: 236025632784487 productionInstructionList: - instruction: Bleu ikentooModifierId: 236025632784488 - instruction: Rare ikentooModifierId: 236025632784490 - instruction: Medium Rare ikentooModifierId: 236025632784492 - instruction: Medium ikentooModifierId: 236025632784494 - instruction: Medium well ikentooModifierId: 236025632784496 - instruction: Well done ikentooModifierId: 236025632784498 menuModifierGroups: type: array description: Array of product modifier groups for this product items: $ref: '#/components/schemas/apeMenuModifierGroupV2' apeMenuDealEntryV2: title: menuDeal allOf: - type: object properties: '@type': type: string description: Indicates the item is a Combo. example: menuDeal enum: - menuDeal items: description: List of items to select from. type: array items: $ref: '#/components/schemas/apeMenuItemEntryV2' menuDealGroups: type: array description: Array of Items in the Combo items: $ref: '#/components/schemas/apeMenuDealGroupV2' - $ref: '#/components/schemas/apeMenuItemEntryParentV2' apeMenuDealGroupV2: type: object properties: description: type: string description: Description of the combo item grouping. example: Side Dishes sku: type: string description: The SKU of the combo item grouping. example: '25' mustSelectAnItem: type: boolean description: Whether or not this is a required selection. example: true multiSelectionPermitted: type: boolean description: Whether or not multiple items can be selected from this item grouping. example: true minimumSelection: type: integer format: int32 description: The minimum number of items that must be selected from this item grouping. If null then no minimum is set. example: 1 maximumSelection: type: integer format: int32 description: The maximum number of items that can be selected from this item grouping. If null then no maximum is set. example: 3 itemRichData: $ref: '#/components/schemas/apeItemRichData' items: description: List of items to select from. type: array items: $ref: '#/components/schemas/apeMenuItemEntryV2' description: Collections of item groups within the combo to select from. apeMenuItemEntryParent: properties: productName: type: string description: The name of the item. example: Burger productPrice: type: number description: The price of the item. example: 10.0 extraPrice: type: number description: Additional item price when selected in a combo group. example: 1.99 color: type: string description: The color of the menu button for this item. example: blue sku: type: string description: The SKU of the item. example: '25' customItemNameEnabled: type: boolean description: Whether the name of the item can be customized. example: false pricingStrategy: type: string description: The pricing type of the item. example: PRICE_CANNOT_BE_CUSTOMIZED enum: - CUSTOMIZED_ITEM_PRICE_WILL_BE_NEGATIVE - CUSTOMIZED_ITEM_PRICE_WILL_BE_POSTIVE - CUSTOMIZED_ITEM_PRICE_WILL_BE_A_PERCENTAGE_OF_TOTAL - PRICE_CANNOT_BE_CUSTOMIZED itemRichData: $ref: '#/components/schemas/apeItemRichData' defaultTaxAmount: description: The tax amount as calculated at the default tax rate (a sum for multiple taxes). type: number example: 1.5 defaultTaxPercentage: description: The default tax percentage for this item (a sum for multiple taxes). type: number example: 15.0 taxIncludedInPrice: description: Whether or not tax is included in the price of the item. type: boolean example: false conditionalTaxRules: description: Warning that actual tax depends on a POS Account condition and may be different from what is provided in this API. type: boolean taxes: description: Detailed tax info items: $ref: '#/components/schemas/apeMenuItemTax' type: array apeMenuItemEntryParentV2: properties: productName: type: string description: The name of the item. example: Burger productPrice: type: number description: The price of the item. example: 10.0 extraPrice: type: number description: Additional item price when selected in a combo group. example: 1.99 color: type: string description: The color of the menu button for this item. example: blue sku: type: string description: The SKU of the item. example: '25' customItemNameEnabled: type: boolean description: Whether the name of the item can be customized. example: false pricingStrategy: type: string description: The pricing type of the item. example: PRICE_CANNOT_BE_CUSTOMIZED enum: - CUSTOMIZED_ITEM_PRICE_WILL_BE_NEGATIVE - CUSTOMIZED_ITEM_PRICE_WILL_BE_POSTIVE - CUSTOMIZED_ITEM_PRICE_WILL_BE_A_PERCENTAGE_OF_TOTAL - PRICE_CANNOT_BE_CUSTOMIZED itemRichData: $ref: '#/components/schemas/apeItemRichData' defaultTaxAmount: description: The tax amount as calculated at the default tax rate (a sum for multiple taxes). type: number example: 1.5 defaultTaxPercentage: description: The default tax percentage for this item (a sum for multiple taxes). type: number example: 15.0 taxIncludedInPrice: description: Whether or not tax is included in the price of the item. type: boolean example: false conditionalTaxRules: description: Warning that actual tax depends on a POS Account condition and may be different from what is provided in this API. type: boolean taxes: description: Detailed tax info items: $ref: '#/components/schemas/apeMenuItemTax' type: array apeMenuItemTax: type: object properties: description: type: string description: Tax description as it appears on a POS and receipt. example: 5% GST amount: type: number description: The amount of Tax applied by default by this Tax, this can change dynamically at time of sale. example: 12.55 percentage: type: number description: The percentage of Tax applied by default by this Tax, this can change dynamically at time of sale. example: 5.0 apeDiscount: type: object properties: name: type: string description: The discount name as configured in merchant account. example: Staff Discount code: type: string description: The discount code as configured in merchant account. example: STAFF discountPercentage: type: number description: The discount percentage, may be fractional. A discount can be a percentage or an amount, but not both. example: 15 discountAmount: type: number description: The discount amount, may be fractional. A discount can be a percentage or an amount, but not both. example: 5 apeEventResource: description: Event to listen to by resource example: *id006 properties: name: type: string description: "Events to subscribe to.\n* order: `DELIVERED`\n* item: `SALES_RESTRICTION_UPDATED` - Business locations for this webhook must be specified [here](https://api-docs.lsk.lightspeed.app/operation/operation-apegetwebhookbusinesslocations).\n\nThe following are always sent:\n* Account: `CLOSED` and `CHECK_WAS_UPDATED`.\n* Order: `FAILURE`, `READY_FOR_PICKUP` and `CANCELLED`.\n* Payment: `SUCCESS` and `FAILURE`." resource: enum: - order - payment - item - order_api type: string type: object apeWebhookEndpoint: required: - endpointId - url properties: endpointId: example: MY-AWESOME-ENDPOINT-ID description: The unique endpoint ID, for example the integration name. Case sensitive. type: string url: example: https://webhook.site/1dc40b86-3d0d description: The URL which this endpoint points to. type: string withBasicAuth: default: false description: If basic auth should be used, defaults to false. type: boolean example: true username: example: username description: The username for basic auth. type: string password: example: password description: The password for basic auth. type: string provideAccount: description: Whether or not to include account info in the notification. example: true default: false type: boolean expandTransactions: example: true description: Whether or not to include transaction lines in the notification. default: false type: boolean expandPayments: example: true description: Whether or not to include payment lines in the notification. default: false type: boolean subscribeTo: items: $ref: '#/components/schemas/apeEventResource' type: array type: object apeWebhookEndpointBusinessLocationDto: type: object properties: businessLocationId: type: integer format: int64 description: The unique identifier for the business location. example: 45454565682155 createdAt: type: string format: date-time description: Timestamp when this association was created. example: 2023-11-07T19:15:05.043+0000 updatedAt: type: string format: date-time description: Timestamp when this association was last updated. example: 2023-11-07T19:15:05.043+0000 warnings: description: A list of warnings that occurred during the request, but which did not prevent a successful response. For instance, if the Business Location does not have the required POS app version to support item availability. type: array items: $ref: '#/components/schemas/apeCurrentWarning' required: - businessLocationId apeBaseWebhookInformation: type: object properties: reason: description: Reason for failure if applicable. type: string thirdPartyReference: description: Third-party reference you provided when the order or payment was placed. type: string businessLocationId: $ref: '#/components/schemas/apeBusinessLocationId' ikentooAccountIdentifier: description: The K-series account identifier for a SUCCESS event (V3 format) type: string iKentooAccountId: description: The K-series account identifier for a SUCCESS event (V2 format) deprecated: true type: integer format: int64 apeTable: description: The tables under this floorplan. properties: number: description: The table number. format: int32 type: integer example: 1 reference: description: The table reference. type: string example: abcdefg123456 id: description: The unique identifier for this table. type: string example: '141948669132977' active: description: If the table is active. type: boolean example: true description: description: The table description. type: string example: Table 1 defaultClientCount: description: The default client count for this table. format: int32 type: integer example: 4 type: object apeAccountProfile: properties: id: format: int64 type: integer description: The unique identifier for the order profile. example: 12454575601144 code: type: string description: A short code representing the order profile. example: takeaway name: type: string example: Takeaway description: The system display name for the order profile. deliveryMode: enum: - NONE - TAKE_AWAY - DELIVERY type: string example: TAKE_AWAY description: Specifies the delivery mode for the order profile. type: object apeAccountProfiles: properties: businessLocationId: $ref: '#/components/schemas/apeBusinessLocationId' accountProfileList: items: $ref: '#/components/schemas/apeAccountProfile' type: array type: object apeLocalOrderItemLine: properties: quantity: example: 1 description: Quantity of item to be ordered. type: integer format: int32 sku: example: UGG-BB-PUR-06 maxLength: 25 description: The SKU of the item to be ordered. type: string customItemName: example: My Custom Item Name description: The custom name to be used, if overwriting is permitted for this item. type: string customItemPrice: example: 10.0 description: The custom price to be used, if custom pricing is permitted for this item. type: number discountAmountOverride: description: The custom discount amount applied to this item. Only one of `discountAmountOverride` or `discountPercentOverride` can be set. Must be used in conjunction with a [discountCode](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-items-discountcode) and this discount must be configured as a "manual discount" in the POS. See [Understanding Discounts](https://k-series-support.lightspeedhq.com/hc/en-us/articles/1260804657089-Understanding-discounts). type: number example: 5.0 discountPercentOverride: description: The custom percentage discount applied to this item. Only one of `discountAmountOverride` or `discountPercentOverride` can be set. Must be used in conjunction with a [discountCode](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-items-discountcode) and this discount must be configured as a "manual discount" in the POS. See [Understanding Discounts](https://k-series-support.lightspeedhq.com/hc/en-us/articles/1260804657089-Understanding-discounts). type: number example: 10.0 modifiers: description: Collection of [modifiers](https://api-docs.lsk.lightspeed.app/operation/operation-apeloadallmodifiers) to be applied to this item. type: array items: $ref: '#/components/schemas/apeItemModifier' discountCode: example: FIVEPERCENT description: The discount code being applied to this item, if applicable. type: string course: example: 2 description: The course number for this item, if applicable. minimum: 0 type: integer format: int32 subItems: description: The sub-items applied to this item. items: $ref: '#/components/schemas/apeSubItemOrderLine' type: array type: object required: - quantity - sku apeToGoOrderItemLine: properties: quantity: example: 1 description: Quantity of item to be ordered. type: integer format: int32 sku: example: UGG-BB-PUR-06 maxLength: 25 description: The SKU of the item to be ordered. type: string customItemName: example: My Custom Item Name description: The custom name to be used, if overwriting is permitted for this item. type: string customItemPrice: example: 10.0 description: The custom price to be used, if custom pricing is permitted for this item. type: number discountAmountOverride: description: The custom discount amount applied to this item. Only one of `discountAmountOverride` or `discountPercentOverride` can be set. type: number example: 5.0 discountPercentOverride: description: The custom percentage discount applied to this item. Only one of `discountAmountOverride` or `discountPercentOverride` can be set. type: number example: 10.0 modifiers: description: Collection of [modifiers](https://api-docs.lsk.lightspeed.app/operation/operation-apeloadallmodifiers) to be applied to this item. type: array items: $ref: '#/components/schemas/apeItemModifier' discountCode: example: FIVEPERCENT description: The discount code being applied to this item, if applicable. type: string subItems: type: array items: $ref: '#/components/schemas/apeSubItemOrderLine' type: object required: - quantity - sku apeSubItemOrderLine: required: - quantity - sku properties: quantity: example: 1 description: Quantity of sub-item to be ordered. type: integer format: int32 sku: example: ABC-123 maxLength: 25 description: The SKU of the sub-item to be ordered. type: string customItemName: example: My Custom Sub-Item Name description: The custom name to be used if overwriting is supported for this sub-item. type: string customItemPrice: example: 2.0 description: The custom price to be used if overwriting is supported for this sub-item. type: number modifiers: description: Collection of modifiers to be applied to this sub-item. items: $ref: '#/components/schemas/apeItemModifier' type: array subItems: description: Product modifiers applied to this item. items: $ref: '#/components/schemas/apeSubItemOrderLine' type: array type: object availability-apiCreateAvailabilityDto: type: object properties: snoozeUntil: format: date-time type: string provider: type: string required: - snoozeUntil - provider availability-apiItemWIthAvailability: type: object properties: sku: type: string description: Items sku active: type: boolean description: Items is active businessLocationId: type: string description: Business location id id: type: string description: Item id itemType: type: string description: Item type price: type: number description: Item price status: type: string description: Item status enum: - ACTIVE - INACTIVE - DISCONNECTED snoozeUntil: format: date-time type: string description: Items snoozing end time required: - sku - active - businessLocationId - id - itemType - price - status - snoozeUntil availability-apiCurrentInfo: type: object properties: page: type: number description: Current page metadata information pageSize: type: number description: Current page size metadata information required: - page - pageSize availability-apiPaginatedItemsMetadata: type: object properties: current: description: Current page metadata information allOf: - $ref: '#/components/schemas/availability-apiCurrentInfo' total: type: number description: Total elements metadata information totalPages: type: number description: Total pages metadata information required: - current - total - totalPages availability-apiProviderDto: type: object properties: provider: type: string description: The provider snoozeUntil: format: date-time type: string description: The item snooze end time required: - provider - snoozeUntil availability-apiItemWIthRestriction: type: object properties: sku: type: string description: Item sku businessLocationId: type: string description: Business location id id: type: string description: The availability id count: type: number description: The count of available items countUpdatedAt: format: date-time type: string description: The last update date for the count required: - sku - businessLocationId - id - count - countUpdatedAt backendv3AccountDetailDto: type: object properties: accountIdentifier: type: string businessDeviceId: type: integer format: int64 businessLocationId: type: integer format: int64 cancelled: type: boolean clientCount: type: number format: double closeDate: type: string format: date-time consumerId: type: integer format: int64 currencyCode: type: string currencyId: type: integer format: int64 currentAmount: type: number format: double debtInvoiceId: type: integer format: int64 deviceId: type: integer format: int64 deviceName: type: string events: type: array items: $ref: '#/components/schemas/backendv3DeviceEventDto' id: type: integer format: int64 identifier: type: string name: type: string openDate: type: string format: date-time paidAmount: type: number format: double paymentLines: type: array items: $ref: '#/components/schemas/backendv3PaymentLineDto' receipt: type: string receiptId: type: string staffId: type: integer format: int64 staffName: type: string transactionLines: type: array items: $ref: '#/components/schemas/backendv3TransactionLineDto' updateDate: type: string format: date-time uuid: type: string version: type: integer format: int32 backendv3AccountNameType: type: string enum: - ALL - DIRECT - TABLE - DELIVERY - ONLINE backendv3AccountObjectDto: type: object properties: active: type: boolean code: type: string defaultClientCount: type: integer format: int32 description: type: string maxLength: 128 minLength: 0 errors: {} floorPlanH: type: integer format: int32 floorPlanW: type: integer format: int32 floorPlanX: type: integer format: int32 floorPlanY: type: integer format: int32 id: type: integer format: int64 identifier: type: integer format: int32 reference: type: string shape: $ref: '#/components/schemas/backendv3AccountObjectShape' required: - description backendv3AccountObjectShape: type: string enum: - SQUARE - ROUND backendv3AccountTypeDto: type: string enum: - CLIENT - TECHNICAL_INTERNAL - DEMO_TEMPLATE - EVENT - RESELLER - OTHER backendv3AccountingAccountDto: type: object properties: code: type: string name: type: string taxName: type: string taxRate: type: number format: double taxType: type: string type: type: string backendv3AccountingEngineType: type: string enum: - NONE - XERO - WINBIZ backendv3AccountingGroupDto: type: object properties: available: type: boolean countForCovers: type: boolean errors: {} id: type: integer format: int64 itemCount: type: integer format: int64 locationSpecific: $ref: '#/components/schemas/backendv3AccountingGroupLocationSpecificDto' name: type: string maxLength: 25 minLength: 0 productionCenter: type: string maxLength: 1023 minLength: 0 reference: type: string maxLength: 128 minLength: 0 secondaryProductionCenter: type: string maxLength: 1023 minLength: 0 siCount: type: integer format: int64 statisticGroup: type: string maxLength: 500 minLength: 0 taxProfileCode: type: string taxProfileDescription: type: string taxProfileId: type: integer format: int64 unlinkedCount: type: integer format: int64 required: - name backendv3AccountingGroupLocationSpecificDto: type: object properties: exemptFromMandatoryBilling: type: boolean backendv3AccountingGroupParametersV2QsrDto: type: object properties: departmentId: type: string backendv3AccountingMappingDto: type: object properties: accountCode: type: string entityDescription: type: string entityId: type: integer format: int64 valid: type: boolean backendv3Activity: type: string enum: - NEVER - LAST_DAY - LAST_WEEK - LAST_MONTH - LAST_YEAR backendv3AdyenTerminalConfigDto: type: object properties: printOnTerminal: type: boolean required: - printOnTerminal backendv3AggregationType: type: string enum: - NONE_OR_ONE_OF - ONE_OF - MANY_OF - ALL - MODIFIER - MODIFIER_GROUP backendv3AllergenTranslation: type: object description: Allergen translation properties: localeCode: type: string description: Language locale (eg. 'en' or 'en_US'). example: en text: type: string description: Translation in the language of the locale. required: - localeCode - text backendv3BackgroundTaskStatusDto: type: string enum: - SUBMITTED - PARTIALLY_SUCCEEDED - RUNNING - EXECUTION_TIMEOUT - FAILED - CANCELLED - SUCCEEDED backendv3BaseButtonDtoObject: type: object properties: buttons: type: array items: {} uniqueItems: true color: type: string fieldToCopiedObject: writeOnly: true id: type: integer format: int64 name: type: string backendv3BillingDetailsDto: type: object properties: addressLine1: type: string maxLength: 64 minLength: 0 addressLine2: type: string maxLength: 64 minLength: 0 ccEmailAddresses: type: string maxLength: 1024 minLength: 0 city: type: string maxLength: 64 minLength: 0 companyName: type: string maxLength: 256 minLength: 0 country: type: string maxLength: 8 minLength: 0 emailAddress: type: string format: email maxLength: 128 minLength: 0 errors: {} firstName: type: string maxLength: 128 minLength: 0 fiscalIdentifier: type: string maxLength: 32 minLength: 0 lastName: type: string maxLength: 128 minLength: 0 phone: type: string maxLength: 32 minLength: 0 state: type: string maxLength: 64 minLength: 0 tcAccepted: type: boolean zipCode: type: string maxLength: 64 minLength: 0 required: - city - companyName - country - emailAddress backendv3BillingEventDto: type: object properties: billingPeriod: type: string effectiveDate: type: string format: date-time eventId: type: string eventType: type: string phase: type: string priceList: type: string product: type: string requestedDate: type: string format: date-time backendv3BillingInvoiceItemDto: type: object properties: description: type: string discountAmount: type: number discountedAmount: type: number effectiveAmount: type: number id: type: integer format: int64 normalAmount: type: number quantity: type: integer format: int32 totalAmount: type: number totalDiscountAmount: type: number backendv3BillingInvoicePaymentDto: type: object properties: paymentDate: type: string format: date-time paymentMethod: type: string reference: type: string backendv3BillingInvoiceStatusDto: type: string enum: - OPEN - PAID - CANCELLED backendv3BillingPlanDto: type: object properties: addOns: type: array items: $ref: '#/components/schemas/backendv3BillingProductDto' addOnsDevices: type: array items: $ref: '#/components/schemas/backendv3BillingProductDto' allowed: type: boolean description: type: string discountPercent: type: integer format: int32 discounted: type: boolean free: type: boolean id: type: string name: type: string normalPrice: type: number price: type: number priceList: type: string product: $ref: '#/components/schemas/backendv3BillingProductDto' recurringPeriod: $ref: '#/components/schemas/backendv3BillingRecurringPeriodDto' setupFee: type: number visible: type: boolean backendv3BillingProductDto: type: object properties: addOnSelected: type: boolean allowedDevices: type: integer format: int32 description: type: string id: type: string name: type: string normalPrice: type: number price: type: number backendv3BillingRecurringPeriodDto: type: string enum: - MONTH - YEAR backendv3BillingRecurringTurnoverDto: type: object properties: averagePrice: type: number monthlyPerClient: type: number periods: type: integer format: int64 planCount: type: integer format: int64 revenue: type: number yearlyPerClient: type: number yearlyRevenue: type: number backendv3BillingStateDto: type: string enum: - UNKNOWN - TRIAL - NORMAL - MIGRATING - OVERDUE - CANCELLED backendv3BillingSubscriptionDto: type: object properties: accountId: type: string billingEndDate: type: string format: date-time billingPeriod: type: string billingStartDate: type: string format: date-time bundleId: type: string cancelledDate: type: string format: date-time chargedThroughDate: type: string format: date-time deletedEvents: type: array items: $ref: '#/components/schemas/backendv3BillingEventDto' events: type: array items: $ref: '#/components/schemas/backendv3BillingEventDto' externalKey: type: string newEvents: type: array items: $ref: '#/components/schemas/backendv3BillingEventDto' priceList: type: string productCategory: type: string productName: type: string startDate: type: string format: date-time subscriptionId: type: string backendv3BillingTurnoverDto: type: object properties: amountInvoiced: type: number amountPaid: type: number count: type: integer format: int64 nonPayingCount: type: integer format: int64 payingCount: type: integer format: int64 backendv3BusinessDeviceDto: type: object properties: active: type: boolean address: type: string altitude: type: number appVersion: type: string bssid: type: string btPeripheralSupport: type: boolean businessLocationId: type: integer format: int64 cashDrawerDeviceId: type: integer format: int64 clientTime: type: string format: date-time clientTimezone: type: string clientVersion: type: string currentPeriod: type: integer format: int32 deprecated: true customerDisplayBanner: type: string customerDisplayTimeout: type: integer format: int32 defaultSalesPointId: type: integer format: int64 deviceName: type: string deviceState: type: string directAccountsPrefix: type: integer format: int32 directLocalOrders: type: boolean errors: {} externalPriceDevice: type: string gatewayPort: type: integer format: int32 getiButtonDeviceIpAddress: type: string id: type: integer format: int64 ipAddress: type: string kdsAccountingGroupIds: type: array items: type: integer format: int64 uniqueItems: true kdsProductionCenterFilter: type: boolean kdsReceiptMode: type: boolean kmsHost: type: boolean labelPrinterDevice: type: string lastActivity: type: string format: date-time lastConfiguration: type: string format: date-time latitude: type: number listenForLocalOrders: type: boolean longitude: type: number maxCollectionCodeCount: type: integer format: int32 model: type: string modelName: type: string name: type: string maxLength: 8 minLength: 0 newPOSConfigurationId: type: integer format: int64 notePrinterProfileId: type: integer format: int64 osVersion: type: string payTerminalId: type: integer format: int64 deprecated: true payTerminals: type: array items: type: integer format: int64 pmsServerAddress: type: string posDisplayDeviceId: type: integer format: int64 primaryPayTerminalId: type: integer format: int64 printerProfileId: type: integer format: int64 reloadNow: type: boolean reloadRequested: type: boolean resetCollectionCode: type: boolean role: $ref: '#/components/schemas/backendv3DeviceRoleDto' salesPointProfileOverride: type: boolean scoreDelta: type: integer format: int32 serverVersion: type: string sharingScore: type: integer format: int32 ssidName: type: string stockId: type: integer format: int64 stockRedirections: type: array items: $ref: '#/components/schemas/backendv3StockRedirectionDto' uniqueItems: true transactionTagIds: type: array items: type: integer format: int64 uniqueItems: true uuid: type: string required: - name backendv3BusinessDeviceLiteDto: type: object properties: clientVersion: type: string id: type: integer format: int64 isActive: type: boolean lastConfiguration: type: string format: date-time name: type: string reloadNow: type: boolean reloadRequested: type: boolean role: $ref: '#/components/schemas/backendv3DeviceRoleDto' serverVersion: type: string sharingScore: type: integer format: int32 backendv3BusinessDto: type: object properties: active: type: boolean addTransactionRestricted: type: boolean advancedStockManagement: type: boolean alphabeticOrder: type: boolean cancelReceiptRestricted: type: boolean centsRestricted: type: boolean costPriceTaxIncluded: type: boolean createdOn: type: string format: date-time currencyCode: type: string currencyRestricted: type: boolean editForeignCurrencyRestricted: type: boolean editReceiptRestricted: type: boolean finalBillRestricted: type: boolean fiscalNoCancel: type: boolean fiscalNoDuplicate: type: boolean fiscalNoNegative: type: boolean fiscalNote: type: boolean fiscalPrintingRestriction: type: boolean fiscalReceipt: type: boolean giftCardMaxAmount: type: number id: type: integer format: int64 locale: type: string managedBilling: type: boolean multiSite: type: boolean name: type: string onDemandGiftCardEnabled: type: boolean priceListEnabled: type: boolean productModifiersEnabled: type: boolean referenceDate: type: string format: date-time reseller: $ref: '#/components/schemas/backendv3ResellerDto' salesforceId: type: string settleDebtorsInvoiceRestricted: type: boolean status: $ref: '#/components/schemas/backendv3BusinessStatus' taxIncluded: type: boolean tipsRestricted: type: boolean unlinkedDebtorsTransactionsRestricted: type: boolean backendv3BusinessLocationDto: type: object properties: accountOwner: type: string accountType: type: string accountingEnabled: type: boolean accountingReference: type: string maxLength: 128 minLength: 0 active: type: boolean addressLine1: type: string maxLength: 64 minLength: 0 addressLine2: type: string maxLength: 64 minLength: 0 airPrintCSS: type: string maxLength: 4096 minLength: 0 businessActive: type: boolean businessCostPriceTaxIncluded: type: boolean businessCreatedOn: type: string format: date-time businessCurrency: type: string minLength: 1 businessId: type: integer format: int64 businessLocale: type: string maxLength: 16 minLength: 0 businessName: type: string maxLength: 128 minLength: 0 businessReferenceDate: type: string format: date-time businessStatus: $ref: '#/components/schemas/backendv3BusinessStatus' businessTaxIncluded: type: boolean city: type: string maxLength: 64 minLength: 0 clearingAccount: type: string maxLength: 20 minLength: 0 consumerMessage: type: string contractStartDate: type: string format: date-time country: type: string maxLength: 8 minLength: 0 createdOn: type: string format: date-time crmAccountId: type: string defaultStockId: type: integer format: int64 errors: {} externalProvisioningId: type: string fiscalCsvFormat: type: boolean fiscalIdentifier: type: string maxLength: 32 minLength: 0 halfServiceHour: type: integer format: int32 hideCustomerBilling: type: boolean id: type: integer format: int64 languageCode: type: string localOrdersKey: type: string majorVersionUpgradeAllowed: type: boolean managedBilling: type: boolean managedInvoicing: type: boolean maxCovers: type: integer format: int32 maxReports: type: integer format: int32 migratedProvisioning: type: boolean moveToProdDate: type: string format: date-time name: type: string maxLength: 512 minLength: 0 period: type: integer format: int32 phone: type: string maxLength: 32 minLength: 0 preV3: type: boolean provisioningMigrationDate: type: string format: date-time receiptFooterLastLine: type: string requiredPosMajorVersion: type: integer format: int32 resellerName: type: string salesforceId: type: string shifts: type: string startOfTheDay: type: integer format: int32 startOfTheWeek: type: integer format: int32 state: type: string maxLength: 64 minLength: 0 status: $ref: '#/components/schemas/backendv3BusinessStatus' template: type: boolean timeTrackingEnabled: type: boolean timezone: type: string maxLength: 64 minLength: 0 tipsAccount: type: string maxLength: 20 minLength: 0 unitSystem: $ref: '#/components/schemas/backendv3UnitSystemDto' version3: type: boolean versionDates: type: object additionalProperties: type: string format: date-time zipCode: type: string maxLength: 64 minLength: 0 required: - businessCurrency - businessLocale - businessName - city - country - name - timezone - zipCode backendv3BusinessLocationWebExtensionInfoDto: type: object properties: active: type: boolean errors: {} id: type: integer format: int64 name: type: string webExtensions: type: array items: $ref: '#/components/schemas/backendv3WebExtensionDto' backendv3BusinessStatus: type: string enum: - SIGNUP - EMPTY - TRIAL - PENDING_PRODUCTION - PRODUCTION backendv3ButtonType: type: string enum: - ITEM - ITEM_GROUP - ITEM_SEQUENCE - MODIFIER - TAG - GROUP - MODIFIER_VALUE - EMPTY - DISCOUNT - TRANSFER - WEB_EXTENSION - MODIFIER_GROUP - MODIFIER_GROUP_OPTION backendv3CardBatchDto: type: object properties: business: $ref: '#/components/schemas/backendv3BusinessDto' description: type: string errors: {} id: type: integer format: int64 importSource: type: string loyaltyProgram: $ref: '#/components/schemas/backendv3LoyaltyProgramDto' name: type: string minLength: 1 offline: type: boolean onDemand: type: boolean punchLines: type: array items: $ref: '#/components/schemas/backendv3PunchLineDto' size: type: integer format: int32 minimum: 1 type: $ref: '#/components/schemas/backendv3CardType' unusedCardsCount: type: integer format: int64 required: - name backendv3CardDto: type: object properties: account: $ref: '#/components/schemas/backendv3ConsumerAccountDto' cardBatch: $ref: '#/components/schemas/backendv3CardBatchDto' errors: {} id: type: integer format: int64 importedCardId: type: string lastUsed: type: string format: date-time offline: type: boolean qrCodeImageData: type: string qrCodeString: type: string revocationTime: type: string format: date-time revoked: type: boolean serial: type: string format: uuid type: $ref: '#/components/schemas/backendv3CardType' required: - serial - type backendv3CardEventType: type: string enum: - LOAD - LINK - UNLINK - REVOKE - UNREVOKE - NOTIFICATION backendv3CardSort: type: object properties: field: $ref: '#/components/schemas/backendv3PropertyExpression' order: $ref: '#/components/schemas/backendv3SortOrder' backendv3CardType: type: string enum: - VIP - POINTS - GIFT - PUNCH - ID backendv3Category: type: string enum: - NOT_TAXED - AVERAGED_REDUCED - AVERAGED_REGULAR - REDUCED - REGULAR - HIGH - MID - LOW - ZERO_RATE - PROVINCIAL - FEDERAL backendv3CompletionMode: type: string enum: - IMMEDIATE - ON_DELIVERY - ON_DELIVERED - MANUALLY backendv3ComponentDto: type: object properties: id: type: integer format: int64 itemId: type: integer format: int64 percentLoss: type: number product: $ref: '#/components/schemas/backendv3ProductRefDto' productContent: $ref: '#/components/schemas/backendv3QuantityDto' quantity: $ref: '#/components/schemas/backendv3QuantityDto' stock: $ref: '#/components/schemas/backendv3StockRefDto' backendv3ConsumerAccountDto: type: object properties: businessLocation: $ref: '#/components/schemas/backendv3BusinessLocationDto' consumer: $ref: '#/components/schemas/backendv3ConsumerDto' id: type: integer format: int64 backendv3ConsumerContactDto: type: object properties: addressLine1: type: string maxLength: 255 minLength: 0 addressLine2: type: string maxLength: 255 minLength: 0 city: type: string maxLength: 128 minLength: 0 companyName: type: string maxLength: 128 minLength: 0 country: type: string maxLength: 8 minLength: 0 creationDate: type: string format: date-time destinationCode: type: string maxLength: 64 minLength: 0 emailReceipts: type: boolean errors: {} firstName: type: string maxLength: 128 minLength: 0 fiscalCode: type: string maxLength: 128 minLength: 0 fullName: type: string id: type: integer format: int64 lastName: type: string maxLength: 128 minLength: 0 phoneNumber1: type: string maxLength: 64 minLength: 0 phoneNumber2: type: string maxLength: 64 minLength: 0 readonlyFields: type: array items: type: string uniqueItems: true salutation: type: string maxLength: 64 minLength: 0 state: type: string maxLength: 32 minLength: 0 taxIdentifier: type: string maxLength: 64 minLength: 0 zipCode: type: string maxLength: 64 minLength: 0 required: - firstName - lastName backendv3ConsumerDto: type: object properties: consumerNotes: type: array items: $ref: '#/components/schemas/backendv3ConsumerNoteDto' contactInformation: $ref: '#/components/schemas/backendv3ConsumerContactDto' creationDate: type: string format: date-time discountId: type: integer format: int64 emailAddress: type: string format: email errors: {} firstSeenByBusinessId: type: integer format: int64 gratuityAmount: type: number format: double id: type: integer format: int64 language: type: string minLength: 1 modificationDate: type: string format: date-time paymentAmounts: type: object additionalProperties: type: number format: double recordId: type: integer format: int64 recordUuid: type: string tagId: type: integer format: int64 ticketCount: type: number format: double totalAmount: type: number format: double required: - creationDate - language backendv3ConsumerNoteDto: type: object properties: keyName: type: string value: type: string backendv3CountrySettingsDto: type: object properties: countryCode: type: string currencyCode: type: string defaultLanguageCode: type: string languageCodes: type: array items: type: string uniqueItems: true stateCodes: type: array items: type: string uniqueItems: true backendv3CsvSettings: type: object properties: businessId: type: integer format: int64 businessLocationId: type: integer format: int64 columnsMapping: type: object additionalProperties: type: integer format: int32 delimiter: type: string dictionary: type: object additionalProperties: type: string dryRun: type: boolean encoding: type: string errors: {} fileToken: type: string filename: type: string firstLineContainsColumnNames: type: boolean lineDelimiter: type: string localBooleanValues: type: object additionalProperties: type: string backendv3DayOfWeek: type: string enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY backendv3DebtSettlementDto: type: object properties: settler: $ref: '#/components/schemas/backendv3AccountDetailDto' backendv3DefaultScreenAfterLogin: type: string enum: - REGISTER - TABLE - ORDERS backendv3Delimiter: type: string enum: - COMMA - SEMICOLON backendv3DeliveryMode: type: string enum: - NONE - COLLECTION - REMOTE backendv3DeviceEventDto: type: object properties: amount: type: number format: double clientId: type: integer format: int64 deviceId: type: integer format: int64 deviceName: type: string eventId: type: integer format: int32 eventType: type: string eventTypeCode: type: string id: type: integer format: int64 originUser: type: string period: type: integer format: int32 text: type: string timestamp: type: string format: date-time uuid: type: string backendv3DeviceRoleDto: type: string enum: - POS - BackOffice - CustomerDisplay - TimeClock - KitchenDisplay - Ghost backendv3DimensionDto: type: string enum: - DIMENSION_LESS - VOLUME - MASS backendv3DiscountDto: type: object properties: code: type: string maxLength: 32 minLength: 0 description: type: string maxLength: 512 minLength: 0 discountAmount: type: number discountByAmount: type: boolean discountType: type: string minLength: 1 errors: {} excludedAccountingGroups: type: array items: $ref: '#/components/schemas/backendv3AccountingGroupDto' uniqueItems: true groupName: type: string id: type: integer format: int64 lossDiscount: type: boolean manualDiscount: type: boolean percentageDiscount: type: number format: double qrToken: type: string qrTokenEnabled: type: boolean rate: type: number format: double showOnOrderTicket: type: boolean systemDiscount: type: boolean taxFree: type: boolean required: - code - description - discountType backendv3EFTDeviceMode: type: string enum: - OPI_MODE - PS_MODE - TIM_MODE - CONCERT_MODE - LSPAY_GENIUS_MODE - CAYAN_GENIUS_MODE - LSPAY_ADYEN_MODE - ECR17_MODE backendv3EntityType: type: string enum: - TAG - STAFF - DISCOUNT - PAY_METHOD - WEB_EXTENSION backendv3ExportFormat: type: string enum: - CSV backendv3Fdm2InvalidSsnUserDto: type: object properties: displayName: type: string id: type: integer format: int64 backendv3FloatCountMode: type: string enum: - NO_COUNT - OPTIONAL_COUNT - MANDATORY_COUNT backendv3GiftAccountDto: type: object properties: amount: type: number autoPay: type: boolean businessLocation: $ref: '#/components/schemas/backendv3BusinessLocationDto' consumer: $ref: '#/components/schemas/backendv3ConsumerDto' id: type: integer format: int64 maxAmount: type: number maxOverdraftAmount: type: number backendv3GiftCardDto: type: object properties: account: $ref: '#/components/schemas/backendv3GiftAccountDto' cardBatch: $ref: '#/components/schemas/backendv3CardBatchDto' errors: {} id: type: integer format: int64 importedCardId: type: string lastUsed: type: string format: date-time offline: type: boolean qrCodeImageData: type: string qrCodeString: type: string revocationTime: type: string format: date-time revoked: type: boolean serial: type: string format: uuid type: $ref: '#/components/schemas/backendv3CardType' required: - serial - type backendv3GiftCardImportDto: type: object properties: balance: type: number importedCardId: type: string minLength: 1 required: - balance - importedCardId backendv3GiftOperationLineDto: type: object properties: amount: type: number balance: type: number cancelTime: type: string format: date-time confirmationAccountFiscalId: type: string confirmationAccountId: type: integer format: int64 confirmationCancelationDate: type: string format: date-time confirmationDate: type: string format: date-time confirmed: type: boolean date: type: string format: date-time id: type: integer format: int64 paymentMethodCode: type: string paymentMethodId: type: integer format: int64 paymentMethodName: type: string remark: type: string staffFullName: type: string staffId: type: integer format: int64 status: $ref: '#/components/schemas/backendv3GiftOperationLineStatus' token: type: string type: $ref: '#/components/schemas/backendv3GiftOperationLineType' backendv3GiftOperationLineStatus: type: string enum: - NOT_CONFIRMED - CONFIRMED - CANCELLED backendv3GiftOperationLineType: type: string enum: - REFILL - WITHDRAW backendv3GratuityChangeDto: type: object properties: gratuityAmount: type: number format: double paymentLineFiscId: type: string backendv3HeaderKey: type: string enum: - username - firstName - lastName - emailAddress - group - active - pinCode - businessLocation - localOrderId - socialSecurityNumber backendv3IdCard: type: object description: A reference to a newly created ID card. properties: consumerId: type: integer format: int64 description: The ID of the associated consumer. consumerRecordId: type: integer format: int64 description: The ID of the associated consumer record. id: type: integer format: int64 description: The unique identifier for the ID card. url: type: string description: The URL for the QR code associated with the card. backendv3IdNameDto: type: object properties: id: type: integer format: int64 name: type: string backendv3ImportItemDto: type: object properties: barCode: type: string maxLength: 64 minLength: 0 buttonColor: type: string maxLength: 32 minLength: 0 buttonName: type: string maxLength: 128 minLength: 0 costPrice: type: number costPriceStr: type: string defaultAccountingGroup: type: string defaultAccountingGroupId: type: integer format: int64 defaultPrice: type: number format: double defaultPriceStr: type: string errors: {} menuName: type: string maxLength: 128 minLength: 0 name: type: string maxLength: 180 minLength: 0 screenName: type: string sku: type: string maxLength: 32 minLength: 0 statisticGroup: type: string maxLength: 500 minLength: 0 stockQuantity: type: number format: double required: - defaultAccountingGroupId - name backendv3IncompatiblePOSButtonReasonDto: type: string enum: - LOCAL_ENTITY - MISSING_ENTITY - DUPLICATE_ENTITY_NAME backendv3IntegratorDto: type: string enum: - API - GIFT_API - PAYMENT_API - RESERVATION - TRANSFER backendv3InventorySourceDto: type: string enum: - PURCHASED - PRODUCED backendv3ItemProductionCenterDto: type: object properties: id: type: integer format: int64 name: type: string primary: type: boolean backendv3ItemSharingType: type: string enum: - GLOBAL_NO_BL - GLOBAL - LOCAL - SHARED backendv3ItemStatus: type: string enum: - DISABLED - UNLINKED - NORMAL backendv3ItemType: type: string enum: - ITEM - ITEM_GROUP - ITEM_SEQUENCE - MODIFIER - MODIFIER_GROUP backendv3LicenseModelDto: type: string enum: - DEVICE_COUNT - TRANSACTION_COUNT - FEATURES - UNLIMITED backendv3LineSeparator: type: string enum: - LF - CRLF backendv3LocalizationLanguage: {} backendv3LoyaltyProgramDto: type: object properties: businessId: type: integer format: int64 name: type: string backendv3MailRecipientDto: type: object properties: businessLocationId: type: integer format: int64 emailAddress: type: string format: email maxLength: 128 minLength: 0 errors: {} id: type: integer format: int64 mailDistributionListId: type: integer format: int64 name: type: string maxLength: 128 minLength: 0 required: - emailAddress - mailDistributionListId - name backendv3MainGroupStatus: type: string enum: - NOT_A_GROUP - EMPTY - OK - CROWDED - NEARLY_FULL - FULL - TOOMANY backendv3NegativeItemDto: type: object properties: businessLocationId: type: integer format: int64 id: type: integer format: int64 name: type: string sku: type: string backendv3OnlineCustomerDto: type: object properties: address1: type: string address2: type: string business_id: type: integer format: int64 writeOnly: true city: type: string company_name: type: string country: type: string dob: type: string format: date-time email: type: string email_receipts: type: boolean external_reference: type: string first_name: type: string id: type: integer format: int64 last_name: type: string phone_number1: type: string phone_number2: type: string salutation: type: string sex: type: integer format: int32 state: type: string tax_identifier: type: string update_email_receipts: type: boolean vendor: type: string maxLength: 180 minLength: 0 zip: type: string backendv3OnlineMenuButtonDtoNew: type: object properties: color: type: string fieldToCopiedObject: $ref: '#/components/schemas/backendv3BaseButtonDtoObject' writeOnly: true id: type: integer format: int64 item: $ref: '#/components/schemas/backendv3OnlineMenuProductDto' name: type: string backendv3OnlineMenuProductDto: type: object properties: active: type: boolean can_override_name: type: boolean conditional_tax_rules: type: boolean item_id: type: integer format: int64 item_sku: type: string modifier_categories: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderModifierCategoryDto' name: type: string price: type: number price_mode: $ref: '#/components/schemas/backendv3PriceMode' product_modifier_groups: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderProductModifierGroupDto' sequences: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderProductSequenceDto' sub_item: type: boolean tax_amount: type: number tax_included: type: boolean tax_percentage: type: number taxes: type: array items: $ref: '#/components/schemas/backendv3OnlineMenuTaxDto' backendv3OnlineMenuTaxDto: type: object properties: amount: type: number description: type: string percentage: type: number backendv3OnlineOrderDeliveryMode: type: string enum: - LOCAL - PICKUP - DELIVERY backendv3OnlineOrderItemDto: type: object properties: course: type: integer format: int32 discount_code: type: string id: type: string item_id: type: string item_modifiers: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderItemModifierDto' item_name: type: string item_price: type: number item_sku: type: string quantity: type: number sub_items: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderSubItemDto' required: - item_modifiers - quantity - sub_items backendv3OnlineOrderItemModifierDto: type: object properties: mod_id: type: string modifier_desc: type: string price: type: number backendv3OnlineOrderModifierCategoryDto: type: object properties: category_desc: type: string id: type: integer format: int64 mandatory_select: type: boolean multi_select: type: boolean override_price: type: boolean product_modifiers: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderProductModifierDto' backendv3OnlineOrderOriginDto: type: string enum: - ONLINE_ORDER - RESERVATION backendv3OnlineOrderProductModifierDto: type: object properties: mod_id: type: string modifier_desc: type: string modifier_price: type: number backendv3OnlineOrderProductModifierGroupDto: type: object properties: description: type: string maximum_selection: type: integer format: int32 minimum_selection: type: integer format: int32 override_price: type: boolean product_modifiers: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderProductModifierItemDto' sku: type: string backendv3OnlineOrderProductModifierItemDto: type: object properties: description: type: string extra_price: type: number item_id: type: integer format: int64 item_sku: type: string modifier_categories: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderModifierCategoryDto' price: type: number backendv3OnlineOrderProductSequenceDto: type: object properties: description: type: string items: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderSequenceItemDto' mandatory_select: type: boolean maximum_selection: type: integer format: int32 minimum_selection: type: integer format: int32 multi_select: type: boolean override_price: type: boolean sku: type: string backendv3OnlineOrderSequenceItemDto: type: object properties: description: type: string extra_price: type: number item_id: type: string item_sku: type: string modifier_categories: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderModifierCategoryDto' price: type: number product_modifier_groups: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderProductModifierGroupDto' backendv3OnlineOrderStatusDto: type: string enum: - NEW - ACCEPTED - IN_PRODUCTION - READY_FOR_PICKUP - IN_DELIVERY - DELIVERED - REJECTED - ABANDONNED - FAILED - CLOSED backendv3OnlineOrderSubItemDto: type: object properties: id: type: string item_id: type: string item_modifiers: type: array items: $ref: '#/components/schemas/backendv3OnlineOrderItemModifierDto' item_name: type: string item_price: type: number item_sku: type: string quantity: type: number required: - item_modifiers backendv3PMSConnectivityTestResultTypeDto: type: string enum: - UNKNOWN - FAILURE - SUCCESS backendv3PMSParameterCategoryDto: type: string enum: - POS_CONFIGURATION - PAYMENT_METHOD - ACCOUNTING_GROUP - TAX - DEVICE - AUTHENTICATION backendv3PMSParameterDefinitionDto: type: object properties: category: $ref: '#/components/schemas/backendv3PMSParameterCategoryDto' errors: {} mandatory: type: boolean name: type: string provider: type: string type: $ref: '#/components/schemas/backendv3PMSParameterTypeDto' backendv3PMSParameterOptionDto: type: object properties: active: type: boolean errors: {} key: type: string value: type: string backendv3PMSParameterTypeDto: type: string enum: - SELECT - STRING - LONG backendv3POSButtonDto: type: object properties: buttonsCount: type: integer format: int32 color: type: string maxLength: 32 minLength: 0 columnsCount: type: integer format: int32 containsEmptyOrGroup: type: boolean displayName: type: string maxLength: 128 minLength: 0 errors: {} highlighted: type: boolean id: type: integer format: int64 manyOf: type: boolean masterButtonId: type: integer format: int64 referenceCount: type: integer format: int32 restrictToManager: type: boolean slaveGroup: type: boolean status: $ref: '#/components/schemas/backendv3MainGroupStatus' target: type: integer format: int64 targetName: type: string targetPrice: type: number format: double targetPriceMode: type: string targetSku: type: string type: $ref: '#/components/schemas/backendv3ButtonType' required: - displayName backendv3POSMenuDto: type: object properties: allowLocalEdits: type: boolean businessLocationId: type: integer format: int64 businessLocationName: type: string buttons: type: array items: $ref: '#/components/schemas/backendv3POSButtonDto' errors: {} id: type: integer format: int64 inSync: type: boolean inSyncSlaveCount: type: integer format: int32 master: type: boolean masterMenu: $ref: '#/components/schemas/backendv3POSMenuDto' name: type: string maxLength: 128 minLength: 0 outOfSyncSlaveCount: type: integer format: int32 slave: type: boolean slaveCount: type: integer format: int32 slaves: type: array items: $ref: '#/components/schemas/backendv3POSMenuDto' required: - name backendv3PaymentDto: type: object properties: amount: type: number format: double authorizationId: type: string gratuity: type: number format: double paymentMethodId: type: integer format: int64 backendv3PaymentLineDto: type: object properties: accountId: type: integer format: int64 active: type: boolean amountPaid: type: number format: double changeAmount: type: number format: double createDate: type: string format: date-time dateOfPayment: type: string format: date-time debt: type: boolean deviceDescription: type: string deviceId: type: integer format: int64 foreignCurrencyAmount: type: number format: double foreignCurrencyCode: type: string gratuityAmount: type: number format: double id: type: integer format: int64 modificationDate: type: string format: date-time paymentMethodCode: type: string paymentMethodDescription: type: string paymentMethodId: type: integer format: int64 staffDescription: type: string staffId: type: integer format: int64 backendv3PaymentMethodChangeDto: type: object properties: paymentLineFiscId: type: string paymentMethodId: type: integer format: int64 backendv3PaymentMethodDto: type: object properties: accountingReference: type: string maxLength: 128 minLength: 0 barTabsActive: type: boolean cashMgmt: type: boolean clientSideHidden: type: boolean code: type: string maxLength: 36 minLength: 0 config: type: object additionalProperties: type: string defaultAdvanceAmount: type: number minimum: 1.0 deprecated: type: boolean description: type: string maxLength: 100 minLength: 0 editable: type: boolean enablePayAtTablePrintCheck: type: boolean errors: {} foreignCurrencyCode: type: string maxLength: 3 minLength: 0 giveChange: type: boolean gratuityCutPct: type: integer format: int32 gratuityCutPercent: type: number format: double gratuityEnabled: type: boolean id: type: integer format: int64 includeInFloatCount: type: boolean managerOnly: type: boolean nativeAPIKey: type: string maxLength: 128 minLength: 0 nativeAPIPassword: type: string maxLength: 128 minLength: 0 nativeAPIUsername: type: string maxLength: 128 minLength: 0 nativeMethod: type: boolean noPrint: type: boolean openCashDrawer: type: boolean printFooter: type: boolean printHeader: type: boolean qrToken: type: string qrTokenEnabled: type: boolean type: $ref: '#/components/schemas/backendv3PaymentMethodType' virtualMerchantReceipt: type: boolean required: - code - description - type backendv3PaymentMethodType: type: string enum: - PM_TYPE_CASH - PM_TYPE_CARD - PM_TYPE_OTHER - PM_TYPE_CASH_FC - PM_TYPE_PMS - PM_TYPE_CASH_DROP - PM_TYPE_CASH_LIFT - PM_TYPE_LEFT_WITHOUT_PAYING backendv3PaymentProviderConfigurationDto: type: object discriminator: propertyName: type properties: businessLocationId: type: integer format: int64 errors: {} id: type: integer format: int64 paymentMethodIds: type: array items: type: integer format: int64 type: type: string required: - businessLocationId backendv3PmsProviderFeatureDto: type: string enum: - SEARCH_BY_NAME - MIRRORING - PARTIAL_PAYMENTS - MULTI_PAYMENTS - SERVICE_CHARGE - ENRICHED_PAYLOAD backendv3PredefinedTipAmountDto: type: object properties: amount: type: integer format: int32 minimum: 0 errors: {} id: type: integer format: int64 backendv3PredefinedTipPercentageDto: type: object properties: errors: {} id: type: integer format: int64 percentage: type: integer format: int32 maximum: 10000 minimum: 0 backendv3PredefinedTipsOption: type: string enum: - AMOUNTS - PERCENTAGES - THRESHOLD backendv3PriceListDto: type: object properties: active: type: boolean businessId: type: integer format: int64 id: type: integer format: int64 inSync: type: boolean name: type: string referenced: type: boolean backendv3PriceMode: type: string enum: - AMOUNT - PERCENT - POSITIVE_OPEN_PRICE - NEGATIVE_OPEN_PRICE backendv3PriceModeDto: type: string enum: - AMOUNT - PERCENT - POSITIVE_OPEN_PRICE - NEGATIVE_OPEN_PRICE backendv3PrintableDocumentAction: type: string enum: - ARCHIVE - ASSIGN - UNASSIGN - COPY - DUPLICATE backendv3PrintableDocumentActionRequest: type: object discriminator: propertyName: action properties: action: $ref: '#/components/schemas/backendv3PrintableDocumentAction' backendv3PrintableDocumentAssignTarget: type: string enum: - PRODUCTION_CENTER backendv3PrintableDocumentDisplaySection: type: string enum: - RECEIPT - DRAFT - DOCKET - FIRE_COURSE - TRANSFER backendv3PrintableDocumentDto: type: object properties: createdOn: type: string format: date-time customLocalizations: type: object additionalProperties: $ref: '#/components/schemas/backendv3LocalizationLanguage' default: type: boolean defaultLocale: type: string id: type: integer format: int64 markup: type: string name: type: string sections: type: array items: $ref: '#/components/schemas/backendv3PrintableDocumentSection' subType: $ref: '#/components/schemas/backendv3PrintableDocumentSubtype' type: $ref: '#/components/schemas/backendv3PrintableDocumentType' updatedOn: type: string format: date-time backendv3PrintableDocumentSection: type: object properties: display: type: array items: $ref: '#/components/schemas/backendv3PrintableDocumentDisplaySection' markup: type: string required: - display backendv3PrintableDocumentSubtype: type: string enum: - DOCKET - FIRE_COURSE - TRANSFER backendv3PrintableDocumentType: type: string enum: - PRODUCTION backendv3PrinterDriver: type: string enum: - EPSON - BLUEBAMBOO - EPSON_WIDTH_33 - EPSON_WIDTH_48 - BIXOLON_R300 - EPSON_FP90 - STAR_TSP_BT - STAR_TSP100_USB - STAR_TSP100_LAN - STAR_SM_2I - STAR_SM_3I - EPSON_M30 - EPSON_M30_NET - EPSON_M30_USB - SEIKO_NET - SEIKO_RPD10_BT - SEIKO_MPB20_BT - EPSON_M10 - EPSON_M10_NET - EPSON_L90 - STAR_MC_PRINT_3_LAN - STAR_MC_PRINT_3_USB - STAR_TSP143IV_LAN - STAR_TSP650II_BT - STAR_SP700_LAN backendv3PrinterProfileDto: type: object properties: businessLocationName: type: string copies: type: integer format: int32 maximum: 5 minimum: 1 errors: {} fallbackHeader: type: boolean fiscal: type: boolean id: type: integer format: int64 name: type: string maxLength: 64 minLength: 0 printers: type: array items: $ref: '#/components/schemas/backendv3PrintersDto' required: - name backendv3PrintersDto: type: object properties: businessLocationName: type: string disableStatusCheck: type: boolean driver: $ref: '#/components/schemas/backendv3PrinterDriver' enableSecurePrinting: type: boolean errors: {} fiscal: type: boolean hardwareAddress: type: string hwaddressUsed: type: boolean id: type: integer format: int64 ipAddress: type: string ipaddressUsed: type: boolean name: type: string maxLength: 64 minLength: 0 ownQRCodeEncoder: type: boolean required: - driver - name backendv3ProductCriteriaDto: type: object properties: any: type: boolean errors: {} productId: type: integer format: int64 productName: type: string backendv3ProductDto: type: object properties: defaultAccountingGroup: $ref: '#/components/schemas/backendv3AccountingGroupDto' id: type: integer format: int64 name: type: string backendv3ProductFilterDto: type: object properties: errors: {} items: type: array items: $ref: '#/components/schemas/backendv3ProductFilterItemDto' type: $ref: '#/components/schemas/backendv3ProductFilterType' required: - type backendv3ProductFilterItemDto: type: object properties: accountingGroupId: type: integer format: int64 accountingGroupName: type: string errors: {} id: type: integer format: int64 maxCount: type: integer format: int32 productId: type: integer format: int64 productName: type: string required: - accountingGroupId - maxCount backendv3ProductFilterType: type: string enum: - INCLUDE - EXCLUDE backendv3ProductPriceDto: type: object properties: amount: type: number format: double tag: $ref: '#/components/schemas/backendv3TagDto' backendv3ProductRefDto: type: object properties: id: type: integer format: int64 name: type: string priceMode: $ref: '#/components/schemas/backendv3PriceModeDto' sku: type: string backendv3ProductionCenterSelection: type: string enum: - ALL - SOME - NONE - LEGACY backendv3ProductionDocketFontSize: type: string enum: - SMALL - MEDIUM - LARGE backendv3ProductionModifierCategoryEnumDto: type: string enum: - COMMENT - ADD_ON - REMOVAL - WARNING backendv3PropertyExpression: type: object properties: child: $ref: '#/components/schemas/backendv3PropertyExpression' id: type: string leaf: $ref: '#/components/schemas/backendv3PropertyExpression' name: type: string parent: $ref: '#/components/schemas/backendv3PropertyExpression' parentName: type: string parentPath: type: string propertyName: type: string propertyPath: type: string rootProperty: $ref: '#/components/schemas/backendv3PropertyExpression' backendv3PunchCompletionDto: type: object properties: complete: type: boolean current: type: integer format: int32 name: type: string percent: type: integer format: int32 remaining: type: integer format: int32 target: type: integer format: int32 backendv3PunchConfigurationItemDto: type: object properties: cumulative: type: boolean errors: {} fromDate: type: string format: date-time id: type: integer format: int64 name: type: string maxLength: 128 minLength: 0 rewardProductFilter: $ref: '#/components/schemas/backendv3ProductFilterDto' targetProductFilter: $ref: '#/components/schemas/backendv3ProductFilterDto' targetQuantity: type: integer format: int32 toDate: type: string format: date-time required: - fromDate - name - toDate backendv3PunchLineDto: type: object properties: completion: $ref: '#/components/schemas/backendv3PunchCompletionDto' id: type: integer format: int64 punchConfigurationItem: $ref: '#/components/schemas/backendv3PunchConfigurationItemDto' backendv3QuantityDto: type: object properties: dimension: $ref: '#/components/schemas/backendv3DimensionDto' errors: {} uom: type: string value: type: number backendv3ReceiptHeaderCaseDto: type: string enum: - DEFAULT - UPPER - LOWER backendv3ReceiptHeaderDto: type: object properties: font: type: string fullLineCode: type: string justification: type: string text: type: string textCase: $ref: '#/components/schemas/backendv3ReceiptHeaderCaseDto' type: $ref: '#/components/schemas/backendv3ReceiptHeaderTypeDto' backendv3ReceiptHeaderTypeDto: type: string enum: - DEFAULT - FISCAL_IDENTIFIER - FISCAL_IDENTIFIER2 - FISCAL_IDENTIFIER3 - TRADE_NAME - COMPANY_NAME - LOCATION - COUNTRY backendv3ReceiptTemplateDto: type: object properties: archived: type: boolean assigned: type: boolean createdOn: type: string format: date-time customLocalizations: type: object additionalProperties: $ref: '#/components/schemas/backendv3LocalizationLanguage' default: type: boolean defaultLocale: type: string id: type: integer format: int64 name: type: string sections: type: array items: $ref: '#/components/schemas/backendv3PrintableDocumentSection' updatedOn: type: string format: date-time backendv3RemoteAPICredentialType: type: string enum: - CREDENTIAL_TYPE_GOOGLE_API backendv3ReportCustomizationDto: type: object properties: businessId: type: integer format: int64 businessLocationId: type: integer format: int64 effectiveFooterHeight: type: string effectiveHeaderHeight: type: string errors: {} footerHeight: type: string headerHeight: type: string id: type: integer format: int64 messages: type: array items: $ref: '#/components/schemas/backendv3ReportCustomizationMessageDto' reportName: type: string sharedReportCustomization: $ref: '#/components/schemas/backendv3ReportCustomizationDto' backendv3ReportCustomizationMessageDto: type: object properties: id: type: integer format: int64 key: type: string languageCode: type: string message: type: string reportCustomizationId: type: integer format: int64 backendv3ReportDelayDto: type: string enum: - NEXT_24H - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY - END_OF_MONTH backendv3ReportDetailType: type: string enum: - NONE - ACCOUNTING_GROUPS - ACCOUNTING_GROUPS_AND_ITEMS backendv3ReportFormat: type: string enum: - PDF - XLS - CSV - TSV backendv3ReportItemDtoConsumerDto: type: object properties: e: type: object properties: cause: type: object properties: localizedMessage: type: string message: type: string stackTrace: type: array items: type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: type: object properties: localizedMessage: type: string message: type: string stackTrace: type: array items: type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean localizedMessage: type: string message: type: string stackTrace: type: array items: type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: type: object properties: localizedMessage: type: string message: type: string stackTrace: type: array items: type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean subject: $ref: '#/components/schemas/backendv3ConsumerDto' backendv3ReportItemDtoImportItemDto: type: object properties: e: type: object properties: cause: type: object properties: localizedMessage: type: string message: type: string stackTrace: type: array items: type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: type: object properties: localizedMessage: type: string message: type: string stackTrace: type: array items: type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean localizedMessage: type: string message: type: string stackTrace: type: array items: type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: type: object properties: localizedMessage: type: string message: type: string stackTrace: type: array items: type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean subject: $ref: '#/components/schemas/backendv3ImportItemDto' backendv3ReportScope: type: string enum: - DAY - WEEK - MONTH - YEAR backendv3ReportType: type: string enum: - FR_FINANCIAL_REPORT_WINBIZ - FR_SHIFT_REPORT - FR_CANCELLATIONS_PRINT - FR_CANCELLATIONS - FR_ACCOUNTING_PRODUCT_BREAKDOWN - FR_STATISTIC_PRODUCT_BREAKDOWN - FR_ACCPROFILE_PRODUCT_BREAKDOWN - FR_DISCOUNT_BREAKDOWN - FR_DISCOUNT_DETAILS - FR_MONTHLY_DISCOUNT - FR_TEXT_MESSAGES - HR_MONTHLY_HOURS - HR_MONTHLY_HOURS_PAYCHEX - HR_MONTHLY_HOURS_MIRUS - CO_CONSUMERS - ST_LOW_STOCK_POSITIONS - ST_STOCK_POSITIONS - CF_POS_LIST - LS_PAY_DAILY_CONSOLIDATED - LS_PAY_DAILY_SETTLEMENTS_CONSOLIDATED - LS_PAY_DAILY_SETTLED_PAYMENTS_CONSOLIDATED - INSIGHTS_DAILY_DIGEST - TX_RECEIPTS - TX_TRANSACTIONS - TX_PAYMENTS - FR_MONTHLY_TURNOVER - FR_FINANCIAL_REPORT_PARTIAL - FR_FINANCIAL_REPORT_FULL - FR_FINANCIAL_REPORT_MIRUS - FR_FINANCIAL_REPORT_GENERIC - FR_FINANCIAL_REPORT_ACCOUNTING - FR_FINANCIAL_REPORT_STATISTIC - FR_FINANCIAL_REPORT_ACCPROFILE - FR_FINANCIAL_REPORT_SAGE - FR_FINANCIAL_EXPORT_ACCOUNTING - FR_FINANCIAL_EXPORT_STATISTIC - FR_FINANCIAL_EXPORT_ACCPROFILE - FR_STAFF_REPORT - FR_STAFF_REPORT_ACCOUNTING - FR_STAFF_REPORT_STATISTIC - FR_STAFF_REPORT_ACCPROFILE - FR_DEVICE_REPORT - FR_DEVICE_REPORT_ACCOUNTING - FR_DEVICE_REPORT_STATISTIC - FR_DEVICE_REPORT_ACCPROFILE - FR_CASH_REPORT_PRINT - FR_CASH_REPORT - FI_RECEIPTS - FI_TRANSACTIONS - FI_PAYMENTS - FI_INVOICES - FI_FISCAL_REPORT - FI_FLOAT_REPORT_PRINT - FI_FLOAT_REPORT - BR_MONTHLY_TURNOVER - BR_BUSINESS_REPORT_PARTIAL - BR_BUSINESS_REPORT_FULL - BR_BUSINESS_REPORT_MIRUS - BR_BUSINESS_REPORT_GENERIC - BR_BUSINESS_REPORT_ACCOUNTING - BR_BUSINESS_REPORT_STATISTIC - BR_BUSINESS_REPORT_ACCPROFILE - BR_BUSINESS_REPORT_SAGE - BR_BUSINESS_EXPORT_ACCOUNTING - BR_BUSINESS_EXPORT_STATISTIC - BR_BUSINESS_EXPORT_ACCPROFILE - BR_STAFF_REPORT - BR_STAFF_REPORT_ACCOUNTING - BR_STAFF_REPORT_STATISTIC - BR_STAFF_REPORT_ACCPROFILE - BR_DEVICE_REPORT - BR_DEVICE_REPORT_ACCOUNTING - BR_DEVICE_REPORT_STATISTIC - BR_DEVICE_REPORT_ACCPROFILE backendv3ResellerDto: type: object properties: active: type: boolean addressLine1: type: string maxLength: 256 minLength: 0 addressLine2: type: string maxLength: 6256 minLength: 0 billingEmail: type: string boUserCreationByCustomerAllowed: type: boolean city: type: string maxLength: 256 minLength: 0 country: type: string maxLength: 8 minLength: 0 creationDate: type: string format: date-time currencyCode: type: string errors: {} fiscalIdentifier: type: string hideCustomerBilling: type: boolean id: type: integer format: int64 locale: type: string managedBilling: type: boolean managedInvoicing: type: boolean name: type: string maxLength: 128 minLength: 0 newAccountDiscount: type: integer format: int32 newAccountSetupFees: type: number owner: $ref: '#/components/schemas/backendv3StaffDto' salesforceResellerId: type: string maxLength: 64 minLength: 0 supportEmail: type: string maxLength: 128 minLength: 0 supportPhone: type: string maxLength: 64 minLength: 0 supportUrl: type: string maxLength: 128 minLength: 0 timeZone: type: string maxLength: 64 minLength: 0 zipCode: type: string zopimApiKey: type: string required: - name backendv3RichItemDescriptionDto: type: object properties: description: type: string maxLength: 4000 minLength: 0 displayName: type: string localeCode: type: string maxLength: 7 minLength: 2 backendv3SaleableItemDto: type: object properties: active: type: boolean default: true aggregationType: $ref: '#/components/schemas/backendv3AggregationType' alcoholPercentage: type: number automaticCostPrice: type: boolean default: false barCode: type: string deprecated: true barCodes: type: array items: type: string barcodeQuantityDecimals: type: integer format: int32 default: 2 businessLocationId: type: integer format: int64 businessLocationName: type: string chargesAllowed: type: boolean default: true components: type: array items: $ref: '#/components/schemas/backendv3ComponentDto' containsAlcohol: type: boolean content: $ref: '#/components/schemas/backendv3QuantityDto' cookTime: type: integer format: int32 costPrice: type: number courseCount: type: integer format: int32 default: 1 defaultAccountingGroupId: type: integer format: int64 defaultOption: type: boolean default: false defaultPrice: type: number format: double discountsAllowed: type: boolean default: true docketName: type: string maxLength: 64 minLength: 0 enableSalesRestriction: type: boolean default: true errors: {} externalPrice: type: boolean default: false externalQuantity: type: boolean default: false externalQuantityDivider: type: integer format: int32 default: 0 externalQuantityTare: type: integer format: int32 default: 0 externalQuantityTareEnabled: type: boolean default: false extraPrice: type: integer format: int32 freeAllowed: type: boolean default: true generateVoucher: type: boolean default: false id: type: integer format: int64 insertionPhase: type: integer format: int32 default: -1 instructionsGroupingAllowed: type: boolean default: false inventorySource: $ref: '#/components/schemas/backendv3InventorySourceDto' default: PURCHASED items: type: array items: $ref: '#/components/schemas/backendv3SaleableItemDto' linkedToCovers: type: boolean default: false manuallyPriced: type: boolean matchable: type: boolean default: false maxAggregation: type: integer format: int32 minimum: 1 mergeSublines: type: boolean default: false minAggregation: type: integer format: int32 minimum: 0 name: type: string maxLength: 180 minLength: 0 nameOverride: type: boolean default: false negativePrice: type: boolean openSequence: type: boolean default: false parentItems: type: array items: type: integer format: int64 uniqueItems: true priceAsPercent: type: boolean priceMode: $ref: '#/components/schemas/backendv3PriceModeDto' prices: type: array items: $ref: '#/components/schemas/backendv3ProductPriceDto' producible: type: boolean default: false productId: type: integer format: int64 productionCenter: type: string maxLength: 180 minLength: 0 productionCenterSelection: $ref: '#/components/schemas/backendv3ProductionCenterSelection' default: LEGACY productionCenters: type: array items: $ref: '#/components/schemas/backendv3ItemProductionCenterDto' uniqueItems: true productionModifiers: type: array items: type: integer format: int64 referenceCount: type: integer format: int32 secondaryProductionCenter: type: string maxLength: 180 minLength: 0 secondaryProductionCenterSelection: $ref: '#/components/schemas/backendv3ProductionCenterSelection' default: LEGACY separateOnReceipt: type: boolean default: false sharingType: $ref: '#/components/schemas/backendv3ItemSharingType' sku: type: string maxLength: 32 minLength: 0 splitAllowed: type: boolean default: false statisticGroup: type: string maxLength: 500 minLength: 0 status: $ref: '#/components/schemas/backendv3ItemStatus' stockDisabled: type: boolean default: false stockId: type: integer format: int64 subItem: type: boolean default: false tags: type: string maxLength: 500 minLength: 0 taxProfileId: type: integer format: int64 type: $ref: '#/components/schemas/backendv3ItemType' uiButton: $ref: '#/components/schemas/backendv3POSButtonDto' voucherValue: type: integer format: int32 default: 0 voucherValueDouble: type: number format: double required: - name backendv3ScreenButtonDto: type: object properties: buttons: type: array items: $ref: '#/components/schemas/backendv3ScreenButtonDto' uniqueItems: true color: type: string fieldToCopiedObject: $ref: '#/components/schemas/backendv3BaseButtonDtoObject' writeOnly: true id: type: integer format: int64 name: type: string backendv3SortDirection: type: string enum: - ASC - DESC backendv3SortOrder: type: string enum: - ASC - DESC backendv3StaffAccess: type: string enum: - STAFF_ACCESS_MANAGER - STAFF_ACCESS_USER - STAFF_ACCESS_LOGIN_BUTTON - STAFF_ACCESS_NO_ACCESS - STAFF_ACCESS_TRAINING - STAFF_ACCESS_PAY_BUTTON - STAFF_ACCESS_API backendv3StaffDto: type: object properties: acceptedGdprTc: type: string format: date-time acceptedTC: type: string format: date-time deprecated: true active: type: boolean apiKey: type: string apiUser: type: boolean availableDiscounts: type: array items: $ref: '#/components/schemas/backendv3DiscountDto' uniqueItems: true boUser: type: boolean createdOn: type: string format: date-time displayName: type: string drawerToUse: type: integer format: int32 emailAddress: type: string format: email maxLength: 128 minLength: 0 errors: {} firstName: type: string maxLength: 128 minLength: 0 fiscalIdentifierList: type: array items: $ref: '#/components/schemas/backendv3StaffFiscalIdentifierDto' fullName: type: string getiButton: type: string maxLength: 64 minLength: 0 group: $ref: '#/components/schemas/backendv3StaffGroupDto' id: type: integer format: int64 implicitRoles: type: array items: type: string lastName: type: string maxLength: 128 minLength: 0 localOrderId: type: integer format: int32 locale: type: string payAtTableId: type: string pinCode: type: string maxLength: 6 minLength: 0 posUser: type: boolean qrToken: type: string qrTokenEnabled: type: boolean reportAccess: $ref: '#/components/schemas/backendv3StaffReportAccess' roles: type: array items: $ref: '#/components/schemas/backendv3StaffRoleDto' staffType: $ref: '#/components/schemas/backendv3StaffAccess' userIdentifier: type: string username: type: string maxLength: 128 minLength: 0 viewedRN: type: string format: date-time deprecated: true visible: type: boolean required: - pinCode backendv3StaffFiscalIdentifierDto: type: object properties: fiscalId: type: string fiscalRegion: type: string staffId: type: integer format: int64 backendv3StaffGroupDto: type: object properties: authorizedCashDrawersIds: type: array items: type: integer format: int64 uniqueItems: true availableDiscounts: type: array items: $ref: '#/components/schemas/backendv3DiscountDto' uniqueItems: true businessId: type: integer format: int64 declareTips: type: boolean empty: type: boolean enforceDrawerForCash: type: boolean errors: {} floatCountMode: $ref: '#/components/schemas/backendv3FloatCountMode' gratuityCutPct: type: integer format: int32 gratuityCutPercent: type: number format: double gratuityInCash: type: boolean id: type: integer format: int64 initialLevelAmount: type: number format: double initialLevelCents: type: integer format: int32 manageDiscounts: type: boolean name: type: string maxLength: 128 minLength: 0 posAccessForbidden: type: boolean reportAccess: $ref: '#/components/schemas/backendv3StaffReportAccess' roles: type: array items: $ref: '#/components/schemas/backendv3StaffRoleDto' uniqueItems: true required: - businessId - name backendv3StaffReportAccess: type: string enum: - STAFF_REPORT_MGR_ACCESS - STAFF_REPORT_MGR_BLIND_ACCESS - STAFF_REPORT_OWN_ACCESS - STAFF_REPORT_OWN_BLIND_ACCESS - STAFF_REPORT_NO_ACCESS backendv3StaffRoleDto: type: object properties: boRole: type: boolean hidden: type: boolean id: type: integer format: int32 manageableBy: type: array items: $ref: '#/components/schemas/backendv3StaffRoleLiteDto' uniqueItems: true name: type: string backendv3StaffRoleLiteDto: type: object properties: boRole: type: boolean hidden: type: boolean id: type: integer format: int32 name: type: string backendv3StatsResultInfoDto: type: object properties: amount: type: number format: double count: type: number format: double backendv3StatsResultInfoExDto: type: object properties: amount: type: number format: double amountBis: type: number format: double count: type: number format: double rounding: type: number format: double backendv3Status: type: string enum: - ACTIVE - GRACE_PERIOD - PAID - UNPAID - REVOKED - EXPIRED - NO_LICENSE backendv3StockCriteriaDto: type: object properties: any: type: boolean errors: {} stockId: type: integer format: int64 stockName: type: string backendv3StockMovementReasonDto: type: string enum: - STOCK_TRANSFER - ARRIVAL - CANCELLED_SALE - CANCELLED_DAMAGE - INVENTORY - SALE - DAMAGE - PRODUCTION backendv3StockMovementTypeDto: type: string enum: - INPUT - OUTPUT backendv3StockPositionActionDto: type: object discriminator: propertyName: type properties: businessLocationId: type: integer format: int64 errors: {} id: type: integer format: int64 name: type: string stockPositionActionTriggerId: type: integer format: int64 type: type: string required: - type backendv3StockPositionActionEmailDto: allOf: - $ref: '#/components/schemas/backendv3StockPositionActionDto' - type: object properties: mailDistributionListId: type: integer format: int64 mailDistributionListName: type: string required: - mailDistributionListId backendv3StockPositionActionEmailReportDto: allOf: - $ref: '#/components/schemas/backendv3StockPositionActionDto' - type: object properties: mailDistributionListId: type: integer format: int64 mailDistributionListName: type: string reportDelay: $ref: '#/components/schemas/backendv3ReportDelayDto' reportHour: type: integer format: int32 maximum: 23 minimum: 0 reportMinute: type: integer format: int32 maximum: 59 minimum: 0 required: - mailDistributionListId - reportDelay backendv3StockPositionActionTriggerDto: type: object discriminator: propertyName: type properties: actions: type: array items: oneOf: - $ref: '#/components/schemas/backendv3StockPositionActionEmailDto' - $ref: '#/components/schemas/backendv3StockPositionActionEmailReportDto' - $ref: '#/components/schemas/backendv3StockPositionActionWebhookDto' businessLocationId: type: integer format: int64 errors: {} id: type: integer format: int64 productCriteria: $ref: '#/components/schemas/backendv3ProductCriteriaDto' stockCriteria: $ref: '#/components/schemas/backendv3StockCriteriaDto' type: type: string required: - type backendv3StockPositionActionWebhookDto: allOf: - $ref: '#/components/schemas/backendv3StockPositionActionDto' - type: object properties: stockWebhookEndpointId: type: integer format: int64 stockWebhookEndpointName: type: string backendv3StockRedirectionDto: type: object properties: errors: {} redirectedStockId: type: integer format: int64 targetStockId: type: integer format: int64 backendv3StockRefDto: type: object properties: id: type: integer format: int64 name: type: string backendv3TagDto: type: object properties: autoGratuityOnQuickPaymentShortcut: type: boolean available: type: boolean changeTaxOnExistingItems: type: boolean code: type: string maxLength: 32 minLength: 0 commitScriptUrl: type: string maxLength: 255 minLength: 0 completionMode: $ref: '#/components/schemas/backendv3CompletionMode' consumerRequired: type: boolean defaultTag: type: boolean deliveryMode: $ref: '#/components/schemas/backendv3DeliveryMode' deliverySlipOnReceipt: type: boolean errors: {} forceNoPrintOnlineOrders: type: boolean hiddenOnPos: type: boolean id: type: integer format: int64 minDeliveryDelay: type: integer format: int32 name: type: string maxLength: 64 minLength: 0 playSoundOnOnlineOrders: type: boolean printNoteOnCreation: type: boolean printNoteOnReady: type: boolean qrToken: type: string qrTokenEnabled: type: boolean schedules: type: array items: $ref: '#/components/schemas/backendv3TagScheduleDto' serviceChargeItemId: type: integer format: int64 deprecated: true serviceChargePercent: type: integer format: int32 maximum: 50 minimum: 0 serviceChargeProductId: type: integer format: int64 signageDeviceIpAddress: type: string sticky: type: boolean required: - code - completionMode - deliveryMode - name backendv3TagScheduleDto: type: object properties: active: type: boolean days: type: string maxLength: 128 minLength: 0 endTime: type: integer format: int32 errors: {} startTime: type: integer format: int32 useWhenAccount: type: boolean useWhenDirect: type: boolean required: - days backendv3TakingsReportValueDto: type: object properties: count: type: integer format: int32 errors: {} id: type: integer format: int64 paymentMethod: $ref: '#/components/schemas/backendv3PaymentMethodDto' posValue: type: integer format: int32 realValue: type: integer format: int32 storedValue: type: integer format: int32 backendv3TaxDto: type: object properties: accountingReference: type: string maxLength: 128 minLength: 0 category: $ref: '#/components/schemas/backendv3Category' code: type: string maxLength: 32 minLength: 0 description: type: string maxLength: 128 minLength: 0 errors: {} id: type: integer format: int64 rate: type: number format: double maximum: 100 minimum: 0 taxIncluded: type: boolean required: - code - description - rate backendv3TaxLineDto: type: object properties: errors: {} id: type: integer format: int64 maxGroupQuantity: type: number format: double maxLinePrice: type: number format: double maxPrice: type: number format: double maxTaxTotalPrice: type: number format: double maxTotalPrice: type: number format: double minGroupQuantity: type: number format: double minLinePrice: type: number format: double minPrice: type: number format: double minTaxTotalPrice: type: number format: double minTotalPrice: type: number format: double multiTax: type: boolean notValidAfter: type: string format: date-time notValidBefore: type: string format: date-time tagCode: type: string tagId: type: integer format: int64 tagName: type: string taxCode: type: string taxDescription: type: string taxId: type: integer format: int64 taxOnNegativePrice: type: boolean backendv3TaxSummaryDto: type: object properties: amount: type: number amountLessTax: type: number amountWithTax: type: number code: type: string description: type: string rate: type: number backendv3TipCalculationMode: type: string enum: - BEFORE - AFTER backendv3TransactionLineDto: type: object properties: accountId: type: integer format: int64 active: type: boolean activeAccountingGroupId: type: integer format: int64 activeTaxDescription: type: string activeTaxId: type: integer format: int64 amount: type: number format: double coverIndex: type: integer format: int32 createDate: type: string format: date-time deviceDescription: type: string deviceId: type: integer format: int64 discountIds: type: array items: type: integer format: int64 grossAmount: type: number format: double grossUnitAmount: type: number format: double id: type: integer format: int64 itemDescription: type: string itemId: type: integer format: int64 manualAmount: type: number format: double manualDiscount: type: number format: double manualPrice: type: boolean modificationDate: type: string format: date-time nameOverride: type: string parentLineId: type: integer format: int64 phase: type: integer format: int32 quantity: type: number format: double staffDescription: type: string staffId: type: integer format: int64 subLines: type: array items: $ref: '#/components/schemas/backendv3TransactionLineDto' totalAmount: type: number format: double unitAmount: type: number format: double backendv3UnitSystemDto: type: string enum: - METRIC - IMPERIAL - MIX_METRIC_IMPERIAL - US_CUSTOMARY - ALL backendv3UpdateAllergenItem: type: object description: An allergen item in an update request. If id is null, a new allergen is created. properties: id: type: - integer - 'null' format: int64 name: type: string description: The name of the allergen. maxLength: 128 minLength: 1 required: - name backendv3UpdateNoteItem: type: object description: A note item in an update request. If id is null, a new note is created. properties: content: type: string description: The content of the note. maxLength: 128 minLength: 1 displayedOnOrderTickets: type: boolean description: Whether the note should be displayed on order tickets. id: type: - integer - 'null' format: int64 required: - content - displayedOnOrderTickets backendv3UserExportHeaderDto: type: object properties: errors: {} headerKey: $ref: '#/components/schemas/backendv3HeaderKey' headerTitle: type: string minLength: 1 required: - headerKey - headerTitle backendv3UserType: type: string enum: - POS - BACK_OFFICE - API - STAFF_USER backendv3VIPProgramDto: type: object properties: businessId: type: integer format: int64 discount: $ref: '#/components/schemas/backendv3DiscountDto' errors: {} filter: $ref: '#/components/schemas/backendv3ProductFilterDto' fromDate: type: string format: date-time id: type: integer format: int64 name: type: string maxLength: 128 minLength: 0 toDate: type: string format: date-time required: - businessId - discount - fromDate - name - toDate backendv3VirtualProductionCenterType: type: string enum: - IKENTOO - QSR - QSRPLUS - DIRMEIER - ANNONCER backendv3VoidReasonPrintOrderTicketDto: type: string enum: - YES - NO backendv3VoidReasonTypeDto: type: string enum: - VOID - WASTE backendv3WebExtensionDomainDto: type: object properties: errors: {} id: type: integer format: int64 mask: type: string maxLength: 128 minLength: 0 required: - mask backendv3WebExtensionDto: type: object properties: authPassword: type: string maxLength: 128 minLength: 0 authUserName: type: string maxLength: 128 minLength: 0 domains: type: array items: $ref: '#/components/schemas/backendv3WebExtensionDomainDto' uniqueItems: true errors: {} experimentalFeaturesEnabled: type: boolean id: type: integer format: int64 jsContext: type: boolean name: type: string maxLength: 64 minLength: 0 qrToken: type: string qrTokenEnabled: type: boolean url: type: string maxLength: 65535 minLength: 0 useLegacyEngine: type: boolean required: - name - url backendv3WebhookHeaderDto: type: object properties: errors: {} key: type: string value: type: string webhookEndpointId: type: integer format: int64 required: - key backendv3WebhookMethodDto: type: string enum: - GET - PUT - POST - PATCH - DELETE backendv3WebhookParameterDto: type: object properties: errors: {} key: type: string value: type: string webhookEndpointId: type: integer format: int64 required: - key be-tax-apiTaxRule: properties: id: example: 12345 type: integer format: int64 taxId: example: 12345 type: integer format: int64 tagId: example: 1241 type: integer format: int64 validForNegativePrice: example: true type: boolean conditions: items: $ref: '#/components/schemas/be-tax-apiTaxRuleCondition' type: array multiTax: example: true type: boolean type: object be-tax-apiTaxRuleCondition: properties: type: $ref: '#/components/schemas/be-tax-apiTaxConditionType' range: $ref: '#/components/schemas/be-tax-apiRange' type: object be-tax-apiTax: properties: id: example: 1245 type: integer format: int64 code: example: TAX type: string description: example: Regular tax type: string rate: example: 0.1 type: number isTaxIncluded: example: true type: boolean accountingReference: example: ref type: string taxCategory: $ref: '#/components/schemas/be-tax-apiTaxCategory' type: object be-tax-apiTaxConditionType: enum: - ITEM_UNIT_PRICE - TRANSACTION_LINE_PRICE - SUM_OF_ITEMS_WITH_THE_SAME_TAX_PROFILE - SUM_OF_ALL_THE_ITEMS_ON_THE_SAME_RECEIPT - VALIDITY_RANGE - ACCOUNT_GROUP_QUANTITY type: string be-tax-apiTaxCategory: enum: - NOT_TAXED - AVERAGED_REDUCED - AVERAGED_REGULAR - REDUCED - REGULAR - HIGH - MID - LOW - ZERO_RATE - PROVINCIAL - FEDERAL type: string be-tax-apiTaxRuleFull: properties: id: example: 12345 type: integer format: int64 tax: $ref: '#/components/schemas/be-tax-apiTax' tagId: example: 1241 type: integer format: int64 validForNegativePrice: example: true type: boolean conditions: items: $ref: '#/components/schemas/be-tax-apiTaxRuleCondition' type: array multiTax: example: true type: boolean type: object be-tax-apiDateRange: allOf: - $ref: '#/components/schemas/be-tax-apiRange' - properties: rangeEnd: format: date-time type: string rangeStart: format: date-time type: string type: object type: object be-tax-apiNumberRange: allOf: - $ref: '#/components/schemas/be-tax-apiRange' - properties: rangeEnd: type: number rangeStart: type: number type: object type: object be-tax-apiRange: discriminator: propertyName: rangeType oneOf: - $ref: '#/components/schemas/be-tax-apiDateRange' - $ref: '#/components/schemas/be-tax-apiNumberRange' properties: rangeType: type: string required: - rangeType business-config-apiUserRoleDto: type: object properties: id: type: integer format: int64 name: type: string business-config-apiPrinterDto: type: object properties: id: type: integer format: int64 name: type: string driver: type: string business-config-apiPrintingProfileDto: type: object properties: id: type: integer format: int64 description: The unique identifier of the printer profile. name: type: string maxLength: 64 description: The name of the printer profile. copies: type: integer format: int32 minimum: 1 maximum: 5 description: The number of copies to print. printers: type: array items: $ref: '#/components/schemas/business-config-apiFullPrintersDtoResponse' description: A list of printers associated with the profile. businessLocationName: type: string description: The name of the business location. fiscal: type: boolean description: Indicates if the profile is fiscal. fallbackHeader: type: boolean description: Indicates if the profile uses a fallback header. required: - name - copies business-config-apiFullPrintersDtoResponse: type: object properties: id: type: integer format: int64 description: The unique identifier of the printer. name: type: string maxLength: 64 description: The name of the printer. ipAddress: type: string description: The IP address of the printer. hardwareAddress: type: string description: The hardware (MAC) address of the printer. driver: $ref: '#/components/schemas/business-config-apiFullPrinterDriverDto' disableStatusCheck: type: boolean description: Indicates if the status check is disabled. ownQRCodeEncoder: type: boolean description: Indicates if the printer has its own QR code encoder. businessLocationName: type: string description: The name of the business location. required: - name - driver business-config-apiFullPrinterDriverDto: type: object properties: name: type: string description: The name of the driver. fiscal: type: boolean description: Indicates if the printer is fiscal example: false hwAddress: type: boolean description: Indicates if the printer requires a hardware address example: true ipAddress: type: boolean description: Indicates if the printer supports an IP address example: true statusCheckSupported: type: boolean description: Indicates if the printer supports status checks example: true business-config-apiAccountProfileDto: type: object properties: id: type: integer format: int64 name: type: string code: type: string sticky: type: boolean default: false available: type: boolean default: true deliveryMode: $ref: '#/components/schemas/business-config-apiDeliveryMode' isDefault: type: boolean default: false business-config-apiCompletionMode: type: string enum: - IMMEDIATE - ON_DELIVERY - ON_DELIVERED - MANUALLY default: IMMEDIATE business-config-apiDeliveryMode: type: string enum: - NONE - COLLECTION - REMOTE default: NONE business-config-apiAccountProfileScheduleDto: type: object properties: id: type: integer format: int64 active: type: boolean startTime: type: integer format: int64 endTime: type: integer format: int64 days: type: string useWhenDirect: type: boolean default: true useWhenAccount: type: boolean default: true business-config-apiAccountingGroupDto: type: object properties: available: type: boolean countForCovers: type: boolean id: type: integer format: int64 itemCount: type: integer format: int64 locationSpecific: $ref: '#/components/schemas/business-config-apiAccountingGroupLocationSpecificDto' name: type: string maxLength: 25 minLength: 0 productionCenter: type: string maxLength: 1023 minLength: 0 reference: type: string maxLength: 128 minLength: 0 secondaryProductionCenter: type: string maxLength: 1023 minLength: 0 siCount: type: integer format: int64 description: Number of saleable items in this accounting group statisticGroup: type: string maxLength: 500 minLength: 0 taxProfileCode: type: string taxProfileDescription: type: string taxProfileId: type: integer format: int64 unlinkedCount: type: integer format: int64 required: - name business-config-apiAccountingGroupLocationSpecificDto: type: object properties: exemptFromMandatoryBilling: type: boolean business-config-apiPmsParamsValue: type: object properties: label: type: string value: type: string disabled: type: boolean business-config-apiPmsParamDefinition: type: object properties: name: type: string value: type: string type: type: string options: type: array items: $ref: '#/components/schemas/business-config-apiPmsParamsValue' business-config-apiPmsDto: type: object required: - values properties: providerName: type: string nativeApiKey: type: string nativeApiUsername: type: string nativeApiPassword: type: string values: type: object additionalProperties: type: string config: type: object additionalProperties: type: string business-config-apiCreateAccountProfileScheduleDto: type: object properties: id: type: integer format: int64 active: type: boolean startTime: type: integer format: int64 endTime: type: integer format: int64 days: type: string useWhenDirect: type: boolean default: true useWhenAccount: type: boolean default: true business-config-apiFdm2InvalidSsnUserDto: type: object properties: id: type: integer format: int64 displayName: type: string business-config-apiNegativeItemDto: type: object properties: id: type: integer format: int64 name: type: string sku: type: string businessLocationId: type: integer format: int64 business-config-apiVoidReasonPrintOrderTicket: type: string default: YES enum: - YES - NO business-config-apiVoidReasonType: type: string enum: - VOID - WASTE default: VOID businessinfo-apiApiValidationErrorsDto: type: object properties: field: type: string rejectedValue: type: object message: type: string businessinfo-apiBusinessDetailsDtoV2: type: object properties: id: type: integer format: int64 name: type: string status: type: string locale: type: string priceListEnabled: type: boolean currency: type: string required: - id - name - status - locale - priceListEnabled - currency businessinfo-apiBusinessLocationLiteDto: type: object properties: id: type: integer format: int64 name: type: string businessinfo-apiAddressDto: type: object properties: addressLine1: type: string addressLine2: type: string zipCode: type: string city: type: string state: type: string country: type: string phone: type: string businessinfo-apiAddressDtoV2: type: object properties: addressLine1: type: string addressLine2: type: string zipCode: type: string city: type: string state: type: string country: type: string phone: type: string businessinfo-apiBusinessLocationDto: type: object properties: id: type: integer format: int64 businessId: type: integer format: int64 name: type: string tradeName: type: string city: type: string country: type: string status: type: string timezone: type: string creationDate: type: string format: date-time version3: type: boolean timeTrackingEnabled: type: boolean license: $ref: '#/components/schemas/businessinfo-apiLicenseDto' defaultStockId: type: integer format: int64 startOfDay: type: integer format: int32 default: 0 startOfWeek: type: string moveToProdDate: type: string address: $ref: '#/components/schemas/businessinfo-apiAddressDto' salesforceId: type: string active: type: boolean isMigratedProvisioning: type: boolean isTemplate: type: boolean localOrdersKey: type: string overrideCode: type: integer format: int32 default: 0 contractStartDate: type: string format: date-time billingState: type: string maxCovers: type: integer format: int32 default: 0 businessinfo-apiLocationDetailsDtoV2: type: object properties: id: type: integer format: int64 businessId: type: integer format: int64 name: type: string tradeName: type: string city: type: string country: type: string status: type: string timezone: type: string creationDate: type: string format: date-time version3: type: boolean timeTrackingEnabled: type: boolean defaultStockId: type: integer format: int64 startOfDay: type: integer format: int32 default: 0 startOfWeek: type: string moveToProdDate: type: string address: $ref: '#/components/schemas/businessinfo-apiAddressDtoV2' salesforceId: type: string active: type: boolean isMigratedProvisioning: type: boolean isTemplate: type: boolean localOrdersKey: type: string overrideCode: type: integer format: int32 default: 0 contractStartDate: type: string format: date-time billingState: type: string maxCovers: type: integer format: int32 default: 0 license: $ref: '#/components/schemas/businessinfo-apiLicenseDtoV2' fdmEnabled: type: boolean description: "Indicates whether a Fiscal Data Module (FDM / \"blackbox\") is enabled for this\nbusiness location. Always `false` for non-Belgian locations. `true` for Belgian\n(BE) locations when at least one record exists in FISCAL_DATA_MODULE or\nFISCAL_DATA_MODULE_2 with `unblackboxed = false`.\n" required: - id - businessId - name - city - country - status - timezone - version3 - active - isMigratedProvisioning - isTemplate - license businessinfo-apiLicenseDevicesDtoV2: type: object properties: businessLocationId: type: integer format: int64 type: type: string grantedDevices: type: integer format: int32 consumedDevices: type: integer format: int32 required: - businessLocationId - type - grantedDevices - consumedDevices businessinfo-apiLicenseDevicesDto: type: object properties: businessLocationId: type: integer format: int64 type: type: string grantedDevices: type: integer format: int32 consumedDevices: type: integer format: int32 businessinfo-apiLicenseDtoV2: type: object properties: expirationDate: type: string format: date model: type: string status: type: string devices: uniqueItems: true type: array items: $ref: '#/components/schemas/businessinfo-apiLicenseDevicesDtoV2' required: - model - status - devices businessinfo-apiLicenseDto: type: object properties: expirationDate: type: string format: date model: type: string status: type: string devices: uniqueItems: true type: array items: $ref: '#/components/schemas/businessinfo-apiLicenseDevicesDto' businessinfo-apiBusinessDtoV2: type: object properties: id: type: integer format: int64 name: type: string currency: type: string priceListEnabled: type: boolean default: false managedBilling: type: boolean default: false status: type: string inventoryEnabled: type: boolean default: false productModifiersEnabled: type: boolean locale: type: string creationDate: type: string format: date-time activeLocationsCount: type: integer format: int32 locationsManagerId: type: integer format: int64 locations: type: array items: $ref: '#/components/schemas/businessinfo-apiLocationDetailsDtoV2' required: - id - name - currency - priceListEnabled - managedBilling - status - inventoryEnabled - productModifiersEnabled - locale - activeLocationsCount - locations businessinfo-apiLicenseStatusEnumDto: type: string enum: - ACTIVE - GRACE_PERIOD - PAID - UNPAID - REVOKED - EXPIRED - NO_LICENSE businessinfo-apiPageMetadata: type: object properties: total: type: integer format: int64 totalPages: type: integer format: int32 current: type: object properties: page: type: integer format: int32 pageSize: type: integer format: int32 categorization-serviceClassifiedItem: properties: accounting_group: title: Accounting Group type: string example: drinks business_location_id: title: Business Location Id type: string example: '2212' item_id: title: Item Id type: string example: '11111' item_name: title: Item Name type: string example: Amarone della valpolicella 2 l1_category: $ref: '#/components/schemas/categorization-serviceL1Category' required: - item_name - accounting_group - business_location_id - item_id - l1_category title: ClassifiedItem type: object categorization-serviceClassifiedItemV2: properties: accounting_group: title: Accounting Group type: string example: drinks business_location_id: title: Business Location Id type: string example: '2212' item_id: title: Item Id type: string example: '11111' item_name: title: Item Name type: string example: Grilled Beef Burger hierarchy_version: title: Hierarchy version type: string nullable: true example: '2025-06-26' l1_category: $ref: '#/components/schemas/categorization-serviceCategoryScore' l2_category: allOf: - $ref: '#/components/schemas/categorization-serviceCategoryScore' nullable: true l3_primary_category: allOf: - $ref: '#/components/schemas/categorization-serviceCategoryScore' nullable: true description: Primary L3 facet. The underlying dimension depends on the item's L1/L2 path and may change (currently the type of protein for savory food and the beverage type) l3_secondary_category: allOf: - $ref: '#/components/schemas/categorization-serviceCategoryScore' nullable: true description: Secondary L3 facet. The underlying dimension depends on the item's L1/L2 path and may change (currently the dish type for savory food). Only present for some categories. required: - item_name - accounting_group - business_location_id - item_id - l1_category title: ClassifiedItemV2 type: object categorization-serviceCategoryScore: title: CategoryScore type: object description: A classification value with its confidence score properties: value: type: string nullable: true example: FOOD score: type: number format: float nullable: true example: 0.99 categorization-serviceItemRequest: properties: accounting_group: title: Accounting Group type: string example: drinks business_location_id: title: Business Location Id type: string example: '2212' item_id: title: Item Id type: string example: '11111' item_name: title: Item Name type: string example: Amarone della valpolicella (2) required: - item_name - accounting_group - business_location_id - item_id title: ItemRequest type: object categorization-servicePosSeriesPrefix: enum: - lsk title: PosSeriesPrefix type: string categorization-serviceL1Category: enum: - FOOD - BEVERAGE - MERCHANDISE - UNKNOWN - UNCLASSIFIABLE title: L1Category type: string description: "Top-level category classification for items.\n- FOOD: Food items\n- BEVERAGE: Drink items\n- MERCHANDISE: Non-food, non-drink products\n- UNKNOWN: Item has been processed but we could not determine a category with a high amount of confidence\n- UNCLASSIFIABLE: Legacy local classification; should not be returned in normal API responses\n" categorization-serviceL3Categories: type: object title: L3Categories required: - l3_primaries - l3_secondaries properties: l3_primaries: type: array items: type: string description: Canonical L3 primary category names under this L2 l3_secondaries: type: array items: type: string description: "Canonical L3 secondary category names. Empty for L2s without a secondary facet (today: only food/savory has them)\n" categorization-serviceL2Categories: type: object title: L2Categories description: Map of L2 category names to their L3 contents additionalProperties: $ref: '#/components/schemas/categorization-serviceL3Categories' consumer-gatewayBillStatementTaxLineDto: properties: description: type: string itemId: type: string postTaxAmountCents: format: int64 type: integer preTaxAmountCents: format: int64 type: integer rateDescription: type: string taxAmountCents: format: int64 type: integer taxCode: type: string taxIncluded: type: boolean taxName: type: string taxRate: format: double type: number type: object consumer-gatewayOrderStatementLineDto: properties: id: type: string grossUnitAmountCents: format: int64 type: integer modifiers: items: type: string type: array discounts: items: $ref: '#/components/schemas/consumer-gatewayDiscountDto' type: array name: type: string quantity: format: int32 type: integer totalAmountCents: format: int64 type: integer sku: type: string unitAmountCents: format: int64 type: integer discountedAmountCents: format: int64 type: integer discountPercentage: format: int32 type: integer subItems: items: $ref: '#/components/schemas/consumer-gatewayOrderStatementLineDto' type: array type: object consumer-gatewayDiscountDto: properties: id: type: string code: type: string loyaltyType: enum: - NONE - VIP - PUNCH - VOUCHER type: string name: type: string isLineDiscount: type: boolean isTaxFree: type: boolean rate: format: double type: number amount: format: int64 type: integer base: format: int64 type: integer appliedAmount: format: int64 type: integer type: object consumer-gatewayAccountActivityDto: properties: activityType: enum: - ITEM_ADDED - ITEM_REMOVED - PAYMENT_ADDED - PAYMENT_REMOVED - ACCOUNT_OPENED - ACCOUNT_CLOSED type: string amount: format: int64 type: integer description: type: string paymentMethod: type: string productName: type: string quantity: format: int32 type: integer reportedAt: format: date-time type: string totalAmount: format: int64 type: integer type: object consumer-gatewayNotificationDto: discriminator: propertyName: type properties: businessLocationId: description: The business location id related to this notification format: int64 type: integer ikentooAccountId: deprecated: true format: int64 type: integer ikentooAccountIdentifier: type: string reason: description: Reason for failure if there is one type: string thirdPartyReference: description: Third-party reference you provided when the order or payment was placed. type: string type: description: The type of notification type: string type: object consumer-gatewayAccountSnapshot: description: Related account (if the webhook is configured to provide it) properties: clientCount: description: The number of guests at the table format: int32 type: integer closeDate: description: Date this account was closed in UTC format: date-time type: string currentAmount: description: The current total amount on the check type: number deviceId: format: int64 type: integer id: type: string writeOnly: true identifier: type: string writeOnly: true ikaccountId: type: string name: description: The check name type: string number: format: int32 type: integer writeOnly: true openDate: description: Date this account was opened in UTC format: date-time type: string paidAmount: description: The total of all payments on the check type: number paymentEntries: description: Collection of check items items: $ref: '#/components/schemas/consumer-gatewayAccountPaymentLine' type: array posId: format: int64 type: integer salesEntries: description: Collection of check items items: $ref: '#/components/schemas/consumer-gatewayAccountLineItem' type: array serviceCharge: description: The service charge of the check type: number staffId: description: The unique ID of the staff member assigned to the check format: int64 type: integer staffName: description: The name of the staff member assigned to the check type: string tableNumber: format: int32 type: integer uuid: description: Account uuid type: string type: object consumer-gatewayAccountLineItem: description: Collection of check items properties: active: deprecated: true type: boolean amountLessTax: description: The total price of the item without tax type: number amountWithTax: description: The total price of the item including tax type: number discountedAmount: description: The amount the item was discounted type: number id: description: The unique ID assigned to the sale line format: int64 type: integer itemName: description: The name given to the item type: string itemSku: description: The SKU assigned to the item type: string modifiers: description: The modifiers of the item for this sale line items: $ref: '#/components/schemas/consumer-gatewayModifier' type: array parentId: format: int64 type: integer writeOnly: true quantity: description: The quantity of the item for this sale line format: double type: number subLineItems: description: Collection of sub-lines items: $ref: '#/components/schemas/consumer-gatewayAccountLineItem' type: array taxIncluded: type: boolean timeOfTransactionUtc: description: Date/Time in UTC of this transaction format: date-time type: string unitAmount: description: The unit amount for a single item type: number uuid: description: The unique UUID assigned to the sale line type: string type: object consumer-gatewayModifier: properties: sid: format: int32 type: integer identifier: type: string modifierGroupId: format: int32 type: integer name: type: string unitPriceCents: format: int64 type: integer type: object consumer-gatewayAccountPaymentLine: description: Collection of check items properties: accountCancelled: type: boolean writeOnly: true active: description: whether this payment line is active or not (i.e. has been cancelled) type: boolean amountPaid: description: Amount paid for this payment line type: number externalReference: description: Payment external reference type: string gratuityAmount: description: Tip payment amount type: number paymentDate: description: Date/Time in UTC of this payment format: date-time type: string paymentMethodCode: description: Payment method code for this payment line type: string paymentMethodDescription: description: Payment method for this payment line type: string type: object consumer-gatewayOrderErrorsDto: description: Order errors properties: salesRestrictions: $ref: '#/components/schemas/consumer-gatewaySalesRestrictionsErrorDto' type: object consumer-gatewaySalesRestrictionsErrorDto: properties: skus: items: type: string type: array uniqueItems: true type: object consumer-gatewayPaymentMetadata: properties: pspReference: type: string type: object consumer-gatewayPaymentStatus: type: string enum: - PENDING - AUTHORIZED - CONFIRMED - CAPTURED - FAILED - ABORTED - REFUNDED - CANCELLED description: Payment status enum consumer-gatewayPaymentCheckoutDataRequest: properties: shopperIp: type: string shopperEmail: type: string amount: $ref: '#/components/schemas/consumer-gatewayAmount' browserInfo: $ref: '#/components/schemas/consumer-gatewayBrowserInfo' clientStateDataIndicator: type: boolean merchantAccount: type: string minLength: 1 origin: type: string paymentMethod: $ref: '#/components/schemas/consumer-gatewayPaymentMethod' providerName: enum: - ADYEN - DEV type: string reference: type: string minLength: 1 returnUrl: type: string minLength: 1 riskData: $ref: '#/components/schemas/consumer-gatewayRiskData' shopperInteraction: type: string minLength: 1 store: type: string minLength: 1 required: - amount - merchantAccount - paymentMethod - providerName - reference - returnUrl - shopperInteraction - store type: object consumer-gatewayPaymentData: properties: amountCents: format: int32 type: integer currency: type: string customerName: type: string paymentRef: type: string minLength: 1 tipCents: format: int64 type: integer paidSaleLines: type: array items: type: string required: - paymentRef type: object consumer-gatewayAmount: properties: currency: type: string value: format: int64 type: integer type: object consumer-gatewayBrowserInfo: properties: acceptHeader: type: string colorDepth: format: int32 type: integer javaEnabled: type: boolean language: type: string screenHeight: format: int32 type: integer screenWidth: format: int32 type: integer timeZoneOffset: format: int32 type: integer userAgent: type: string type: object consumer-gatewayPaymentMethod: properties: applePayToken: type: string brand: type: string encryptedCardNumber: type: string encryptedExpiryMonth: type: string encryptedExpiryYear: type: string encryptedSecurityCode: type: string googlePayToken: type: string holderName: type: string issuer: type: string type: type: string required: - type type: object consumer-gatewayRiskData: properties: clientData: type: string type: object customers-apiCustomer: type: object properties: id: type: integer format: int64 uuid: type: string firstName: type: string lastName: type: string company: $ref: '#/components/schemas/customers-apiCompany' creationDate: type: string format: date-time modificationDate: type: string format: date-time contactInfo: $ref: '#/components/schemas/customers-apiContactInfo' address: $ref: '#/components/schemas/customers-apiAddress' emailNotifications: type: boolean statistics: $ref: '#/components/schemas/customers-apiStatistics' notes: type: string accountProfile: $ref: '#/components/schemas/customers-apiAccountProfile' discount: $ref: '#/components/schemas/customers-apiDiscount' isDeletable: type: boolean customers-apiCompany: type: object properties: name: type: string customers-apiContactInfo: type: object properties: phoneNumber1: type: string phoneNumber2: type: string emailAddress: type: string language: type: string taxIdentifier: type: string fiscalCode: type: string destinationCode: type: string readOnlyFields: type: array items: type: string customers-apiAddress: type: object properties: addressLine1: type: string addressLine2: type: string zipCode: type: string city: type: string state: type: string customers-apiStatistics: type: object properties: receiptsCount: type: integer format: int64 totalAmount: type: integer format: int64 amountPerReceipt: type: integer format: int64 gratuityAmount: type: integer format: int64 gratuityAmountPerReceipt: type: integer format: int64 customers-apiAccountProfile: type: object properties: id: type: integer format: int64 code: type: string name: type: string isDefault: type: boolean takeawayMode: type: string enum: - DELIVERY - PICK_UP - NONE available: type: boolean customers-apiDiscount: type: object properties: id: type: integer format: int64 code: type: string description: type: string percentageDiscount: type: number format: float customers-apiPagination: type: object required: - currentPage - perPage - totalPages - totalCount properties: currentPage: type: integer format: int64 perPage: type: integer format: int64 totalPages: type: integer format: int64 totalCount: type: integer format: int64 customers-apiCustomerExportJobStatus: type: string enum: - RUNNING - COMPLETE - FAILED customers-apiExportFormat: type: object required: - option properties: option: type: string enum: - CSV_MAC - CSV_PC - CUSTOM cellDelimiter: type: string enum: - COMMA - SEMICOLON lineFeed: type: string enum: - LF - CRLF encoding: type: string enum: - UTF_8 - LATIN_1 - LATIN_1_WINDOWS_CP1252 customers-apiExportCustomersFields: type: object properties: firstName: type: boolean lastName: type: boolean creationDate: type: boolean modificationDate: type: boolean emailNotifications: type: boolean contactInfo: $ref: '#/components/schemas/customers-apiExportCustomersContactInfoFields' address: $ref: '#/components/schemas/customers-apiExportCustomersAddressFields' statistics: $ref: '#/components/schemas/customers-apiExportCustomersStatisticsFields' customers-apiExportCustomersContactInfoFields: type: object properties: language: type: boolean emailAddress: type: boolean phoneNumber1: type: boolean phoneNumber2: type: boolean taxIdentifier: type: boolean fiscalCode: type: boolean destinationCode: type: boolean company: $ref: '#/components/schemas/customers-apiExportCustomersCompanyFields' customers-apiExportCustomersCompanyFields: type: object properties: name: type: boolean customers-apiExportCustomersAddressFields: type: object properties: addressLine1: type: boolean addressLine2: type: boolean zipCode: type: boolean city: type: boolean state: type: boolean customers-apiExportCustomersStatisticsFields: type: object properties: receiptsCount: type: boolean totalAmount: type: boolean amountPerReceipt: type: boolean gratuityAmount: type: boolean gratuityAmountPerReceipt: type: boolean invoicesAmount: type: boolean giftCardsAmount: type: boolean developer-portal-serviceOauthScope: description: Oauth scope to access a Lightspeed resource. The examples list is not comprehensive. type: string examples: orders-api: value: orders-api summary: The `orders-api` scope is used to place online orders and payments. financial-api: value: financial-api summary: The `financial-api` scope is used to access financial data. reservations-api: value: reservations-api summary: The `reservations-api` scope is used to place reservations and access reservation data. items: value: items summary: The `items` scope is used to manage menu and item data. propertymanagement: value: propertymanagement summary: The `propertymanagement` scope is used to configure PMS integrations. developer-portal-serviceInternalIntegrationInfoDto: properties: techSummary: anyOf: - type: string - type: 'null' title: Technical details onboardingSteps: items: type: string type: array title: Onboarding steps knownIssues: items: type: string type: array title: Known issues about the integration sku: anyOf: - type: string - type: 'null' title: Sku type: object title: InternalIntegrationInfoDto developer-portal-serviceOtherKeyInfoDto: properties: links: items: $ref: '#/components/schemas/developer-portal-serviceKeyValueDto' type: array title: Links faqs: items: $ref: '#/components/schemas/developer-portal-serviceFaqDto' type: array title: FAQs type: object title: Other Key Information Details developer-portal-serviceInternalPartnerInfoDto: properties: notes: anyOf: - type: string - type: 'null' title: Notes pricingNotes: anyOf: - type: string - type: 'null' title: Pricing Notes contactDetails: items: $ref: '#/components/schemas/developer-portal-serviceKeyValueDto' type: array title: Contact Details type: object title: InternalPartnerInfoDto developer-portal-serviceKeyValueDto: properties: key: type: string title: Key value: type: string title: Value type: object required: - key - value title: Key Value Object developer-portal-serviceFaqDto: properties: question: type: string title: Question answer: type: string title: Answer type: object required: - question - answer title: FAQ Object developer-portal-servicePartnerInfoDto-Output: properties: notes: anyOf: - type: string - type: 'null' title: Notes pricingNotes: anyOf: - type: string - type: 'null' title: Pricing Notes contactDetails: items: $ref: '#/components/schemas/developer-portal-serviceKeyValueDto' type: array title: Contact Details type: object title: PartnerInfoDto developer-portal-serviceIntegrationInfoDto-Output: properties: techSummary: anyOf: - type: string - type: 'null' title: Tech Summary onboardingSteps: items: type: string type: array title: Onboarding Steps knownIssues: items: type: string type: array title: Known Issues sku: anyOf: - type: string - type: 'null' title: Sku type: object title: Integration Information developer-portal-serviceWebExtensionDto: properties: id: type: integer title: Id name: type: string title: Name url: type: string title: Url type: object required: - id - name - url title: WebExtensionDto developer-portal-serviceBusinessLocationWithWebExDto: properties: id: type: integer title: Id name: type: string title: Name active: type: boolean title: Active webExtensions: items: $ref: '#/components/schemas/developer-portal-serviceWebExtensionDto' type: array title: Webextensions type: object required: - id - name - active - webExtensions title: BusinessLocationWithWebExDto developer-portal-serviceThirdPartyClientSummary: type: object description: Details of a 3rd party oauth client additionalProperties: true required: - display_name - client_id - scopes - redirect_uris - grant_types - access_token_validity - refresh_token_validity - managed - request_id - owner_email - organization - creator_email - created_at properties: display_name: type: string description: A human readable name for the client client_id: type: string description: The oauth client ID scopes: type: array description: The scopes this client is allowed to request items: $ref: '#/components/schemas/developer-portal-serviceOauthScope' redirect_uris: type: array description: List of authorized redirect URIs for the authentication code exchange. Can be either http or https. items: type: string format: uri minLength: 1 owner_email: anyOf: - type: string format: email - type: 'null' description: "Contact email for the partner (integrator) that will use this client.\nIt can be null if this client is not managed by the developer portal.\n" managed: type: boolean description: Whether the oauth client is managed by Developer Portal API readOnly: true request_id: anyOf: - type: string - type: 'null' description: "The request ID that created this client.\nIt can be null if this client is not managed by the developer portal.\n" organization: anyOf: - type: string - type: 'null' readOnly: true creator_email: anyOf: - type: string format: email - type: 'null' description: "Email of support user who created this client.\nIt can be null if this client is not managed by the developer portal.\n" readOnly: true created_at: anyOf: - type: string format: date-time - type: 'null' description: "Time this client was created, or had its secret rotated.\nIt can be null if this client is not managed by the developer portal.\n" readOnly: true grant_types: anyOf: - items: $ref: '#/components/schemas/developer-portal-serviceGrantTypes' type: array - type: 'null' title: Grant Types access_token_validity: anyOf: - type: integer - type: 'null' title: Access Token Validity refresh_token_validity: anyOf: - type: integer - type: 'null' title: Refresh Token Validity developer-portal-serviceAuditLogOut: properties: action: type: string title: Action by: type: string title: By data: type: object title: Data additionalProperties: true timestamp: type: string format: date-time title: Timestamp type: object required: - action - by - data - timestamp title: AuditLogOut developer-portal-serviceBusinessInfo: properties: request_type: type: string const: Business title: Request Type default: Business address: type: string title: Address zip_code: type: string title: Zip Code city: type: string title: City state: type: string title: State country: type: string title: Country business_name: type: string title: Business Name business_location_name: type: string title: Business Location Name default: '' business_location_language: type: string title: Business Location Language business_location_timezone: type: string title: Business Location Timezone type: object required: - address - zip_code - city - state - country - business_name - business_location_name - business_location_timezone - business_location_language title: BusinessInfo developer-portal-serviceClientInfo: properties: request_type: type: string const: Client title: Request Type default: Client display_name: type: string title: Display Name scopes: items: type: string type: array title: Scopes redirect_uris: items: format: uri type: string minLength: 1 type: array title: Redirect Uris grant_types: anyOf: - items: $ref: '#/components/schemas/developer-portal-serviceGrantTypes' type: array - type: 'null' title: Grant Types access_token_validity: anyOf: - minimum: 1.0 maximum: 2592000.0 type: integer - type: 'null' title: Access Token Validity refresh_token_validity: anyOf: - minimum: 1.0 maximum: 2592000.0 type: integer - type: 'null' title: Refresh Token Validity type: object required: - display_name - scopes - redirect_uris title: ClientInfo developer-portal-serviceAccess: type: object properties: request_type: type: string const: Access title: Request Type default: Access title: Access developer-portal-serviceGrantTypes: enum: - authorization_code - client_credentials - refresh_token - password - implicit title: GrantTypes type: string developer-portal-serviceLinks: properties: self: type: string minLength: 1 format: uri title: Self prev: anyOf: - type: string minLength: 1 format: uri title: Previous Page - type: 'null' next: anyOf: - type: string minLength: 1 format: uri title: Next Page - type: 'null' type: object required: - self title: Links developer-portal-servicePlatformIntegrationDetails: properties: platformRestaurantId: anyOf: - type: string - type: 'null' description: Platform restaurant id used by the platform to map the location id locationId: type: integer description: Business location id integrated with the platform activatedCount: type: integer description: Count of activations for the location activatedAt: type: string format: date-time description: Date time when the location was activated deactivatedAt: anyOf: - type: string format: date-time - type: 'null' description: Date time when the location was deactivated type: object required: - locationId - activatedCount - activatedAt description: Platform Integration Details developer-portal-serviceRequestAction: type: string enum: - CREATE - SUBMIT - APPROVE - REJECT - CANCEL - MANUAL_PROVISION - AUTO_PROVISION - AUTO_PROVISION_REQUEST_CHANGE - DEPROVISION - UPDATE - REQUEST_CHANGE - APPROVE_REQUEST_CHANGE - REJECT_REQUEST_CHANGE - MANUAL_PROVISION_REQUEST_CHANGE - AUTO_DEPROVISION title: RequestAction developer-portal-serviceRequestChangeIn: properties: name: type: string title: Name minLength: 1 data: oneOf: - $ref: '#/components/schemas/developer-portal-serviceBusinessInfo' - $ref: '#/components/schemas/developer-portal-serviceClientInfo' title: Data discriminator: propertyName: request_type mapping: Business: '#/components/schemas/developer-portal-serviceBusinessInfo' Client: '#/components/schemas/developer-portal-serviceClientInfo' type: object required: - name - data title: RequestChangeIn developer-portal-serviceRequestChangeStatus: type: string enum: - Pending - Approved title: RequestChangeStatus developer-portal-serviceRequestIn: properties: name: type: string title: Name minLength: 1 data: oneOf: - $ref: '#/components/schemas/developer-portal-serviceBusinessInfo' - $ref: '#/components/schemas/developer-portal-serviceClientInfo' title: Data discriminator: propertyName: request_type mapping: Business: '#/components/schemas/developer-portal-serviceBusinessInfo' Client: '#/components/schemas/developer-portal-serviceClientInfo' type: object required: - name - data title: RequestIn developer-portal-serviceRequestOut: properties: name: type: string title: Name minLength: 1 data: oneOf: - $ref: '#/components/schemas/developer-portal-serviceBusinessInfo' - $ref: '#/components/schemas/developer-portal-serviceClientInfo' - $ref: '#/components/schemas/developer-portal-serviceAccess' title: Data discriminator: propertyName: request_type mapping: Business: '#/components/schemas/developer-portal-serviceBusinessInfo' Client: '#/components/schemas/developer-portal-serviceClientInfo' Access: '#/components/schemas/developer-portal-serviceAccess' id: type: string title: Id provisioned_id: anyOf: - type: string title: Provisioned Id - type: 'null' owner_email: type: string format: email title: Owner Email owner_full_name: type: string title: Owner Full Name owner_organization_name: type: string title: Owner Organization Name status: $ref: '#/components/schemas/developer-portal-serviceRequestStatus' required_action: description: Action required to be taken by the user anyOf: - $ref: '#/components/schemas/developer-portal-serviceRequestAction' - type: 'null' last_action: $ref: '#/components/schemas/developer-portal-serviceRequestAction' last_action_timestamp: type: string format: date-time title: Last Action Timestamp created_timestamp: type: string format: date-time title: Created Timestamp type: object required: - name - data - id - provisioned_id - owner_email - owner_full_name - owner_organization_name - status - last_action - last_action_timestamp - required_action - created_timestamp title: RequestOut developer-portal-serviceRequestStatus: type: string enum: - Draft - Cancelled - PendingReview - Rejected - Approved - Provisioned - Deprovisioned - Deprovisioning title: RequestStatus developer-portal-servicePlatformsDetails: properties: platformCode: type: string description: Unique code of the platform displayName: anyOf: - type: string - type: 'null' description: Display name of the platform createdAt: type: string format: date-time description: Date of creation of the platform depositSupported: type: boolean description: Whether or not the platform supports deposits ownNotificationsOnly: type: boolean description: When true, notifications will only be sent for orders linked to the reservation platform baseUrl: anyOf: - type: string - type: 'null' description: Base URL of the external platform orderWebhookUrl: anyOf: - type: string - type: 'null' description: URL where order notifications will be sent onboardingWebhookUrl: anyOf: - type: string - type: 'null' description: URL where onboarding notifications will be sent integrationWebhookUrl: anyOf: - type: string - type: 'null' description: URL where notifications for activation or deactivation of the customer's integration will be sent errorsWebhookUrl: anyOf: - type: string - type: 'null' description: URL where error notifications will be sent notificationTypes: anyOf: - items: $ref: '#/components/schemas/developer-portal-serviceNotificationType' type: array - type: 'null' description: The events that trigger a notification webhookAuthType: description: Type of authentication used by the webhook. anyOf: - $ref: '#/components/schemas/developer-portal-serviceWebhookAuthType' - type: 'null' allowedPosStatuses: anyOf: - items: type: string enum: - ON_HOLD - SCHEDULED - PARTIALLY_ARRIVED - ARRIVED - PARTIALLY_SEATED - SEATED - DEPARTED - CANCELLED - NO_SHOW - ERROR type: array - type: 'null' description: List of allowed POS statuses for the platform posReservationUpdateWebhookUrl: anyOf: - type: string - type: 'null' description: URL where POS reservation update notifications will be sent type: object required: - platformCode - createdAt - depositSupported - ownNotificationsOnly description: Platforms details used for reservations developer-portal-servicePageReservationIntegrationDetail: properties: platformRestaurantId: type: string title: Id of the restaurant on the third party platform locationId: type: integer title: Business Location Id of the restaurant in K-Series activatedCount: type: integer title: Number of times the integration has been activated createdAt: type: string format: date-time title: Date of creation of the integration activatedAt: type: string format: date-time title: Date of activation of the integration deactivatedAt: type: string format: date-time title: Date of deactivation of the integration type: object title: Reservation Integration Details developer-portal-serviceViewExistingIntegrationDetailsDto: properties: displayName: type: string description: Display name of the integration integrationCode: type: string description: Unique code of the integration developerType: anyOf: - $ref: '#/components/schemas/developer-portal-serviceDeveloperType' - type: 'null' description: Type of the developer developerAlias: anyOf: - type: string - type: 'null' description: Type of the developer and alias if applicable createdAt: type: string format: date-time description: Date of creation of the integration lastUpdatedAt: type: string format: date-time description: Date of the last update of the integration listingStatus: $ref: '#/components/schemas/developer-portal-serviceContentListingStatus' createdBy: anyOf: - type: string format: email - type: 'null' description: Email address of the user who created the integration lastUpdatedBy: anyOf: - type: string format: email - type: 'null' description: Email address of the user who last updated the integration type: object required: - displayName - integrationCode - createdAt - lastUpdatedAt - listingStatus title: ViewExistingIntegrationDetailsDto developer-portal-serviceMarketplaceIntegrationFeatureDto: properties: summary: anyOf: - type: string - type: 'null' description: Summary of the feature description: anyOf: - type: string - type: 'null' description: Detailed description of the feature type: object title: IntegrationFeatureDto developer-portal-serviceMarketplaceIntegrationPricingDto: properties: type: description: Type of pricing for the integration anyOf: - $ref: '#/components/schemas/developer-portal-servicePricingType' - type: 'null' billedBy: description: Who is billing for the integration anyOf: - type: string - type: 'null' billingPeriod: description: Billing period for the integration anyOf: - $ref: '#/components/schemas/developer-portal-serviceBillingPeriod' - type: 'null' amountCents: description: Amount in cents for the integration anyOf: - type: integer - type: 'null' currencyCode: description: Currency code for the integration anyOf: - type: string - type: 'null' type: object description: Pricing information for the integration developer-portal-serviceMarketplaceIntegrationPartnerDto: properties: websiteUrl: anyOf: - type: string minLength: 1 format: uri - type: 'null' description: URL of the partner's website referralLink: anyOf: - type: string minLength: 1 format: uri - type: 'null' description: URL of the partner's referral link contactEmail: anyOf: - type: string - type: 'null' description: Contact email of the partner shortDescription: anyOf: - type: string - type: 'null' description: Short description of the partner longDescription: anyOf: - type: string - type: 'null' description: Long description of the partner supportLanguages: items: type: string type: array description: Languages supported by the partner sellingPoints: items: type: string type: array description: Selling points of the integration type: object description: Partner information for the integration developer-portal-serviceMarketplaceIntegrationSupportDto: properties: partnerSupportWebsite: anyOf: - type: string minLength: 1 format: uri - type: 'null' description: URL of the partner's support website lightspeedSupportWebsite: anyOf: - type: string minLength: 1 format: uri - type: 'null' description: URL of the Lightspeed support website type: object description: Support information for the integration developer-portal-serviceIntegrationCategoryConstants: description: The category of the integration. Used to group integrations by their functionality. type: string enum: - ACCOUNTING - BUSINESS_INTELLIGENCE - ONLINE_ORDERING_AND_DELIVERY - DIGITAL_RECEIPT - DRINK_MANAGEMENT - LOYALTY_AND_GIFT_CARDS - INVENTORY - KIOSK - KDS - MARKETING - PAYMENT_METHODS - PMS - RESERVATION - RMS - SUSTAINABILITY_AND_SOCIAL_RESPONSIBILITY - WORKFORCE_MANAGEMENT_AND_PAYROLL developer-portal-serviceIntegrationCategory: description: The category of the integration. Used to group integrations by their functionality. type: string enum: - Accounting - Business intelligence - Online ordering & delivery - Digital receipt - Drink management - Loyalty & gift cards - Inventory - Kiosk - KDS - Marketing - Payment methods - PMS - Reservation - RMS - Workforce management & payroll - Sustainability and social responsibility title: IntegrationCategory developer-portal-serviceContentListingStatus: type: string enum: - EMPTY - DRAFT - PUBLISHED - DELISTED description: The status of the content listing developer-portal-serviceLanguageCode: type: string enum: - en - de - fr_FR - fr_CA - es - it - nl description: The language codes available in content developer-portal-serviceOutboundLeadDto: properties: businessLocationName: type: string title: Businesslocationname businessLocationId: type: integer title: Businesslocationid country: type: string title: Country userEmail: type: string title: Useremail lastClickedAt: type: string format: date-time title: Lastclickedat count: type: integer title: Count type: object required: - businessLocationName - businessLocationId - country - userEmail - lastClickedAt - count title: OutboundLeadDto developer-portal-serviceNotValidatedFileDto: properties: key: description: The key of the file in the storage anyOf: - type: string - type: 'null' title: Key publicUrl: description: The public URL of the file anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Publicurl type: object description: Not validated file DTO that contains the key and public URL of the file. This is used for statuses that are not being validated yet. developer-portal-serviceNotValidatedPricingInfoDto-Output: properties: billedBy: description: Who is billing for the integration anyOf: - type: string - type: 'null' integrationFees: items: $ref: '#/components/schemas/developer-portal-serviceNotValidatedIntegrationFeeDto' type: array description: List of integration fees default: [] isFree: type: boolean description: Whether the integration is free or not default: false type: object description: Not validated output pricing info DTO that contains the billed by, integration fees, and whether the integration is free or not. This is used for statuses that are not being validated yet. developer-portal-serviceNotValidatedFeatureDto: properties: summary: description: Summary of the feature anyOf: - type: string - type: 'null' title: Summary details: description: Detailed description of the feature anyOf: - type: string - type: 'null' title: Details type: object description: Not validated feature DTO that contains the summary and details of the feature. This is used for statuses that are not being validated yet. developer-portal-serviceNotValidatedDescriptionDto: properties: languageCode: description: Language code of the description anyOf: - type: string - type: 'null' shortDescription: description: Short description of the integration anyOf: - type: string - type: 'null' longDescription: description: Long description of the integration anyOf: - type: string - type: 'null' type: object description: Not validated description DTO that contains the language code, short description, and long description of the integration. This is used for statuses that are not being validated yet. developer-portal-serviceNotValidatedSellingPointDto: properties: languageCode: description: Language code of the selling point anyOf: - type: string - type: 'null' items: description: List of selling point items type: array items: type: string default: [] type: object description: Not validated selling point DTO that contains the language code and description of a selling point. This is used for statuses that are not being validated yet. developer-portal-serviceNotValidatedPartnerInfoDto: properties: logo: description: Logo of the partner anyOf: - $ref: '#/components/schemas/developer-portal-serviceNotValidatedFileDto' - type: 'null' countries: description: List of countries where the partner operates items: type: string type: array secondaryCategory: anyOf: - $ref: '#/components/schemas/developer-portal-serviceIntegrationCategory' - type: 'null' descriptions: items: $ref: '#/components/schemas/developer-portal-serviceNotValidatedDescriptionDto' type: array partnerSupportLanguages: description: Languages supported by the partner for customer support items: $ref: '#/components/schemas/developer-portal-serviceLanguageCode' type: array default: [] sellingPoints: description: Key selling points of the integration items: $ref: '#/components/schemas/developer-portal-serviceNotValidatedSellingPointDto' type: array default: [] type: object description: Not validated partner info DTO that contains the logo, countries, secondary category, and descriptions of the partner. This is used for statuses that are not being validated yet. developer-portal-serviceNotValidatedPricingInfoDto-Input: properties: billedBy: anyOf: - type: string - $ref: '#/components/schemas/developer-portal-serviceDeveloperType' - type: 'null' description: Who is billing for the integration integrationFees: items: $ref: '#/components/schemas/developer-portal-serviceNotValidatedIntegrationFeeDto' type: array description: List of integration fees default: [] isFree: type: boolean description: Whether the integration is free or not default: false type: object description: Not validated input pricing info DTO that contains the billed by, integration fees, and whether the integration is free or not. This is used for statuses that are not being validated yet. developer-portal-serviceNotValidatedIntegrationInfoDto-Input: properties: builtBy: description: Name of the company/user that built the integration anyOf: - type: string - type: 'null' dataAccess: description: Data access (scopes) used by the integration to access the K-Series data items: $ref: '#/components/schemas/developer-portal-serviceDataAccess' type: array onboardingInfoList: description: List of onboarding information for the integration items: $ref: '#/components/schemas/developer-portal-serviceNotValidatedOnboardingInfoDto' type: array type: object description: Not validated input integration info DTO that contains the built by, data access, and onboarding information for the integration. This is used for statuses that are not being validated yet. developer-portal-serviceNotValidatedIntegrationInfoDto-Output: description: Not validated output integration info DTO that contains the built by, data access, and onboarding information for the integration. This is used for statuses that are not being validated yet. properties: builtBy: description: Name of the company/user that built the integration anyOf: - type: string - type: 'null' dataAccess: description: Data access (scopes) used by the integration to access the K-Series data items: $ref: '#/components/schemas/developer-portal-serviceDataAccess' type: array onboardingInfoList: description: List of onboarding information for the integration items: $ref: '#/components/schemas/developer-portal-serviceNotValidatedOnboardingInfoDto' type: array type: object developer-portal-serviceNotValidatedOnboardingInfoDto: properties: languageCode: description: Language code of the onboarding information anyOf: - type: string - type: 'null' tagLine: description: Tag line of the integration anyOf: - type: string - type: 'null' summary: description: Summary of the integration anyOf: - type: string - type: 'null' videoLink: description: Video link of the integration. Should be a valid YouTube link. anyOf: - type: string minLength: 1 format: uri - type: 'null' integrationImages: description: List of images related to the integration items: $ref: '#/components/schemas/developer-portal-serviceNotValidatedFileDto' type: array features: description: List of features of the integration items: $ref: '#/components/schemas/developer-portal-serviceNotValidatedFeatureDto' type: array onboardingSteps: description: Steps to onboard the integration items: type: string type: array prerequisites: description: Prerequisites for the integration items: type: string type: array type: object description: Not validated onboarding information DTO that contains the language code, tag line, summary, video link, integration images, features, onboarding steps, and prerequisites for the integration. This is used for statuses that are not being validated yet. developer-portal-servicePartnerInfoDto: properties: logo: $ref: '#/components/schemas/developer-portal-serviceFileDto' countries: description: List of countries where the partner operates items: type: string type: array secondaryCategory: description: Secondary category of the partner anyOf: - $ref: '#/components/schemas/developer-portal-serviceIntegrationCategory' - type: 'null' descriptions: description: List of descriptions for the partner in different languages items: $ref: '#/components/schemas/developer-portal-serviceDescriptionDto' type: array partnerSupportLanguages: description: Languages supported by the partner for customer support items: $ref: '#/components/schemas/developer-portal-serviceLanguageCode' type: array sellingPoints: description: Key selling points of the integration items: $ref: '#/components/schemas/developer-portal-serviceSellingPointDto' type: array type: object required: - logo - countries - descriptions description: Details of the partner of the integration. This is used to show in the developer portal and in the integration management system. developer-portal-serviceIntegrationInfoDto: properties: developerType: $ref: '#/components/schemas/developer-portal-serviceDeveloperType' developerAlias: anyOf: - type: string - type: 'null' description: Type of the developer and alias if applicable dataAccess: items: $ref: '#/components/schemas/developer-portal-serviceDataAccess' type: array title: Dataaccess onboardingInfoList: items: $ref: '#/components/schemas/developer-portal-serviceOnboardingInfoDto' type: array title: Onboardinginfolist type: object required: - dataAccess - builtBy - developerType title: IntegrationInfoDto developer-portal-serviceOnboardingInfoDto: properties: languageCode: type: string title: Languagecode tagLine: type: string title: Tagline summary: type: string title: Summary videoLink: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Videolink integrationImages: items: $ref: '#/components/schemas/developer-portal-serviceFileDto' type: array title: Integrationimages features: items: $ref: '#/components/schemas/developer-portal-serviceFeatureDto' type: array title: Features onboardingSteps: items: type: string type: array title: Onboardingsteps prerequisites: items: type: string type: array title: Prerequisites type: object required: - languageCode - tagLine - summary - integrationImages - features - onboardingSteps title: OnboardingInfoDto description: Details of content of an integration in the system. This is used to show in the developer portal and in the integration management system. developer-portal-serviceContactInfoDto: properties: partnerWebsite: type: string minLength: 1 format: uri title: Partnerwebsite salesEmail: anyOf: - type: string format: email - type: 'null' title: Salesemail referralLinks: items: $ref: '#/components/schemas/developer-portal-serviceReferralLinkDto' type: array title: Referrallinks required: - partnerWebsite type: object title: ContactInfoDto developer-portal-serviceNotValidatedContactInfoDto: properties: partnerWebsite: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Partnerwebsite salesEmail: anyOf: - type: string format: email - type: 'null' title: Salesemail referralLinks: items: $ref: '#/components/schemas/developer-portal-serviceReferralLinkDto' type: array title: Referrallinks type: object title: ContactInfoDto developer-portal-serviceReferralLinkDto: properties: url: type: string minLength: 1 format: uri title: Url countries: items: type: string type: array title: Countries type: object required: - url title: ReferralLinkDto developer-portal-serviceDescriptionDto: properties: languageCode: type: string title: Languagecode shortDescription: type: string title: Shortdescription longDescription: anyOf: - type: string - type: 'null' title: Longdescription type: object required: - languageCode - shortDescription title: DescriptionDto developer-portal-serviceSellingPointDto: properties: languageCode: type: string title: Languagecode items: type: array items: type: string title: Items type: object required: - languageCode - items title: SellingPointDto developer-portal-serviceSupportInfoDto: properties: lightspeedHelpCenterArticle: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Lightspeedhelpcenterarticle partnerHelpSite: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Partnerhelpsite type: object title: SupportInfoDto developer-portal-serviceMarketplaceSettingsDto: properties: partnerOnboardingUrl: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Partneronboardingurl isFeatured: type: boolean title: Isfeatured default: false type: object title: MarketplaceSettingsDto developer-portal-servicePricingInfoDto: properties: billedBy: anyOf: - type: string - $ref: '#/components/schemas/developer-portal-serviceDeveloperType' - type: 'null' title: Billedby integrationFees: items: $ref: '#/components/schemas/developer-portal-serviceIntegrationFeeDto' type: array title: Integrationfees isFree: type: boolean title: Isfree default: false type: object title: PricingInfoDto developer-portal-serviceFeatureDto: properties: summary: type: string title: Summary details: type: string title: Details type: object required: - summary - details title: FeatureDto developer-portal-serviceFileDto: properties: key: type: string title: Key publicUrl: type: string minLength: 1 format: uri title: Publicurl type: object required: - key - publicUrl title: FileDto developer-portal-serviceNotValidatedIntegrationFeeDto: properties: billingPeriod: anyOf: - $ref: '#/components/schemas/developer-portal-serviceBillingPeriod' - type: 'null' amountCents: anyOf: - type: integer - type: 'null' description: Amount in cents for the integration fee countries: items: type: string type: array description: List of countries for the integration fee type: object description: Not validated integration fee DTO that contains the billing period, amount in cents, and countries for the integration fee. This is used for statuses that are not being validated yet. developer-portal-serviceIntegrationFeeDto: properties: billingPeriod: $ref: '#/components/schemas/developer-portal-serviceBillingPeriod' amountCents: type: integer description: Amount in cents for the integration fee countries: items: type: string type: array description: List of countries for the integration fee type: object required: - billingPeriod - amountCents - countries description: Integration fee DTO that contains the billing period, amount in cents, and countries for the integration fee. developer-portal-serviceBillingPeriod: type: string enum: - ONE_TIME - MONTHLY - YEARLY description: The billing period for the integration fee. Used to determine how often the fee is charged. developer-portal-serviceDeveloperType: type: string enum: - LIGHTSPEED - PARTNER - THIRD_PARTY description: The type of developer. Used to differentiate between Lightspeed, partner, and third-party developers. developer-portal-serviceCountrySettingsItem: type: object properties: country_code: type: string title: Country Code currency_code: type: string title: Currency code of the country country_name: type: string readOnly: true title: Country Name languages: type: array items: $ref: '#/components/schemas/developer-portal-serviceCountrySettingsLanguageItem' state_codes: type: array items: type: string required: - country_code - currency_code - country_name - languages - state_codes developer-portal-serviceCountrySettingsLanguageItem: type: object properties: code: type: string title: Language Code name: title: Name type: string required: - code - name developer-portal-serviceDataAccess: type: string enum: - financial-api - orders-api - items - propertymanagement - reservations-api - tax-configuration - staff-api - richitem - transaction-data - payments-api - webextension - virtual-production-center - pre-commit-script developer-portal-serviceNotificationType: type: string title: NotificationType developer-portal-serviceRequestType: type: string enum: - Client - Business - Access title: RequestType developer-portal-serviceWebhookAuthType: type: string title: WebhookAuthType developer-portal-serviceSortBy: type: string enum: - name - -name - owner_email - -owner_email - owner_organization_name - -owner_organization_name - last_action_timestamp - -last_action_timestamp title: SortBy developer-portal-servicePricingType: type: string enum: - FREE - PAID description: The type of pricing for the integration. Used to indicate whether the integration is free or paid. developer-portal-serviceValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError financial-apiSalesExportDto: type: object properties: sales: type: array items: $ref: '#/components/schemas/financial-apiSale' description: Array of sale objects. nullable: false nextPageToken: type: string description: Token to use to get the next page of results, if applicable. financial-apiSalesDailyExportDto: type: object properties: sales: type: array items: $ref: '#/components/schemas/financial-apiSale' description: Array of sale objects. nullable: false nextStartOfDayAsIso8601: type: string format: date-time description: Start of next business day, in the merchant's local time. example: '2023-07-28T05:30:00-05:00' dataComplete: type: boolean description: Whether or not the data is complete for the requested day. example: false financial-apiAbortedOrderDto: type: object description: Represents an unpaid, non-committed order that has been fully aborted. properties: staffName: type: string description: The name of the staff member who aborted the order. example: Employee 1 timeOfAbortedOrder: type: string format: date-time description: The timestamp when the order was aborted and all line items fully cleared. example: '2023-03-14T19:58:48.224Z' totalAmountAborted: type: string description: The total value of the aborted order. example: '33.32' abortedLineItems: type: array description: A list of all line items that were removed from the aborted order. items: $ref: '#/components/schemas/financial-apiAbortedOrderLineItemDto' financial-apiAbortedOrderLineItemDto: type: object properties: itemName: type: string description: The name of the item that was removed from the order. example: Soda itemSku: type: string description: The SKU of the item that was removed from the order. example: '9' itemQuantity: type: string description: The quantity of the item removed from the order. example: '4.000' itemAmount: type: string description: The total price for this item (itemPrice * itemQuantity). example: '33.32' itemPrice: type: string description: The unit price of the item removed from the order. example: '8.33' financial-apiErrorResponse: type: object properties: timestamp: type: string format: date-time path: type: string status: type: integer format: int32 error: type: string requestId: type: string required: - timestamp - path - status - error - requestId financial-apiSale: type: object properties: accountReference: type: string description: Unique reference id of the account. example: 57X0j3hzTZ2oo9sdVWiUog== accountFiscId: type: string description: The account identifier. example: A65315.17 receiptId: type: string description: The unique identifier for the receipt associated with this account. example: R65315.13 source: $ref: '#/components/schemas/financial-apiAccountLink' salesLines: type: array items: $ref: '#/components/schemas/financial-apiLine' payments: type: array items: $ref: '#/components/schemas/financial-apiPayment' timeOfOpening: type: string format: date-time description: The account creation timestamp. example: '2023-02-14T19:58:48.224Z' timeClosed: type: string format: date-time description: The account close timestamp. example: '2023-02-14T20:04:08.734Z' cancelled: type: boolean description: Whether the account was cancelled. example: false externalFiscalNumber: type: string description: The external reference id of the account. example: IntegratorReferenceId tableNumber: type: string description: The table number. example: '1' tableName: type: string description: The name of the table. example: Dining Room, Table 1 accountProfileCode: type: string description: The account profile associated with the account. example: AAP ownerName: type: string description: The name of the user associated with the account. example: Manager ownerId: type: integer format: int64 description: The unique identifier for the user associated with the account. example: 14670 type: type: string description: The type of sale. example: SALE enum: - SALE - VOID - RECALL - REFUND - SPLIT - UPDATE - TRANSFER - FLOAT - TRANSITORY - CROSS_BL - CANCEL externalReferences: items: type: string description: List of external references for online orders. Includes the TASK prefix, `businessLocationId`, and the unique reference code provided in the [`thirdPartyReference`](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-thirdpartyreference) field of an online order. example: '"TASK:OO-{businessLocationId}-{unique-reference-code}", "TASK:OO-{businessLocationId}-(another-unique-reference-code)"' type: array nbCovers: type: number format: double description: The number of covers. example: 2.0 dineIn: type: boolean description: Whether the order is dine-in. example: true deviceId: type: integer format: int64 description: The unique identifier for the device where the account was created. example: 75125 deviceName: type: string description: The name of the device where the account was created. example: ipad9 voidReason: type: string description: The void reason, if applicable. example: Unhappy Client financial-apiLine: type: object properties: id: type: string description: The sale line identifier. example: S65315.33 parentLineId: type: string description: The sale line this item is associated with, if applicable. example: S65315.32 totalNetAmountWithTax: type: string description: "Total amount of sale line, including tax. **Important Note:** This field is for use with tax inclusive businesses.\nFor tax exclusive businesses, see `taxAmount` and `taxLines` for tax calculations.\nThe value is precise up to six decimal places." example: '11.00' totalNetAmountWithoutTax: type: string description: The total amount of the sale line, before tax. The value is precise up to six decimal places. example: '8.33' menuListPrice: type: string description: The price listed on the menu. example: '10.00' unitCostPrice: type: string description: The unit cost price. example: '5.00' serviceCharge: type: string description: The service charge. example: '1.00' serviceChargeType: $ref: '#/components/schemas/financial-apiServiceChargeType' serviceChargeRate: type: string description: The service charge rate, as a percentage. The value is precise up to two decimal places. example: '10.00' discountAmount: type: string description: The discount amount. The value is precise up to six decimal places. example: '0.00' taxCode: type: string description: The system code for the tax rate. example: VAT20 taxAmount: type: string description: The tax total. example: '1.6667' taxRatePercentage: type: string description: The tax rate, as a percentage. The value is precise up to two decimal places. example: '20.00' taxLines: type: array items: $ref: '#/components/schemas/financial-apiTaxLine' discountType: type: string description: The type of discount. example: DISCOUNT discountCode: type: string description: The discount code. example: 10PCT discountName: type: string description: The name of the discount. example: 10% Discount accountDiscountAmount: type: string description: The account discount amount. The value is precise up to two decimal places. example: '1.00' accountDiscountType: type: string description: The account discount type (if any). example: DISCOUNT accountDiscountCode: type: string description: The account discount code (if any). example: Staff 20% accountDiscountName: type: string description: The account discount name (if any). example: Staff Discount totalDiscountAmount: type: string description: The total discount amount. The value is precise up to two decimal places. example: '1.00' sku: type: string description: The item SKU. example: '52' name: type: string description: The item name. example: Burger nameOverride: type: string description: Item name entered manually by the POS user upon item selection. example: Burger Double Cheese statisticGroup: type: string description: The item's statistic group. example: Food quantity: type: string description: "The quantity of the item sold, which can potentially be a fractional value,\nespecially in cases where the item is sold by weight. The value is precise up to three\ndecimal places." example: '1.000' accountingGroup: $ref: '#/components/schemas/financial-apiAccountingGroup' currency: type: string description: The currency for the sale line. example: GBP tags: items: type: string type: array description: The tags attached to the line item. revenueCenter: type: string description: The name of the revenue center where the sale line was created. example: Fixed POS revenueCenterId: format: int64 type: integer description: The unique identifier for the revenue center where the sale line was created. example: 141948669132822 categories: type: array items: $ref: '#/components/schemas/financial-apiCategory' timeOfSale: type: string format: date-time description: The timestamp of when the line item was created. example: '2023-07-27T19:58:22.474Z' staffId: type: integer format: int64 description: The unique identifier for the user who created the line item. example: 14670 staffName: type: string description: The name of the user who created the line item. example: Manager deviceId: type: integer format: int64 description: The unique identifier for the device where the sale line was created. example: 75125 deviceName: type: string description: The name of the device where the sale line was created. example: iPad9 voidReason: type: string description: The void reason, if applicable. example: Unhappy Client accountProfileCode: type: string description: The code of the account profile used. example: AAP financial-apiTaxLine: type: object properties: taxId: type: string description: The unique identifier for the tax rate. example: '41910290874374' taxCode: type: string description: The system code for the tax rate. example: VAT20 taxRate: type: string description: The tax rate, as a multiplier. example: '1.2' taxAmount: type: string description: The tax total. example: '1.666667' taxIncluded: type: boolean description: Whether or not the business is tax inclusive. example: true financial-apiCategory: type: object properties: category: type: string description: The line item's category. example: default value: type: string description: The category value. example: Food financial-apiAccountLink: type: object properties: initialAccountId: type: string description: "The `accountFiscId` of the initial transaction associated with the current account, if applicable. For example, in the case of a refund.\n\nThis will match the `accountFiscId` of the sale if there is no associated account." example: A65315.13 previousAccountId: type: string description: "The `accountFiscId` of the previous transaction associated with the current account, if applicable. For example, in the case of a refund.\n\nThis may be different from `initialAccountId` if there is more than one associated account.\n\nIt will not be displayed if there is no associated account." example: A65315.15 financial-apiAccountingGroup: type: object properties: accountingGroupId: type: integer format: int64 description: The unique identifier for the item's accounting group. example: 141948669132845 name: type: string description: The name of the accounting group. example: Food statisticGroup: type: string description: The accounting group's statistic group. example: Food code: type: string description: The code assigned to the accounting group. example: '123' financial-apiPayment: type: object properties: code: type: string description: The code of the payment method. example: CASH description: type: string description: The name of the payment method. example: Cash paymentMethodId: type: integer format: int64 description: The unique identifier for the payment method. example: 141948669132824 netAmountWithTax: type: string description: The net payment amount, including tax. The value is precise up to two decimal places, and if necessary, it is rounded using the "half-even" rounding mode. example: '11.00' currency: type: string description: The payment currency. example: GBP tip: type: string description: The tip amount. The value is precise up to two decimal places, and if necessary, it is rounded using the "half-even" rounding mode. example: '0.00' consumer: $ref: '#/components/schemas/financial-apiConsumer' type: example: NORMAL description: The type of payment enum: - NORMAL - ACCOUNTS_RECEIVABLE type: string deviceId: type: string description: The unique identifier for the device where the payment was processed. example: '72676' deviceName: type: string description: The name of the device where the payment was processed. example: ipad9 staffId: type: number description: The unique identifier for the user who processed the payment. example: 180480 staffName: type: string description: The name of the user who processed the payment. example: Manager authorization: type: string description: The authorization code for the payment. example: '001' externalReference: type: string description: The external reference code for the payment. example: '1000' revenueCenter: type: string description: The name of the revenue center where the payment was processed. example: Fixed POS revenueCenterId: type: number description: The unique identifier for the revenue center where the payment was processed. example: 141948669132822 fiscId: type: string description: The unique identifier for the payment. example: T72691.8 uuid: type: string description: The base64url encoded UUID of the payment. example: bc7i2X_CTkeg8qlec66wmg== fiscDate: type: string format: date-time description: The time stamp of the payment. example: '2023-02-14T20:04:08.665Z' surcharge: type: string description: The surcharge amount. The value is precise up to two decimal places, and if necessary, it is rounded using the "half-even" rounding mode. example: '0.00' financial-apiConsumer: type: object properties: id: type: string description: The UUID of the customer associated with the payment, if applicable. example: ec021fb0-4c12-425e-b30f-320ab720448b customerId: type: integer format: int64 description: The unique identifier for the customer. example: 120913 title: type: string description: The title or honorific of the customer. example: Mr firstName: type: string description: The first name of the customer. example: John lastName: type: string description: The last name of the customer. example: Doe phoneNumber1: type: string description: The primary phone number of the customer. example: 555-555-5555 phoneNumber2: type: string description: An alternative phone number for the customer. example: 555-555-5556 companyName: type: string description: The name of the company associated with the customer, if applicable. example: Company Name addressLine1: type: string description: The primary address line for the customer's address. example: 123 Street st. addressLine2: type: string description: The secondary address line for the customer's address, such as apartment or suite number. example: Unit 123 zipCode: type: string description: The postal code for the customer's address. example: '12345' city: type: string description: The city of the customer's address. example: Some City state: type: string description: The state or region of the customer's address. example: Some State email: type: string description: The email address of the customer. example: example@example.com taxIdentifier: type: string description: The tax identifier of the customer. example: '123456789' fiscalCode: type: string description: The fiscal code of the customer. example: '123456789' destinationCode: type: string description: The destination code of the customer. example: '123456789' financial-apiResourcesTaxRate: type: object properties: _embedded: type: object properties: taxRateList: type: array items: $ref: '#/components/schemas/financial-apiTaxRate' _links: type: object properties: self: type: object properties: href: type: string example: https://api.ikentoo.com/f/finance/141948669132802/tax-rates financial-apiTaxRate: type: object properties: code: type: string example: VAT20 description: System code for the tax rate. description: type: string example: VAT 20% description: Name of the tax rate. rate: type: number example: 1.2 description: Multiplier for the tax rate. taxIncluded: type: boolean description: Whether or not the tax is included. accountingReference: type: string financial-apiLSPaymentsDto: type: object properties: payments: type: array items: $ref: '#/components/schemas/financial-apiLSPayment' description: List of requested payments. nullable: false pageSize: type: integer format: int32 description: Size of the returned collection. example: 100 offset: type: integer format: int32 description: Offset of the first item returned in the collection. example: 0 nextOffset: type: integer format: int32 description: Next offset to get next page of data based off current pageSize and offset, if available. example: 100 financial-apiLSPayment: type: object properties: accountFiscId: type: string description: The account identifier. example: A72691.8 lightspeedPaymentId: type: string description: "Unique identifier assigned by Lightspeed to the payment, derived from Adyen's PSP reference. \nThis alphanumeric code uniquely identifies each payment or modification request, \nincluding refunds. For more information, see Adyen's documentation: \nhttps://help.adyen.com/knowledge/payments/payment-basics/what-is-a-psp-reference-number" example: ad-GJ33PFSCGVG4NFH4 uuid: type: string description: "The internal UUID of the payment. This value may not be unique in scenarios involving Pay-at-Table, partial, or split payments, \nwhere multiple payment transactions can share the same reference and/or POS Order Id\nFor a guaranteed unique identifier for each Lightspeed Payments transaction, use the `lightspeedPaymentId` field which is based off Adyen PSP ID." example: bc7i2X_CTkeg8qlec66wmg== reference: type: string description: The alphanumeric reference of the payment. example: RFOOVMIMPSDY status: $ref: '#/components/schemas/financial-apiLSPaymentStatus' createdDate: type: string format: date-time description: The date and time the payment was created. example: '2022-09-21T10:11:56Z' captureDate: type: string format: date-time description: The date and time the payment was captured. example: '2022-09-21T10:11:56Z' modificationDate: type: string format: date-time example: '2022-09-21T10:11:56Z' fees: $ref: '#/components/schemas/financial-apiCurrencyAmount' surcharge: $ref: '#/components/schemas/financial-apiCurrencyAmount' financial-apiLSPaymentStatus: type: string description: The statuses for a Lightspeed Payments transaction. enum: - CAPTURED - DISPUTED - PARTIALLY_REFUNDED - REFUNDED financial-apiCurrencyAmount: type: object properties: value: type: string description: The amount in dollars. example: '0.00' currency: type: string description: The currency code. example: CAD financial-apiServiceChargeType: type: string description: The type of service charge applied to the sale line. example: APPORTIONED enum: - UNTAXED - APPORTIONED - NO_SERVICE_CHARGE financial-apiSortDirection: type: string example: ASC default: ASC description: The direction to sort the results. enum: - ASC - DESC financial-apiDateType: type: string example: CREATED description: The date used when querying and sorting results. enum: - CREATED - MODIFIED default: MODIFIED financial-apiFinancialDto: properties: businessName: type: string description: Name of the business example: My Business nextStartOfDayAsIso8601: type: string description: Start of next business day, in the merchant's local time. example: '2023-07-28T05:30:00-05:00' businessLocationId: type: number description: The unique identifier for the business location. example: 123456789 sales: items: $ref: '#/components/schemas/financial-apiSaleDto' type: array dataComplete: type: boolean example: false _links: properties: self: properties: href: example: https://api.ikentoo.com/f/finance/141948669132802/financials/2021-08-30T14:00:00Z/2023-09-03T15:30:00Z?pageSize=10&include=payments type: string templated: example: true type: boolean type: object nextPage: properties: href: example: https://api.ikentoo.com/f/finance/141948669132802/financials/2021-08-30T14:00:00Z/2023-09-03T15:30:00Z?pageSize=10&include=payments&nextPageToken=A65315.18 description: The URL for the next set of results. type: string templated: example: true type: boolean type: object type: object financial-apiSaleDto: properties: accountReference: type: string description: Unique reference code for the account. example: 57X0j3hzTZ2oo9sdVWiUog== accountFiscId: type: string description: The account identifier example: A65315.17 receiptId: type: string description: The unique identifier for the receipt associated with this account. example: R65315.13 source: properties: initialAccountId: type: string description: "The `accountFiscId` of the initial transaction associated with the current account, if applicable. For example, in the case of a refund.\n\nThis will match the `accountFiscId` of the sale if there is no associated account." example: A65315.13 previousAccountId: type: string description: "The `accountFiscId` of the previous transaction associated with the current account, if applicable. For example, in the case of a refund.\n\nThis may be different from `initialAccountId` if there is more than one associated account.\n\nIt will not be displayed if there is no associated account." example: A65315.15 type: object salesLines: items: properties: id: type: string description: The sale line identifier example: S65315.33 parentLineId: type: string description: The sale line this item is associated with, if applicable. example: S65315.32 totalNetAmountWithTax: type: string description: "Total amount of sale line, including tax. **Important Note:** This field is for use with tax inclusive businesses.\nFor tax exclusive businesses, see `taxAmount` and `taxLines` for tax calculations." example: '11.00' totalNetAmountWithoutTax: type: string description: Total amount of the sale line, before tax. example: '8.33' menuListPrice: type: string description: The price listed on the menu. example: '10.00' unitCostPrice: type: string description: The unit cost price. example: '5.00' serviceCharge: type: string description: The service charge amount. example: '1.00' serviceChargeType: $ref: '#/components/schemas/financial-apiServiceChargeType' serviceChargeRate: type: string description: The service charge rate, as a percentage. example: '10.00' discountAmount: type: string description: The discount amount. example: '0.00' taxCode: type: string description: The system code for the tax rate. example: VAT20 taxAmount: type: string description: The tax total. example: '1.6667' taxRatePercentage: type: string description: The tax rate, as a percentage. example: '20.00' taxLines: items: properties: taxId: type: string description: The unique identifier for the tax. example: '41910290874374' taxCode: type: string description: The system code for the tax rate. example: VAT20 taxRate: type: string description: The tax rate, as a multiplier. example: '1.2' taxAmount: type: string description: The tax total. example: '1.666667' taxIncluded: type: boolean description: Whether or not the business is tax inclusive. example: true discountType: type: string description: The type of discount. example: DISCOUNT discountCode: type: string description: The discount code. example: 10PCT discountName: type: string description: The name of the discount. example: 10% Discount accountDiscountAmount: type: string description: The account discount amount. example: '1.00' accountDiscountType: type: string description: The account discount type (if any). example: DISCOUNT accountDiscountCode: type: string description: The account discount code (if any). example: Staff 20% accountDiscountName: type: string description: The account discount name (if any). example: Staff Discount totalDiscountAmount: type: string description: The total discount amount. example: '1.00' sku: type: string description: The item SKU example: '52' name: type: string description: The item name. example: Burger nameOverride: type: string description: Item name entered manually by the POS user upon item selection. example: Burger Double Cheese statisticGroup: type: string description: The item's statistic group. example: Food quantity: type: string description: The item quantity. example: '1' accountingGroup: properties: accountingGroupId: type: number description: The unique identifier for the item's accounting group. example: 141948669132845 name: type: string description: The name of the accounting group. example: Food statisticGroup: type: string description: The accounting group's statistic group. example: Food code: type: string description: The code assigned to the accounting group. example: '123' type: object currency: type: string description: The currency for the sale line. example: GBP tags: items: type: string type: array description: The tags attached to the line item. revenueCenter: type: string description: The name of the revenue center where the sale line was created. example: Fixed POS revenueCenterId: type: number description: The unique identifier for the revenue center where the sale line was created. example: 141948669132822 categories: items: properties: category: type: string description: The line item's category. example: default value: type: string description: The category value. example: Food type: object type: array timeofSale: type: string description: The timestamp of when the line item was created. example: '2023-07-27T19:58:22.474Z' staffId: type: number description: The unique identifier for the user who created the line item. example: 14670 staffName: type: string description: The name of the user who created the line item. example: Manager deviceId: type: number description: The unique identifier for the device where the sale line was created. example: 75125 deviceName: type: string description: The name of the device where the sale line was created. example: iPad9 voidReason: type: string enum: - Broken - Cooking - Other - Taste - Unhappy Client - User Mistake - Waited too long description: The void reason, if applicable. example: Unhappy Client accountProfileCode: type: string description: The code of the account profile used. example: AAP type: object type: array payments: items: properties: code: type: string description: The code of the payment method. example: CASH description: type: string description: The name of the payment method. example: Cash paymentMethodId: type: number description: The unique identifier for the payment method. example: 141948669132824 netAmountWithTax: type: string description: The net payment amount, including tax. example: '11.00' currency: type: string description: The payment currency. example: GBP tip: type: string description: The tip amount. example: '0.00' consumer: properties: id: type: string description: The UUID of the customer associated with the payment, if applicable. example: ec021fb0-4c12-425e-b30f-320ab720448b customerId: type: number description: The unique identifier for the customer. example: 120913 title: description: The title of the customer. type: string example: Mr firstName: description: The first name of the customer. type: string example: John lastName: description: The last name of the customer. type: string example: Doe phoneNumber1: description: The primary phone number of the customer. type: string example: 555-555-5555 phoneNumber2: description: The secondary phone number of the customer. type: string example: 555-555-5556 companyName: description: The company name of the customer. type: string example: Company Name addressLine1: description: The first line of the customer's address. type: string example: 123 Street st. addressLine2: description: The second line of the customer's address. type: string example: Unit 123 zipCode: description: The postal code of the customer's address. type: string example: '12345' city: description: The city of the customer's address. type: string example: Some City state: description: The state of the customer's address. type: string example: Some State email: description: The email address of the customer. type: string example: customer@email.com taxIdentifier: description: The tax identifier of the customer. type: string example: '123456789' fiscalCode: description: The fiscal code of the customer. type: string example: '123456789' destinationCode: description: The destination code of the customer. type: string example: '123456789' type: object type: example: NORMAL description: The type of payment. enum: - NORMAL - ACCOUNTS_RECEIVABLE type: string deviceId: type: string description: The unique identifier for the device where the payment was processed. example: '72676' deviceName: type: string description: The name of the device where the payment was processed. example: ipad9 staffId: type: number description: The unique identifier for the user who processed the payment. example: 180480 staffName: type: string description: The name of the user who processed the payment. example: Manager authorization: type: string description: The authorization code for the payment. example: '001' externalReference: type: string description: The external reference code for the payment. example: '1000' revenueCenter: type: string description: The name of the revenue center where the payment was processed. example: Fixed POS revenueCenterId: type: number description: The unique identifier for the revenue center where the payment was processed. example: 141948669132822 fiscId: type: string description: The unique identifier for the payment. example: T72691.8 uuid: type: string description: The base64url encoded UUID of the payment. example: bc7i2X_CTkeg8qlec66wmg== fiscDate: type: string description: The time stamp of the payment. example: '2023-02-14T20:04:08.665Z' surcharge: type: string description: The surcharge amount. example: '0.00' type: object type: array timeofOpening: type: string description: The account creation timestamp. example: '2023-02-14T19:58:48.224Z' timeofCloseAndPaid: type: string description: The account close timestamp. example: '2023-02-14T20:04:08.734Z' cancelled: type: boolean externalFiscalNumber: type: string tableNumber: type: string description: The table number. example: '1' tableName: type: string description: The name of the table. example: Dining Room, Table 1 accountProfileCode: type: string description: The account profile associated with the account. example: AAP ownerName: type: string description: The name of the user associated with the account. example: Manager ownerId: type: number description: The unique identifier for the user associated with the account. example: 14670 type: example: SALE enum: - SALE - VOID - RECALL - REFUND - SPLIT - UPDATE - TRANSFER - FLOAT - TRANSITORY - CROSS_BL - CANCEL type: string description: The sale type. externalReferences: items: type: string description: List of external references for online orders. Includes the TASK prefix, `businessLocationId`, and the unique reference code provided in the [`thirdPartyReference`](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-thirdpartyreference) field of an online order. example: '"TASK:OO-{businessLocationId}-{unique-reference-code}", "TASK:OO-{businessLocationId}-(another-unique-reference-code)"' type: array nbCovers: type: number description: The number of covers. example: 2.0 dineIn: type: boolean description: Whether the order is dine-in. example: true deviceId: description: The unique identifier for the device where the account was created. type: number example: 75125 deviceName: description: The name of the device where the account was created. type: string example: ipad9 voidReason: type: string enum: - Broken - Cooking - Other - Taste - Unhappy Client - User Mistake - Waited too long description: The void reason, if applicable. example: Unhappy Client type: object generic-accounting-svcAccountingLine: type: object properties: type: type: string description: Accounting Line type discriminator enum: - SALES - PAYMENTS description: Accounting lines anyOf: - $ref: '#/components/schemas/generic-accounting-svcPaymentsAccountingLine' - $ref: '#/components/schemas/generic-accounting-svcSalesAccountingLine' generic-accounting-svcMissingMapping: type: object properties: type: type: string description: The Type of mapping this is, one of TAX, SALES, PAYMENTS id: type: string description: The local ID that is missing, i.e. the ones found in the Backoffice description: List of missing mappings generic-accounting-svcPaymentsAccountingLine: type: object properties: date: type: string description: Accounting date revenueCenterId: type: string description: The revenue center ID clearingAccount: type: string description: An optional clearing account accountId: type: string description: Account id used in the 3rd party accounting system accountName: type: string description: Account name used in the 3rd party accounting system salesCurrency: type: string description: Self explanatory totalLessTax: type: number description: Total amount tips: type: number description: Total tips type: type: string description: Accounting Line type discriminator enum: - SALES - PAYMENTS generic-accounting-svcSalesAccountingLine: type: object properties: date: type: string description: Accounting date revenueCenterId: type: string description: The revenue center ID clearingAccount: type: string description: An optional clearing account accountId: type: string description: Account id used in the 3rd party accounting system posAccountId: type: string description: POS Account id accountName: type: string description: Account name used in the 3rd party accounting system salesCurrency: type: string description: Self explanatory totalTaxAmount: type: number description: Total tax amount totalExcludingTax: type: number description: Total amount not including sales tax totalIncludingTax: type: number description: Total amount including sales tax taxAccountId: type: string description: Account ID used for tax for these sales taxCode: type: string description: Tax code for for tax for these sales type: type: string description: Accounting Line type discriminator enum: - SALES - PAYMENTS generic-accounting-svcSingleMapping: required: - accountingSystemId - internalAccountId - tenantId type: object properties: id: type: integer format: int64 tenantId: maxLength: 36 minLength: 1 type: string internalAccountId: maxLength: 36 minLength: 1 type: string accountingSystemId: maxLength: 36 minLength: 1 type: string customDestinationAccountName: maxLength: 128 minLength: 1 type: string generic-accounting-svcAccountMap: required: - mappings - tenantId - type type: object properties: id: type: integer format: int64 type: type: string enum: - SALES - TAX - PAYMENTS tenantId: maxLength: 36 minLength: 1 type: string mappings: type: object additionalProperties: $ref: '#/components/schemas/generic-accounting-svcSingleMapping' clearingAccount: type: string gift-card-serviceLocaleEnum: type: string description: Locale code for translated column headers and filename prefix (case-insensitive) enum: - en - de - es - fr_fr - fr_ca - it - nl default: en gift-card-serviceBusinessDto: properties: active: type: boolean addTransactionRestricted: type: boolean advancedStockManagement: type: boolean alphabeticOrder: type: boolean cancelReceiptRestricted: type: boolean centsRestricted: type: boolean costPriceTaxIncluded: type: boolean createdOn: format: date-time type: string currencyCode: type: string currencyRestricted: type: boolean editForeignCurrencyRestricted: type: boolean editReceiptRestricted: type: boolean finalBillRestricted: type: boolean fiscalNoCancel: type: boolean fiscalNoDuplicate: type: boolean fiscalNoNegative: type: boolean fiscalNote: type: boolean fiscalPrintingRestriction: type: boolean fiscalReceipt: type: boolean giftCardMaxAmount: type: number id: format: int64 type: integer itemLevelStatisticGroups: type: boolean locale: type: string managedBilling: type: boolean multiSite: type: boolean name: type: string onDemandGiftCardEnabled: type: boolean priceListEnabled: type: boolean referenceDate: format: date-time type: string settleDebtorsInvoiceRestricted: type: boolean status: enum: - SIGNUP - EMPTY - TRIAL - PENDING_PRODUCTION - PRODUCTION type: string taxIncluded: type: boolean tipsRestricted: type: boolean tleDebtorsInvoiceRestricted: $ref: '#/components/schemas/gift-card-serviceBusinessDto' unlinkedDebtorsTransactionsRestricted: type: boolean type: object gift-card-serviceBusinessLocationDto: properties: accountOwner: type: string accountType: type: string accountingEnabled: type: boolean accountingReference: maxLength: 128 minLength: 0 type: string active: type: boolean addressLine1: maxLength: 64 minLength: 0 type: string addressLine2: maxLength: 64 minLength: 0 type: string airPrintCSS: maxLength: 4096 minLength: 0 type: string businessActive: type: boolean businessCostPriceTaxIncluded: type: boolean businessCreatedOn: format: date-time type: string businessCurrency: type: string businessId: format: int64 type: integer businessLocale: maxLength: 16 minLength: 0 type: string businessName: maxLength: 128 minLength: 0 type: string businessReferenceDate: format: date-time type: string businessStatus: enum: - SIGNUP - EMPTY - TRIAL - PENDING_PRODUCTION - PRODUCTION type: string businessTaxIncluded: type: boolean city: maxLength: 64 minLength: 0 type: string clearingAccount: maxLength: 20 minLength: 0 type: string consumerMessage: type: string contractStartDate: format: date-time type: string country: maxLength: 8 minLength: 0 type: string createdOn: format: date-time type: string crmAccountId: type: string defaultStockId: format: int64 type: integer errors: type: object externalProvisioningId: type: string fiscalCsvFormat: type: boolean fiscalIdentifier: maxLength: 32 minLength: 0 type: string halfServiceHour: format: int32 type: integer hideCustomerBilling: type: boolean id: format: int64 type: integer languageCode: type: string localOrdersKey: type: string majorVersionUpgradeAllowed: type: boolean managedBilling: type: boolean managedInvoicing: type: boolean maxCovers: format: int32 type: integer maxReports: format: int32 type: integer migratedProvisioning: type: boolean moveToProdDate: format: date-time type: string name: maxLength: 512 minLength: 0 type: string period: format: int32 type: integer phone: maxLength: 32 minLength: 0 type: string preV3: type: boolean provisioningMigrationDate: format: date-time type: string receiptFooterLastLine: type: string requiredPosMajorVersion: format: int32 type: integer resellerName: type: string salesforceId: type: string shifts: type: string startOfTheDay: format: int32 type: integer startOfTheWeek: format: int32 type: integer state: maxLength: 64 minLength: 0 type: string status: enum: - SIGNUP - EMPTY - TRIAL - PENDING_PRODUCTION - PRODUCTION type: string template: type: boolean timeTrackingEnabled: type: boolean timezone: maxLength: 64 minLength: 0 type: string tipsAccount: maxLength: 20 minLength: 0 type: string unitSystem: enum: - METRIC - IMPERIAL - MIX_METRIC_IMPERIAL - US_CUSTOMARY - ALL type: string version3: type: boolean versionDates: additionalProperties: format: date-time type: string type: object zipCode: maxLength: 64 minLength: 0 type: string required: - businessCurrency - businessLocale - businessName - city - country - name - timezone - zipCode type: object gift-card-serviceCardBatchRepresentation: properties: business: $ref: '#/components/schemas/gift-card-serviceBusinessDto' description: type: string errors: type: object id: format: int64 type: integer importSource: type: string loyaltyProgram: $ref: '#/components/schemas/gift-card-serviceLoyaltyProgramDto' name: type: string offline: type: boolean onDemand: type: boolean punchLines: items: $ref: '#/components/schemas/gift-card-servicePunchLineDto' type: array size: format: int32 minimum: 1 type: integer type: enum: - VIP - POINTS - GIFT - PUNCH - ID type: string unusedCardsCount: format: int64 type: integer required: - name type: object gift-card-serviceCardImportErrorRecord: properties: error: maxLength: 2147483647 minLength: 1 type: string errorCode: maxLength: 2147483647 minLength: 1 type: string importedCardId: maxLength: 2147483647 minLength: 1 type: string recordId: format: int64 minimum: 1 type: integer type: object gift-card-serviceConsumerAccountDto: properties: amount: type: number autoPay: type: boolean businessLocation: $ref: '#/components/schemas/gift-card-serviceBusinessLocationDto' consumer: $ref: '#/components/schemas/gift-card-serviceConsumerDto' id: format: int64 type: integer maxAmount: type: number maxOverdraftAmount: type: number type: object gift-card-serviceConsumerContactDto: properties: addressLine1: maxLength: 255 minLength: 0 type: string addressLine2: maxLength: 255 minLength: 0 type: string city: maxLength: 128 minLength: 0 type: string companyName: maxLength: 128 minLength: 0 type: string country: maxLength: 8 minLength: 0 type: string creationDate: format: date-time type: string destinationCode: maxLength: 64 minLength: 0 type: string emailReceipts: type: boolean errors: type: object firstName: maxLength: 128 minLength: 0 type: string fiscalCode: maxLength: 128 minLength: 0 type: string fullName: type: string id: format: int64 type: integer lastName: maxLength: 128 minLength: 0 type: string phoneNumber1: maxLength: 64 minLength: 0 type: string phoneNumber2: maxLength: 64 minLength: 0 type: string readonlyFields: items: type: string type: array uniqueItems: true salutation: maxLength: 64 minLength: 0 type: string state: maxLength: 32 minLength: 0 type: string taxIdentifier: maxLength: 64 minLength: 0 type: string zipCode: maxLength: 64 minLength: 0 type: string required: - firstName - lastName type: object gift-card-serviceConsumerDto: properties: consumerNotes: items: $ref: '#/components/schemas/gift-card-serviceConsumerNoteDto' type: array contactInformation: $ref: '#/components/schemas/gift-card-serviceConsumerContactDto' creationDate: format: date-time type: string discountId: format: int64 type: integer emailAddress: type: string errors: type: object firstSeenByBusinessId: format: int64 type: integer gratuityAmount: format: double type: number id: format: int64 type: integer language: type: string modificationDate: format: date-time type: string paymentAmounts: additionalProperties: format: double type: number type: object recordId: format: int64 type: integer recordUuid: type: string tagId: format: int64 type: integer ticketCount: format: double type: number totalAmount: format: double type: number required: - creationDate - language type: object gift-card-serviceConsumerNoteDto: properties: keyName: type: string value: type: string type: object gift-card-serviceCreateConsumerDto: properties: addressLine1: maxLength: 255 minLength: 0 type: string addressLine2: maxLength: 255 minLength: 0 type: string city: maxLength: 128 minLength: 0 type: string companyName: maxLength: 128 minLength: 0 type: string country: maxLength: 8 minLength: 0 type: string destinationCode: maxLength: 64 minLength: 0 type: string email: type: string firstName: maxLength: 128 minLength: 0 type: string fiscalCode: maxLength: 128 minLength: 0 type: string language: maxLength: 2 minLength: 0 type: string lastName: maxLength: 128 minLength: 0 type: string phoneNumber1: maxLength: 64 minLength: 0 type: string phoneNumber2: maxLength: 64 minLength: 0 type: string state: maxLength: 32 minLength: 0 type: string taxIdentifier: maxLength: 64 minLength: 0 type: string zipCode: maxLength: 64 minLength: 0 type: string required: - email type: object gift-card-serviceGiftOperationLineDto: properties: amount: type: number balance: type: number cancelTime: format: date-time type: string confirmationAccountFiscalId: type: string confirmationAccountId: format: int64 type: integer confirmationCancelationDate: format: date-time type: string confirmationDate: format: date-time type: string confirmed: type: boolean date: format: date-time type: string id: format: int64 type: integer paymentMethodCode: type: string paymentMethodId: format: int64 type: integer paymentMethodName: type: string remark: type: string staffFullName: type: string staffId: format: int64 type: integer status: enum: - NOT_CONFIRMED - CONFIRMED - CANCELLED type: string token: type: string type: enum: - REFILL - WITHDRAW type: string type: object gift-card-serviceLoyaltyProgramDto: properties: businessId: format: int64 type: integer name: type: string type: object gift-card-serviceOnlineMerchant: properties: displayableName: type: string type: object gift-card-serviceOnlineWebStore: properties: backgroundImage: type: string customAmountEnabled: type: boolean enabled: type: boolean link: type: string predefinedAmounts: items: format: double type: number type: array uniqueItems: true predefinedAmountsEnabled: type: boolean required: - predefinedAmounts type: object gift-card-serviceProductFilterDto: properties: errors: type: object items: items: $ref: '#/components/schemas/gift-card-serviceProductFilterItemDto' type: array type: enum: - INCLUDE - EXCLUDE type: string required: - type type: object gift-card-serviceProductFilterItemDto: properties: accountingGroupId: format: int64 type: integer accountingGroupName: type: string errors: type: object id: format: int64 type: integer maxCount: format: int32 type: integer productId: format: int64 type: integer productName: type: string required: - accountingGroupId - maxCount type: object gift-card-servicePunchCompletionDto: properties: complete: type: boolean current: format: int32 type: integer name: type: string percent: format: int32 type: integer remaining: format: int32 type: integer target: format: int32 type: integer type: object gift-card-servicePunchConfigurationItemDto: properties: cumulative: type: boolean errors: type: object fromDate: format: date-time type: string id: format: int64 type: integer name: maxLength: 128 minLength: 0 type: string rewardProductFilter: $ref: '#/components/schemas/gift-card-serviceProductFilterDto' targetProductFilter: $ref: '#/components/schemas/gift-card-serviceProductFilterDto' targetQuantity: format: int32 type: integer toDate: format: date-time type: string required: - fromDate - name - toDate type: object gift-card-servicePunchLineDto: properties: completion: $ref: '#/components/schemas/gift-card-servicePunchCompletionDto' id: format: int64 type: integer punchConfigurationItem: $ref: '#/components/schemas/gift-card-servicePunchConfigurationItemDto' type: object gift-card-serviceCommonStatsMetricDto: type: object description: Common statistics metric containing total count and average value properties: total: type: number format: double description: Total amount avg: type: number format: double description: Average amount count: type: integer format: int32 description: Total number id-cards-apiCreateIdCardBatchRequest: type: object properties: name: type: string description: The name of the ID card batch. example: Sample Batch Name pattern: .*\S.* maxLength: 255 required: - name id-cards-apiIdCardBatch: type: object properties: batchId: type: integer format: int64 description: The unique identifier for the ID card batch. example: 12345 name: type: string description: The name of the ID card batch. businessLocationId: type: integer format: int64 description: The unique identifier for the business location this batch belongs to. example: 67890 id-cards-apiCreateIdCardsRequest: type: object properties: cardCount: type: integer format: int32 description: The number of ID cards to create. example: 1 minimum: 1 maximum: 100 required: - cardCount id-cards-apiCreateIdCardsResponse: type: object properties: batchId: type: integer format: int64 description: The unique identifier for the batch the cards were added to. example: 12345 cards: type: array items: $ref: '#/components/schemas/id-cards-apiCardReference' id-cards-apiCardReference: type: object properties: id: type: integer format: int64 description: The unique identifier for the ID card. example: 98765 consumerRecordId: type: integer format: int64 description: The unique identifier for the associated consumer record. example: 54321 consumerId: type: integer format: int64 description: The unique identifier for the associated consumer. example: 13579 url: type: string description: The URL for the QR code associated with the ID card. example: https://example.com/id-cards/98765/qr-code insights-serviceProductGroupId: type: string minLength: 1 example: '123456' insights-serviceId: type: string minLength: 1 example: '123456789' insights-serviceItemId: type: string minLength: 1 example: '123456789' insights-serviceItemName: type: string minLength: 1 example: Coffee insights-serviceProductId: type: string minLength: 1 example: '123456789' insights-serviceProductName: type: string minLength: 1 example: Coffee insights-serviceLocationId: type: string minLength: 1 example: '123456789' insights-serviceBusinessId: type: string minLength: 1 example: '123456789' insights-serviceCountryCode: type: string minLength: 2 maxLength: 2 example: GB insights-serviceServerId: type: string minLength: 1 example: '123456789' insights-serviceServerGroupId: type: string minLength: 1 example: JOB123 insights-serviceTimeRange: type: string minLength: 11 maxLength: 11 pattern: ^\d\d:[03]0-\d\d:[03]0$ example: 07:30-10:00 insights-serviceFirstName: type: string minLength: 1 example: John insights-serviceLastName: type: string minLength: 1 example: Smith insights-serviceJobTitle: type: string minLength: 1 example: Manager insights-serviceJobId: type: string minLength: 1 example: '123456789' insights-serviceTimeUnit: type: string enum: - hour - day - week - month - quarter example: day x-go-type: models.TimeUnit x-go-type-import: path: github.com/lightspeed-hospitality/insights-service/models insights-serviceHour: type: integer minimum: 0 maximum: 47 example: 0 description: Hour of a business day in 24 hour time. 0 is midnight. 24 is midnight the next day, but still the same business day. insights-serviceDayOfWeek: type: integer minimum: 0 maximum: 6 example: 0 description: Day of the week. 0 is Monday. x-go-type: models.Weekday x-go-type-import: path: github.com/lightspeed-hospitality/insights-service/models insights-serviceMonth: type: integer minimum: 1 maximum: 12 example: 1 description: The Month the average was calculated using the previous year's Sales. insights-serviceYear: type: integer minimum: 1 maximum: 3000 example: 2023 description: The Year the average was calculated using the previous year's Sales. insights-serviceCurrencyAmount: type: integer format: int64 minimum: -9007199254740991 maximum: 9007199254740991 default: 0 description: In units of 0.01 within JavaScript's MIN_SAFE_INTEGER and MAX_SAFE_INTEGER x-go-type: models.CurrencyAmount x-go-type-import: path: github.com/lightspeed-hospitality/insights-service/models insights-serviceTotal: type: integer format: int64 minimum: -9007199254740991 maximum: 9007199254740991 default: 0 description: This is the summed 'total' according to the POS. It is the total paid after discounts. In units of 0.01 within JavaScript's MIN_SAFE_INTEGER and MAX_SAFE_INTEGER insights-serviceFractionalQuantity: type: number format: double default: 0 minimum: 0 description: a positive floating point number x-go-type: models.DecimalTenThousandths x-go-type-import: path: github.com/lightspeed-hospitality/insights-service/models insights-serviceTenThousandths: type: integer format: int64 default: 0 minimum: -9007199254740991 maximum: 9007199254740991 description: a fixed point quantity in units of 10,000ths - this is the internal representation of quantity in K-Series insights-serviceRoundedHour: type: number format: double default: 0 minimum: 0 description: float number rounded to the quarter insights-servicePercentage: type: number format: double default: 0 description: a ratio multiplied by 100 x-go-type: models.Float x-go-type-import: path: github.com/lightspeed-hospitality/insights-service/models insights-serviceBasisPoint: type: number format: double default: 0 description: a ratio multiplied by 10,000 insights-serviceCount: type: integer format: int64 minimum: 0 maximum: 9007199254740991 default: 0 description: Max of JavaScript's MAX_SAFE_INTEGER x-go-type: models.SignedCount x-go-type-import: path: github.com/lightspeed-hospitality/insights-service/models insights-serviceDate: type: string format: date example: '2022-12-20' x-go-type: models.Date x-go-type-import: path: github.com/lightspeed-hospitality/insights-service/models insights-serviceTimestamp: type: string example: '2025-09-16T16:09:25+03:00' description: RFC3339 timestamp x-go-type: models.RFC3339 x-go-type-import: path: github.com/lightspeed-hospitality/insights-service/models x-go-type-skip-optional-pointer: true x-omitzero: true insights-serviceKpiName: type: string example: hero insights-serviceConclusions: type: string minLength: 1 example: Sales are up insights-servicePerBasisPoint: type: integer format: int64 minimum: -9007199254740991 maximum: 9007199254740991 default: 0 description: Whole number percentage in units of 0.01. eg. 1000 => 10% insights-serviceBusinessDayPeriodEventsList: type: array items: $ref: '#/components/schemas/insights-serviceBusinessDayPeriodEvents' insights-serviceBusinessDayPeriodEvents: type: object properties: business_day: $ref: '#/components/schemas/insights-serviceDate' opened_periods: $ref: '#/components/schemas/insights-servicePeriodEvents' closed_periods: $ref: '#/components/schemas/insights-servicePeriodEvents' opened: type: boolean closed: type: boolean open_timestamp: $ref: '#/components/schemas/insights-serviceTimestamp' close_timestamp: $ref: '#/components/schemas/insights-serviceTimestamp' required: - business_day - opened_periods - closed_periods - opened - closed insights-servicePeriodEvent: type: object properties: device_id: type: string period_id: type: string device_name: type: string timestamp: $ref: '#/components/schemas/insights-serviceTimestamp' open_timestamp: $ref: '#/components/schemas/insights-serviceTimestamp' is_passive: type: boolean required: - device_id - period_id - device_name - timestamp - open_timestamp - is_passive insights-servicePeriodEvents: type: array items: $ref: '#/components/schemas/insights-servicePeriodEvent' insights-serviceSalesServerSummaryMap: type: object description: map of server/POS user ids to staff detail and sale summary additionalProperties: x-additionalPropertiesName: serverId $ref: '#/components/schemas/insights-serviceSalesServer' example: server123: first_name: John last_name: Smith sales: - business_day_from: '2022-12-20' business_day_to: '2022-12-20' interval_from: '2022-12-20T11:00:00-05:00' interval_to: '2022-12-20T12:00:00-05:00' net_sales: 123456 gross_sales: 123789 repeat_gross_sales: 123789 covers: 562 net_sales_with_covers: 1234 gross_sales_with_covers: 1234 guest_checks: 316 guest_checks_no_covers: 0 repeat_guest_checks: 316 staff_worked_minutes: 30 turn_time_minutes: 10 checks_with_turn: 1 taxes: 1633 surcharges: 0 card_fees: 379 tips: 659 voids: 1289 refunds: 1082 discounts: 690 comps: 530 losses: 210 interval: hour - business_day_from: '2022-12-20' business_day_to: '2022-12-20' interval_from: '2022-12-20T12:00:00-05:00' interval_to: '2022-12-20T13:00:00-05:00' net_sales: 23423 gross_sales: 34323 repeat_gross_sales: 34323 covers: 42 net_sales_with_covers: 1234 gross_sales_with_covers: 1234 guest_checks: 37 guest_checks_no_covers: 0 repeat_guest_checks: 37 staff_worked_minutes: 30 turn_time_minutes: 10 checks_with_turn: 1 taxes: 1351 surcharges: 0 card_fees: 379 tips: 659 voids: 1289 refunds: 1082 discounts: 690 comps: 530 losses: 210 interval: hour insights-serviceSalesServer: type: object description: Staff details with an array of sales required: - first_name - last_name - sales properties: first_name: type: string example: John last_name: type: string example: Smith sales: type: array items: $ref: '#/components/schemas/insights-serviceSalesSummaryItem' example: first_name: John last_name: Smith sales: - business_day_from: '2022-12-20' business_day_to: '2022-12-20' interval_from: '2022-12-20T11:00:00-05:00' interval_to: '2022-12-20T12:00:00-05:00' net_sales: 123456 gross_sales: 123789 repeat_gross_sales: 123789 covers: 562 net_sales_with_covers: 1234 gross_sales_with_covers: 1234 guest_checks: 316 guest_checks_no_covers: 0 repeat_guest_checks: 316 staff_worked_minutes: 30 turn_time_minutes: 10 checks_with_turn: 1 taxes: 1633 surcharges: 0 card_fees: 379 tips: 659 voids: 1289 refunds: 1082 discounts: 690 comps: 530 losses: 210 interval: hour - business_day_from: '2022-12-20' business_day_to: '2022-12-20' interval_from: '2022-12-20T12:00:00-05:00' interval_to: '2022-12-20T13:00:00-05:00' net_sales: 23423 gross_sales: 34323 repeat_gross_sales: 34323 covers: 42 net_sales_with_covers: 1234 gross_sales_with_covers: 1234 guest_checks: 37 guest_checks_no_covers: 0 repeat_guest_checks: 37 staff_worked_minutes: 30 turn_time_minutes: 10 checks_with_turn: 1 taxes: 1351 surcharges: 0 card_fees: 379 tips: 659 voids: 1289 refunds: 1082 discounts: 690 comps: 530 losses: 210 interval: hour insights-serviceSalesSummaryMap: type: object description: map of LocationIds to arrays of SalesSummaryItems additionalProperties: x-additionalPropertiesName: locationId type: array items: $ref: '#/components/schemas/insights-serviceSalesSummaryItem' example: Location1: - business_day_from: '2022-12-20' business_day_to: '2022-12-20' interval_from: '2022-12-20T11:00:00-05:00' interval_to: '2022-12-20T12:00:00-05:00' net_sales: 123456 gross_sales: 123789 repeat_gross_sales: 123789 covers: 562 net_sales_with_covers: 1234 gross_sales_with_covers: 1234 guest_checks: 316 guest_checks_no_covers: 0 repeat_guest_checks: 316 staff_worked_minutes: 30 turn_time_minutes: 10 checks_with_turn: 1 taxes: 1633 surcharges: 0 card_fees: 379 tips: 659 voids: 1289 refunds: 1082 discounts: 690 comps: 530 losses: 210 interval: hour - business_day_from: '2022-12-20' business_day_to: '2022-12-20' interval_from: '2022-12-20T12:00:00-05:00' interval_to: '2022-12-20T13:00:00-05:00' net_sales: 23423 gross_sales: 34323 repeat_gross_sales: 34323 covers: 42 net_sales_with_covers: 1234 gross_sales_with_covers: 1234 guest_checks: 37 guest_checks_no_covers: 0 repeat_guest_checks: 37 staff_worked_minutes: 30 turn_time_minutes: 10 checks_with_turn: 1 taxes: 1351 surcharges: 0 card_fees: 379 tips: 659 voids: 1289 refunds: 1082 discounts: 690 comps: 530 losses: 210 interval: hour insights-serviceSalesSummaryItem: required: - business_day_from - business_day_to - interval_from - interval_to - net_sales - gross_sales - repeat_gross_sales - covers - net_sales_with_covers - gross_sales_with_covers - guest_checks - guest_checks_no_covers - repeat_guest_checks - staff_worked_minutes - turn_time_minutes - checks_with_turn - taxes - surcharges - card_fees - tips - voids - refunds - discounts - comps - losses - interval type: object properties: business_day_from: type: string format: date description: The first trading day this time interval includes example: '2022-12-20' business_day_to: type: string format: date description: The last trading day this time interval includes example: '2022-12-20' business_day_closed: type: boolean description: Indicates at least one period has been opened and all of the open periods have been closed interval_from: type: string description: The starting time of an `hour` interval. Returns `business_day_from` at `00:00` for `day`, `week` and `month` intervals format: date-time interval_to: type: string description: The ending time of an `hour` interval. Returns the day _after_ `business_day_to` at `00:00` for `day`, `week` and `month` intervals format: date-time net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total: $ref: '#/components/schemas/insights-serviceCurrencyAmount' tips: $ref: '#/components/schemas/insights-serviceCurrencyAmount' surcharges: $ref: '#/components/schemas/insights-serviceCurrencyAmount' card_fees: $ref: '#/components/schemas/insights-serviceCurrencyAmount' voids: $ref: '#/components/schemas/insights-serviceCurrencyAmount' refunds: $ref: '#/components/schemas/insights-serviceCurrencyAmount' losses: $ref: '#/components/schemas/insights-serviceCurrencyAmount' discounts: $ref: '#/components/schemas/insights-serviceCurrencyAmount' comps: $ref: '#/components/schemas/insights-serviceCurrencyAmount' repeat_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' covers: $ref: '#/components/schemas/insights-serviceCount' net_sales_with_covers: $ref: '#/components/schemas/insights-serviceCurrencyAmount' gross_sales_with_covers: $ref: '#/components/schemas/insights-serviceCurrencyAmount' turn_time_minutes: $ref: '#/components/schemas/insights-serviceCount' checks_with_turn: $ref: '#/components/schemas/insights-serviceCount' guest_checks: $ref: '#/components/schemas/insights-serviceCount' guest_checks_no_covers: $ref: '#/components/schemas/insights-serviceCount' repeat_guest_checks: $ref: '#/components/schemas/insights-serviceCount' staff_worked_minutes: $ref: '#/components/schemas/insights-serviceCount' taxes: $ref: '#/components/schemas/insights-serviceCurrencyAmount' interval: $ref: '#/components/schemas/insights-serviceTimeUnit' sod_unpaid: $ref: '#/components/schemas/insights-serviceCurrencyAmount' sod_unpaid_checks: $ref: '#/components/schemas/insights-serviceCount' eod_unpaid: $ref: '#/components/schemas/insights-serviceCurrencyAmount' eod_unpaid_checks: $ref: '#/components/schemas/insights-serviceCount' new_unpaid: $ref: '#/components/schemas/insights-serviceCurrencyAmount' new_unpaid_checks: $ref: '#/components/schemas/insights-serviceCount' example: business_day_from: '2022-12-20' business_day_to: '2022-12-20' interval_from: '2022-12-20T11:00:00-05:00' interval_to: '2022-12-21T11:00:00-05:00' net_sales: 123456 gross_sales: 123789 tips: 659 surcharges: 879 card_fees: 379 voids: 1289 refunds: 1082 discounts: 690 comps: 530 losses: 210 repeat_gross_sales: 123789 covers: 562 net_sales_with_covers: 1234 gross_sales_with_covers: 1234 turn_time_minutes: 10 checks_with_turn: 1 guest_checks: 316 guest_checks_no_covers: 36 repeat_guest_checks: 316 staff_worked_minutes: 30 taxes: 150 interval: day insights-serviceSalesGroupedSelectFieldsMap: type: object description: map of LocationIds to arrays of SalesGroupedSelectFieldsItems additionalProperties: x-additionalPropertiesName: locationId $ref: '#/components/schemas/insights-serviceSalesGroupedSelectFieldsItem' insights-serviceSalesGroupedSelectFieldsItem: type: object properties: total: $ref: '#/components/schemas/insights-serviceSalesGroupedSelectFieldsInterval' quarters: type: array description: array of Quarter Intervals items: $ref: '#/components/schemas/insights-serviceSalesGroupedSelectFieldsInterval' months: type: array description: array of Month Intervals items: $ref: '#/components/schemas/insights-serviceSalesGroupedSelectFieldsInterval' weeks: type: array description: array of Week Intervals items: $ref: '#/components/schemas/insights-serviceSalesGroupedSelectFieldsInterval' days: type: array description: array of Day Intervals items: $ref: '#/components/schemas/insights-serviceSalesGroupedSelectFieldsInterval' insights-serviceSalesGroupedSelectFieldsInterval: required: - business_day_from - business_day_to type: object properties: business_day_from: type: string format: date description: The first trading day this time interval includes example: '2022-12-20' business_day_to: type: string format: date description: The last trading day this time interval includes example: '2022-12-20' net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' tips: $ref: '#/components/schemas/insights-serviceCurrencyAmount' surcharges: $ref: '#/components/schemas/insights-serviceCurrencyAmount' card_fees: $ref: '#/components/schemas/insights-serviceCurrencyAmount' voids: $ref: '#/components/schemas/insights-serviceCurrencyAmount' refunds: $ref: '#/components/schemas/insights-serviceCurrencyAmount' losses: $ref: '#/components/schemas/insights-serviceCurrencyAmount' discounts: $ref: '#/components/schemas/insights-serviceCurrencyAmount' comps: $ref: '#/components/schemas/insights-serviceCurrencyAmount' repeat_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' covers: $ref: '#/components/schemas/insights-serviceCount' net_sales_with_covers: $ref: '#/components/schemas/insights-serviceCurrencyAmount' gross_sales_with_covers: $ref: '#/components/schemas/insights-serviceCurrencyAmount' guest_checks: $ref: '#/components/schemas/insights-serviceCount' guest_checks_no_covers: $ref: '#/components/schemas/insights-serviceCount' repeat_guest_checks: $ref: '#/components/schemas/insights-serviceCount' taxes: $ref: '#/components/schemas/insights-serviceCurrencyAmount' insights-serviceSalesDiscountMap: type: object description: map of LocationIds to arrays of SalesDiscountIntervals additionalProperties: x-additionalPropertiesName: locationId type: array items: $ref: '#/components/schemas/insights-serviceSalesDiscountInterval' insights-serviceSalesDiscountInterval: required: - business_day_from - business_day_to - interval_from - interval_to - interval - discounts type: object properties: business_day_from: type: string format: date description: The first trading day this time interval includes example: '2022-12-20' business_day_to: type: string format: date description: The last trading day this time interval includes example: '2022-12-20' interval_from: type: string description: The starting time of an `hour` interval. Returns `business_day_from` at `00:00` for `day`, `week` and `month` intervals format: date-time interval_to: type: string description: The ending time of an `hour` interval. Returns the day _after_ `business_day_to` at `00:00` for `day`, `week` and `month` intervals format: date-time interval: $ref: '#/components/schemas/insights-serviceTimeUnit' discounts: $ref: '#/components/schemas/insights-serviceServerReductionsItemDetailsList' insights-serviceSalesBucketMap: type: object description: map of LocationIds to arrays of SalesBucketTotals additionalProperties: x-additionalPropertiesName: locationId $ref: '#/components/schemas/insights-serviceSalesBucketTotals' insights-serviceSalesBucketTotals: required: - totals - items type: object properties: totals: $ref: '#/components/schemas/insights-serviceSalesBucketTotalsArray' items: $ref: '#/components/schemas/insights-serviceSalesBucketItemArray' insights-serviceSalesBucketTotalsArray: type: array description: array of Buckets to SalesBucketTotalItem items: $ref: '#/components/schemas/insights-serviceSalesBucketTotalItem' insights-serviceSalesBucketItemArray: type: array description: List of Buckets by the desired Interval items: $ref: '#/components/schemas/insights-serviceSalesBucketItem' insights-serviceSalesBucketItem: required: - business_day_from - business_day_to - interval_from - interval_to - interval - totals type: object properties: business_day_from: type: string format: date description: The first trading day this time interval includes example: '2022-12-20' business_day_to: type: string format: date description: The last trading day this time interval includes example: '2022-12-20' interval_from: type: string description: The starting time of an `hour` interval. Returns `business_day_from` at `00:00` for `day`, `week` and `month` intervals format: date-time interval_to: type: string description: The ending time of an `hour` interval. Returns the day _after_ `business_day_to` at `00:00` for `day`, `week` and `month` intervals format: date-time interval: $ref: '#/components/schemas/insights-serviceTimeUnit' totals: $ref: '#/components/schemas/insights-serviceSalesBucketTotalsArray' insights-serviceSalesBucketTotalItem: required: - total - guest_checks type: object properties: id: $ref: '#/components/schemas/insights-serviceId' total: $ref: '#/components/schemas/insights-serviceTotal' guest_checks: $ref: '#/components/schemas/insights-serviceCount' tips: $ref: '#/components/schemas/insights-serviceCurrencyAmount' surcharges: $ref: '#/components/schemas/insights-serviceCurrencyAmount' card_fees: $ref: '#/components/schemas/insights-serviceCurrencyAmount' voids: $ref: '#/components/schemas/insights-serviceCurrencyAmount' refunds: $ref: '#/components/schemas/insights-serviceCurrencyAmount' comps: $ref: '#/components/schemas/insights-serviceCurrencyAmount' partial_discounts: $ref: '#/components/schemas/insights-serviceCurrencyAmount' losses: $ref: '#/components/schemas/insights-serviceCurrencyAmount' tax_amount: $ref: '#/components/schemas/insights-serviceCurrencyAmount' insights-serviceSalesDetailedBucketMap: type: object description: map of LocationIds to arrays of SalesDetailedBucketTotals additionalProperties: x-additionalPropertiesName: locationId $ref: '#/components/schemas/insights-serviceSalesDetailedBucketTotals' insights-serviceSalesDetailedBucketTotals: required: - totals - items type: object properties: totals: $ref: '#/components/schemas/insights-serviceSalesDetailedBucketTotalsArray' individual_servers: $ref: '#/components/schemas/insights-serviceSalesDetailedBucketServerMap' server_groups: $ref: '#/components/schemas/insights-serviceSalesDetailedBucketServerGroupMap' items: $ref: '#/components/schemas/insights-serviceSalesDetailedBucketItemArray' insights-serviceSalesDetailedBucketServerMap: type: object description: map of Servers to arrays of SalesDetailedBucketTotals additionalProperties: x-additionalPropertiesName: server_id $ref: '#/components/schemas/insights-serviceSalesDetailedBucketTotalsArray' insights-serviceSalesDetailedBucketServerGroupMap: type: object description: map of Servers to arrays of SalesDetailedBucketTotals additionalProperties: x-additionalPropertiesName: server_group_id $ref: '#/components/schemas/insights-serviceSalesDetailedBucketTotalsArray' insights-serviceSalesDetailedBucketTotalsArray: type: array description: array of Buckets to SalesDetailedBucketTotalItem items: $ref: '#/components/schemas/insights-serviceSalesDetailedBucketTotalItem' insights-serviceSalesDetailedBucketItemArray: type: array description: List of Buckets by the desired Interval items: $ref: '#/components/schemas/insights-serviceSalesDetailedBucketItem' insights-serviceSalesDetailedBucketItem: required: - business_day_from - business_day_to - interval_from - interval_to - interval_name - interval - totals type: object properties: business_day_from: type: string format: date description: The first trading day this time interval includes example: '2022-12-20' business_day_to: type: string format: date description: The last trading day this time interval includes example: '2022-12-20' interval_from: type: string description: The starting time of an `hour` interval. Returns `business_day_from` at `00:00` for `day`, `week` and `month` intervals format: date-time interval_to: type: string description: The ending time of an `hour` interval. Returns the day _after_ `business_day_to` at `00:00` for `day`, `week` and `month` intervals format: date-time interval_name: type: string description: The name for this Interval. For Shifts this is the time_range of the shift to the half hour. interval: $ref: '#/components/schemas/insights-serviceTimeUnit' totals: $ref: '#/components/schemas/insights-serviceSalesDetailedBucketTotalsArray' insights-serviceSalesDetailedBucketTotalItem: required: - id - name - total - guest_checks type: object properties: id: $ref: '#/components/schemas/insights-serviceId' description: The Id for this Bucket name: type: string description: The Name for this Bucket title: type: string description: The Title for this object total: $ref: '#/components/schemas/insights-serviceTotal' guest_checks: $ref: '#/components/schemas/insights-serviceCount' tips: $ref: '#/components/schemas/insights-serviceCurrencyAmount' net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' surcharges: $ref: '#/components/schemas/insights-serviceCurrencyAmount' card_fees: $ref: '#/components/schemas/insights-serviceCurrencyAmount' voids: $ref: '#/components/schemas/insights-serviceCurrencyAmount' refunds: $ref: '#/components/schemas/insights-serviceCurrencyAmount' discounts: $ref: '#/components/schemas/insights-serviceCurrencyAmount' comps: $ref: '#/components/schemas/insights-serviceCurrencyAmount' losses: $ref: '#/components/schemas/insights-serviceCurrencyAmount' covers: $ref: '#/components/schemas/insights-serviceCount' taxes: $ref: '#/components/schemas/insights-serviceCurrencyAmount' staff_worked_minutes: $ref: '#/components/schemas/insights-serviceCount' description: The total minutes worked by employees. NOTE this is only available on the Shifts API net_order_average: $ref: '#/components/schemas/insights-serviceCurrencyAmount' gross_order_average: $ref: '#/components/schemas/insights-serviceCurrencyAmount' net_cover_average: $ref: '#/components/schemas/insights-serviceCurrencyAmount' gross_cover_average: $ref: '#/components/schemas/insights-serviceCurrencyAmount' insights-serviceSalesReductionsMap: type: object description: map of LocationIds to sales reduction totals additionalProperties: x-additionalPropertiesName: locationId $ref: '#/components/schemas/insights-serviceSalesReductionsTotals' insights-serviceSalesReductionsTotals: required: - totals - items type: object properties: totals: $ref: '#/components/schemas/insights-serviceSalesReductionsResponseTotalItem' items: $ref: '#/components/schemas/insights-serviceSalesReductionsItemArray' insights-serviceSalesReductionsItemArray: type: array description: List of Reductions by the desired Interval items: $ref: '#/components/schemas/insights-serviceSalesReductionsItem' insights-serviceSalesReductionsItem: required: - business_day_from - business_day_to - interval_from - interval_to - interval - totals type: object properties: business_day_from: $ref: '#/components/schemas/insights-serviceDate' description: The first trading day this time interval includes business_day_to: $ref: '#/components/schemas/insights-serviceDate' description: The last trading day this time interval includes interval_from: type: string description: The starting time of an `hour` interval. Returns `business_day_from` at `00:00` for `day`, `week` and `month` intervals format: date-time interval_to: type: string description: The ending time of an `hour` interval. Returns the day _after_ `business_day_to` at `00:00` for `day`, `week` and `month` intervals format: date-time interval: $ref: '#/components/schemas/insights-serviceTimeUnit' totals: $ref: '#/components/schemas/insights-serviceSalesReductionsResponseTotalItem' insights-serviceSalesReductionsResponseTotalItem: required: - discounts - comps - voids - refunds - losses type: object properties: discounts: type: object $ref: '#/components/schemas/insights-serviceServerReductionsItemReduction' comps: type: object $ref: '#/components/schemas/insights-serviceServerReductionsItemReduction' voids: type: object $ref: '#/components/schemas/insights-serviceServerReductionsItemReduction' refunds: type: object $ref: '#/components/schemas/insights-serviceServerReductionsItemReduction' losses: type: object $ref: '#/components/schemas/insights-serviceServerReductionsItemReduction' insights-serviceEventsMap: type: object description: map of LocationIds to arrays of EventItems additionalProperties: x-additionalPropertiesName: locationId $ref: '#/components/schemas/insights-serviceEventsItems' example: Location1: - category: shift sub_category: open source: POS note: This was the note for the beginning of day star_rating: 1 weather_rating: 5 business_day: '2023-04-17' created: '2023-04-17T05:30:00-05:00' server_id: '66784' - category: shift sub_category: close source: POS note: This was the note for the end of day star_rating: 1 weather_rating: 3 business_day: '2023-04-18' created: '2023-04-18T05:30:00-05:00' server_id: '66784' insights-serviceEventsItems: type: array items: $ref: '#/components/schemas/insights-serviceEventsItem' insights-serviceEventsItem: required: - business_day - created - category - sub_category - source - note - server_id - star_rating - weather_rating type: object properties: business_day: $ref: '#/components/schemas/insights-serviceDate' description: The Business Day the Event relates to created: type: string description: The datetime the Event was created example: '2022-12-20T05:30:00-05:00' category: type: string description: The category of the Event. Currently only 'shift' sub_category: type: string description: The sub-category of the Event. Currently only 'open' or 'close' source: type: string description: Where the Event was created. Currently only 'POS' note: type: string description: Message relating to the Event star_rating: $ref: '#/components/schemas/insights-serviceCount' description: The Star rating for Event. 0 means not given. 1 is poorest to 5 best weather_rating: $ref: '#/components/schemas/insights-serviceCount' description: The Weather rating given by the operator. 0 means not given. 1 Sunny, 2 Sun with cloud, 3 Cloudy, 4 Rainy and 5 Stormy server_id: $ref: '#/components/schemas/insights-serviceServerId' example: category: shift sub_category: open source: POS note: This was the note for the beginning of day star_rating: 1 weather_rating: 5 business_day: '2023-04-17' created: '2023-04-17T05:30:00-05:00' server_id: '66784' insights-serviceTimeOfDayMultiLocationMap: type: object description: map of LocationIds to arrays ofTimeOfDayItem additionalProperties: x-additionalPropertiesName: locationId type: array items: $ref: '#/components/schemas/insights-serviceTimeOfDayItem' insights-serviceTimeOfDayList: type: array description: List of TimeOfDayItems items: $ref: '#/components/schemas/insights-serviceTimeOfDayItem' insights-serviceTimeOfDayItem: required: - hour - business_weekday - num_periods - total_net_sales - total_gross_sales - avg_net_sales - avg_gross_sales - avg_tax - avg_guest_checks - guest_checks - avg_labor_hours - avg_check_amount type: object properties: hour: $ref: '#/components/schemas/insights-serviceHour' business_weekday: $ref: '#/components/schemas/insights-serviceDayOfWeek' num_periods: $ref: '#/components/schemas/insights-serviceCount' total_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_guest_checks: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_labor_hours: $ref: '#/components/schemas/insights-serviceRoundedHour' description: 'float number rounded to the quarter. Calculated by: ((TotalLaborHours/NumPeriods) *100)' avg_check_amount: $ref: '#/components/schemas/insights-serviceCurrencyAmount' insights-serviceSalesByDayMultiLocationMap: type: object description: map of LocationIds to arrays of SalesByDayItem additionalProperties: x-additionalPropertiesName: locationId type: array items: $ref: '#/components/schemas/insights-serviceSalesByDayItem' insights-serviceSalesByDayList: type: array items: $ref: '#/components/schemas/insights-serviceSalesByDayItem' insights-serviceSalesByDayItem: type: object properties: day_of_week: $ref: '#/components/schemas/insights-serviceDayOfWeek' total_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_transactions: $ref: '#/components/schemas/insights-serviceCount' trading_day_count: $ref: '#/components/schemas/insights-serviceCount' total_labor_hours: $ref: '#/components/schemas/insights-serviceRoundedHour' insights-serviceSalesAveragesByWeekdayList: type: object description: map of LocationIds to arrays of SalesAveragesByWeekdayItems additionalProperties: x-additionalPropertiesName: locationId type: array items: $ref: '#/components/schemas/insights-serviceSalesAveragesByWeekdayItem' insights-serviceSalesAveragesByWeekdayItem: type: object properties: day_of_week: $ref: '#/components/schemas/insights-serviceDayOfWeek' month: $ref: '#/components/schemas/insights-serviceMonth' year: $ref: '#/components/schemas/insights-serviceYear' hours: type: array items: $ref: '#/components/schemas/insights-serviceSalesAveragesHourItem' avg_total_sold: $ref: '#/components/schemas/insights-serviceCount' avg_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_transactions: $ref: '#/components/schemas/insights-serviceCount' avg_covers: $ref: '#/components/schemas/insights-serviceCount' avg_staff_worked_minutes: $ref: '#/components/schemas/insights-serviceCount' avg_repeat_total: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_repeat_checks: $ref: '#/components/schemas/insights-serviceCount' trading_day_count: $ref: '#/components/schemas/insights-serviceCount' insights-serviceSalesAveragesHourItem: type: object properties: hour: $ref: '#/components/schemas/insights-serviceHour' avg_total_sold: $ref: '#/components/schemas/insights-serviceCount' avg_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_transactions: $ref: '#/components/schemas/insights-serviceCount' avg_covers: $ref: '#/components/schemas/insights-serviceCount' avg_staff_worked_minutes: $ref: '#/components/schemas/insights-serviceCount' insights-serviceSalesAveragesByMonthList: type: object description: map of LocationIds to arrays of SalesAveragesByMonthItems additionalProperties: x-additionalPropertiesName: locationId type: array items: $ref: '#/components/schemas/insights-serviceSalesAveragesByMonthItem' insights-serviceSalesAveragesByMonthItem: type: object properties: month: $ref: '#/components/schemas/insights-serviceMonth' year: $ref: '#/components/schemas/insights-serviceYear' avg_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_transactions: $ref: '#/components/schemas/insights-serviceCount' avg_covers: $ref: '#/components/schemas/insights-serviceCount' avg_staff_worked_minutes: $ref: '#/components/schemas/insights-serviceCount' avg_repeat_total: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_repeat_checks: $ref: '#/components/schemas/insights-serviceCount' trading_month_count: $ref: '#/components/schemas/insights-serviceCount' insights-serviceSalesAveragesByWeekList: type: object description: map of LocationIds to arrays of SalesAveragesByWeekItems additionalProperties: x-additionalPropertiesName: locationId type: array items: $ref: '#/components/schemas/insights-serviceSalesAveragesByWeekItem' insights-serviceSalesAveragesByWeekItem: type: object properties: month: $ref: '#/components/schemas/insights-serviceMonth' year: $ref: '#/components/schemas/insights-serviceYear' avg_total_sold: $ref: '#/components/schemas/insights-serviceCount' avg_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_transactions: $ref: '#/components/schemas/insights-serviceCount' avg_covers: $ref: '#/components/schemas/insights-serviceCount' avg_staff_worked_minutes: $ref: '#/components/schemas/insights-serviceCount' avg_repeat_total: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_repeat_checks: $ref: '#/components/schemas/insights-serviceCount' trading_day_count: $ref: '#/components/schemas/insights-serviceCount' trading_week_count: $ref: '#/components/schemas/insights-serviceCount' insights-serviceItemSalesByDayList: type: array items: $ref: '#/components/schemas/insights-serviceItemSalesByDayItem' insights-serviceItemSalesByDayItem: type: object properties: day_of_week: $ref: '#/components/schemas/insights-serviceDayOfWeek' total_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_transactions: $ref: '#/components/schemas/insights-serviceCount' total_sold: $ref: '#/components/schemas/insights-serviceCount' trading_day_count: $ref: '#/components/schemas/insights-serviceCount' insights-serviceItemsByDayItem: type: object required: - item_id - item_name - total_sold - total_net_sales - total_gross_sales - total_tax - product_group_id properties: item_id: type: string default: a1b232 item_name: type: string default: The Item total_sold: $ref: '#/components/schemas/insights-serviceCount' total_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' product_group_id: $ref: '#/components/schemas/insights-serviceProductGroupId' insights-serviceItemHourTotalsList: type: array items: $ref: '#/components/schemas/insights-serviceItemHourTotalsItem' insights-serviceItemHourTotalsItem: type: object properties: hour: $ref: '#/components/schemas/insights-serviceHour' total_sold: $ref: '#/components/schemas/insights-serviceCount' avg_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' avg_guest_checks: $ref: '#/components/schemas/insights-serviceCount' insights-serviceItemProductGroupsMap: type: object description: map of LocationIds to arrays of ProductGroupsTotals additionalProperties: x-additionalPropertiesName: locationId $ref: '#/components/schemas/insights-serviceProductGroupsTotals' insights-serviceProductGroupsTotals: required: - totals - items type: object properties: totals: $ref: '#/components/schemas/insights-serviceItemProductGroupsTotalsArray' items: $ref: '#/components/schemas/insights-serviceProductGroupsItemArray' insights-serviceItemProductGroupsTotalsArray: type: array description: Array of Product Group to ItemProductGroupsResponseTotalItem items: $ref: '#/components/schemas/insights-serviceItemProductGroupsResponseTotalItem' insights-serviceProductGroupsItemArray: type: array description: List of Grouped Product Groups by the desired Interval items: $ref: '#/components/schemas/insights-serviceItemProductGroupsResponseItem' insights-serviceItemProductGroupsResponseItem: required: - business_day_from - business_day_to - interval_from - interval_to - interval - product_groups type: object properties: business_day_from: $ref: '#/components/schemas/insights-serviceDate' business_day_to: $ref: '#/components/schemas/insights-serviceDate' interval_from: type: string description: The starting time of an `hour` interval. Returns `business_day_from` at `00:00` for `day`, `week` and `month` intervals format: date-time interval_to: type: string description: The ending time of an `hour` interval. Returns the day _after_ `business_day_to` at `00:00` for `day`, `week` and `month` intervals format: date-time interval: $ref: '#/components/schemas/insights-serviceTimeUnit' product_groups: $ref: '#/components/schemas/insights-serviceItemProductGroupsTotalsArray' insights-serviceItemProductGroupsResponseTotalItem: type: object required: - product_group_id - total - discounts - taxes - guest_checks properties: product_group_id: $ref: '#/components/schemas/insights-serviceProductGroupId' product_group_name: type: string x-go-type-skip-optional-pointer: true total: $ref: '#/components/schemas/insights-serviceCurrencyAmount' discounts: $ref: '#/components/schemas/insights-serviceCurrencyAmount' taxes: $ref: '#/components/schemas/insights-serviceCurrencyAmount' guest_checks: $ref: '#/components/schemas/insights-serviceCount' insights-serviceItemServerTotalsList: type: array description: ItemServerTotalsItem items: $ref: '#/components/schemas/insights-serviceItemServerTotalsItem' insights-serviceItemServerTotalsItem: type: object properties: server_id: $ref: '#/components/schemas/insights-serviceServerId' first_name: $ref: '#/components/schemas/insights-serviceFirstName' last_name: $ref: '#/components/schemas/insights-serviceLastName' job_title: $ref: '#/components/schemas/insights-serviceJobTitle' item_id: type: string default: a1b232 item_name: type: string default: The Item total_sold: $ref: '#/components/schemas/insights-serviceCount' total_transactions: $ref: '#/components/schemas/insights-serviceCount' total_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' product_group_id: $ref: '#/components/schemas/insights-serviceProductGroupId' insights-serviceServerDetailsList: type: array description: ItemServerTotalsItem items: $ref: '#/components/schemas/insights-serviceServerDetailsItem' insights-serviceServerDetailsItem: type: object properties: server_id: $ref: '#/components/schemas/insights-serviceServerId' first_name: $ref: '#/components/schemas/insights-serviceFirstName' last_name: $ref: '#/components/schemas/insights-serviceLastName' job_title: $ref: '#/components/schemas/insights-serviceJobTitle' job_id: $ref: '#/components/schemas/insights-serviceJobId' insights-serviceServerReductionsItem: type: object description: Server(s) Reductions. Either the specified Server or a group of Servers. properties: server_ids: type: array description: List of ServerIds included in this Item total_covers: $ref: '#/components/schemas/insights-serviceCount' total_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' trading_day_count: $ref: '#/components/schemas/insights-serviceCount' discounts: type: object $ref: '#/components/schemas/insights-serviceServerReductionsItemReduction' comps: type: object $ref: '#/components/schemas/insights-serviceServerReductionsItemReduction' refunds: type: object $ref: '#/components/schemas/insights-serviceServerReductionsItemReduction' voids: type: object $ref: '#/components/schemas/insights-serviceServerReductionsItemReduction' losses: type: object $ref: '#/components/schemas/insights-serviceServerReductionsItemReduction' insights-serviceServerReductionsItemReduction: type: object required: - total_reduction - items properties: total_reduction: $ref: '#/components/schemas/insights-serviceCurrencyAmount' items: $ref: '#/components/schemas/insights-serviceServerReductionsItemDetailsList' insights-serviceServerReductionsItemDetailsList: type: array description: ItemServerTotalsItem items: $ref: '#/components/schemas/insights-serviceServerReductionsItemDetails' insights-serviceServerReductionsItemDetails: type: object required: - reference - description - total_reduction properties: reference: type: string description: The discount_code or reason for the reduction description: type: string total_reduction: $ref: '#/components/schemas/insights-serviceCurrencyAmount' insights-serviceServerStatsList: type: object additionalProperties: x-additionalPropertiesName: server_id $ref: '#/components/schemas/insights-serviceServerStatsItem' insights-serviceServerStatsItem: type: object properties: server_id: $ref: '#/components/schemas/insights-serviceServerId' first_name: $ref: '#/components/schemas/insights-serviceFirstName' last_name: $ref: '#/components/schemas/insights-serviceLastName' job_title: $ref: '#/components/schemas/insights-serviceJobTitle' total_covers: $ref: '#/components/schemas/insights-serviceCount' total_transactions: $ref: '#/components/schemas/insights-serviceCount' total_transactions_with_turn: $ref: '#/components/schemas/insights-serviceCount' avg_turn_time_minutes: $ref: '#/components/schemas/insights-serviceCount' total_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_tips: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_discounts: $ref: '#/components/schemas/insights-serviceCurrencyAmount' reporting_shifts: type: object additionalProperties: x-additionalPropertiesName: reporting_shift_name $ref: '#/components/schemas/insights-serviceServerStatsReportingShifts' insights-serviceServerStatsReportingShifts: type: object properties: reporting_shift_name: type: string default: all product_group_totals: type: object additionalProperties: x-additionalPropertiesName: product_group_id $ref: '#/components/schemas/insights-serviceServerStatsProductGroup' insights-serviceServerStatsProductGroup: type: object properties: product_group_id: $ref: '#/components/schemas/insights-serviceProductGroupId' total_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' items: type: object additionalProperties: x-additionalPropertiesName: item_id $ref: '#/components/schemas/insights-serviceServerStatsItemItem' insights-serviceServerStatsItemItem: type: object properties: item_id: $ref: '#/components/schemas/insights-serviceItemId' item_name: $ref: '#/components/schemas/insights-serviceItemName' total_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' insights-serviceServerCompareSalesItem: type: object description: Server(s) totaled top level sales. properties: server_ids: type: array description: List of ServerIds included in this Item trading_day_count: $ref: '#/components/schemas/insights-serviceCount' total_net_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_covers: $ref: '#/components/schemas/insights-serviceCount' total_transactions: $ref: '#/components/schemas/insights-serviceCount' total_transactions_with_turn: $ref: '#/components/schemas/insights-serviceCount' total_turn_time_minutes: $ref: '#/components/schemas/insights-serviceCount' total_tips: $ref: '#/components/schemas/insights-serviceCurrencyAmount' insights-serviceServerCompareTurnDays: type: object description: Turn time minutes averages properties: server_avg_turn_time_minutes: description: Server's overall turn time minutes average. $ref: '#/components/schemas/insights-serviceCount' compare_servers_avg_turn_time_minutes: description: Compare Servers' overall turn time minutes average. $ref: '#/components/schemas/insights-serviceCount' business_days: type: array items: $ref: '#/components/schemas/insights-serviceServerTurnItem' insights-serviceServerTurnItem: type: object description: Server's' Turn Time Minutes daily averages. properties: business_day: type: string format: date description: The Business/Trading Day this Item relates to. example: '2022-12-20' day_of_week: $ref: '#/components/schemas/insights-serviceDayOfWeek' avg_turn_time_minutes: $ref: '#/components/schemas/insights-serviceCount' compare_servers_avgs: type: object description: "Compare Servers' Turn Time Minutes day's average: Overall, Lowest Server and Highest Server" properties: overall_avg_turn_time_minutes: $ref: '#/components/schemas/insights-serviceCount' min_avg_turn_time_minutes: $ref: '#/components/schemas/insights-serviceCount' max_avg_turn_time_minutes: $ref: '#/components/schemas/insights-serviceCount' insights-serviceLaborSummaryItem: type: object properties: total_employees: $ref: '#/components/schemas/insights-serviceCount' total_minutes_worked: $ref: '#/components/schemas/insights-serviceCount' trading_day_count: $ref: '#/components/schemas/insights-serviceCount' insights-serviceMagicQuadrantReportResponseData: type: object required: - products properties: products: $ref: '#/components/schemas/insights-serviceMagicQuadrantReportResponseProducts' insights-serviceMagicQuadrantReportResponseProducts: type: array items: $ref: '#/components/schemas/insights-serviceMagicQuadrantReportResponseItem' insights-serviceMagicQuadrantReportResponseItem: type: object required: - product_id - product_name - product_group_id - total_sold - total_guest_visits - total_unique_guest - total_repeat_guest - total_repeat_guest_for_product - total_once_guest - guest_retention_percentage - guest_retention_percentage_for_product - first_ordered - staff properties: product_id: $ref: '#/components/schemas/insights-serviceProductId' product_name: $ref: '#/components/schemas/insights-serviceProductName' product_group_id: $ref: '#/components/schemas/insights-serviceProductGroupId' total_sold: $ref: '#/components/schemas/insights-serviceFractionalQuantity' description: Total Quantity Sold total_guest_visits: $ref: '#/components/schemas/insights-serviceCount' description: Total number of Guest Visits. NOTE a Guest can only have 1 Visit per day. total_unique_guest: $ref: '#/components/schemas/insights-serviceCount' description: Count of Unique Guest Aliases. Which is the number of different Guests that visited in this period. total_repeat_guest: $ref: '#/components/schemas/insights-serviceCount' description: Count of Guests that revisited the location and purchased the same or different Product(s). total_repeat_guest_for_product: $ref: '#/components/schemas/insights-serviceCount' description: Count of Guests that revisited the location and purchased the same Product. total_once_guest: $ref: '#/components/schemas/insights-serviceCount' description: Count of Guests that visited the location and did not return. This will include Guests that paid by Cash or by a means we couldn't identify them. guest_retention_percentage: $ref: '#/components/schemas/insights-servicePercentage' description: Percentage of Repeat Guests out of Total Unique Guests guest_retention_percentage_for_product: $ref: '#/components/schemas/insights-servicePercentage' description: Percentage of Repeat Guests for Product out of Total Unique Guests first_ordered: $ref: '#/components/schemas/insights-serviceDate' description: The date in this period that this was first ordered. staff: $ref: '#/components/schemas/insights-serviceMagicQuadrantReportResponseStaffList' insights-serviceMagicQuadrantReportResponseStaff: type: object required: - id - total_sold properties: id: $ref: '#/components/schemas/insights-serviceServerId' total_sold: $ref: '#/components/schemas/insights-serviceFractionalQuantity' description: Total Quantity sold in this period by this Staff Member. insights-serviceMagicQuadrantReportResponseStaffList: type: array items: $ref: '#/components/schemas/insights-serviceMagicQuadrantReportResponseStaff' insights-serviceGuestbookProfilesTotals: type: object properties: guest_label: type: string description: Readable that identifies the Guest example: '2022-12-20' guest_alias: type: string description: fa0ae5a0d0e2ee09adae613a1b53413b2bcf8be1916921558125438f73e6e5d3 example: '2022-12-20' first_visit: type: string format: date description: The Business/Trading this Guest first made a purchase at the location. example: '2022-12-20' last_visit_datetime: type: string format: date-time description: The StartTime this Guest last made a purchase at the location. example: '2022-12-20T05:30:00-05:00' total_gross_sales: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_tips: $ref: '#/components/schemas/insights-serviceCurrencyAmount' total_guest_visits: $ref: '#/components/schemas/insights-serviceCount' description: Total number of times this Guest Visited this location. NOTE a Guest has visited a location if they paid by card and haven't opted out of data collection. consumer_record_id: type: string description: Id used by the LS CustomersAPI Service to fetch Customer Details example: '35302365' first_name: type: string description: FirstName of the Guest. May not be populated example: John last_name: type: string description: lastName of the Guest. May not be populated example: Smith company_name: type: string description: lastName of the Guest. May not be populated example: Lightspeed email_address: type: string description: Email address of the Guest. May not be populated example: john.smith@lightspeed.com phone_number: type: string description: Primary Phone number of the Guest. May not be populated example: '02389189920' pending_delete: type: boolean description: Only present if set to True. Meaning this Profile should be Purged at the end of the BusinessDay insights-serviceGuestProductsItems: type: array items: $ref: '#/components/schemas/insights-serviceGuestProductsItem' insights-serviceGuestProductsItem: required: - item_id - item_name - product_group_id - quantity type: object properties: item_id: type: string description: The Id of the Product example: '748776008450306' item_name: type: string description: The name of the Product example: Pizza product_group_id: type: string description: The ID of the Product's Product Group (Also known as 'Accounting Group') example: '748776008450090' quantity: type: string description: 'The number sold of this product. NOTE: This number is multiplied by 10000 to ensure whole numbers.' example: item_id: '748776008450306' item_name: Pizza interval_from: 2022-12-20T011:00:00-05:00 product_group_id: '748776008450090' quantity: '70000' insights-serviceGuestReceiptItem: required: - receipt_uuid - receipt_id - prints type: object properties: receipt_uuid: type: string description: The UUID of the Receipt (Print Transaction) example: 959f630f-0d76-4477-a4f8-8eb1b2b08cb9 receipt_id: type: string description: The ID of the Receipt. Merchant would use this ID to find a Receipt example: R23474.1 prints: type: array description: All the pages of a Receipt. Can be more than one if system set to print card payment receipts example: receipt_uuid: 959f630f-0d76-4477-a4f8-8eb1b2b08cb9 receipt_id: R23474.1 prints: - "Todd's Business (Cat’s Cantina)\niPad36/66784-Manager\tA33170.46\nReceipt R33170.7\t2/13/24, 10:25 AM\n\x1DDF\x1DTDEF\x1DL2\tPizza\t\x1DSH\t\x1DSA 5.00\n\x1DDS\x1DT@@@SUB-TOTAL\t 5.00\n\x1DL17% Sales Tax (on 5.00)\t 0.35\n\x1DDS\x1DSJTotal\tUS$ 5.35\n\x1DAC\x1DSA\n\x1DAL Cash\tUS$ 5.35\n\nVAT:1234\n\x1DAC\x1DSBThank you for your patronage!\n\x1DSA02903 Providence\n\x1DAL\x1DACLightspeed (K) 4.1.57.6471\n\x1DAL\n" insights-serviceGuestTransactionsItems: type: array items: $ref: '#/components/schemas/insights-serviceGuestTransactionsItem' insights-serviceGuestTransactionsItem: required: - sale_transactions_uuid - sale_action - sale_time - gross_sales - paid - paid_tip - business_day - owner_id - server_ids - covers type: object properties: sale_transactions_uuid: type: string description: The UUID of the Sale Transaction example: 7706670c-6ea6-4b5d-a889-8ab39294c04c sale_action: type: string description: The last trading day this time interval includes example: PAYMENT sale_time: type: string description: The datetime the Sale was entered in the POS format: date-time example: '2022-12-20T05:30:00-05:00' gross_sale: $ref: '#/components/schemas/insights-serviceCurrencyAmount' paid: $ref: '#/components/schemas/insights-serviceCurrencyAmount' paid_tip: $ref: '#/components/schemas/insights-serviceCurrencyAmount' business_day: type: string format: date description: The trading day this Sale Transaction occurred example: '2022-12-20' owner_id: $ref: '#/components/schemas/insights-serviceServerId' server_ids: type: array description: List of ServerIds included in this Item covers: $ref: '#/components/schemas/insights-serviceCount' insights-serviceExternalProductDay: type: object required: - location_type - business_day - location_id - products properties: location_type: type: string description: The system providing the data example: lsu business_day: type: string format: date description: The trading day this product data occurred on example: '2022-12-20' location_id: type: string description: The id of the location in the system providing the data example: cat-s-catina products: type: array items: $ref: '#/components/schemas/insights-serviceExternalProductItem' insights-serviceExternalProductItem: allOf: - type: object required: - name - product_id properties: name: type: string description: The name of the product sold example: Hot Dog product_id: type: string description: The id associated with the product in the system providing the data product_group_name: type: string description: The name associated with the product group example: Food product_group_id: type: string description: The id associated with the product group in the system providing the data example: abcdefg12345 product_subgroup_name: type: string description: The name associated with the product subgroup example: Sandwiches product_subgroup_id: type: string description: The id associated with the product subgroup in the system providing the data example: zyxwvut98765 halves: $ref: '#/components/schemas/insights-serviceExternalProductHalfHoursMap' - $ref: '#/components/schemas/insights-serviceExternalProductAmounts' insights-serviceExternalProductAmounts: type: object properties: quantity: $ref: '#/components/schemas/insights-serviceTenThousandths' checks: $ref: '#/components/schemas/insights-serviceCount' total: $ref: '#/components/schemas/insights-serviceCurrencyAmount' discount: $ref: '#/components/schemas/insights-serviceCurrencyAmount' loss: $ref: '#/components/schemas/insights-serviceCurrencyAmount' surcharge: $ref: '#/components/schemas/insights-serviceCurrencyAmount' tax: $ref: '#/components/schemas/insights-serviceCurrencyAmount' insights-serviceExternalProductHalfHoursMap: type: object description: map of 2 digit hour plus half hour ("00" or "30") in local timezone from 00:00 to 47:30 (the trading day may span two calendar days) additionalProperties: x-additionalPropertiesName: half hour - 2 digit string 00 though 47 colon 00 or 30 $ref: '#/components/schemas/insights-serviceExternalProductAmounts' insights-serviceExternalSaleItem: allOf: - type: object required: - location_type - business_day - location_id properties: location_type: type: string description: The system providing the data example: lsu business_day: type: string format: date description: The trading day this Sale Transaction occurred example: '2022-12-20' location_id: type: string description: The id of the location in the system providing the data example: cat-s-catina halves: $ref: '#/components/schemas/insights-serviceExternalSaleHalfHoursMap' - $ref: '#/components/schemas/insights-serviceExternalSaleAmounts' insights-serviceExternalSaleAmounts: type: object properties: covers: $ref: '#/components/schemas/insights-serviceCount' checks: $ref: '#/components/schemas/insights-serviceCount' sale_count: $ref: '#/components/schemas/insights-serviceCount' checks_with_turn: $ref: '#/components/schemas/insights-serviceCount' checks_no_cover: $ref: '#/components/schemas/insights-serviceCount' total: $ref: '#/components/schemas/insights-serviceCurrencyAmount' discount: $ref: '#/components/schemas/insights-serviceCurrencyAmount' surcharge: $ref: '#/components/schemas/insights-serviceCurrencyAmount' paid: $ref: '#/components/schemas/insights-serviceCurrencyAmount' tip: $ref: '#/components/schemas/insights-serviceCurrencyAmount' tip_basis_points_total_net: $ref: '#/components/schemas/insights-serviceBasisPoint' tip_basis_points_total_gross: $ref: '#/components/schemas/insights-serviceBasisPoint' voids: $ref: '#/components/schemas/insights-serviceCurrencyAmount' refunds: $ref: '#/components/schemas/insights-serviceCurrencyAmount' comps: $ref: '#/components/schemas/insights-serviceCurrencyAmount' partial_discounts: $ref: '#/components/schemas/insights-serviceCurrencyAmount' losses: $ref: '#/components/schemas/insights-serviceCurrencyAmount' pre_tax_amount: $ref: '#/components/schemas/insights-serviceCurrencyAmount' tax_amount: $ref: '#/components/schemas/insights-serviceCurrencyAmount' card_fee: $ref: '#/components/schemas/insights-serviceCurrencyAmount' rounding: $ref: '#/components/schemas/insights-serviceCurrencyAmount' repeat_checks: $ref: '#/components/schemas/insights-serviceCount' repeat_total: $ref: '#/components/schemas/insights-serviceCurrencyAmount' turn_time_mins: $ref: '#/components/schemas/insights-serviceCount' staff_worked_minutes: $ref: '#/components/schemas/insights-serviceCount' no_active_staff: $ref: '#/components/schemas/insights-serviceCount' insights-serviceExternalSaleHalfHoursMap: type: object description: map of 2 digit hour plus half hour ("00" or "30") in local timezone from 00 to 47 (the trading day may span two calendar days) additionalProperties: x-additionalPropertiesName: half hour - 2 digit string 00 though 47 colon 00 or 30 $ref: '#/components/schemas/insights-serviceExternalSaleAmounts' insights-serviceBenchmarkTrendsTotalsChartList: type: array description: BenchmarkTrendsTotalsChart items: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsTotalsChartData' insights-serviceBenchmarkTrendsTotalsChartData: required: - kpi_name - conclusions - primary - peers type: object properties: kpi_name: type: string description: The name of this chart example: hero items: $ref: '#/components/schemas/insights-serviceKpiName' conclusions: type: array description: Conclusions drawn from the data items: $ref: '#/components/schemas/insights-serviceConclusions' primary: type: object description: The food percentage sales of food and drink sales for the Primary data by day. properties: intervals: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsResponseTotalItem' peers: type: object description: The food percentage sales of food and drink sales for the market(peers) data by day. properties: intervals: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsResponseTotalItem' insights-serviceCategoryBenchmarkPoint: type: object description: "One data point: this location's rolling 7-day median price for a\ncategory on a specific business_day, alongside the peer (market)\n5-number summary for the same day." required: - category - business_day - primary - peer_median - peer_q1 - peer_q3 - peer_min - peer_max - peer_count properties: category: type: string description: Raw categorization-service category name at the current level (lowercase, dashes preserved). example: alcoholic business_day: type: string format: date description: The business day this rolling 7-day value represents. example: '2026-02-01' primary: type: integer description: This location's rolling 7-day median net price, in cents. example: 1200 peer_median: type: integer description: Market (peer) median, in cents. example: 1100 peer_q1: type: integer description: Market 25th percentile, in cents. example: 800 peer_q3: type: integer description: Market 75th percentile, in cents. example: 1500 peer_min: type: integer description: Market minimum, in cents. example: 400 peer_max: type: integer description: Market maximum, in cents. example: 2200 peer_count: type: integer description: Number of peer locations contributing to the 5-number summary. example: 47 insights-serviceBenchmarkTrendsChartList: type: array description: BenchmarkTrendsChart items: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsChartData' insights-serviceBenchmarkTrendsChartData: required: - kpi_name - conclusions - primary - peers type: object properties: kpi_name: type: string description: The name of this chart example: hero items: $ref: '#/components/schemas/insights-serviceKpiName' conclusions: type: array description: Conclusions drawn from the data items: $ref: '#/components/schemas/insights-serviceConclusions' primary: type: object description: The sales from the Primary data for the given date range. The baseline is the previous 28 days. properties: intervals: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsResponseTotalItem' peers: type: object description: The sales from the market data (Peers) for the given date range. The baseline is the previous 28 days. properties: intervals: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsResponsePeersItem' insights-serviceBenchmarkTrendsResponseTotalItem: type: array required: - intervals items: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsResponseTotalInterval' insights-serviceBenchmarkTrendsResponsePeersItem: type: array required: - intervals items: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsResponsePeersInterval' insights-serviceBenchmarkTrendsResponseTotalInterval: type: object required: - business_day_from - business_day_to - interval - value properties: business_day_from: type: string format: date description: The first trading day this time interval includes example: '2022-12-20' business_day_to: type: string format: date description: The last trading day this time interval includes example: '2022-12-20' location_count: type: integer minimum: 0 format: date description: The number of locations used to generate this data interval: $ref: '#/components/schemas/insights-serviceTimeUnit' value: $ref: '#/components/schemas/insights-serviceValueItem' insights-serviceBenchmarkTrendsResponsePeersInterval: type: object required: - business_day_from - business_day_to - interval - value properties: business_day_from: type: string format: date description: The first trading day this time interval includes example: '2022-12-20' business_day_to: type: string format: date description: The last trading day this time interval includes example: '2022-12-20' location_count: type: integer minimum: 0 format: date description: The number of locations used to generate this data interval: $ref: '#/components/schemas/insights-serviceTimeUnit' value: $ref: '#/components/schemas/insights-serviceQuartilesItem' insights-serviceBenchmarkTrendsComparisonChartList: type: array description: BenchmarkTrendsComparisonChart items: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsChartComparisonData' insights-serviceBenchmarkTrendsChartComparisonData: required: - kpi_name - conclusions - primary - peers type: object properties: kpi_name: type: string description: The name of this chart example: hero items: $ref: '#/components/schemas/insights-serviceKpiName' conclusions: type: array description: Conclusions drawn from the data items: $ref: '#/components/schemas/insights-serviceConclusions' primary: type: object description: The sales from the Primary data for the given date range. The baseline is the previous 28 days. properties: intervals: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsResponseComparisonItem' peers: type: object description: The sales from the market data (Peers) for the given date range. The baseline is the previous 28 days. properties: intervals: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsResponseComparisonItem' insights-serviceBenchmarkTrendsResponseComparisonItem: type: array required: - intervals items: $ref: '#/components/schemas/insights-serviceBenchmarkTrendsResponseComparisonInterval' insights-serviceBenchmarkTrendsResponseComparisonInterval: type: object required: - business_day_from - business_day_to - interval - value properties: business_day_from: type: string format: date description: The first trading day this time interval includes example: '2022-12-20' business_day_to: type: string format: date description: The last trading day this time interval includes example: '2022-12-20' location_count: type: integer minimum: 0 format: date description: The number of locations used to generate this data interval: $ref: '#/components/schemas/insights-serviceTimeUnit' value: $ref: '#/components/schemas/insights-serviceComparisonItem' insights-serviceValueItem: type: object properties: type: type: string description: The the type of Value this object is example: totals total: $ref: '#/components/schemas/insights-servicePerBasisPoint' required: - type - total insights-serviceComparisonItem: type: object properties: type: type: string description: The the type of Value this object is example: comparison current: $ref: '#/components/schemas/insights-servicePerBasisPoint' typical: $ref: '#/components/schemas/insights-servicePerBasisPoint' required: - type - current - typical insights-serviceQuartilesItem: type: object required: - type - quartiles properties: type: type: string description: The the type of Value this object is example: quartiles quartiles: type: object $ref: '#/components/schemas/insights-serviceQuartiles' insights-serviceQuartiles: required: - minimum - q1 - q2 - q3 - maximum properties: minimum: $ref: '#/components/schemas/insights-servicePerBasisPoint' q1: $ref: '#/components/schemas/insights-servicePerBasisPoint' q2: $ref: '#/components/schemas/insights-servicePerBasisPoint' q3: $ref: '#/components/schemas/insights-servicePerBasisPoint' maximum: $ref: '#/components/schemas/insights-servicePerBasisPoint' insights-serviceStaffGroup: type: object required: - id - name properties: id: $ref: '#/components/schemas/insights-serviceServerGroupId' name: type: string description: The name of the Staff Group example: Bartenders insights-serviceStaff: type: object required: - id - name properties: id: $ref: '#/components/schemas/insights-serviceServerId' firstName: type: string description: The first name of the Staff Member example: John lastName: type: string description: The last name of the Staff Member example: Smith fullName: type: string description: The name of the Staff Member example: John Smith username: type: string description: The username of the Staff Member example: jsmith active: type: boolean description: Whether the Staff Member is currently active example: true ireneBusinessLocation: description: The business locations under this business properties: id: description: Business location id format: int64 type: integer name: description: Business location name type: string type: object ireneCustomerDto: description: Basic customer information properties: email: example: jane.johnson@gmail.com type: string first_name: example: Jane type: string last_name: example: Johnson type: string phone: example: '+16175551212' type: string third_party_reference: description: Unique ID for you to tie this customer record back to yours example: 847e4c54-52656c-9621-4454021454 type: string required: - email - first_name - third_party_reference type: object ireneCustomerReservation: description: Basic customer information properties: contactNumberAsE164: description: Contact number formatted in E164 type: string email: type: string firstName: type: string lastName: type: string notes: description: Customer notes type: string rating: format: float type: number thirdPartyReference: description: Unique ID for you to tie this customer record back to yours type: string vip: type: boolean required: - email - firstName - thirdPartyReference type: object ireneNote: description: An Array of notes properties: note: description: A note to add to the reservation type: string type: object items-apiItemId: description: The unique identifier for the item. type: integer format: int64 example: 141948669132862 items-apiBusinessLocationId: description: The unique identifier for the business location. type: integer format: int64 example: 45454565682155 items-apiSortOrderEnumDto: type: string default: asc enum: - asc - desc description: Sort order items-apiLocationAccountingGroupSortFieldsEnumDto: type: string default: name enum: - name description: sorting field items-apiSortFieldsEnumDto: type: string default: name enum: - id - sku - name - buttonName - links - price - accountingGroup - costPrice - statisticGroup description: sorting field items-apiPageMetadata: type: object properties: total: type: integer format: int64 description: The total amount of elements. example: 500 totalPages: type: integer format: int32 description: The total number of total pages. example: 5 current: type: object properties: page: type: integer format: int32 pageSize: type: integer format: int32 items-apiItemLiteListDto: type: object properties: id: example: 3012455645 type: integer format: int64 name: example: cola maxLength: 255 type: string businessLocationId: example: 45454565682155 description: the id of the businessLocation type: integer format: int64 sku: example: sku123577 maxLength: 32 type: string active: type: boolean itemType: $ref: '#/components/schemas/items-apiItemTypeEnumDto' statisticsGroup: type: array items: $ref: '#/components/schemas/items-apiStatisticGroupItemDto' productId: type: integer format: int64 isSubItem: type: boolean sharingType: $ref: '#/components/schemas/items-apiSharingTypeEnumDto' items-apiItemListDto: type: object allOf: - $ref: '#/components/schemas/items-apiItemLiteListDto' - type: object properties: costPrice: type: number priceMode: $ref: '#/components/schemas/items-apiPriceModeEnumDto' accountingGroup: $ref: '#/components/schemas/items-apiIdNameDto' sharingType: $ref: '#/components/schemas/items-apiSharingTypeEnumDto' buttonName: type: string buttonColor: type: string buttonTheme: $ref: '#/components/schemas/items-apiButtonThemeEnumDto' computedCostPrice: type: boolean price: type: number linksNumber: type: integer format: int32 priceCount: type: integer format: int32 status: $ref: '#/components/schemas/items-apiItemStatusEnumDto' coursingOptions: $ref: '#/components/schemas/items-apiItemCoursingOptionsDto' productionInstructions: type: array items: type: integer format: int64 items-apiItemWriteDto: type: object properties: generalSettings: $ref: '#/components/schemas/items-apiItemGeneralSettingsDto' statisticGroups: type: array items: $ref: '#/components/schemas/items-apiStatisticGroupItemDto' posSettings: $ref: '#/components/schemas/items-apiItemPosSettingsDto' orderSettings: $ref: '#/components/schemas/items-apiItemOrderSettingsDto' inventorySettings: $ref: '#/components/schemas/items-apiItemInventorySettingsDto' composition: type: array items: type: integer format: int64 items-apiModifierWriteDto: type: object properties: generalSettings: $ref: '#/components/schemas/items-apiModifierGeneralSettingsDto' statisticGroups: type: array items: $ref: '#/components/schemas/items-apiStatisticGroupItemDto' posSettings: $ref: '#/components/schemas/items-apiModifierPosSettingsDto' orderSettings: $ref: '#/components/schemas/items-apiModifierOrderSettingsDto' inventorySettings: $ref: '#/components/schemas/items-apiItemInventorySettingsDto' items-apiIdNameDto: type: object properties: id: type: integer format: int64 name: type: string items-apiAdditionalFilterOptionsEnumDto: example: SALES_RESTRICTIONS type: string enum: - SALES_RESTRICTIONS items-apiItemStatusEnumDto: example: ACTIVE type: string enum: - ACTIVE - INACTIVE - DISCONNECTED items-apiItemStatusFilterEnumDto: example: ACTIVE type: string enum: - ACTIVE - ARCHIVED items-apiSearchInFieldEnumDto: example: ITEM_NAME type: string enum: - ITEM_NAME - ACCOUNTING_GROUP - ITEM_SKU - ITEM_PRICE - BUTTON_NAME items-apiItemLinkingFilterEnumDto: example: LINKED type: string enum: - LINKED - DISCONNECTED items-apiItemStatusChangeEnumDto: example: ACTIVE type: string enum: - ACTIVE - INACTIVE items-apiButtonThemeEnumDto: example: FULL enum: - FULL - ACCENT type: string items-apiMenuSharingTypeEnumDto: enum: - LOCAL - SHARED type: string items-apiContentDimensionEnumDto: example: VOLUME enum: - DIMENSION_LESS - VOLUME - MASS type: string items-apiPriceModeEnumDto: example: PERCENT enum: - AMOUNT - PERCENT - POSITIVE_OPEN_PRICE - NEGATIVE_OPEN_PRICE default: AMOUNT type: string items-apiPriceStructureEnumDto: enum: - MANUAL_NEGATIVE - MANUAL_POSITIVE - OPEN_PRICE - SINGLE_PRICE - MULTI_PRICE - PERCENT_PRICE type: string items-apiLocationSpecificAccountingGroupDto: type: object allOf: - $ref: '#/components/schemas/items-apiAccountingGroupV2Dto' - type: object properties: itemCount: type: integer format: int64 description: Number of items under the accounting group in the business. Null when not requested. itemUnderLocationCount: type: integer format: int64 description: Number of items under the accounting group in the business location. Null when not requested. unlinkedItemCount: type: integer format: int64 description: Number of items under the accounting group in the business location that are not linked to any menu. Null when not requested. exemptFromMandatoryBilling: type: boolean items-apiAccountingGroupV2Dto: type: object properties: id: type: integer format: int64 name: type: string productionCenter: type: string reference: type: string businessId: type: integer format: int64 taxProfileId: type: integer format: int64 secondaryProductionCenter: type: string available: type: boolean countForCovers: type: boolean tags: type: string statisticGroups: type: array items: $ref: '#/components/schemas/items-apiStatisticGroupItemDto' items-apiSharingTypeEnumDto: example: GLOBAL enum: - GLOBAL - LOCAL - SHARED type: string items-apiItemTypeEnumDto: example: ITEM enum: - ITEM - SEQUENCE - GROUP - SUB_ITEM - MODIFIER_GROUP - MODIFIER type: string items-apiParentTypeEnumDto: enum: - SEQUENCE - GROUP type: string description: Type of parent (combo or group) for which the components are needed items-apiAggregationTypeEnumDto: enum: - NONE_OR_ONE_OF - ONE_OF - MANY_OF - ALL - MODIFIER_GROUP - MODIFIER type: string items-apiProductionCenterSelectionEnumDto: example: SOME enum: - ALL - SOME - NONE - LEGACY type: string items-apiStatisticGroupItemDto: type: object properties: category: type: string value: type: string items-apiAccountingGroupQsrParametersDto: type: object properties: departmentId: type: string description: The department ID items-apiDictionary: type: object description: Localized item type for import/export file properties: type.sub-item: type: string default: sub-item type.item: type: string default: item type.group: type: string default: group type.combo: type: string default: combo type.modifier-group: type: string default: modifier-group type.modifier: type: string default: modifier button-style.accent: type: string default: accent button-style.background: type: string default: background items-apiComboBasicDto: type: object properties: generalSettings: $ref: '#/components/schemas/items-apiItemGeneralSettingsDto' statisticGroups: type: array items: $ref: '#/components/schemas/items-apiStatisticGroupItemDto' posSettings: $ref: '#/components/schemas/items-apiComboPosSettingsDto' orderSettings: $ref: '#/components/schemas/items-apiCommonOrderSettingsDto' inventorySettings: $ref: '#/components/schemas/items-apiItemInventorySettingsDto' items-apiChildItemReadDto: type: object properties: id: type: integer format: int64 name: type: string sku: type: string price: type: number format: double priceMode: $ref: '#/components/schemas/items-apiPriceModeEnumDto' priceCount: type: integer format: int32 itemType: $ref: '#/components/schemas/items-apiItemTypeEnumDto' items: type: array items: $ref: '#/components/schemas/items-apiChildItemReadDto' aggregationType: $ref: '#/components/schemas/items-apiAggregationTypeEnumDto' minAggregation: type: integer format: int32 maxAggregation: type: integer format: int32 extraPrice: type: integer format: int32 description: Extra price for the child item of a group. This price is in cents! defaultOption: type: boolean description: Is the item a default option for the group items-apiItemGeneralSettingsDto: type: object properties: name: example: cola maxLength: 255 type: string sku: example: sku123577 maxLength: 32 type: string accountingGroup: $ref: '#/components/schemas/items-apiIdNameDto' priceMode: $ref: '#/components/schemas/items-apiPriceModeEnumDto' prices: type: array items: $ref: '#/components/schemas/items-apiItemPriceEntryDto' defaultPrice: type: number format: double associatedScreens: type: array items: type: integer format: int64 containsAlcohol: type: boolean description: Indicates if item contains alcohol alcoholPercentage: type: number description: Alcohol percentage in the item required: - name - priceMode - accountingGroup items-apiModifierGeneralSettingsDto: type: object properties: name: example: cola maxLength: 255 type: string sku: example: sku123577 maxLength: 32 type: string accountingGroup: $ref: '#/components/schemas/items-apiIdNameDto' priceMode: $ref: '#/components/schemas/items-apiPriceModeEnumDto' prices: type: array items: $ref: '#/components/schemas/items-apiItemPriceEntryDto' defaultPrice: type: number format: double associatedScreens: type: array items: type: integer format: int64 containsAlcohol: type: boolean description: Indicates if item contains alcohol alcoholPercentage: type: number description: Alcohol percentage in the item required: - name - priceMode items-apiGroupBasicDto: type: object properties: generalSettings: $ref: '#/components/schemas/items-apiGroupGeneralSettingsDto' posSettings: $ref: '#/components/schemas/items-apiGroupPosSettingsDto' items-apiGroupGeneralSettingsDto: type: object properties: name: example: cola maxLength: 255 type: string sku: example: sku123577 maxLength: 32 type: string groupPrice: type: number associatedScreens: type: array items: type: integer format: int64 aggregationType: $ref: '#/components/schemas/items-apiAggregationTypeEnumDto' minAggregation: type: integer format: int32 maxAggregation: type: integer format: int32 containsAlcohol: type: boolean description: Indicates if item contains alcohol alcoholPercentage: type: number description: Alcohol percentage in the item required: - name items-apiGroupPosSettingsDto: type: object allOf: - $ref: '#/components/schemas/items-apiCommonPosSettingsDto' - type: object properties: button: $ref: '#/components/schemas/items-apiButtonDto' autoDetectOnPos: type: boolean description: Alert servers when combo items have been selected and suggest combo option' coursingOptions: $ref: '#/components/schemas/items-apiCommonCoursingOptionsDto' items-apiModifierGroupBasicDto: type: object properties: generalSettings: $ref: '#/components/schemas/items-apiGroupGeneralSettingsDto' posSettings: $ref: '#/components/schemas/items-apiModifierGroupPosSettingsDto' items-apiModifierGroupPosSettingsDto: type: object allOf: - $ref: '#/components/schemas/items-apiCommonPosSettingsDto' items-apiItemPriceEntryDto: type: object properties: accountProfileId: type: integer format: int64 price: type: number format: double items-apiCommonPosSettingsDto: type: object properties: button: $ref: '#/components/schemas/items-apiButtonDto' items-apiItemPosSettingsDto: type: object allOf: - $ref: '#/components/schemas/items-apiCommonPosSettingsDto' - type: object properties: salesRules: $ref: '#/components/schemas/items-apiItemSalesRulesDto' coursingOptions: $ref: '#/components/schemas/items-apiItemCoursingOptionsDto' extraOptions: $ref: '#/components/schemas/items-apiItemPosExtraOptionsDto' advancedOptions: $ref: '#/components/schemas/items-apiItemPosAdvancedOptionsDto' items-apiModifierPosSettingsDto: type: object allOf: - $ref: '#/components/schemas/items-apiCommonPosSettingsDto' - type: object properties: salesRules: $ref: '#/components/schemas/items-apiModifierSalesRulesDto' extraOptions: $ref: '#/components/schemas/items-apiCommonPosExtraOptionsDto' items-apiComboPosSettingsDto: type: object allOf: - $ref: '#/components/schemas/items-apiCommonPosSettingsDto' - type: object properties: comboOptions: $ref: '#/components/schemas/items-apiComboOptionsDto' withStockQuantityCounter: type: boolean description: POS users can set the available quantity by holding down the item button. Item can coursingOptions: $ref: '#/components/schemas/items-apiCommonCoursingOptionsDto' cookingTime: $ref: '#/components/schemas/items-apiCookingTimeDto' advancedOptions: $ref: '#/components/schemas/items-apiCommonItemPosAdvancedOptionsDto' items-apiComboOptionsDto: type: object properties: autoDetectOnPos: type: boolean description: Alert servers when combo items have been selected and suggest combo option mergeLinesOnReceipt: type: boolean description: Merge combo sub-items into one line item items-apiButtonDto: type: object properties: buttonName: type: string buttonColor: type: string example: red buttonTheme: $ref: '#/components/schemas/items-apiButtonThemeEnumDto' dataVersion: type: integer format: int32 sharingType: $ref: '#/components/schemas/items-apiMenuSharingTypeEnumDto' items-apiItemSalesRulesDto: type: object properties: subItem: type: boolean description: Defines if an item is a sub item and cannot be sold separately withStockQuantityCounter: type: boolean description: POS users can set the available quantity by holding down the item button. Item cannot be sold if the quantity reaches zero. items-apiModifierSalesRulesDto: type: object properties: withStockQuantityCounter: type: boolean description: POS users can set the available quantity by holding down the item button. Item cannot be sold if the quantity reaches zero. items-apiCommonCoursingOptionsDto: type: object properties: specificCourseItem: type: boolean description: Indicates if item is part of a specific course courseNumber: type: integer format: int32 default: -1 description: Indicates the course number when specificCourseItem is true items-apiItemCoursingOptionsDto: type: object allOf: - $ref: '#/components/schemas/items-apiCommonCoursingOptionsDto' - type: object properties: multipleCoursesItem: type: boolean description: Flag to indicate if item might cover multiple courses coursesCount: type: integer format: int32 default: 1 description: Indicates the course number when multipleCoursesItem is true items-apiItemPosExtraOptionsDto: type: object allOf: - $ref: '#/components/schemas/items-apiCommonPosExtraOptionsDto' - type: object properties: allowItemSplit: type: boolean description: Allow item to be split and sold in fractional amounts items-apiCommonPosExtraOptionsDto: type: object properties: allowItemRename: type: boolean cookingTime: $ref: '#/components/schemas/items-apiCookingTimeDto' items-apiCookingTimeDto: type: object properties: minutes: type: integer format: int32 seconds: type: integer format: int32 items-apiCommonItemPosAdvancedOptionsDto: type: object properties: allowItemToBeDiscounted: type: boolean default: true allowItemToBeComplimentary: type: boolean default: true orderSubTotalBeforeItem: type: boolean description: Draft receipts and receipts will show a sub-total before this item line. items-apiItemPosAdvancedOptionsDto: type: object allOf: - $ref: '#/components/schemas/items-apiCommonItemPosAdvancedOptionsDto' - type: object properties: includeItemInServiceCharges: type: boolean default: true description: Allow POS users to include price of item in a service charge linkToCoverCount: type: boolean description: Item units will match number of covers at table. items-apiModifierCommonOrderSettingsDto: type: object properties: itemNameOnDocket: type: string printingStations: $ref: '#/components/schemas/items-apiItemPrintingStationSettingsDto' items-apiCommonOrderSettingsDto: type: object allOf: - $ref: '#/components/schemas/items-apiModifierCommonOrderSettingsDto' - type: object properties: productionInstructions: $ref: '#/components/schemas/items-apiItemProductionInstructionsDto' items-apiItemOrderSettingsDto: type: object allOf: - $ref: '#/components/schemas/items-apiCommonOrderSettingsDto' - type: object properties: externalDevicesSettings: $ref: '#/components/schemas/items-apiItemExternalDevicesSettingsDto' items-apiModifierOrderSettingsDto: type: object allOf: - $ref: '#/components/schemas/items-apiModifierCommonOrderSettingsDto' - type: object properties: externalDevicesSettings: $ref: '#/components/schemas/items-apiItemExternalDevicesSettingsDto' items-apiItemProductionInstructionsDto: type: object properties: productionInstructions: type: array items: type: integer format: int64 groupInstructions: type: boolean description: Order instructions for a single item will be grouped under that item, rather than line by line. items-apiItemExternalDevicesSettingsDto: type: object properties: updatePricesInRealtime: type: boolean updateWeightsInRealtime: type: boolean weightUpdateSettings: $ref: '#/components/schemas/items-apiItemWeightUpdateSettingsDto' items-apiItemWeightUpdateSettingsDto: type: object description: Options for realtime weight update in case when it's enabled properties: weightPerUnit: type: integer format: int32 nbOfDecimalsInBarCode: type: integer format: int32 default: 2 enableTareSubtraction: type: boolean tareWeightToSubtract: type: integer format: int32 description: Tare weight to subtract from the total (in grams) when enableTareSubtraction is enabled items-apiItemPrintingStationSettingsDto: type: object properties: primaryPrintingStations: type: array items: type: string secondaryPrintingStations: type: array items: type: string primaryProductionCenters: type: array items: $ref: '#/components/schemas/items-apiIdNameDto' secondaryProductionCenters: type: array items: $ref: '#/components/schemas/items-apiIdNameDto' productionCenterSelection: $ref: '#/components/schemas/items-apiProductionCenterSelectionEnumDto' secondaryProductionCenterSelection: $ref: '#/components/schemas/items-apiProductionCenterSelectionEnumDto' items-apiItemInventorySettingsDto: type: object properties: costPrice: type: number computedCostPrice: type: boolean avgCostPrice: type: number barCode: type: string barCodes: type: array items: type: string producedItem: type: boolean stockSettings: $ref: '#/components/schemas/items-apiItemStockSettingsDto' ingredients: type: array items: $ref: '#/components/schemas/items-apiItemCompositionDto' parents: type: array items: $ref: '#/components/schemas/items-apiItemParentCompositionDto' items-apiItemStockSettingsDto: type: object properties: quantity: $ref: '#/components/schemas/items-apiQuantityDto' recordStockMovement: type: boolean stockLocation: type: integer format: int64 items-apiItemCompositionDto: type: object properties: itemId: type: integer format: int64 productId: type: integer format: int64 itemName: type: string compositionInventory: $ref: '#/components/schemas/items-apiCompositionInventoryDto' items-apiItemParentCompositionDto: type: object properties: parentId: type: integer format: int64 parentName: type: string parentType: $ref: '#/components/schemas/items-apiItemTypeEnumDto' compositionInventory: $ref: '#/components/schemas/items-apiCompositionInventoryDto' items-apiCompositionInventoryDto: type: object properties: quantityInComposition: $ref: '#/components/schemas/items-apiQuantityDto' originalItemQuantity: $ref: '#/components/schemas/items-apiQuantityDto' stockId: type: integer format: int64 items-apiQuantityDto: type: object properties: contentDimension: $ref: '#/components/schemas/items-apiContentDimensionEnumDto' contentValue: type: number contentUom: example: l maxLength: 25 type: string items-apiProductionInstructionDto: type: object properties: id: type: integer format: int64 name: type: string type: type: string category: $ref: '#/components/schemas/items-apiProductionInstructionCategoryEnumDto' hideQuantityOne: type: boolean instructionValues: type: array items: $ref: '#/components/schemas/items-apiIdNameDto' items-apiProductionInstructionCategoryEnumDto: type: string enum: - COMMENT - ADD_ON - REMOVAL - WARNING items-apiIdNameLocationIdDto: type: object properties: id: type: integer format: int64 name: type: string businessLocationId: type: integer format: int64 items-apiProductionInstructionCreateDto: type: object required: - name - type properties: name: type: string type: type: string category: $ref: '#/components/schemas/items-apiProductionInstructionCategoryEnumDto' hideQuantityOne: type: boolean instructionValues: type: array items: type: string modifierValues: type: object deprecated: true additionalProperties: type: string items-apiProductLiteDto: type: object properties: id: type: integer format: int64 name: type: string sku: type: string defaultAccountingGroup: $ref: '#/components/schemas/items-apiIdNameDto' items-apiColumnMapping: properties: columnIdx: format: int32 type: integer columnName: enum: - name - sku - price - extraPrice - accountingGroup - statisticsGroup - menuScreen - buttonName - buttonColor - buttonStyle - costPrice - barCode - sharingMode - externalQuantityDivider - externalQuantityTare - contentUom - contentValue - parentSku - minMax - type - docketName - course - inventorySource - productionInstruction type: string skipped: type: boolean type: object items-apiImportStatisticsDTO: properties: accountingGroupCount: format: int32 type: integer fileId: type: string groupCount: format: int32 type: integer itemCount: format: int32 type: integer newAccountingGroupNames: items: type: string type: array sequenceCount: format: int32 type: integer type: object items-apiMenuDtoV1: properties: businessLocationId: format: int64 type: integer businessLocationName: type: string configurations: items: $ref: '#/components/schemas/items-apiPosConfigurationDto' type: array id: format: int64 type: integer inSync: type: boolean name: type: string parent: $ref: '#/components/schemas/items-apiMenuDtoV1' syncVersion: format: int32 type: integer dataVersion: type: integer format: int32 sharingType: $ref: '#/components/schemas/items-apiMenuSharingTypeEnumDto' allowLocalEdits: type: boolean description: When true, non-main locations can add their own local buttons to this shared menu. localButtonsCount: type: integer format: int32 description: Number of local buttons on this menu for the viewing location. type: object items-apiMetadataDTO: properties: pagination: $ref: '#/components/schemas/items-apiMetadataPaginationDTO' type: object items-apiMetadataPaginationDTO: properties: current: $ref: '#/components/schemas/items-apiMetadataPaginationPageDTO' total: format: int32 type: integer type: object items-apiMetadataPaginationPageDTO: properties: limit: format: int32 type: integer offset: format: int32 type: integer type: object items-apiPriceDTO: properties: amount: type: number example: 10.0 description: The item price. name: type: string example: Tuesday Special description: The name for this item price. type: object items-apiItemDTO: type: object properties: id: type: integer format: int64 description: The unique identifier for the item. example: 3012455645 name: type: string description: The name of the item. example: Burger docketName: $ref: '#/components/schemas/items-apiDocketName' sku: $ref: '#/components/schemas/items-apiSku' active: $ref: '#/components/schemas/items-apiActive' barcode: type: string description: The item barcode. example: '00000001' barcodes: type: array items: type: string example: '10011101100' description: A list of barcodes associated with the item. accountingGroup: $ref: '#/components/schemas/items-apiAccountingGroupDTO' statisticGroups: type: array items: $ref: '#/components/schemas/items-apiStatisticGroupDTO' description: List of statistic groups associated with the item. costPrice: $ref: '#/components/schemas/items-apiCostPrice' prices: type: array items: $ref: '#/components/schemas/items-apiPriceDTO' description: List of prices associated with the item. sharingType: type: string enum: - GLOBAL_NO_BL - GLOBAL - LOCAL - SHARED description: How the item is shared. example: SHARED priceMode: type: string enum: - AMOUNT - PERCENT - POSITIVE_OPEN_PRICE - NEGATIVE_OPEN_PRICE default: AMOUNT description: The type of price for the item. example: POSITIVE_OPEN_PRICE inventorySource: type: string enum: - PURCHASED - PRODUCED description: Source of inventory for the item. example: PURCHASED disabled: type: boolean description: Whether or not stock management is disabled for the item. example: false contentDimension: description: How the item is measured for stock management. type: string enum: - DIMENSION_LESS - VOLUME - MASS example: MASS contentUom: type: string description: The unit of measure of the item for stock management. example: kg contentValue: type: number example: 1 description: The measurement value. itemType: type: string enum: - ITEM - SEQUENCE - GROUP - SUB_ITEM description: Type of the item. example: ITEM items-apiUpdateItemDTO: required: - name - businessLocationId - sku - defaultPrice - accountingGroupId type: object properties: name: $ref: '#/components/schemas/items-apiName' businessLocationId: $ref: '#/components/schemas/items-apiBusinessLocationId' docketName: $ref: '#/components/schemas/items-apiDocketName' sku: $ref: '#/components/schemas/items-apiSku' active: $ref: '#/components/schemas/items-apiActive' barcode: example: '10011101100' maxLength: 64 type: string description: The item barcode. barcodes: type: array description: A list of barcodes associated with the item. items: type: string maxLength: 64 minLength: 1 example: '10011101100' accountingGroupId: example: 462478248241 description: The unique identifier for the accounting group. Must be an existing `accountingGroupId`. type: integer format: int64 costPrice: $ref: '#/components/schemas/items-apiCostPrice' defaultPrice: $ref: '#/components/schemas/items-apiDefaultPrice' priceMode: $ref: '#/components/schemas/items-apiPriceMode' items-apiCreateItemDTO: required: - name - accountingGroupId - defaultPrice - businessLocationId type: object properties: name: $ref: '#/components/schemas/items-apiName' businessLocationId: $ref: '#/components/schemas/items-apiBusinessLocationId' docketName: $ref: '#/components/schemas/items-apiDocketName' sku: $ref: '#/components/schemas/items-apiSku' active: $ref: '#/components/schemas/items-apiActive' barcode: example: '10011101100' maxLength: 64 type: string description: The item barcode. barcodes: type: array description: A list of barcodes associated with the item. items: type: string maxLength: 64 minLength: 1 example: '10011101100' accountingGroupId: example: 462478248241 description: The unique identifier for the accounting group. Must be an existing `accountingGroupId`. type: integer format: int64 costPrice: $ref: '#/components/schemas/items-apiCostPrice' defaultPrice: $ref: '#/components/schemas/items-apiDefaultPrice' priceMode: $ref: '#/components/schemas/items-apiPriceMode' items-apiSku: example: UGG-BB-PUR-06 maxLength: 32 minLength: 1 description: A stock keeping unit. type: string items-apiOffset: example: 10 default: 0 description: "Offset allows you to retrieve a subset of records starting from a specified position in the dataset. Offset normally works with [`amount`](#operation-getitems-amount), which designates how many records to retrieve, starting from the offset position.\n" type: integer format: int64 items-apiAmount: description: The number of results to return with each request. example: 10 default: 100 maximum: 1000 type: integer format: int64 items-apiName: example: Burger maxLength: 180 minLength: 1 description: The name of the item. type: string items-apiAccountingGroupId: example: 44874545485 description: The unique identifier for the accounting group. type: integer format: int64 items-apiDocketName: example: The Burger maxLength: 64 type: string description: The name used in the docket for the item. items-apiActive: type: boolean description: Indicates whether or not the item is archived from the menu. example: true items-apiCostPrice: type: number description: The cost price of the item. example: 5.0 items-apiDefaultPrice: example: 10 type: number description: The default price of the item. items-apiPriceMode: description: The type of price for the item. example: PERCENT enum: - AMOUNT - PERCENT - POSITIVE_OPEN_PRICE - NEGATIVE_OPEN_PRICE default: AMOUNT type: string items-apiPosConfigurationDto: properties: devices: items: $ref: '#/components/schemas/items-apiPosDeviceDto' type: array id: format: int64 type: integer menuId: format: int64 type: integer name: type: string type: object items-apiPosDeviceDto: properties: active: type: boolean id: format: int64 type: integer name: type: string status: $ref: '#/components/schemas/items-apiPosDeviceStatusDto' type: object items-apiPosDeviceStatusDto: properties: configurationStatus: enum: - RELOAD_REQUESTED - OUT_OF_SYNC - UP_TO_DATE type: string lastSynchronized: format: date-time type: string type: object items-apiStatisticGroupDTO: properties: category: type: string description: The name of the statistic group category. example: default value: type: string description: The statistic group value. example: Food type: object items-apiJsonNullableBoolean: properties: present: type: boolean type: object items-apiJsonNullableString: properties: present: type: boolean type: object items-apiJsonNullableBigDecimal: properties: present: type: boolean type: object items-apiJsonNullableDimensionDto: properties: present: type: boolean type: object items-apiJsonNullableBarCodesDto: properties: present: type: boolean type: array items: type: string items-apiJsonNullableInventorySourceDto: properties: present: type: boolean type: object items-apiJsonNullablePriceModeDTO: properties: present: type: boolean type: object items-apiAccountingGroupDTO: description: The accounting group associated with the item. properties: id: format: int64 type: integer description: The unique identifier for the accounting group. example: 40570261078058 name: type: string description: The name of the accounting group. example: Alcoholic beverages type: object items-apiJsonImportItemDto: properties: name: type: string sku: type: string defaultPrice: type: string accountingGroup: type: string type: type: string description: one of ITEM, COMBO, GROUP type: object items-apiMultipleItemsImportItemDto: properties: name: type: string defaultPrice: type: string accountingGroup: type: string statisticsGroup: type: string screen: type: string type: object items-apiScreenContentDtoV2: type: object required: - type discriminator: propertyName: type mapping: SubScreen: '#/components/schemas/items-apiSubScreenDtoV2' TopLevelScreen: '#/components/schemas/items-apiTopLevelScreenDtoV2' ScreenButton: '#/components/schemas/items-apiScreenButtonDtoV2' properties: type: type: string id: type: integer format: int64 name: type: string color: $ref: '#/components/schemas/items-apiButtonColorEnum' fullColor: type: boolean dataVersion: type: integer format: int32 sharingType: $ref: '#/components/schemas/items-apiMenuSharingTypeEnumDto' items-apiScreenSubButtonDtoV2: type: object properties: id: type: integer format: int64 text: type: string color: $ref: '#/components/schemas/items-apiButtonColorEnum' type: $ref: '#/components/schemas/items-apiButtonTypeEnumDto' childCount: type: integer targetId: type: integer format: int64 fullColor: type: boolean dataVersion: type: integer sharingType: $ref: '#/components/schemas/items-apiMenuSharingTypeEnumDto' items-apiButtonOrderEnumDto: type: string enum: - ASC - DESC - CUSTOM items-apiButtonTypeEnumDto: type: string enum: - ITEM - SCREEN - ITEM_GROUP - ITEM_SEQUENCE - PRODUCTION_INSTRUCTION_GROUP - TAG - PRODUCTION_INSTRUCTION_VALUE - EMPTY - DISCOUNT - TRANSFER - WEB_EXTENSION - MODIFIER_GROUP - MODIFIER items-apiIncompatibleButtonDto: type: object properties: reason: type: string enum: - LOCAL_ENTITY - MISSING_ENTITY - DUPLICATE_ENTITY_NAME button: type: object properties: id: type: integer format: int64 text: type: string type: $ref: '#/components/schemas/items-apiButtonTypeEnumDto' targetId: type: integer format: int64 items-apiTopLevelScreenWriteDto: type: object required: - name - color properties: name: type: string minLength: 1 maxLength: 128 color: $ref: '#/components/schemas/items-apiButtonColorEnum' fullColor: type: boolean items-apiItemRelationDto: type: object properties: childItemId: type: integer format: int64 extraPrice: type: integer format: int32 description: Extra price for the child item of a group. This price is in cents! defaultOption: type: boolean description: Whether the child item is the default option for the group items-apiButtonColorEnum: type: string enum: - WHITE - BLUE - GRAY - YELLOW - DARK_RED - LIGHT_RED - BROWN - PINK - GREEN - ORANGE - CYAN - BLACK - PURPLE - DARK_GRAY items-apiPriceListDto: type: object properties: id: type: integer format: int64 name: type: string businessId: type: integer format: int64 syncVersion: type: integer format: int64 active: type: boolean items-apiAccountProfileDto: type: object properties: id: type: integer format: int64 name: type: string code: type: string sticky: type: boolean default: false available: type: boolean default: true deliveryMode: $ref: '#/components/schemas/items-apiDeliveryMode' isDefault: type: boolean default: false items-apiDeliveryMode: type: string enum: - NONE - COLLECTION - REMOTE default: NONE items-apiBusinessLocationDto: type: object properties: id: type: integer format: int64 name: type: string items-apiCategoryContent: type: object required: - type discriminator: propertyName: type mapping: item: '#/components/schemas/items-apiMenuItemDto' group: '#/components/schemas/items-apiMenuGroupDto' deal: '#/components/schemas/items-apiMenuDealDto' itemGroup: '#/components/schemas/items-apiMenuItemGroupDto' properties: id: type: integer format: int64 name: type: string type: type: string items-apiCommonMenuContentProperties: type: object properties: price: type: integer format: int64 sku: type: string customItemNameEnabled: type: boolean pricingStrategy: $ref: '#/components/schemas/items-apiPricingStrategyEnumDto' defaultTaxAmount: type: integer format: int64 defaultTaxPercentage: type: number taxIncludedInPrice: type: boolean taxes: type: array items: $ref: '#/components/schemas/items-apiMenuItemTaxDto' conditionalTaxRules: type: boolean items-apiMenuItemTaxDto: type: object properties: description: type: string amount: type: integer format: int64 percentage: type: number items-apiRichItemProperties: type: object properties: squareImageUrl: type: string rawImageUrl: type: string previewImageUrl: type: string texts: type: array items: $ref: '#/components/schemas/items-apiRichItemText' allergenCodes: type: array items: type: string containsAlcohol: type: boolean alcoholPercentage: type: number items-apiRichItemText: type: object properties: locale: type: string friendlyDisplayName: type: string description: type: string items-apiMenuItemDto: type: object description: Single item allOf: - $ref: '#/components/schemas/items-apiCategoryContent' - $ref: '#/components/schemas/items-apiCommonMenuContentProperties' - $ref: '#/components/schemas/items-apiRichItemProperties' - type: object properties: asSubItem: type: boolean productionInstructions: type: array items: $ref: '#/components/schemas/items-apiMenuProductionInstructionDto' extraPrice: type: integer format: int32 description: Extra price for the child item of a group. This price is in cents! items-apiPricingStrategyEnumDto: type: string enum: - CUSTOMIZED_ITEM_PRICE_WILL_BE_NEGATIVE - CUSTOMIZED_ITEM_PRICE_WILL_BE_POSITIVE - CUSTOMIZED_ITEM_PRICE_WILL_BE_A_PERCENTAGE_OF_TOTAL - PRICE_CANNOT_BE_CUSTOMIZED items-apiMenuProductionInstructionDto: type: object properties: multiSelectionAllowed: type: boolean productionInstructionGroupName: type: string productionInstructionGroupId: type: integer format: int64 instructionValues: type: array items: $ref: '#/components/schemas/items-apiIdNameDto' items-apiMenuDealContentDto: type: object required: - type discriminator: propertyName: type mapping: item: '#/components/schemas/items-apiMenuExtendedItemDto' dealGroup: '#/components/schemas/items-apiMenuDealGroupDto' properties: id: type: integer format: int64 type: type: string items-apiMenuGroupDtoEntries: type: object properties: data: type: array items: $ref: '#/components/schemas/items-apiCategoryContent' metadata: $ref: '#/components/schemas/items-apiPageMetadata' items-apiStatisticGroupBulkActionDto: type: object properties: statisticGroups: type: array items: $ref: '#/components/schemas/items-apiStatisticGroupItemDto' required: - statisticGroups items-apiStatusBulkActionDto: type: object description: Bulk action to change the status of items, not supported yet. Added to show the structure properties: status: $ref: '#/components/schemas/items-apiItemStatusChangeEnumDto' required: - status items-apiAccountingGroupBulkActionDto: type: object description: Bulk action to assign an accounting group for items (only items and combos supported properties: accountingGroup: type: integer format: int64 example: 1 required: - accountingGroup items-apiCourseBulkActionDto: type: object description: Bulk action to assign course for items properties: course: type: integer minimum: -1 maximum: 14 format: int32 example: 1 required: - course items-apiSubItemBulkActionDto: type: object description: Bulk action to switch items to sub-items and back properties: subItem: type: boolean required: - subItem items-apiProductionInstructionsBulkActionDto: type: object description: Bulk action to assign production instructions to items properties: productionInstructions: type: array items: type: integer format: int64 required: - productionInstructions items-apiAlcoholBulkActionDto: type: object description: Bulk action to set alcohol fields to items properties: containsAlcohol: type: boolean alcoholPercentage: type: number items-apiProductionCentersBulkActionDto: type: object description: Bulk action to set production centers to items properties: selection: $ref: '#/components/schemas/items-apiProductionCenterSelectionEnumDto' primary: type: boolean productionCenterIds: type: array items: type: integer format: int64 minItems: 0 required: - primary - selection - productionCenterIds items-apiFailedItem: type: object allOf: - $ref: '#/components/schemas/items-apiErrorDto' - type: object properties: id: type: integer format: int64 items-apiErrorDto: type: object properties: message: type: string code: type: string args: type: array items: type: string items-apiTableErrorDto: type: object allOf: - type: object properties: row: type: integer column: type: string - $ref: '#/components/schemas/items-apiErrorDto' items-apiImportedAllergenSkuDto: type: object properties: sku: type: string allergens: type: array items: $ref: '#/components/schemas/items-apiImportedAllergenDto' items-apiImportedAllergenDto: type: object properties: name: type: string allergenCode: type: string items-apiImportedDescriptionSkuDto: type: object properties: sku: type: string descriptions: type: array items: $ref: '#/components/schemas/items-apiDescriptionDto' items-apiDescriptionDto: type: object properties: locale: type: string description: type: string descriptionName: type: string items-apiMenuGraphNodeDto: type: object properties: id: type: integer format: int64 type: $ref: '#/components/schemas/items-apiMenuGraphNodeType' name: type: string buttonColor: type: string parentId: type: integer format: int64 description: buttonId of a combo or a group items-apiMenuGraphNodeType: type: string enum: - MENU - BUTTON - COMBO - GROUP - ITEM - PRODUCTION_INSTRUCTION - PRODUCTION_INSTRUCTION_GROUP - TAG - DISCOUNT - TRANSFER - WEB_EXTENSION items-apiMenuGraphEdgeDto: type: object properties: sourceId: type: integer format: int64 sourceType: $ref: '#/components/schemas/items-apiMenuGraphNodeType' targetId: type: integer format: int64 targetType: $ref: '#/components/schemas/items-apiMenuGraphNodeType' items-apiRichItemLiteDto: type: object properties: allergenCodes: type: array items: type: string uniqueItems: true descriptions: type: array items: $ref: '#/components/schemas/items-apiRichItemDescriptionDto' uniqueItems: true pictureUrl: type: string previewPictureUrl: type: string pictureFileName: type: string required: - descriptions - allergenCodes items-apiRichItemDescriptionDto: type: object properties: description: type: string maxLength: 4000 displayName: type: string localeCode: type: string maxLength: 7 minLength: 2 required: - localeCode - description - displayName items-apiAllergenTranslationDto: description: Allergen translation properties: localeCode: description: Language locale (eg. 'en' or 'en_US'). example: en nullable: false type: string text: description: Translation in the language of the locale. type: string required: - localeCode - text type: object items-apiScreensHierarchyScreenDto: type: object properties: id: type: integer format: int64 name: type: string subScreens: type: array items: $ref: '#/components/schemas/items-apiScreensHierarchyScreenDto' lsk-kms-apiClientDetailsData: type: object properties: active: type: boolean description: Active status example: true hostIp: type: string description: Host IP example: 192.168.1.1 required: - active - hostIp lsk-kms-apiActiveClientResponseDto: type: object properties: EntityIdSK: type: string description: Entity SK example: CLIENT#09b27e3c-4c6a-473c-b6f6-14abe9a58b26 active: type: boolean description: Active status example: true AccessId: type: string description: Access Id example: BUSINESS#111#LOCATION#222#HOST#333#CLIENT#09b27e3c-4c6a-473c-b6f6-14abe9a58b26 lastActivation: type: number description: Last activation time example: 1694261197 BusinessId: type: string description: Business Id example: BUSINESS#111 EntityIdPK: type: string description: Entity PK example: CLIENT#09b27e3c-4c6a-473c-b6f6-14abe9a58b26 required: - EntityIdSK - active - AccessId - lastActivation - BusinessId - EntityIdPK lsk-kms-apiActivationOptions: type: object properties: isTrial: type: boolean description: Is trial trialPastDueDate: type: string description: Trial past due date trialSuspendDate: type: string description: Trial suspend date required: - isTrial - trialPastDueDate - trialSuspendDate lsk-kms-apiKdsVersionResponseDto: type: object properties: staticFilesUrl: type: string example: https://minio.sbx.lsk.lightspeed.app/sbx-lsk-kms-static/lsk-kms/1.0.1-71.zip description: The KDS version url. required: - staticFilesUrl lsk-kms-apiProductionCenter: type: object properties: id: type: number description: ID of the production center example: 25769803812 name: type: string description: Name of the production center example: Cuisine virtualType: type: string description: Type of the virtual center example: IKENTOO required: - id - name - virtualType lsk-kms-apiAccountProfile: type: object properties: id: type: number description: ID of the account profile example: 25769805766 name: type: string description: Name of the account profile example: Retrait direct required: - id - name lsk-kms-apiConfigData: type: object properties: productionCenters: description: Array of production centers type: array items: $ref: '#/components/schemas/lsk-kms-apiProductionCenter' accountProfiles: description: Array of account profiles type: array items: $ref: '#/components/schemas/lsk-kms-apiAccountProfile' menus: type: array description: Array of menus items: {} lsk-kms-apiKmsConfigurationResponseDto: type: object properties: BusinessId: type: string description: Business ID example: BUSINESS#111 EntityIdPK: type: string description: Entity ID PK example: CONFIG#b4dc99c4-837a-4495-b963-3c41973225de EntityIdSK: type: string description: Entity ID SK example: CONFIG#b4dc99c4-837a-4495-b963-3c41973225de configData: description: Configuration data allOf: - $ref: '#/components/schemas/lsk-kms-apiConfigData' AccessId: type: string description: Access ID example: BUSINESS#111#LOCATION#555#CONFIG#b4dc99c4-837a-4495-b963-3c41973225de required: - BusinessId - EntityIdPK - EntityIdSK - configData - AccessId lsk-kms-apiAccountingGroup: type: object properties: accountingGroupId: type: number example: 657619622559772 description: The id of the accounting group. name: type: string example: Alcoholic beverages description: The name of the accounting group. statisticGroup: type: string example: '' description: The statistic group of the accounting group. code: type: string example: '' description: The code of the accounting group. required: - accountingGroupId - name lsk-kms-apiDynamicMenuItem: type: object properties: {} lsk-kms-apiMenuItem: type: object properties: id: type: number example: 674095117107244 description: The id of the item. name: type: string example: Item note description: The name of the item. accountingGroup: type: object example: id: 674095117107269 name: Desserts description: The accountingGroup required: - id - name lsk-kms-apiItemResponseDTO: type: object properties: accountProfiles: description: List of account profiles. type: array items: $ref: '#/components/schemas/lsk-kms-apiAccountProfile' accountingGroups: description: List of accounting groups. type: array items: $ref: '#/components/schemas/lsk-kms-apiAccountingGroup' menuItems: example: menuItems: Msgs: __ITEMS__: - id: 674095117107244 name: Item note - id: 674095117107248 name: Order note Ramen: __ITEMS__: - id: 674095117107302 name: Tonkotsu Ramen - id: 674095117107323 name: Chicken Ramen description: Object containing menu items, keyed by menu name. allOf: - $ref: '#/components/schemas/lsk-kms-apiDynamicMenuItem' allItems: description: List of all menu items. type: array items: $ref: '#/components/schemas/lsk-kms-apiMenuItem' required: - accountProfiles - accountingGroups - menuItems - allItems lsk-reservation-serviceBusinessLocationId: description: The unique identifier of the business location. example: 9765040300495493 format: int64 type: integer lsk-reservation-serviceReservationStatus: description: External reservation statuses for platforms. enum: - ON_HOLD - SCHEDULED - PARTIALLY_ARRIVED - ARRIVED - PARTIALLY_SEATED - SEATED - DEPARTED - CANCELLED - NO_SHOW - ERROR example: SCHEDULED type: string lsk-reservation-serviceReservationId: description: Unique identifier for the reservation. example: C86AD222-6F1C-4A64-A6DD-226ADC589514 maxLength: 36 pattern: '[a-zA-Z0-9_-]+' type: string lsk-reservation-serviceTableOptimization: type: string description: Table optimization rule. enum: - MAX_OCCUPANCY - MAX_RESERVATIONS lsk-reservation-serviceDayOfWeek: type: string description: Day of the week. enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY lsk-reservation-serviceDurationIso8601: type: string format: duration example: PT30M lsk-reservation-serviceLocalTimeIso8601: type: string format: time example: 18:00 lsk-reservation-serviceZoneIdIso8601: type: string example: Europe/London lsk-reservation-servicePercentage: type: integer example: 50 minimum: 0 maximum: 100 lsk-reservation-serviceReservationTimeRangeDto: type: object description: Reservation time range required: - from - to properties: from: description: Start of the interval (local time, HH:mm). $ref: '#/components/schemas/lsk-reservation-serviceLocalTimeIso8601' to: description: End of the interval (local time, HH:mm). $ref: '#/components/schemas/lsk-reservation-serviceLocalTimeIso8601' lsk-reservation-serviceDailyReservationIntervalDto: type: object description: Day of week reservation interval required: - timeRanges properties: timeRanges: description: Reservation time ranges for this day type: array items: $ref: '#/components/schemas/lsk-reservation-serviceReservationTimeRangeDto' lsk-reservation-serviceWeeklyReservationIntervalDto: type: object description: Day of weeks reservation intervals required: - sunday - monday - tuesday - wednesday - thursday - friday - saturday properties: sunday: $ref: '#/components/schemas/lsk-reservation-serviceDailyReservationIntervalDto' monday: $ref: '#/components/schemas/lsk-reservation-serviceDailyReservationIntervalDto' tuesday: $ref: '#/components/schemas/lsk-reservation-serviceDailyReservationIntervalDto' wednesday: $ref: '#/components/schemas/lsk-reservation-serviceDailyReservationIntervalDto' thursday: $ref: '#/components/schemas/lsk-reservation-serviceDailyReservationIntervalDto' friday: $ref: '#/components/schemas/lsk-reservation-serviceDailyReservationIntervalDto' saturday: $ref: '#/components/schemas/lsk-reservation-serviceDailyReservationIntervalDto' lsk-reservation-serviceSpecialReservationIntervalDto: type: object description: Date Range based reservation interval required: - name - from - to - timeRanges properties: name: description: Human readable range name type: string from: description: From Date type: string format: date to: description: To Date type: string format: date timeRanges: description: Reservation time ranges for this day type: array items: $ref: '#/components/schemas/lsk-reservation-serviceReservationTimeRangeDto' lsk-reservation-serviceGuestDto: description: Guest information associated with the reservation. properties: email: description: The guest's email address. example: john.smith@email.com format: email type: string x-field-extra-annotation: '@jakarta.validation.constraints.Email' firstName: description: The guest's first name. example: John type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' lastName: description: The guest's last name. example: Smith type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' phone: description: The guest's phone number. example: '+13453455555' format: phone type: string foodAndDrinkNotes: example: Only milk and cookies! type: string description: Any details about guest's food and drink preferences. language: example: en type: string description: Guest's language; use [two-symbol ISO-639](https://www.loc.gov/standards/iso639-2/php/code_list.php) for best results on POS. allergens: example: - almonds - egg items: type: string type: array uniqueItems: true description: Any allergens linked to this guest. dietaryRestrictions: example: - no alcohol - vegan items: type: string type: array uniqueItems: true description: Any dietary restrictions linked to this guest. notes: example: Prefers window seating. type: string description: Any additional notes about the guest. required: - firstName - lastName type: object lsk-reservation-serviceIntegrationStatusDto: type: string description: The status of the business location. enum: - INACTIVE - WAITING_FOR_ONBOARDING - ACTIVE - PAUSED lsk-reservation-serviceBusinessLocationAddressDto: type: object properties: addressLine1: description: First line of the address type: string example: Main Street addressLine2: description: Second line of the address type: string example: '25' zipCode: description: ZIP/Postal code type: string example: '12345' city: description: City name type: string example: London state: description: State/Province/Region type: string country: description: Country code type: string example: GB phone: description: Phone number type: string example: '+13453455555' lsk-reservation-serviceBackofficeTimeSlotDto: type: object properties: available: description: Identifies, if this time slot active or not type: boolean example: true from: description: Timeslot start date time in ISO 8601 format. type: string format: date-time to: description: Timeslot start end time in ISO 8601 format. type: string format: date-time availableTables: description: List of available table ids type: array items: type: string totalCoversCount: description: Total covers count type: integer availableCoversCount: description: Available covers count type: integer proposedTables: description: List of proposed table ids for automatic table assignment type: array items: type: string lsk-reservation-serviceBackofficeReservationImportReportRecordDto: type: object description: Reservation import report record properties: success: description: Whether the reservation was successfully created type: boolean example: true lineNumber: description: The line number in the CSV file type: long example: 1 message: description: Error message if the reservation failed to create type: string example: Invalid email address lsk-reservation-serviceReservationImportStatusDto: type: string description: Reservation import status enum: - SUCCESS - FAILURE lsk-reservation-serviceBackofficeCreateReservationDto: properties: guest: $ref: '#/components/schemas/lsk-reservation-serviceGuestDto' notes: example: More balloons! type: string description: Venue-entered notes specific to the reservation. specialOffer: example: Free dessert type: string description: Any special offer linked to the reservation. tags: example: - romantic meal - special occasion items: type: string type: array uniqueItems: true description: Tags linked to this reservation. partySize: description: The number of expected guests. example: 2 format: int32 type: integer tableNumbers: description: "The list of table numbers associated with this reservation.\nIf no valid table is provided, POS order is not created.\n" example: - '1' items: type: string type: array uniqueItems: true utcScheduledAt: description: The scheduled reservation time in ISO 8601 format. example: '2024-01-01T20:00:00.000Z' format: date-time type: string guestRequest: description: Notes added to the reservation by the guest. example: I would need two baby chairs. type: string expectedDuration: description: Expected duration of the meal. ISO 8601 format. $ref: '#/components/schemas/lsk-reservation-serviceDurationIso8601' required: - utcScheduledAt - partySize - guest type: object lsk-reservation-serviceBackofficeUpdateGuestDto: description: Guest information associated with the reservation. properties: email: description: The guest's email address. example: john.smith@email.com format: email anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.Email' - type: 'null' firstName: description: The guest's first name. example: John anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' - type: 'null' lastName: description: The guest's last name. example: Smith anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' - type: 'null' notes: example: Prefers window seating. description: Guest notes. anyOf: - type: string - type: 'null' phone: description: The guest's phone number. example: '+13453455555' format: phone anyOf: - type: string - type: 'null' foodAndDrinkNotes: example: Only milk and cookies! anyOf: - type: string - type: 'null' description: Any details about guest's food and drink preferences. language: example: en anyOf: - type: string - type: 'null' description: Guest's language; use [two-symbol ISO-639](https://www.loc.gov/standards/iso639-2/php/code_list.php) for best results on POS. allergens: description: Any allergens linked to this guest. anyOf: - type: array uniqueItems: true example: - almonds - egg items: type: string - type: 'null' dietaryRestrictions: description: Any dietary restrictions linked to this guest. anyOf: - type: array uniqueItems: true example: - no alcohol - vegan items: type: string - type: 'null' lsk-reservation-serviceConsumerCreateReservationDto: properties: guest: $ref: '#/components/schemas/lsk-reservation-serviceConsumerGuestDto' partySize: description: The number of expected guests. example: 2 format: int32 type: integer utcScheduledAt: description: The scheduled reservation time in ISO 8601 format. example: '2024-01-01T20:00:00.000Z' format: date-time type: string guestRequest: description: Notes added to the reservation by the guest. example: I would need two baby chairs. type: string required: - utcScheduledAt - partySize - guest type: object lsk-reservation-serviceConsumerIntegrationConfigDto: description: Integration configuration information properties: status: $ref: '#/components/schemas/lsk-reservation-serviceIntegrationStatusDto' noteToGuest: description: Extra note that the restaurant wants to provide to guests type: string example: Reservations are held for 15 minutes. Please contact us if you're running late. reservationPhone: description: Phone number for table reservation type: string example: 1234567890 maxPartySize: description: Maximum party size. type: integer example: 10 lsk-reservation-serviceConsumerTimeSlotDto: type: object properties: available: description: Identifies, if this time slot active or not type: boolean example: true from: description: Timeslot start date time in ISO 8601 format. type: string format: date-time to: description: Timeslot start end time in ISO 8601 format. type: string format: date-time lsk-reservation-serviceConsumerGuestDto: description: Guest information associated with the reservation. properties: email: description: The guest's email address. example: john.smith@email.com format: email type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank @jakarta.validation.constraints.Email' firstName: description: The guest's first name. example: John type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' lastName: description: The guest's last name. example: Smith type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' phone: description: The guest's phone number. example: '+13453455555' format: phone type: string language: example: en type: string description: Guest's language required: - firstName - lastName - email type: object lsk-reservation-serviceConsumerUpdateGuestDto: description: Guest information associated with the reservation. properties: email: description: The guest's email address. example: john.smith@email.com format: email anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank @jakarta.validation.constraints.Email' - type: 'null' firstName: description: The guest's first name. example: John anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' - type: 'null' lastName: description: The guest's last name. example: Smith anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' - type: 'null' phone: description: The guest's phone number. example: '+13453455555' format: phone anyOf: - type: string - type: 'null' language: example: en description: Guest's language anyOf: - type: string - type: 'null' type: object lsk-reservation-serviceWidgetCreateReservationDto: properties: guest: $ref: '#/components/schemas/lsk-reservation-serviceWidgetGuestDto' partySize: description: The number of expected guests. example: 2 format: int32 type: integer utcScheduledAt: description: The scheduled reservation time in ISO 8601 format. example: '2024-01-01T20:00:00.000Z' format: date-time type: string guestRequest: description: Notes added to the reservation by the guest. example: I would need two baby chairs. type: string required: - utcScheduledAt - partySize - guest type: object lsk-reservation-serviceWidgetIntegrationConfigDto: description: Integration configuration information properties: status: $ref: '#/components/schemas/lsk-reservation-serviceIntegrationStatusDto' noteToGuest: description: Extra note that the restaurant wants to provide to guests type: string example: Reservations are held for 15 minutes. Please contact us if you're running late. reservationPhone: description: Phone number for table reservation type: string example: 1234567890 maxPartySize: description: Maximum party size. type: integer example: 10 lsk-reservation-serviceWidgetTimeSlotDto: type: object properties: available: description: Identifies, if this time slot active or not type: boolean example: true from: description: Timeslot start date time in ISO 8601 format. type: string format: date-time to: description: Timeslot start end time in ISO 8601 format. type: string format: date-time lsk-reservation-serviceWidgetGuestDto: description: Guest information associated with the reservation. properties: email: description: The guest's email address. example: john.smith@email.com format: email type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank @jakarta.validation.constraints.Email' firstName: description: The guest's first name. example: John type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' lastName: description: The guest's last name. example: Smith type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' phone: description: The guest's phone number. example: '+13453455555' format: phone type: string language: example: en type: string description: Guest's language required: - firstName - lastName - email type: object lsk-reservation-serviceWidgetUpdateGuestDto: description: Guest information associated with the reservation. properties: email: description: The guest's email address. example: john.smith@email.com format: email anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank @jakarta.validation.constraints.Email' - type: 'null' firstName: description: The guest's first name. example: John anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' - type: 'null' lastName: description: The guest's last name. example: Smith anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' - type: 'null' phone: description: The guest's phone number. example: '+13453455555' format: phone anyOf: - type: string - type: 'null' language: example: en description: Guest's language anyOf: - type: string - type: 'null' type: object lsk-reservation-servicePosTimeSlotDto: type: object properties: available: description: Identifies, if this time slot active or not type: boolean example: true from: description: Timeslot start date time in ISO 8601 format. type: string format: date-time to: description: Timeslot start end time in ISO 8601 format. type: string format: date-time availableTables: description: List of available table ids type: array items: type: string totalCoversCount: description: Total covers count type: integer availableCoversCount: description: Available covers count type: integer proposedTables: description: List of proposed table ids for automatic table assignment type: array items: type: string lsk-reservation-servicePosCreateReservationDto: properties: guest: $ref: '#/components/schemas/lsk-reservation-serviceGuestDto' notes: example: More balloons! type: string description: Venue-entered notes specific to the reservation. specialOffer: example: Free dessert type: string description: Any special offer linked to the reservation. tags: example: - romantic meal - special occasion items: type: string type: array uniqueItems: true description: Tags linked to this reservation. partySize: description: The number of expected guests. example: 2 format: int32 type: integer tableNumbers: description: "The list of table numbers associated with this reservation.\nIf no valid table is provided, POS order is not created.\n" example: - '1' items: type: string type: array uniqueItems: true utcScheduledAt: description: The scheduled reservation time in ISO 8601 format. example: '2024-01-01T20:00:00.000Z' format: date-time type: string guestRequest: description: Notes added to the reservation by the guest. example: I would need two baby chairs. type: string expectedDuration: description: Expected duration of the meal. ISO 8601 format. $ref: '#/components/schemas/lsk-reservation-serviceDurationIso8601' required: - utcScheduledAt - partySize - guest type: object lsk-reservation-servicePosUpdateGuestDto: description: Guest information associated with the reservation. properties: email: description: The guest's email address. example: john.smith@email.com format: email anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.Email' - type: 'null' firstName: description: The guest's first name. example: John anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' - type: 'null' lastName: description: The guest's last name. example: Smith anyOf: - type: string x-field-extra-annotation: '@jakarta.validation.constraints.NotBlank' - type: 'null' phone: description: The guest's phone number. example: '+13453455555' format: phone anyOf: - type: string - type: 'null' foodAndDrinkNotes: example: Only milk and cookies! anyOf: - type: string - type: 'null' description: Any details about guest's food and drink preferences. language: example: en anyOf: - type: string - type: 'null' description: Guest's language; use [two-symbol ISO-639](https://www.loc.gov/standards/iso639-2/php/code_list.php) for best results on POS. allergens: description: Any allergens linked to this guest. anyOf: - type: array uniqueItems: true example: - almonds - egg items: type: string - type: 'null' dietaryRestrictions: description: Any dietary restrictions linked to this guest. anyOf: - type: array uniqueItems: true example: - no alcohol - vegan items: type: string - type: 'null' notes: example: Prefers window seating. type: string description: Any additional notes about the guest. lsk-reservation-serviceSameDayOnlineBookingsDto: type: object description: Controls same-day online reservation availability. required: - enabled - offsetDuration properties: enabled: type: boolean description: When true (default), same-day online reservations are allowed. When false, same-day online reservations are blocked. example: true offsetDuration: description: How far before the first shift the block takes effect. Defaults to PT1H (1 hour before shift start). $ref: '#/components/schemas/lsk-reservation-serviceDurationIso8601' lsk-reservation-serviceBackofficeArrivalPacingLimitDto: type: object description: Controls the maximum number of reservation arrivals allowed per 30-minute window. required: - enabled - maxGuestArrivals properties: enabled: type: boolean description: When true, arrival pacing is enforced. When false (default), no pacing limit is applied. example: true maxGuestArrivals: type: integer description: Maximum number of guest arrivals allowed per 30-minute window. Defaults to 20. Set to 0 to block all online reservations. minimum: 0 example: 100 lsk-reservation-serviceExternalBillingTrialData: type: object description: Data related to a trial period, only present if the addon is currently in a trial or recently ended one. properties: trialPastDueAt: type: string format: date-time description: The timestamp when the trial period became past due. Corresponds to addon.data.pastDueAt. Uses ISO 8601 format. trialSuspendAt: type: string format: date-time description: The timestamp when the addon will be suspended if the trial is not converted. Corresponds to addon.data.suspendedAt. Uses ISO 8601 format. lsk-reservation-serviceRestaurantId: description: Unique identifier of the restaurant in the system. example: 732398b3-ed71-4c4f-b8f0-d91f69fe422d type: string lsk-reservation-serviceOrigin: type: string description: Origin type of the reservation. enum: - BACKOFFICE - ONLINE - POS - WIDGET - GOOGLE_INTEGRATION lsk-reservation-serviceBackofficeNotificationsSettingsDto: type: object description: Notification settings. properties: onlineReservationSubscription: description: Settings for notifications sent when a new reservation is created. $ref: '#/components/schemas/lsk-reservation-serviceBackofficeOnlineReservationSubscriptionDto' preShiftReservationSummary: description: Settings for pre-shift reservation summary email notifications. $ref: '#/components/schemas/lsk-reservation-serviceBackofficePreShiftReservationSummaryDto' lsk-reservation-serviceBackofficePreShiftReservationSummaryDto: type: object description: Configuration for pre-shift reservation summary emails. properties: emails: description: List of email addresses to send pre-shift reservation summaries to. type: array x-field-extra-annotation: '@jakarta.validation.constraints.Size(max = 10)' items: format: email type: string maxLength: 254 enabled: description: Whether pre-shift reservation summary notifications are enabled. type: boolean lsk-reservation-serviceBackofficeOnlineReservationSubscriptionDto: type: object description: Configuration for online reservation subscription emails. properties: emails: description: List of email addresses to notify when a new reservation is created. type: array x-field-extra-annotation: '@jakarta.validation.constraints.Size(max = 10)' items: format: email type: string maxLength: 254 enabled: description: Whether new reservation notifications are enabled. type: boolean lsk-reservation-serviceBackofficeLightspeedGoogleIntegrationStatusDto: type: string description: "Lightspeed-side intent for the Google (Reserve with Google) integration.\nThis is the status the Backoffice user sets directly. It is independent of the Google Merchant API state.\n- `DISABLED`: integration turned off (default).\n- `ENABLED`: user requested the integration to be on. The actual Google-side state (PENDING/CONNECTED/FAILED)\n is determined by the Google Merchant API and is reflected in the merged response status.\n- `PAUSED`: integration was previously enabled but is currently paused (still kept in merchant feeds,\n excluded from availability feeds)." enum: - DISABLED - ENABLED - PAUSED lsk-reservation-serviceBackofficeGoogleIntegrationStatusDto: type: string description: "Merged status of the Google (Reserve with Google) integration. Combines the lightspeed-side intent with\nthe live Google Merchant API status. This is a read-only response value computed at request time.\n- `DISABLED`: lightspeed-side is DISABLED.\n- `PAUSED`: lightspeed-side is PAUSED.\n- `PENDING`: lightspeed-side is ENABLED; awaiting Google verification/activation.\n- `CONNECTED`: lightspeed-side is ENABLED and Google merchant mapping is confirmed.\n- `FAILED`: lightspeed-side is ENABLED but Google merchant mapping failed." enum: - DISABLED - PENDING - CONNECTED - FAILED - PAUSED lsk-reservation-serviceGoogleSlotTimeDto: type: object description: A time slot for a service at a merchant. Per Google's BatchAvailabilityLookup contract, only service_id and start_sec are required; duration_sec is optional and falls back to the restaurant's standardMealDuration when omitted. required: - service_id - start_sec properties: service_id: type: string description: The service ID (opaque, echoed back in the response). start_sec: type: integer format: int64 minimum: 0 description: Start time of the appointment slot in seconds of UTC time since Unix epoch. duration_sec: type: integer format: int64 minimum: 0 description: Duration of the appointment slot in seconds. Optional; when omitted, the restaurant's standardMealDuration is used. availability_tag: type: string description: Opaque tag from the availability feed (echoed back in the response). resource_ids: $ref: '#/components/schemas/lsk-reservation-serviceGoogleResourceIdsDto' confirmation_mode: allOf: - $ref: '#/components/schemas/lsk-reservation-serviceGoogleConfirmationModeDto' description: Confirmation mode for the slot (echoed back in the response). lsk-reservation-serviceGoogleSlotTimeAvailabilityDto: type: object description: Availability result for a single time slot. required: - slot_time - available properties: slot_time: $ref: '#/components/schemas/lsk-reservation-serviceGoogleSlotTimeDto' available: type: boolean description: Whether the slot is available for booking. lsk-reservation-serviceGoogleResourceIdsDto: type: object description: Resource identifiers for a slot. properties: staff_id: type: string description: Staff member ID. room_id: type: string description: Room ID. party_size: type: integer minimum: 1 description: Party size for the reservation. lsk-reservation-serviceGoogleSlotDto: type: object description: A bookable time slot at a merchant. Used by booking endpoints (CreateBooking, UpdateBooking) where the merchant is identified inline rather than as a top-level field. required: - merchant_id - service_id - start_sec - duration_sec properties: merchant_id: type: string description: The merchant (restaurant) ID owning the slot. service_id: type: string description: The service ID. Must be the literal string "reservation"; other values are rejected with 400. start_sec: type: integer format: int64 minimum: 0 description: Start time of the appointment slot in seconds of UTC time since Unix epoch. duration_sec: type: integer format: int64 minimum: 0 description: Duration of the appointment slot in seconds. resources: $ref: '#/components/schemas/lsk-reservation-serviceGoogleResourceIdsDto' confirmation_mode: allOf: - $ref: '#/components/schemas/lsk-reservation-serviceGoogleConfirmationModeDto' description: Confirmation mode for the slot. lsk-reservation-serviceGoogleConfirmationModeDto: type: string description: How a booking is confirmed for a given slot. enum: - CONFIRMATION_MODE_UNSPECIFIED - CONFIRMATION_MODE_SYNCHRONOUS - CONFIRMATION_MODE_ASYNCHRONOUS lsk-reservation-serviceGoogleUserInformationDto: type: object description: Personal information about the user making the booking. required: - user_id - given_name - family_name - telephone - email properties: user_id: type: string description: Stable identifier for the user across bookings. given_name: type: string minLength: 1 description: User's given (first) name. family_name: type: string minLength: 1 description: User's family (last) name. telephone: type: string minLength: 1 description: User's telephone number in E.164 format. email: type: string description: User's email address. lsk-reservation-serviceGoogleBookingStatusDto: type: string description: Current status of a booking. enum: - BOOKING_STATUS_UNSPECIFIED - CONFIRMED - PENDING_MERCHANT_CONFIRMATION - CANCELED - NO_SHOW - NO_SHOW_PENALIZED - FAILED - DECLINED_BY_MERCHANT lsk-reservation-serviceGoogleBookingFailureCauseDto: type: string description: Reason a booking attempt failed, mirroring Google's BookingFailure.Cause enum. Only the dining-relevant subset is produced by this service; payment, lease, and credit-card causes are accepted in the schema for completeness but are never returned. DEAL_UNAVAILABLE is deprecated by Google in favor of OFFER_UNAVAILABLE. enum: - CAUSE_UNSPECIFIED - SLOT_UNAVAILABLE - SLOT_ALREADY_BOOKED_BY_USER - LEASE_EXPIRED - OUTSIDE_CANCELLATION_WINDOW - PAYMENT_ERROR_CARD_TYPE_REJECTED - PAYMENT_ERROR_CARD_DECLINED - PAYMENT_OPTION_NOT_VALID - PAYMENT_ERROR - USER_CANNOT_USE_PAYMENT_OPTION - BOOKING_ALREADY_CANCELLED - BOOKING_NOT_CANCELLABLE - OVERLAPPING_RESERVATION - USER_OVER_BOOKING_LIMIT - DEAL_UNAVAILABLE - PAYMENT_REQUIRES_3DS1 - OFFER_UNAVAILABLE - UNSUPPORTED_NAME - UNSUPPORTED_PHONE_NUMBER - BANNED_USER lsk-reservation-serviceGoogleBookingFailureDto: type: object description: Details of a booking failure. Returned alongside HTTP 200 when business logic prevents the booking. required: - cause properties: cause: $ref: '#/components/schemas/lsk-reservation-serviceGoogleBookingFailureCauseDto' description: type: string description: Optional human-readable explanation of the failure. lsk-reservation-serviceGoogleBookingDto: type: object description: A successfully created or updated booking. required: - booking_id properties: booking_id: type: string description: Opaque booking identifier returned to Google. Encodes the restaurant ID and reservation ID so subsequent UpdateBooking calls can resolve the reservation without additional indexes. slot: $ref: '#/components/schemas/lsk-reservation-serviceGoogleSlotDto' user_information: $ref: '#/components/schemas/lsk-reservation-serviceGoogleUserInformationDto' status: $ref: '#/components/schemas/lsk-reservation-serviceGoogleBookingStatusDto' lsk-reservation-serviceGoogleUpdateBookingDto: type: object description: The booking to update. The booking_id is always required. For cancellation, set status to CANCELED. For modification, provide a slot with the changed fields (start_sec + duration_sec for reschedule, or resources.party_size for party size change). required: - booking_id properties: booking_id: type: string description: Opaque booking identifier previously returned by CreateBooking. Encodes the restaurant ID and reservation ID. status: $ref: '#/components/schemas/lsk-reservation-serviceGoogleBookingStatusDto' slot: $ref: '#/components/schemas/lsk-reservation-serviceGoogleUpdateSlotDto' lsk-reservation-serviceGoogleUpdateSlotDto: type: object description: Updated slot fields for a booking modification. Google sends either start_sec + duration_sec (reschedule) or resources.party_size (party size change), not both. Omitted fields remain unchanged. properties: start_sec: type: integer format: int64 description: Start time of the updated appointment slot in seconds of UTC time since Unix epoch. duration_sec: type: integer format: int64 description: Duration of the updated appointment slot in seconds. resources: $ref: '#/components/schemas/lsk-reservation-serviceGoogleResourceIdsDto' nightswatchClientDetailsDto: properties: accessTokenValidity: format: int32 type: integer additionalInformation: additionalProperties: type: object type: object authorities: items: type: string type: array uniqueItems: true authorizedGrantTypes: items: enum: - authorization_code - refresh_token - password - client_credentials - implicit type: string type: array uniqueItems: true autoApprove: type: boolean autoApproveScopes: items: type: string type: array uniqueItems: true clientId: maxLength: 256 minLength: 2 type: string clientSecret: maxLength: 256 minLength: 2 type: string displayName: maxLength: 256 minLength: 0 type: string refreshTokenValidity: format: int32 type: integer scopes: items: type: string type: array uniqueItems: true webServerRedirectUris: items: type: string type: array uniqueItems: true required: - clientId - clientSecret type: object nightswatchSortObject: type: object nightswatchAccessTokenDetailsDto: properties: clientId: type: string scope: items: type: string type: array uniqueItems: true username: type: string type: object nightswatch-oauth2ClientTokenIntrospectionBase: description: Base fields that are guaranteed in all the token introspection responses. type: object properties: active: type: boolean description: The token is only considered valid if this field is true. example: true client_id: example: example-api-client description: unique name to reference the client identity maxLength: 256 minLength: 2 type: string scope: example: - items - financial-api description: the list of scopes the token is valid for items: type: string type: array exp: type: integer format: int64 description: The expiration time of the token in seconds since the Unix Epoch. example: 1701794198 required: - active - client_id - scope nightswatch-oauth2ClientTokenIntrospectionBaseUser: type: object properties: user_name: type: string format: email description: "The username of the user associated with this token.\nIt's usually the email address for user/staff.\n" example: user@example.com lspd.user_id: type: integer format: int64 description: The user id (staff id) of the user associated with this token. example: 123456 authorities: items: type: string type: array description: The authorities granted to the OAuth client and/or the user. example: - ROLE_GLOBAL_ADMIN - ROLE_BO_BILLING_ADMIN required: - user_name - lspd.user_id - authorities nightswatch-oauth2ClientTokenIntrospectionBaseDevice: type: object properties: user_name: type: string description: "The username of the user associated with this token.\nFor devices, it will look like \"#DEVICE_ID#RANDOM_USERNAME\".\n" example: '#2#1NIXK1P6' authorities: items: type: string type: array description: "The authorities granted to the OAuth client.\nIt will have ROLE_DEVICE in the list for devices (usually no other entry in that list).\n" example: - ROLE_DEVICE required: - user_name - authorities nightswatch-oauth2ClientTokenIntrospectionOpaqueDevice: title: Opaque Device Token description: "An opaque token that was issued (and trusted by) Nightswatch for a device.\nThis is usually the case for tokens issued to POS devices for the web extension or direct API calls from the\nPOS device itself.\n" allOf: - $ref: '#/components/schemas/nightswatch-oauth2ClientTokenIntrospectionBase' - $ref: '#/components/schemas/nightswatch-oauth2ClientTokenIntrospectionBaseDevice' nightswatch-oauth2ClientTokenIntrospectionOpaqueUser: title: Opaque User Token description: "An opaque token that was issued (and trusted by) Nightswatch to a user (staff).\nThis is usually the case for tokens issued to users that allowed a third-party partner or first-party API\naccess to their account/business location.\n" allOf: - $ref: '#/components/schemas/nightswatch-oauth2ClientTokenIntrospectionBase' - $ref: '#/components/schemas/nightswatch-oauth2ClientTokenIntrospectionBaseUser' nightswatch-oauth2ClientTokenIntrospectionJwtUser: title: JWT User Token description: "A JWT token that was issued by AuthLS and trusted by Nightswatch to a user (staff).\nThis is usually the case for tokens issued to users that logged in through the backoffice.\n" allOf: - $ref: '#/components/schemas/nightswatch-oauth2ClientTokenIntrospectionBase' - $ref: '#/components/schemas/nightswatch-oauth2ClientTokenIntrospectionBaseUser' - type: object properties: sub: type: string description: "The subject of the token. Only available on JWT tokens. Should not be relied upon.\nInstead, use the `user_name` property which is guaranteed to be present and is the email address\nthat was extracted from this representation.\n" example: prefix|user@example.com azp: type: string description: "The authorized party of the token. Only available on JWT tokens. Should not be relied upon.\nIt will looks like a big hexadecimal ID.\n" example: deadbeef iss: type: string description: "The issuer of the token. Only available on JWT tokens. Should not be relied upon.\nIt will be the URL of the AuthLS instance that issued the token and will be trusted by Nightswatch\ndepending on the environment it's deployed in.\n" example: https://accounts.stg.lightspeed.app/ iat: type: integer format: int64 description: "The issued at time of the token. Only available on JWT tokens. Should not be relied upon.\nRather, use the `exp` property which is guaranteed to be present and is the expiration time of the\ntoken.\n" example: 1701794198 required: - sub - azp - iss - iat nightswatch-oauth2UserInfoAttributesDevice: type: object title: Device Attributes description: The attributes of the device associated with this token. properties: remoteAddress: type: string description: The IP address of the user associated with this token. example: 127.0.0.1 sessionId: type: string nullable: true description: The session id of the user associated with this token. Usually null. example: nightswatch-oauth2UserInfoAttributesUser: type: object title: User Attributes description: The attributes of the user/staff associated with this token. properties: staff: type: object description: "The staff attributes of the user associated with this token.\nAs pulled from pos-backend." properties: roles: items: type: string type: array description: "The roles of the user associated with this token.\nAs pulled from pos-backend, without expanding the role hierarchy." example: - ROLE_GLOBAL_ADMIN - ROLE_BO_BILLING_ADMIN emailAddress: type: string description: The email address of the user associated with this token. firstName: type: string description: The first name of the user associated with this token. lastName: type: string description: The last name of the user associated with this token. userId: type: integer format: int64 description: The user id (staff id) of the user associated with this token. required: - roles - emailAddress - firstName - lastName - userId passwordToken: type: string nullable: true description: Usually null. Should not be used. deprecated: true example: enabled: type: boolean description: Should be true. Should not be used. deprecated: true example: true password: type: string nullable: true description: Usually null. Should not be used. deprecated: true example: username: type: string description: "The username of the user associated with this token.\nIt's usually the email address for user/staff.\n" example: '' accountNonExpired: type: boolean description: Should be true. Should not be used. deprecated: true accountNonLocked: type: boolean description: Should be true. Should not be used. deprecated: true credentialsNonExpired: type: boolean description: Should be true. Should not be used. deprecated: true required: - staff open-table-integrationAccountExternalReferenceDto: properties: prefix: type: string reference: type: string type: object open-table-integrationCheckId: properties: check_ids: items: type: string type: array type: object open-table-integrationDeliveryInformationDto: properties: collectionCode: type: string deliveredTime: format: date-time type: string deliveryDueTime: format: date-time type: string deliveryInfo: type: string deliveryMode: enum: - COLLECTION - LOCAL - REMOTE type: string deliveryOrigin: type: string deliveryState: enum: - RECEIVED - IN_PRODUCTION - IN_DELIVERY - DELIVERED type: string deliveryTime: format: date-time type: string deviceName: type: string enabled: type: boolean id: format: int64 type: integer prepaid: type: boolean productionDueTime: format: date-time type: string type: object open-table-integrationDeviceEventDto: properties: amount: format: double type: number clientId: format: int64 type: integer deviceId: format: int64 type: integer deviceName: type: string eventId: format: int32 type: integer eventType: type: string eventTypeCode: type: string id: format: int64 type: integer originUser: type: string period: format: int32 type: integer text: type: string timestamp: format: date-time type: string uuid: type: string type: object open-table-integrationDiscountDto: properties: code: type: string description: type: string id: format: int64 type: integer lossDiscount: type: boolean manualDiscount: type: boolean rate: type: number taxFree: type: boolean type: object open-table-integrationExtendedAccountSnapshotDto: properties: accountNumber: type: string accountObjectId: format: int64 type: integer accountProfileCode: type: string accountProfileId: type: string accountProfileName: type: string businessLocationId: format: int64 type: integer cancelled: type: boolean closeDate: format: date-time type: string consumerRecord: $ref: '#/components/schemas/open-table-integrationRtConsumerRecordDto' coverCount: type: number currencyCode: type: string currentInsertionPhase: format: int32 type: integer currentProductionPhase: format: int32 type: integer deliveryInformation: $ref: '#/components/schemas/open-table-integrationDeliveryInformationDto' deviceId: format: int64 type: integer deviceIp: type: string deviceName: type: string discounts: items: $ref: '#/components/schemas/open-table-integrationDiscountDto' type: array externalReferences: items: $ref: '#/components/schemas/open-table-integrationAccountExternalReferenceDto' type: array gratuityAmount: format: double type: number id: format: int64 type: integer latestExternalReferences: items: $ref: '#/components/schemas/open-table-integrationAccountExternalReferenceDto' type: array name: type: string offset: format: int32 type: integer openDate: format: date-time type: string orderMode: type: string originAccountId: format: int64 type: integer originAccountNumber: type: string paidAmount: type: number paymentInProgress: type: boolean paymentLines: items: $ref: '#/components/schemas/open-table-integrationPaymentLineSnapshotDto' type: array preTaxAmount: type: number receiptNumber: type: string serviceCharge: type: number staffEmail: type: string staffId: format: int64 type: integer staffName: type: string status: type: string tableName: type: string taxAmount: type: number totalAmount: type: number totalDiscount: type: number transactionLines: items: $ref: '#/components/schemas/open-table-integrationTransactionLineSnapshotDto' type: array type: type: string updateDate: format: date-time type: string uuid: type: string type: object open-table-integrationModifierDto: properties: name: type: string quantity: format: int64 type: integer type: object open-table-integrationPaymentLineSnapshotDto: properties: accountId: format: int64 type: integer active: type: boolean amount: type: number currencyCode: type: string date: format: date-time type: string deviceId: format: int64 type: integer deviceIp: type: string deviceName: type: string externalReference: type: string gratuityAmount: format: double type: number id: format: int64 type: integer paymentMethod: type: string paymentMethodDescription: type: string staffEmail: type: string staffId: format: int64 type: integer staffName: type: string type: object open-table-integrationReferrer: properties: company: type: string first_name: type: string id: type: string last_name: type: string phone: type: string type: object open-table-integrationRtConsumerContactDto: properties: addressLine1: type: string addressLine2: type: string city: type: string companyName: type: string emailReceipts: type: boolean firstName: type: string fullName: type: string id: format: int64 type: integer lastName: type: string phoneNumber1: type: string phoneNumber2: type: string salutation: type: string taxIdentifier: type: string zipCode: type: string type: object open-table-integrationRtConsumerDto: properties: contactInformation: $ref: '#/components/schemas/open-table-integrationRtConsumerContactDto' creationDate: format: date-time type: string emailAddress: type: string firstSeenByBusinessId: format: int64 type: integer gratuityAmount: format: double type: number id: format: int64 type: integer language: type: string recordId: format: int64 type: integer ticketCount: format: double type: number totalAmount: format: double type: number type: object open-table-integrationRtConsumerNotes: properties: creationDate: format: date-time type: string keyName: type: string value: type: string type: object open-table-integrationRtConsumerRecordDto: properties: consumer: $ref: '#/components/schemas/open-table-integrationRtConsumerDto' consumerNotes: items: $ref: '#/components/schemas/open-table-integrationRtConsumerNotes' type: array consumerRecordUUID: format: uuid type: string contactInformation: $ref: '#/components/schemas/open-table-integrationRtConsumerContactDto' externalReferences: items: $ref: '#/components/schemas/open-table-integrationRtExternalConsumerRecordDto' type: array uniqueItems: true id: format: int64 type: integer type: object open-table-integrationRtExternalConsumerRecordDto: properties: key: type: string reference: type: string type: object open-table-integrationRtTax: properties: code: type: string description: type: string rate: format: double type: number taxIncluded: type: boolean type: object open-table-integrationTransactionLineSnapshotDto: properties: accountId: format: int64 type: integer accountingGroupId: type: string accountingGroupName: type: string active: type: boolean activeTax: $ref: '#/components/schemas/open-table-integrationRtTax' amount: type: number currencyCode: type: string date: format: date-time type: string deviceId: format: int64 type: integer deviceIp: type: string deviceName: type: string discounts: items: $ref: '#/components/schemas/open-table-integrationDiscountDto' type: array id: format: int64 type: integer itemDescription: type: string itemId: format: int64 type: integer itemSku: type: string modifiers: items: $ref: '#/components/schemas/open-table-integrationModifierDto' type: array nameOverride: type: string parentLineId: format: int64 type: integer quantity: type: number staffEmail: type: string staffId: format: int64 type: integer staffName: type: string subLines: items: $ref: '#/components/schemas/open-table-integrationTransactionLineSnapshotDto' type: array tags: type: string unitAmount: type: number type: object order-integrationStoreStatusEnum: type: string enum: - PAUSED - SSU_IN_PROGRESS - ACTIVE - PENDING - ACCESS_RESTRICTED order-integrationModifier: description: The modifiers of the item for this sale line properties: name: type: string quantity: format: int32 type: integer type: object order-integrationOrderErrorsDto: description: Order errors properties: salesRestrictions: $ref: '#/components/schemas/order-integrationSalesRestrictionsErrorDto' type: object order-integrationAccountLineItem: description: Collection of check items properties: active: deprecated: true type: boolean amountLessTax: description: The total price of the item without tax type: number amountWithTax: description: The total price of the item including tax type: number discountedAmount: description: The amount the item was discounted type: number id: description: The unique ID assigned to the sale line format: int64 type: integer itemName: description: The name given to the item type: string itemSku: description: The SKU assigned to the item type: string modifiers: description: The modifiers of the item for this sale line items: $ref: '#/components/schemas/order-integrationModifier' type: array parentId: format: int64 type: integer writeOnly: true quantity: description: The quantity of the item for this sale line format: double type: number subLineItems: description: Collection of sub-lines items: $ref: '#/components/schemas/order-integrationAccountLineItem' type: array taxIncluded: type: boolean timeOfTransactionUtc: description: Date/Time in UTC of this transaction format: date-time type: string unitAmount: description: The unit amount for a single item type: number uuid: description: The unique UUID assigned to the sale line type: string type: object order-integrationAccountPaymentLine: description: Collection of check items properties: accountCancelled: type: boolean writeOnly: true active: description: whether this payment line is active or not (i.e. has been cancelled) type: boolean amountPaid: description: Amount paid for this payment line type: number externalReference: description: Payment external reference type: string gratuityAmount: description: Tip payment amount type: number paymentDate: description: Date/Time in UTC of this payment format: date-time type: string paymentMethodCode: description: Payment method code for this payment line type: string paymentMethodDescription: description: Payment method for this payment line type: string type: object order-integrationAccountSnapshot: description: Related account (if the webhook is configured to provide it) properties: clientCount: description: The number of guests at the table format: int32 type: integer closeDate: description: Date this account was closed in UTC format: date-time type: string currentAmount: description: The current total amount on the check type: number deviceId: format: int64 type: integer id: type: string writeOnly: true identifier: type: string writeOnly: true ikaccountId: type: string name: description: The check name type: string number: format: int32 type: integer writeOnly: true openDate: description: Date this account was opened in UTC format: date-time type: string paidAmount: description: The total of all payments on the check type: number paymentEntries: description: Collection of check items items: $ref: '#/components/schemas/order-integrationAccountPaymentLine' type: array posId: format: int64 type: integer salesEntries: description: Collection of check items items: $ref: '#/components/schemas/order-integrationAccountLineItem' type: array serviceCharge: description: The service charge of the check type: number staffId: description: The unique ID of the staff member assigned to the check format: int64 type: integer staffName: description: The name of the staff member assigned to the check type: string tableNumber: format: int32 type: integer uuid: description: Account uuid type: string type: object order-integrationSalesRestrictionsErrorDto: properties: skus: items: type: string type: array uniqueItems: true type: object order-integrationOpeningHourDto: type: object required: - dayOfWeek - openingTime - closingTime properties: dayOfWeek: type: string enum: - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Sunday openingTime: type: string format: time closingTime: type: string format: time order-integrationApiErrorField: type: object required: - name - error properties: name: type: string description: Field name error: type: string description: Field error message order-payVenueOnlineOrderingApiConfigurationDto: type: object properties: enabled: type: boolean nullable: false example: true description: A flag indicating if a business location has the Online Ordering API enabled orderProfileId: type: integer format: int64 example: 12345 description: Order Profile id staffId: type: integer format: int64 example: 98765 description: Staff id order-payVenuePosStatusDto: type: object properties: salesPeriod: type: string enum: - CLOSED - OPENED example: OPENED description: Sales period status of the location. nullable: false acceptingOnlineOrders: type: boolean example: true description: A flag indicating if a POS in the location has the option `Online Orders enabled` in `Control center` nullable: false availableDevices: type: boolean example: true description: A flag indicating if the location has devices running for accepting and processing online orders nullable: false order-payBackofficeOrderDto: type: object properties: receivedTime: description: Date and time in UTC when the order was received. example: '2025-05-06T16:26:29Z' format: date-time type: string nullable: false orderProfileId: description: Order profile (tag) ID of the order that could be used to identify the creator. example: 218931662950646 type: integer format: int64 thirdPartyReference: description: External ID of the order. example: TASK:OO-218931662946306-5776dc3b-a6ec-7db8-3b5d-4bd4d2d2dc88 type: string nullable: false status: description: Current state of the order. nullable: false enum: - PENDING - ORDER_CREATED - READY_FOR_PICKUP - IN_DELIVERY - DELIVERED - UNSUCCESSFUL - CANCELLED - ORDER_UPDATED - ORDER_PAID deliveryMode: description: Order type enum: - LOCAL - COLLECTION - REMOTE nullable: false onlinePaymentAmount: description: Third party payment received with the order in cents (e.g. 150 = €1.50) excluding tips. type: integer format: int32 example: 150 onlinePaymentCorrectedDifference: description: Corrected difference of online payment comparing to order's total due in cents (e.g. 1 for €0.01). Positive if payment was higher than order's amount due. example: 1 type: integer format: int32 onlinePaymentTipAmount: description: Tip in a third party payment in cents (e.g. 1000 for €10.00). example: 1000 type: integer format: int32 consumerRecordId: description: Consumer Record ID of the order type: integer format: int64 example: 44955 receiptId: description: ID of a receipt for the order example: R944366.54931 type: string accountFiscalId: description: Fiscal ID of the created account example: A944366.42797 type: string errorMessage: description: Error description if any example: the payment amount is greater than the amount due type: string errorMetadata: description: Error metadata if any type: string taskUuid: description: UUID of pos-task of the order example: bae98cd2-e4aa-4547-9a07-3cc4e2b50c09 type: string orli-authenticationSessionDto: required: - sessionId - merchantId - merchantCode - shared - createdDate type: object properties: merchantId: type: string sessionId: type: string shared: type: boolean default: false merchantCode: type: string posCode: type: string deliveryTimeMinutes: type: integer format: int32 deliveryZoneId: type: string minimumCartValueCents: type: integer format: int64 deliveryFeeCents: type: integer format: int64 deliveryAddress: type: string createdDate: type: string format: date-time orli-authenticationRedirectToken: type: object properties: token: type: string tokenName: type: string orli-configurationFeatureName: type: string enum: - ON_PREMISE - OFF_PREMISE - FULL_LEGACY x-enum-varnames: - ON_PREMISE - OFF_PREMISE - FULL_LEGACY orli-configurationFeatureStatus: type: string enum: - ON - OFF - PAST_DUE - SUSPENDED x-enum-varnames: - ON - OFF - PAST_DUE - SUSPENDED orli-configurationAddOnKey: type: string enum: - orderanywhere.full - orderanywhere.table - orderanywhere.offpremise x-enum-varnames: - ORDER_ANYWHERE_FULL - ORDER_ANYWHERE_TABLE - ORDER_ANYWHERE_OFF_PREMISE orli-configurationAddOnStatus: type: string enum: - On - Off - PastDue - Suspended x-enum-varnames: - ON - OFF - PAST_DUE - SUSPENDED orli-configurationAddOnDto: type: object required: - key - status properties: key: $ref: '#/components/schemas/orli-configurationAddOnKey' status: $ref: '#/components/schemas/orli-configurationAddOnStatus' trialData: $ref: '#/components/schemas/orli-configurationAddOnTrialDataDto' orli-configurationGoogleAddressDto: type: object properties: addressLine1: type: string addressLine2: type: string city: type: string state: type: string zipCode: type: string country: type: string orli-configurationSortDirection: enum: - ASC - DESC default: ASC type: string orli-configurationDeliveryItem: type: object properties: name: type: string quantity: type: integer format: int32 size: type: string orli-configurationPosProviderDto: enum: - K_SERIES - L_SERIES - O_SERIES - G_SERIES type: string orli-configurationCheckMerchantStatus: type: string enum: - SUCCESS - NOT_FOUND - DISABLED orli-configurationActivationOptionsDto: type: object properties: isTrial: type: boolean trialSuspendDate: format: date-time type: string trialPastDueDate: format: date-time type: string orli-configurationCommonMerchantDetailsDto: type: object required: - name - country - currency - timezone properties: dtoType: type: string merchantId: type: string name: type: string firstName: type: string maxLength: 255 lastName: type: string maxLength: 255 address1: maxLength: 255 type: string address2: maxLength: 255 type: string city: type: string maxLength: 127 zip: type: string maxLength: 64 state: type: string maxLength: 11 country: type: string maxLength: 2 defaultLanguage: maxLength: 3 type: string currency: maxLength: 4 minLength: 3 type: string timezone: type: string phone: maxLength: 15 type: string email: type: string format: email heroImageUrl: type: string tinyHeroImage: format: byte type: string logoDarkImageUrl: type: string logoLightImageUrl: type: string demoAccount: type: boolean default: false merchantContactMethodsList: additionalProperties: $ref: '#/components/schemas/orli-configurationMerchantContactDto' type: object heroImageOffPremises: type: boolean default: true heroImageOnPremises: type: boolean default: false heroImageMenuBrowsing: type: boolean default: false openingHours: $ref: '#/components/schemas/orli-configurationOperatingHoursDto' businessType: $ref: '#/components/schemas/orli-configurationMerchantBusinessType' orli-configurationMerchantStatusEnum: enum: - EMPTY - TRIAL - PRODUCTION type: string orli-configurationTipType: enum: - TEN - TWELVE_POINT_FIVE - FIFTEEN - TWENTY - TWENTY_FIVE - CUSTOM type: string orli-configurationTipDto: properties: id: $ref: '#/components/schemas/orli-configurationTipType' value: format: double type: number description: type: string type: object orli-configurationMerchantBusinessType: default: RESTAURANT enum: - RESTAURANT - CAFE - HOTEL - FINE_DINING - FAST_CASUAL_OR_QSR - BAR_OR_PUB - CATERING - COFFEE_SHOP - BAKERY - DINER - GROCERY - FESTIVAL - PUB - PIZZERIA - POP_UP - OTHER type: string orli-configurationMerchantContactType: enum: - EMAIL - WEB - PHONE - TWITTER - INSTAGRAM - FACEBOOK - TRIPADVISOR - GOOGLE_MY_BUSINESS - TIKTOK - WEBSITE - YELP - YOUTUBE - SNAPCHAT - PINTEREST type: string orli-configurationGoogleMenuInfoDto: type: object properties: items: type: array items: $ref: '#/components/schemas/orli-configurationGoogleMenuItemDto' sections: type: array items: $ref: '#/components/schemas/orli-configurationGoogleMenuSectionDto' menu: $ref: '#/components/schemas/orli-configurationGoogleMenuDto' orli-configurationGoogleBusinessProfileDto: type: object properties: googleAccountId: type: string googleLocationId: type: string placeId: type: string reviewUrl: type: string tradeName: type: string address: $ref: '#/components/schemas/orli-configurationGoogleAddressDto' phoneNumber: type: string mapsUrl: type: string createdAt: type: string format: instant lastSyncedAt: type: string format: instant offlineAccess: type: boolean orli-configurationGoogleMenuDto: type: object properties: menuId: type: string merchantId: type: string displayName: $ref: '#/components/schemas/orli-configurationTextFieldDto' menuItemIds: type: array items: type: string menuSectionIds: type: array items: type: string orli-configurationGoogleMenuItemDto: type: object properties: menuItemId: type: string displayName: $ref: '#/components/schemas/orli-configurationTextFieldDto' displayNameTranslations: type: array items: $ref: '#/components/schemas/orli-configurationTextFieldDto' offerSet: $ref: '#/components/schemas/orli-configurationOfferSetDto' orli-configurationOfferSetDto: type: object properties: offers: type: array items: $ref: '#/components/schemas/orli-configurationOfferDto' orli-configurationOfferDto: type: object properties: price: $ref: '#/components/schemas/orli-configurationFixedAmountDto' orli-configurationGoogleMenuSectionDto: type: object properties: menuSectionId: type: string displayName: $ref: '#/components/schemas/orli-configurationTextFieldDto' menuItemIds: type: array items: type: string orli-configurationTextFieldDto: type: object properties: text: type: string languageCode: type: string orli-configurationServiceType: type: string enum: - DELIVERY - TAKEOUT orli-configurationServiceHoursDto: type: object properties: asapHours: type: array items: $ref: '#/components/schemas/orli-configurationAsapTimeWindowDto' advanceHours: type: array items: $ref: '#/components/schemas/orli-configurationAdvanceTimeWindowDto' orderableTime: type: array items: $ref: '#/components/schemas/orli-configurationTimeOfDayWindowDto' orli-configurationAsapTimeWindowDto: type: object properties: timeWindows: $ref: '#/components/schemas/orli-configurationTimeOfDayWindowDto' orli-configurationAdvanceTimeWindowDto: type: object properties: timeWindows: $ref: '#/components/schemas/orli-configurationTimeOfDayWindowDto' advanceBookingInterval: $ref: '#/components/schemas/orli-configurationDurationIntervalDto' orli-configurationTimeOfDayWindowDto: type: object properties: timeWindows: $ref: '#/components/schemas/orli-configurationTimeOfDayRangeDto' dayOfWeek: type: array items: type: string format: day orli-configurationTimeOfDayRangeDto: type: object properties: openTime: type: string format: local-time closeTime: type: string format: local-time orli-configurationDurationIntervalDto: type: object properties: min: type: string format: duration max: type: string format: duration orli-configurationFixedAmountDto: type: object properties: currencyCode: type: string units: type: integer format: int32 nanos: type: integer format: int32 orli-configurationDeliveryAreaDto: type: object properties: loops: type: array items: $ref: '#/components/schemas/orli-configurationLoopDto' circles: type: array items: $ref: '#/components/schemas/orli-configurationCircleDto' orli-configurationLoopDto: type: object properties: points: type: array items: $ref: '#/components/schemas/orli-configurationGeoPointDto' deliveryFee: $ref: '#/components/schemas/orli-configurationDeliveryFeeDto' orli-configurationCircleDto: type: object properties: center: $ref: '#/components/schemas/orli-configurationGeoPointDto' radius: format: int32 type: integer deliveryFee: $ref: '#/components/schemas/orli-configurationDeliveryFeeDto' orli-configurationGeoPointDto: type: object properties: lat: type: number format: double lon: type: number format: double orli-configurationDeliveryFeeDto: type: object properties: fixedAmount: $ref: '#/components/schemas/orli-configurationFixedAmountDto' orli-configurationDeliveryPartnerName: type: string enum: - UBER orli-configurationDeliveryZoneTypeEnum: type: string enum: - RADIUS - SHAPE - UNKNOWN orli-configurationDeliveryType: enum: - MERCHANT_DELIVERY - PARTNER_DELIVERY type: string orli-configurationLocationDto: type: object required: - latitude - longitude properties: latitude: type: number format: double longitude: type: number format: double orli-configurationCustomerContactFieldDto: properties: contactType: enum: - EMAIL - FIRST_NAME - LAST_NAME - PHONE type: string isRequired: type: boolean default: false isVisible: type: boolean default: false type: object orli-configurationDisplayPreference: properties: key: type: string visible: type: boolean type: object orli-configurationCreateMerchantCodeDto: required: - offPremises - delivery - ordersEnabled - orderAheadEnabled - paymentEnabled - killSwitchEnabled - paymentMandatory - tipsEnabled - noteEnabled - noteMandatory - cutleryEnabled - curbsideEnabled - happyHourEnabled - menuId properties: hours: items: $ref: '#/components/schemas/orli-configurationMenuHourShiftDto' type: array uniqueItems: true preparationTime: type: integer format: int32 friendlyName: type: string menuId: type: string inPersonPaymentMethods: items: type: string type: array default: [] uniqueItems: true merchantTips: items: $ref: '#/components/schemas/orli-configurationMerchantTipDto' type: array default: [] curbsideMessage: type: string customerContactFields: type: array default: [] items: $ref: '#/components/schemas/orli-configurationCustomerContactFieldDto' delivery: type: boolean default: false location: $ref: '#/components/schemas/orli-configurationLocationDto' noteName: type: string noteDescription: type: string notifyMenuChangeBeforeMinutes: type: integer format: int32 minimum: 0 maximum: 255 description: Number of minutes to notify before menu changes. ordersEnabled: type: boolean default: false orderAheadEnabled: type: boolean default: false offPremises: type: boolean default: false paymentEnabled: type: boolean default: false paymentMandatory: type: boolean default: false nbDaysAhead: format: int32 type: integer default: 0 tipsEnabled: type: boolean default: false killSwitchEnabled: type: boolean default: false noteEnabled: type: boolean default: false noteMandatory: type: boolean default: false maxOrdersPerTimeSlot: type: integer format: int32 cutleryEnabled: type: boolean default: false curbsideEnabled: type: boolean default: false profileHoursEnabled: type: boolean default: false timeslotWindowMinutes: type: integer format: int32 happyHourEnabled: type: boolean default: false orli-configurationUpdateMerchantCodeDto: allOf: - $ref: '#/components/schemas/orli-configurationCreateMerchantCodeDto' orli-configurationMerchantConfig: required: - merchantId - timezone - flags - pos - payment properties: merchantId: type: string timezone: type: string currency: type: string heroImageUrl: type: string country: type: string defaultLanguage: type: string businessName: type: string pos: $ref: '#/components/schemas/orli-configurationPosServiceConfig' payment: $ref: '#/components/schemas/orli-configurationPaymentServiceConfig' location: $ref: '#/components/schemas/orli-configurationLocationDto' merchantTips: items: $ref: '#/components/schemas/orli-configurationMerchantTipDto' type: array flags: $ref: '#/components/schemas/orli-configurationMerchantFlags' curbsideMessage: type: string noteName: type: string noteDescription: type: string customerContactFields: items: $ref: '#/components/schemas/orli-configurationCustomerContactFieldDto' type: array notifyMenuChangeBeforeMinutes: type: integer format: int32 minimum: 0 maximum: 255 description: Number of minutes to notify before menu changes. googlePlaceId: type: string type: object orli-configurationMerchantContactDto: required: - type - value properties: isSocial: type: boolean preferred: type: boolean type: $ref: '#/components/schemas/orli-configurationMerchantContactType' value: minLength: 1 pattern: ^.*\S.*$ type: string type: object orli-configurationMerchantDetailsDto: allOf: - $ref: '#/components/schemas/orli-configurationUpdateMerchantDetailsDto' - type: object required: - enabled - pos properties: pos: $ref: '#/components/schemas/orli-configurationPosServiceConfig' enabled: type: boolean default: false status: $ref: '#/components/schemas/orli-configurationMerchantStatusEnum' externalRefId: type: string activationOptions: $ref: '#/components/schemas/orli-configurationActivationOptionsDto' features: type: array uniqueItems: true items: $ref: '#/components/schemas/orli-configurationMerchantFeatureDto' createdDate: format: instant type: string readOnly: true orli-configurationMerchantFeatureDto: type: object properties: name: $ref: '#/components/schemas/orli-configurationFeatureName' status: $ref: '#/components/schemas/orli-configurationFeatureStatus' isTrial: type: boolean trialSuspendDate: type: string format: date-time trialPastDueDate: type: string format: date-time orli-configurationMerchantFlags: type: object properties: ordersEnabled: type: boolean orderAheadEnabled: type: boolean delivery: type: boolean partnerDelivery: type: boolean nbDaysAhead: format: int32 type: integer paymentEnabled: type: boolean paymentMandatory: type: boolean offPremises: type: boolean killSwitchEnabled: type: boolean onlineOrdersEnabled: type: boolean tipsEnabled: type: boolean noteEnabled: type: boolean noteMandatory: type: boolean cutleryEnabled: type: boolean curbsideEnabled: type: boolean childTablesEnabled: type: boolean enabled: type: boolean maxOrdersPerTimeSlot: type: number format: int32 orderWebFeedbackEnabled: type: boolean orderEmailFeedbackEnabled: type: boolean courierTipsEnabled: type: boolean required: - ordersEnabled - orderAheadEnabled - delivery - partnerDelivery - nbDaysAhead - paymentEnabled - paymentMandatory - offPremises - killSwitchEnabled - onlineOrdersEnabled - tipsEnabled - noteEnabled - noteMandatory - cutleryEnabled - curbsideEnabled - childTablesEnabled - enabled - orderWebFeedbackEnabled - orderEmailFeedbackEnabled - courierTipsEnabled orli-configurationMerchantProvision: properties: done: type: boolean externalRefId: type: string merchantId: type: string overrideConfig: type: boolean provider: enum: - K_SERIES - L_SERIES - O_SERIES - G_SERIES type: string type: object orli-configurationMerchantTipDto: properties: defaultSelected: type: boolean tipType: $ref: '#/components/schemas/orli-configurationTipType' type: object orli-configurationMetadata: properties: current: $ref: '#/components/schemas/orli-configurationPageInfo' next: $ref: '#/components/schemas/orli-configurationPageInfo' sorting: $ref: '#/components/schemas/orli-configurationSortInfo' total: format: int64 type: integer type: object orli-configurationOpeningInfoDto: required: - nextShifts properties: currentShift: $ref: '#/components/schemas/orli-configurationOperatingHourShiftDto' localDateTime: format: zoned-date-time type: string nextShifts: type: array items: $ref: '#/components/schemas/orli-configurationOperatingHourShiftDto' default: [] nextShift: $ref: '#/components/schemas/orli-configurationOperatingHourShiftDto' open: type: boolean ordersEnabled: type: boolean type: object orli-configurationMenuHourShiftDto: type: object properties: open: type: boolean default: true name: type: string day: type: string format: day end: type: string format: local-time start: type: string format: local-time menuId: type: string required: - day - start - end orli-configurationOperatingHourShiftDto: type: object properties: menuId: type: string open: type: boolean default: true name: type: string day: type: string format: day end: type: string format: local-time start: type: string format: local-time required: - day - start - end orli-configurationOperatingHoursDto: properties: profileHours: type: array items: $ref: '#/components/schemas/orli-configurationOperatingHourShiftDto' default: [] uniqueItems: true hours: items: $ref: '#/components/schemas/orli-configurationOperatingHourShiftDto' type: array default: [] uniqueItems: true id: format: int32 type: integer name: type: string type: object orli-configurationHolidayHourShiftDto: type: object required: - start - end properties: end: type: string format: local-time start: type: string format: local-time orli-configurationHolidayHourDto: properties: intervals: items: $ref: '#/components/schemas/orli-configurationHolidayHourShiftDto' type: array open: type: boolean name: type: string startDate: format: date type: string endDate: format: date type: string required: - open - startDate - endDate type: object orli-configurationOrderAheadDateResponse: properties: date: format: date type: string day: format: day type: string hasSlots: type: boolean default: false nDaysAhead: format: int32 type: integer default: 0 ndaysAhead: format: int32 type: integer default: 0 type: object orli-configurationOrderAheadTimeSlotDto: properties: alreadyPlacedOrdersCount: format: int64 type: integer asap: type: boolean availableOrdersCount: format: int64 type: integer end: format: zoned-date-time type: string start: format: zoned-date-time type: string type: object orli-configurationPageInfo: properties: limit: format: int32 type: integer offset: format: int64 type: integer type: object orli-configurationPageable: properties: last: type: boolean pageNumber: format: int32 type: integer pageSize: format: int32 type: integer size: format: int32 type: integer totalElements: format: int64 type: integer totalPages: format: int32 type: integer type: object orli-configurationPaymentServiceConfig: properties: inPersonPaymentEnabled: type: boolean scanAndPayEnabled: type: boolean providers: items: type: string type: array type: object orli-configurationPosServiceConfig: required: - provider - inPersonPaymentEnabled - onlineOrdersEnabled - happyHourEnabled properties: provider: $ref: '#/components/schemas/orli-configurationPosProviderDto' menuId: type: string paymentMethodCode: type: string preparationTime: format: int32 type: integer inPersonPaymentEnabled: type: boolean onlineOrdersEnabled: type: boolean happyHourEnabled: type: boolean inPersonPaymentMethods: type: array uniqueItems: true items: type: string type: object orli-configurationQrCodeConfigDto: properties: backgroundColor: type: string code: type: string displayBusinessLogo: type: boolean displayTableNumber: type: boolean font: type: string headerText: type: string id: type: string layout: type: string required: - layout - font type: object orli-configurationSortInfo: properties: sortBy: type: string sortDirection: $ref: '#/components/schemas/orli-configurationSortDirection' type: object orli-configurationSortable: properties: sortBy: type: string sortDirection: $ref: '#/components/schemas/orli-configurationSortDirection' type: object orli-configurationUpdateMerchantDetailsDto: allOf: - $ref: '#/components/schemas/orli-configurationCommonMerchantDetailsDto' - type: object properties: showReviewsStats: type: boolean orderWebFeedbackEnabled: type: boolean orderEmailFeedbackEnabled: type: boolean availableTips: type: array uniqueItems: true items: $ref: '#/components/schemas/orli-configurationTipDto' orli-configurationAddOnMerchantInfoDto: type: object properties: email: type: string firstName: type: string lastName: type: string orli-configurationAddOnTrialDataDto: type: object properties: isTrial: type: boolean pastDueAt: type: string format: date-time suspendedAt: type: string format: date-time orli-configurationSalesOperationStatus: type: string enum: - OK - ERR - RETRY orli-configurationPromotionTypeEnum: type: string enum: - PERCENTAGE_DISCOUNT - BUY_1_GET_1_FREE - PROFILE_WIDE_DISCOUNT x-enum-varnames: - PERCENTAGE_DISCOUNT - BUY_1_GET_1_FREE - PROFILE_WIDE_DISCOUNT orli-configurationPromotionLifecycleStateEnum: type: string description: "Lifecycle state of a promotion derived from active flag and dates.\n- SCHEDULED: startDate > now (future promotion)\n- ACTIVE: startDate <= now <= endDate AND active=true\n- ENDED: endDate < now OR active=false\n" enum: - SCHEDULED - ACTIVE - ENDED x-enum-varnames: - SCHEDULED - ACTIVE - ENDED orli-configurationDeletePromotionAction: type: string enum: - deleted - archived description: "The action performed on the promotion:\n- deleted: SCHEDULED promotion was hard deleted from the database\n- archived: ENDED promotion was soft deleted (archived flag set to true)\n" orli-configurationConditionType: type: string enum: - ITEM_SKU - MERCHANT_CODE x-enum-varnames: - ITEM_SKU - MERCHANT_CODE orli-configurationRewardType: type: string enum: - PERCENTAGE_DISCOUNT x-enum-varnames: - PERCENTAGE_DISCOUNT orli-configurationPromotionConditionDto: type: object properties: id: type: string conditionType: $ref: '#/components/schemas/orli-configurationConditionType' conditionValue: type: string required: - id - conditionType - conditionValue orli-configurationPromotionRewardDto: type: object properties: id: type: string rewardType: $ref: '#/components/schemas/orli-configurationRewardType' targetSku: type: string nullable: true discountPercentage: type: number format: decimal required: - id - rewardType orli-configurationPromotionDto: type: object properties: id: type: string minimumCartValue: type: number format: decimal default: 0 merchantCode: type: string minLength: 8 maxLength: 8 pattern: ^[A-Z]{8}$ name: type: string promotionType: $ref: '#/components/schemas/orli-configurationPromotionTypeEnum' lifecycleState: $ref: '#/components/schemas/orli-configurationPromotionLifecycleStateEnum' startDate: type: string format: date-time endDate: type: string format: date-time active: type: boolean createdAt: type: string format: date-time modifiedAt: type: string format: date-time conditions: type: array items: $ref: '#/components/schemas/orli-configurationPromotionConditionDto' rewards: type: array items: $ref: '#/components/schemas/orli-configurationPromotionRewardDto' required: - id - merchantCode - name - promotionType - lifecycleState - startDate - endDate - active - minimumCartValue - conditions - rewards orli-configurationPromotionDiscountRequest: type: object description: "Type-specific discount configuration. Exactly one nested object should be provided\nbased on the `promotionType` value in the parent request:\n - percentageDiscount -> PERCENTAGE_DISCOUNT\n - bogoDiscount -> BUY_1_GET_1_FREE\n - profileWideDiscount -> PROFILE_WIDE_DISCOUNT\n" properties: percentageDiscount: $ref: '#/components/schemas/orli-configurationPercentageDiscountRequest' bogoDiscount: $ref: '#/components/schemas/orli-configurationBogoDiscountRequest' profileWideDiscount: $ref: '#/components/schemas/orli-configurationProfileWideDiscountRequest' orli-configurationProfileWideDiscountRequest: type: object description: "Configuration for PROFILE_WIDE_DISCOUNT promotions.\nApplies the discount to all eligible items in the profile identified by the\nparent request's `merchantCode`.\n" properties: discountPercentage: type: number description: Percentage discount to apply (1-100 inclusive, supports decimals like 12.5) minimum: 1 maximum: 100 example: 15 required: - discountPercentage orli-configurationPercentageDiscountRequest: type: object description: Configuration for PERCENTAGE_DISCOUNT promotions properties: discountPercentage: type: number description: Percentage discount to apply (1-100 inclusive, supports decimals like 12.5) minimum: 1 maximum: 100 example: 20 skus: type: array items: type: string minLength: 1 pattern: ^.*\S.*$ minItems: 1 maxItems: 150 uniqueItems: true description: List of item SKUs to apply the discount to (max 150) example: - P01 - P02 required: - discountPercentage - skus orli-configurationBogoDiscountRequest: type: object description: Configuration for BUY_1_GET_1_FREE promotions properties: skus: type: array items: type: string minLength: 1 pattern: ^.*\S.*$ minItems: 1 maxItems: 150 uniqueItems: true description: List of item SKUs for the BOGO promotion (max 150) example: - B01 required: - skus orli-mylsPaymentDetailsResponse: type: object properties: paymentDetailsId: type: string description: Payment details ID (numeric string) alias: type: string friendlyName: type: string token: type: string isDefault: type: boolean expYear: type: integer format: int64 expMonth: type: integer format: int64 orli-mylsPaymentMethodResponse: type: object properties: paymentMethodId: type: string name: type: string customerId: type: string paymentDetails: type: array default: [] items: $ref: '#/components/schemas/orli-mylsPaymentDetailsResponse' orli-mylsAddressDto: properties: id: format: int64 type: integer addressText: maxLength: 2000 type: string entranceInfo: maxLength: 300 minLength: 0 type: string floorInfo: maxLength: 300 minLength: 0 type: string apartmentInfo: maxLength: 300 minLength: 0 type: string dropOffInstructions: maxLength: 500 minLength: 0 type: string name: maxLength: 255 minLength: 0 type: string isDefault: type: boolean writeOnly: true default: type: boolean type: object required: - addressText orli-mylsConsumerOrderDto: properties: orderId: type: string tableNumber: format: int32 type: integer orderDate: format: date-time type: string estimatedDeliveryTime: format: date-time type: string collectionTime: format: date-time type: string state: type: string lastPaymentError: type: string merchantCode: type: string currency: type: string tipAmountCents: format: int64 type: integer amountDueCents: format: int64 type: integer deliveryFeeCents: format: int64 type: integer offPremise: type: boolean failedReason: type: string collectionCode: type: string paymentInPerson: type: boolean delivery: type: boolean items: items: $ref: '#/components/schemas/orli-mylsOrderItemDto' type: array payments: items: $ref: '#/components/schemas/orli-mylsOrderPaymentDto' type: array displayableTableNumber: type: string reviewToken: type: string merchantName: type: string logoDarkImageUrl: type: string logoLightImageUrl: type: string type: object orli-mylsOrderItemDto: properties: sku: type: string name: type: string quantity: format: int32 type: integer unitAmountCents: format: int64 type: integer modifiers: items: $ref: '#/components/schemas/orli-mylsModifierDto' type: array subItems: items: $ref: '#/components/schemas/orli-mylsOrderSubItemDto' type: array type: object orli-mylsOrderSubItemDto: properties: sku: type: string name: type: string quantity: format: int32 type: integer unitAmountCents: format: int64 type: integer originalUnitAmountCents: description: Original unit price before discount (null if no discount applied) format: int64 type: integer discountPercentage: description: Discount percentage inherited from parent combo item (null if no discount applied) type: number modifiers: items: $ref: '#/components/schemas/orli-mylsModifierDto' type: array type: object orli-mylsModifierDto: properties: name: type: string identifier: type: string type: object orli-mylsOrderPaymentDto: properties: attemptDate: format: date-time type: string orderAmountCents: format: int64 type: integer tipAmountCents: format: int64 type: integer type: object orli-mylsMetadata: properties: current: $ref: '#/components/schemas/orli-mylsPageInfo' next: $ref: '#/components/schemas/orli-mylsPageInfo' sorting: $ref: '#/components/schemas/orli-mylsSortInfo' total: format: int64 type: integer type: object orli-mylsPageInfo: properties: limit: format: int32 type: integer offset: format: int64 type: integer type: object orli-mylsSortInfo: properties: sortBy: type: string sortDirection: enum: - ASC - DESC type: string type: object orli-paymentPaymentProviderName: enum: - STRIPE - ADYEN - DEV type: string orli-paymentAmount: properties: currency: type: string value: format: int64 type: integer type: object orli-paymentBrowserInfo: properties: acceptHeader: type: string colorDepth: format: int32 type: integer javaEnabled: type: boolean language: type: string screenHeight: format: int32 type: integer screenWidth: format: int32 type: integer timeZoneOffset: format: int32 type: integer userAgent: type: string type: object orli-paymentCheckoutMetadata: properties: collectionCode: type: string locationPrefix: type: string merchantId: type: string orderId: type: string sessionId: type: string type: object orli-paymentCustomerCardResponse: required: - cardId - globalUserId properties: brand: type: string cardId: type: string isDefault: type: boolean isDeleted: type: boolean lastFourDigits: type: string month: format: int64 type: integer year: format: int64 type: integer globalUserId: type: string type: object orli-paymentPaymentDetails: properties: cardId: type: string customerId: type: string type: object orli-paymentPaymentMethod: properties: applePayToken: type: string brand: type: string encryptedCardNumber: type: string encryptedExpiryMonth: type: string encryptedExpiryYear: type: string encryptedSecurityCode: type: string googlePayToken: type: string holderName: type: string issuer: type: string type: type: string storedPaymentMethodId: type: string ownerName: type: string iban: type: string required: - type type: object orli-paymentRiskData: properties: clientData: type: string type: object orli-posAccountActivityDto: properties: activityType: enum: - ITEM_ADDED - ITEM_REMOVED - PAYMENT_ADDED - PAYMENT_REMOVED - ACCOUNT_OPENED - ACCOUNT_CLOSED type: string amount: format: int64 type: integer description: type: string paymentMethod: type: string productName: type: string quantity: format: int32 type: integer reportedAt: format: date-time type: string totalAmount: format: int64 type: integer type: object orli-posAddSubItemDto: properties: sid: format: int32 type: integer modifiers: items: $ref: '#/components/schemas/orli-posModifier' type: array name: type: string minLength: 1 quantity: format: int32 type: integer sku: type: string minLength: 1 stepName: type: string stepSku: type: string required: - name - quantity - sku type: object orli-posAmount: properties: currency: type: string value: format: int64 type: integer type: object orli-posAccountLineItem: description: Collection of check items properties: active: deprecated: true type: boolean amountLessTax: description: The total price of the item without tax type: number amountWithTax: description: The total price of the item including tax type: number discountedAmount: description: The amount the item was discounted type: number id: description: The unique ID assigned to the sale line format: int64 type: integer itemName: description: The name given to the item type: string itemSku: description: The SKU assigned to the item type: string modifiers: description: The modifiers of the item for this sale line items: $ref: '#/components/schemas/orli-posModifier' type: array parentId: format: int64 type: integer writeOnly: true quantity: description: The quantity of the item for this sale line format: double type: number subLineItems: description: Collection of sub-lines items: $ref: '#/components/schemas/orli-posAccountLineItem' type: array taxIncluded: type: boolean timeOfTransactionUtc: description: Date/Time in UTC of this transaction format: date-time type: string unitAmount: description: The unit amount for a single item type: number uuid: description: The unique UUID assigned to the sale line type: string type: object orli-posAccountPaymentLine: description: Collection of check items properties: accountCancelled: type: boolean writeOnly: true active: description: whether this payment line is active or not (i.e. has been cancelled) type: boolean amountPaid: description: Amount paid for this payment line type: number externalReference: description: Payment external reference type: string gratuityAmount: description: Tip payment amount type: number paymentDate: description: Date/Time in UTC of this payment format: date-time type: string paymentMethodCode: description: Payment method code for this payment line type: string paymentMethodDescription: description: Payment method for this payment line type: string type: object orli-posAccountSnapshot: description: Related account (if the webhook is configured to provide it) properties: clientCount: description: The number of guests at the table format: int32 type: integer closeDate: description: Date this account was closed in UTC format: date-time type: string currentAmount: description: The current total amount on the check type: number deviceId: format: int64 type: integer id: type: string writeOnly: true identifier: type: string writeOnly: true ikaccountId: type: string name: description: The check name type: string number: format: int32 type: integer writeOnly: true openDate: description: Date this account was opened in UTC format: date-time type: string paidAmount: description: The total of all payments on the check type: number paymentEntries: description: Collection of check items items: $ref: '#/components/schemas/orli-posAccountPaymentLine' type: array posId: format: int64 type: integer salesEntries: description: Collection of check items items: $ref: '#/components/schemas/orli-posAccountLineItem' type: array serviceCharge: description: The service charge of the check type: number staffId: description: The unique ID of the staff member assigned to the check format: int64 type: integer staffName: description: The name of the staff member assigned to the check type: string tableNumber: format: int32 type: integer uuid: description: Account uuid type: string type: object orli-posSalesRestrictionsErrorDto: properties: skus: items: type: string type: array uniqueItems: true type: object orli-posOrderErrorsDto: description: Order errors properties: salesRestrictions: $ref: '#/components/schemas/orli-posSalesRestrictionsErrorDto' type: object orli-posBillStatementTaxLineDto: properties: description: type: string itemId: type: string postTaxAmountCents: format: int64 type: integer preTaxAmountCents: format: int64 type: integer rateDescription: type: string taxAmountCents: format: int64 type: integer taxCode: type: string taxIncluded: type: boolean taxName: type: string taxRate: format: double type: number type: object orli-posBrowserInfo: properties: acceptHeader: type: string colorDepth: format: int32 type: integer javaEnabled: type: boolean language: type: string screenHeight: format: int32 type: integer screenWidth: format: int32 type: integer timeZoneOffset: format: int32 type: integer userAgent: type: string type: object orli-posModificationDto: type: object description: "Represents a price modification applied to a cart item from a promotion.\nContains the original and modified prices, discount percentage, and promotion details.\n" properties: originalUnitPrice: type: number description: The original unit price in cents before the modification was applied modifiedUnitPrice: type: number description: The unit price in cents after the modification was applied discountPercentage: type: number description: The percentage discount applied (e.g., 20 for 20% off, 100 for BOGO free item) quantity: type: integer format: int32 description: The number of items this modification applies to promotionId: type: string description: The ID of the promotion that applied this modification promotionType: type: string description: "The type of promotion (e.g., \"PERCENTAGE_DISCOUNT\", \"BUY_1_GET_1_FREE\").\n" promotionName: type: string description: The display name of the promotion required: - originalUnitPrice - modifiedUnitPrice - discountPercentage - quantity orli-posCartItemDto: properties: sid: format: int32 type: integer itemId: type: string modifications: type: array default: [] items: $ref: '#/components/schemas/orli-posModificationDto' modifiers: items: $ref: '#/components/schemas/orli-posModifier' type: array name: type: string quantity: minimum: 1 format: int32 type: integer rawImageUrl: type: string sku: type: string squareImageUrl: type: string previewImageUrl: type: string texts: items: $ref: '#/components/schemas/orli-posItemText' type: array unitAmountCents: format: int64 type: integer totalAmountCents: format: int64 type: integer totalAmountCentsBeforePromotion: format: int64 type: integer totalAmountCentsDiscountPromotion: format: int64 type: integer default: 0 required: - name - quantity - sku - unitAmountCents - totalAmountCents - totalAmountCentsBeforePromotion - totalAmountCentsDiscountPromotion type: object orli-posCustomerDto: properties: email: type: string firstName: type: string lastName: type: string phoneNumber: type: string type: object orli-posNotificationDto: discriminator: propertyName: type properties: businessLocationId: description: The business location id related to this notification format: int64 type: integer ikentooAccountId: deprecated: true format: int64 type: integer ikentooAccountIdentifier: type: string reason: description: Reason for failure if there is one type: string thirdPartyReference: description: Third-party reference you provided when the order or payment was placed. type: string type: description: The type of notification type: string type: object orli-posIntegrator: type: string enum: - GOOGLE orli-posItemText: properties: description: type: string friendlyDisplayName: type: string locale: type: string type: object orli-posLocalTime: properties: hour: format: int32 type: integer minute: format: int32 type: integer nano: format: int32 type: integer second: format: int32 type: integer type: object orli-posMenuDeal: allOf: - $ref: '#/components/schemas/orli-posMenuEntry' - properties: containsAlcohol: type: boolean alcoholPercentage: type: number allergenCodes: items: type: string type: array uniqueItems: true directItems: items: $ref: '#/components/schemas/orli-posMenuItem' type: array name: type: string productionInstructions: items: $ref: '#/components/schemas/orli-posModifierGroup' type: array rawImageUrl: type: string sid: format: int32 type: integer sku: type: string squareImageUrl: type: string previewImageUrl: type: string steps: items: $ref: '#/components/schemas/orli-posMenuDealGroup' type: array texts: items: $ref: '#/components/schemas/orli-posItemText' type: array unitPriceCents: format: int64 type: integer type: object type: object orli-posMenuDealGroup: properties: items: items: $ref: '#/components/schemas/orli-posMenuItem' type: array multiSelectionPermitted: type: boolean mustSelectAnItem: type: boolean name: type: string sku: type: string texts: items: $ref: '#/components/schemas/orli-posItemText' type: array type: object orli-posMenuGroup: allOf: - $ref: '#/components/schemas/orli-posMenuEntry' - properties: name: type: string type: object type: object orli-posMenuItem: allOf: - $ref: '#/components/schemas/orli-posMenuEntry' - properties: containsAlcohol: type: boolean alcoholPercentage: type: number allergenCodes: items: type: string type: array uniqueItems: true name: type: string productionInstructions: items: $ref: '#/components/schemas/orli-posModifierGroup' type: array rawImageUrl: type: string sid: format: int32 type: integer sku: type: string squareImageUrl: type: string previewImageUrl: type: string texts: items: $ref: '#/components/schemas/orli-posItemText' type: array unitPriceCents: format: int64 type: integer type: object type: object orli-posMenuEntry: discriminator: propertyName: type properties: type: type: string required: - type type: object orli-posMerchantContactDto: properties: isSocial: type: boolean preferred: type: boolean type: enum: - EMAIL - WEB - PHONE - TWITTER - INSTAGRAM - FACEBOOK - TRIPADVISOR - GOOGLE_MY_BUSINESS - TIKTOK - WEBSITE - YELP - YOUTUBE - SNAPCHAT - PINTEREST type: string value: type: string type: object orli-posMerchantEntryDto: properties: id: type: string name: type: string required: - id - name type: object orli-posMetadata: properties: current: $ref: '#/components/schemas/orli-posPageInfo' next: $ref: '#/components/schemas/orli-posPageInfo' sorting: $ref: '#/components/schemas/orli-posSortInfo' total: format: int64 type: integer type: object orli-posModifier: properties: sid: format: int32 type: integer identifier: type: string modifierGroupId: format: int32 type: integer name: type: string unitPriceCents: format: int64 type: integer type: object orli-posModifierGroup: properties: id: format: int32 type: integer instructions: items: $ref: '#/components/schemas/orli-posModifier' type: array maxSelectedAmount: format: int32 type: integer minSelectedAmount: format: int32 type: integer multiSelectionPermitted: type: boolean name: type: string type: object orli-posOaData: properties: amountCents: format: int64 type: integer country: type: string currency: type: string customerName: type: string orderCollectionTime: format: date-time type: string orderId: format: uuid type: string paymentRef: type: string minLength: 1 paymentType: enum: - order - snp type: string marketingOptIn: type: boolean description: Whether the consumer opted in to marketing communications sendAccountCreationEmail: type: boolean tipCents: format: int64 type: integer paidSaleLines: type: array items: type: string required: - paymentRef - paymentType type: object orli-posOperatingHourShiftDto: properties: day: enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY type: string end: $ref: '#/components/schemas/orli-posLocalTime' id: format: int32 type: integer overnightSecondPart: type: boolean start: $ref: '#/components/schemas/orli-posLocalTime' type: object orli-posOperatingHoursDto: properties: hours: items: $ref: '#/components/schemas/orli-posOperatingHourShiftDto' type: array id: format: int32 type: integer name: type: string type: object orli-posOrderCountRequest: properties: asap: type: boolean end: format: date-time type: string start: format: date-time type: string type: object orli-posOrderCountResponse: properties: alreadyPlacedOrdersCount: format: int64 type: integer asap: type: boolean end: format: date-time type: string start: format: date-time type: string type: object orli-posOrderItemDescriptionDto: properties: description: type: string localeCode: type: string type: object orli-posOrderItemDto: properties: descriptions: items: $ref: '#/components/schemas/orli-posOrderItemDescriptionDto' type: array itemId: type: string name: type: string quantity: format: int32 type: integer sku: type: string unitAmountCents: format: int64 type: integer originalUnitAmountCents: description: Original unit price before discount format: int64 type: integer discountPercentage: description: Discount percentage inherited from parent combo item type: number promotionId: type: string description: The ID of the promotion applied to this order item type: object orli-posOrderPaymentDto: properties: attemptDate: format: date-time type: string orderAmountCents: format: int64 type: integer state: enum: - PENDING - CONFIRMED - CAPTURED - ABORTED - FAILED - REFUNDED type: string tipAmountCents: format: int64 type: integer type: object orli-posOrderStatementDto: properties: amountDueCents: format: int64 type: integer lines: items: $ref: '#/components/schemas/orli-posOrderStatementLineDto' type: array name: type: string salesAmountCents: format: int64 type: integer taxAmountCents: format: int64 type: integer taxIncluded: type: boolean taxLines: items: $ref: '#/components/schemas/orli-posOrderStatementTaxLineDto' type: array tipAmountCents: format: int64 type: integer deliveryFeeCents: type: integer format: int64 type: object orli-posOrderStatementLineDto: properties: grossUnitAmountCents: format: int64 type: integer modifiers: items: type: string type: array name: type: string quantity: format: int32 type: integer totalAmountCents: format: int64 type: integer sku: type: string unitAmountCents: format: int64 type: integer type: object orli-posOrderStatementTaxLineDto: properties: description: type: string postTaxAmountCents: format: int64 type: integer preTaxAmountCents: format: int64 type: integer rateDescription: type: string taxAmountCents: format: int64 type: integer taxCode: type: string taxIncluded: type: boolean taxName: type: string taxRate: type: number type: object orli-posPageInfo: properties: limit: format: int32 type: integer offset: format: int64 type: integer type: object orli-posPaymentReport: properties: merchantId: type: string paymentId: type: string orderTotal: format: int64 type: integer tipAmount: format: int64 type: integer paymentValue: format: int64 type: integer paymentMethod: type: string attemptDate: format: date-time type: string paymentType: enum: - order - snp type: string paymentStatus: enum: - PENDING - CONFIRMED - CAPTURED - ABORTED - FAILED - AUTHORIZED - REFUNDED type: string posOrderId: type: string oaOrderId: type: string transactionType: enum: - TABLE - PICKUP - DELIVERY - SNP type: string type: object orli-posPaymentCheckoutDataRequest: properties: shopperIp: type: string shopperEmail: type: string amount: $ref: '#/components/schemas/orli-posAmount' browserInfo: $ref: '#/components/schemas/orli-posBrowserInfo' clientStateDataIndicator: type: boolean merchantAccount: type: string minLength: 1 origin: type: string paymentMethod: $ref: '#/components/schemas/orli-posPaymentMethod' providerName: enum: - STRIPE - ADYEN - DEV type: string reference: type: string minLength: 1 returnUrl: type: string minLength: 1 riskData: $ref: '#/components/schemas/orli-posRiskData' shopperInteraction: type: string minLength: 1 store: type: string minLength: 1 required: - amount - merchantAccount - paymentMethod - providerName - reference - returnUrl - shopperInteraction - store type: object orli-posPaymentDto: properties: abortDate: format: date-time type: string amountDueCents: format: int64 type: integer attemptDate: format: date-time type: string captureDate: format: date-time type: string confirmationDate: format: date-time type: string createdDate: format: date-time type: string currency: type: string customerName: type: string error: type: string failDate: format: date-time type: string merchantCode: type: string merchantId: type: string paymentId: type: string paymentProvider: type: string refundDate: format: date-time type: string sessionId: type: string status: enum: - PENDING - CONFIRMED - CAPTURED - ABORTED - FAILED - REFUNDED type: string tableNumber: format: int32 type: integer tipAmountCents: format: int64 type: integer paidSaleLines: type: array items: type: string type: object orli-posPaymentMetadata: properties: pspReference: type: string type: object orli-posPaymentMethod: properties: applePayToken: type: string brand: type: string encryptedCardNumber: type: string encryptedExpiryMonth: type: string encryptedExpiryYear: type: string encryptedSecurityCode: type: string googlePayToken: type: string holderName: type: string issuer: type: string type: type: string required: - type type: object orli-posMerchantOrderDto: properties: statement: $ref: '#/components/schemas/orli-posOrderStatementDto' deliveryAddress: type: string deliveryFeeCents: format: int64 type: integer amountDueCents: format: int64 type: integer cartDate: format: date-time type: string collectionCode: type: string collectionTime: format: date-time type: string effectiveDate: format: date-time type: string consumer: $ref: '#/components/schemas/orli-posCustomerDto' consumerUuid: type: string estimatedDeliveryTime: format: date-time type: string failedReason: type: string items: items: $ref: '#/components/schemas/orli-posOrderItemDto' type: array lastPaymentError: type: string lastPaymentErrorCode: type: string merchantCode: type: string name: type: string note: type: string offPremise: type: boolean orderDate: format: date-time type: string orderId: type: string paymentInPerson: type: boolean payments: items: $ref: '#/components/schemas/orli-posOrderPaymentDto' type: array posOrderId: type: string profileName: type: string requestCurbside: type: boolean requestCutlery: type: boolean state: enum: - DRAFT - READY - PAY_ATTEMPT - PAID - SENT - CONFIRMED - PAID_ABORTED - ABORTED - FAILED - CANCELLED - PAY_FAILED type: string tableNumber: format: int32 type: integer tipAmountCents: format: int64 type: integer type: object orli-posOrdersRollupDailyDto: type: object properties: date: type: string format: date count: type: integer format: int64 orli-posOrdersRollupDto: type: object properties: count: type: integer format: int64 anyOf: - $ref: '#/components/schemas/orli-posOrdersRollupDailyDto' - $ref: '#/components/schemas/orli-posOrdersRollupHourlyDto' orli-posOrdersRollupHourlyDto: type: object properties: date: type: string format: date time: $ref: '#/components/schemas/orli-posLocalTime' count: type: integer format: int64 orli-posRiskData: properties: clientData: type: string type: object orli-posSortInfo: properties: sortBy: type: string sortDirection: enum: - ASC - DESC type: string type: object orli-posTableDto: properties: active: type: boolean clientCount: format: int32 type: integer code: type: string name: type: string reference: type: string tableNumber: format: int32 type: integer type: object orli-posPosClientConsumerOrderDto: properties: orderId: type: string tableNumber: format: int32 type: integer orderDate: format: date-time type: string estimatedDeliveryTime: format: date-time type: string collectionTime: format: date-time type: string state: type: string lastPaymentError: type: string lastPaymentErrorCode: type: string merchantCode: type: string currency: type: string amountDueCents: format: int64 type: integer deliveryFeeCents: format: int64 type: integer offPremise: type: boolean failedReason: type: string collectionCode: type: string paymentInPerson: type: boolean delivery: type: boolean items: items: $ref: '#/components/schemas/orli-posOrderItemDto' type: array payments: items: $ref: '#/components/schemas/orli-posOrderPaymentDto' type: array displayableTableNumber: type: string reviewToken: type: string merchantName: type: string logoDarkImageUrl: type: string logoLightImageUrl: type: string type: object orli-posRecommendationItemDto: properties: sku: type: string required: - sku type: object pms-apiBusinessLocationId: description: The unique identifier for the business location. type: integer format: int64 example: 45454565682155 pms-apiGetProvider: properties: id: description: The unique identifier for the provider. type: integer format: int64 example: 3012455645 name: description: The name of the PMS provider. type: string apiKey: description: The API key for the PMS provider. type: string example: fake-secret businessLocationId: description: The unique identifier for the business location. type: integer format: int64 example: 45454565682155 endpoint: description: The endpoint of the PMS provider. This is where Lightspeed will send PMS requests. type: string example: http://integration.com/pms/endpoint features: description: The optional features that the PMS provider supports. See the [Integration Guide](https://api-portal.lsk.lightspeed.app/category/property-management-systems) for more details. items: $ref: '#/components/schemas/pms-apiProviderFeature' type: array uniqueItems: true type: object pms-apiProviderId: description: The unique identifier for the provider. type: integer format: int64 example: 3012455645 pms-apiProviderName: description: The name of the PMS provider. type: string minLength: 1 maxLength: 255 example: My PMS Provider pms-apiProviderEndpoint: description: The endpoint of the PMS provider. This is where Lightspeed will send PMS requests. type: string minLength: 1 maxLength: 255 example: http://integration.com/pms/endpoint pms-apiProviderApiKey: description: The API key for the PMS provider. type: string minLength: 1 maxLength: 255 example: fake-secret pms-apiProviderFeatures: type: array uniqueItems: true description: The optional features that the PMS provider supports. See the [Integration Guide](https://api-portal.lsk.lightspeed.app/category/property-management-systems) for more details. items: $ref: '#/components/schemas/pms-apiProviderFeature' pms-apiProviderFeature: type: string enum: - SEARCH_BY_NAME - MIRRORING - PARTIAL_PAYMENTS - MULTI_PAYMENTS - SERVICE_CHARGE - ENRICHED_PAYLOAD example: MIRRORING pms-apiRevenueCenterId: example: 343243933 description: The unique identifier for the revenue center. type: integer format: int64 pms-apiRevenueCenterName: example: Bar description: The name of the revenue center. type: string pms-apiPmsParameterDefinition: type: object properties: provider: type: string category: $ref: '#/components/schemas/pms-apiPmsParameterCategory' name: type: string type: type: string enum: - SELECT - STRING - LONG mandatory: type: boolean includeInContext: type: boolean pms-apiPmsParameterCategory: type: string enum: - POS_CONFIGURATION - PAYMENT_METHOD - ACCOUNTING_GROUP - TAX - DEVICE - AUTHENTICATION pms-apiPmsParameterOption: type: object properties: key: type: string value: type: string active: type: boolean pms-apiErrorResponse: type: object properties: status: type: string timestamp: type: string format: date-time message: type: string apiSubExceptions: type: array items: type: object properties: field: type: string rejectedValue: type: object message: type: string pms-integrationSalesWebhookDto: type: object properties: name: type: string description: Name of the transaction openDate: type: string format: date-time description: The date and time when the transaction was opened in UTC example: '2021-01-01T00:00:00Z' closeDate: type: string format: date-time description: The date and time when the transaction was closed in UTC example: '2021-01-01T00:00:00Z' covers: type: number description: The number of covers (guests) in this transaction. example: 2 ownerId: type: integer format: int64 description: The ID of the POS user (staff) who owns this transaction example: 12345 ownerName: type: string description: The name of the POS user (staff) who owns this transaction example: John Doe deviceId: type: integer format: int64 description: The ID of the device on which the transaction was started example: 12345 businessExternalReference: type: string description: Client name example: quickbooks-123 apiKey: type: string description: API Key. example: quickbooks-key-345 receiptId: type: string description: Receipt ID example: R51.3 fiscId: type: string description: "Unique identifier for the transaction, can be used this for any identification purposes.\n" example: A1234.5 uuid: type: string description: "A b64 encoded uuid which also act as unique identifier for the transaction,\nalso can be used for any identification purposes.\n" example: xfe9ldKWSfW8VrAYUcnvGA== initialAccountId: type: string description: "Initial Account ID, if any.\nThis is used to correlate the transaction with the initial account, such on REFUND or VOID.\n" example: A1234.1 identifier: deprecated: true type: string description: Refer to the non null value of either the fiscId or uuid as fallback. example: A1234.5 revenueCenterId: type: integer format: int64 description: Revenue Center (POS Configuration) ID example: 94489280528 revenueCenterName: type: string description: Revenue Center (POS Configuration) Name example: Fixed POS transactions: type: array items: $ref: '#/components/schemas/pms-integrationPmsTransactionWebhookDto' payments: type: array items: $ref: '#/components/schemas/pms-integrationPmsPaymentWebhookDto' serviceCharge: $ref: '#/components/schemas/pms-integrationPmsServiceChargeWebhookDto' pms-integrationPmsTaxLineWebhookDto: type: object properties: taxId: type: string description: The tax identifier. example: '12345' taxName: type: string description: The name of the tax. example: VAT 10% taxAmount: type: number description: The amount of the tax. example: 1.0 taxRate: type: number description: The rate of the tax. example: 1.1 taxIncluded: type: boolean description: Whether the tax is included in the price (VAT). example: true pms-integrationPmsTransactionWebhookDto: type: object properties: unitAmount: type: number description: The price of single item. example: 10.0 quantity: type: number description: "The quantity of the items. Negative quantity indicates a refund/cancellation/void.\n" example: 2.0 amount: type: number description: The total pre-tax amount of this transaction sale line. example: 20.0 description: type: string description: The item name example: French Fries staffId: type: integer format: int64 description: The ID of the POS user (staff) who processed this transaction line example: 6 staffName: type: string description: The name of the POS user (staff) who processed this transaction line example: John Doe groupId: type: integer format: int64 description: Lightspeed accounting group id which the item belongs to. example: 25769803810 groupName: type: string description: Lightspeed accounting group name which the item belongs to. example: Food taxId: deprecated: true type: integer format: int64 description: Deprecated, refer to taxLines. example: 12345 taxName: deprecated: true type: string description: Deprecated, refer to taxLines. example: VAT 10% taxRate: deprecated: true type: number description: The tax rate of the items. example: 1.1 taxIncluded: deprecated: true type: boolean description: Deprecated, refer to taxLines. example: true sku: type: string description: The SKU of the items. example: F07 type: type: string enum: - Sale - LineDiscount - AccountDiscount - PercentItem description: The type of the transaction line. serviceChargeContribution: type: number description: The amount of the service charge contribution. example: 4.5 taxLines: type: array items: $ref: '#/components/schemas/pms-integrationPmsTaxLineWebhookDto' pms-integrationPmsServiceChargeWebhookDto: type: object properties: amount: type: number description: The amount of the service charge. example: 1.0 type: type: string enum: - UNTAXED - APPORTIONED description: The type of the service charge. example: UNTAXED pms-integrationPmsPaymentWebhookDto: type: object properties: paymentDate: type: string format: date-time description: The date and time when the payment was made in UTC example: '2021-01-01T00:00:00Z' staffId: type: integer format: int64 description: The ID of the POS user (staff) who processed this payment example: 6 staffName: type: string description: The name of the POS user (staff) who processed this payment example: John Doe gratuity: type: number description: The amount of the gratuity (tips). example: 1.0 amount: type: number description: The total amount of the received payment. example: 66.0 methodName: type: string description: The name of the payment method. example: MEWS methodCode: type: string description: The code of the payment method. example: IKPMS reservationId: type: string description: The reservation ID of the payment. example: '001' pms-integrationErrorWebhookDto: type: object description: "The error response body content should follow this schema.\nIf the response body content does not follow this schema, only the status code will be sent.\nAll other property beside customerErrorMessage will be ignored.\n" properties: customerErrorMessage: type: string maxLength: 50 example: Network failure description: "The error message that will be sent and printed at the POS.\nLength should not exceed 50 characters to avoid truncation.\n" pms-integrationTransactionStateDto: description: "The PMS Charges Transaction state information\nThe transaction can be an actual PMS Room Charge or a mirroring transaction.\n" type: object properties: receiptId: type: string description: The receipt identifier of the transaction example: R51.3 state: $ref: '#/components/schemas/pms-integrationTransactionStateEnum' pmsConsumers: type: array description: "PMS Guests information\n" items: $ref: '#/components/schemas/pms-integrationPmsConsumerDto' transactionId: type: string description: The fiscal identifier of the transaction example: A1234.5 transactionUuid: type: string description: The uuid of the transaction example: 4dd30456-a6b3-48ed-b435-46fd472a1234 requestStates: type: array items: $ref: '#/components/schemas/pms-integrationRequestStateDto' totalAmount: type: number description: The total amount of the transaction example: 100.0 openDate: type: string format: date-time description: The date and time when the transaction was opened in UTC example: '2021-01-01T00:00:00Z' closeDate: type: string format: date-time description: The date and time when the transaction was closed in UTC example: '2021-01-01T00:00:00Z' isPmsCharge: type: boolean description: Whether the transaction is a PMS charge (Room Charge) instead of mirroring transaction. example: true isPosSide: type: boolean description: Whether the transaction is a POS side PMS. example: false pms-integrationPmsConsumerDto: type: object properties: paymentUuid: type: string description: The payment UUID linked to the guest example: f55f59cc-9a4d-489a-a57b-1c77161d9be8 reservationId: type: string description: The reservation ID of the guest. Can be a room number, uuid, or any string depend on what provided by the PMS. example: '101' name: type: string description: The name of the guest. example: John Doe room: type: string description: The guest room number example: '101' pms-integrationTransactionStateEnum: type: string description: The state of the request example: SUCCESS enum: - INIT - BUILDING_REQUESTS - REQUESTS_CREATED - SUCCESS - FAILURE - CONFIG_FAILURE - INVALID_TX_FAILURE - SYSTEM_FAILURE - TIMEOUT pms-integrationRequestStateDto: type: object allOf: - $ref: '#/components/schemas/pms-integrationRequestIdDto' properties: description: type: string description: The description of the request responseCode: type: integer description: The response code of the request example: 200 updatedTime: type: string format: date-time description: The date and time when the request was updated in UTC requestState: $ref: '#/components/schemas/pms-integrationRequestStateEnum' pms-integrationRequestIdDto: type: object properties: transactionUuid: type: string description: The transaction UUID example: f55f59cc-9a4d-489a-a57b-1c77161d9be8 uuid: type: string description: "This could be the transaction UUID, like at LsPms or MEWS or the payment/sales line UUID like at Navision.\nNot unique on its own, but unique in combination with the requestType and transactionUuid.\n" example: f55f59cc-9a4d-489a-a57b-1c77161d9be8 requestType: $ref: '#/components/schemas/pms-integrationRequestTypeEnum' pms-integrationRequestStateEnum: type: string description: The state of the request example: SUCCESS enum: - PENDING - SUCCESS - FAILURE - TIMEOUT pms-integrationRequestTypeEnum: type: string description: The type of the request example: MEWS_ORDER enum: - - APALEO_ACCOUNT - LSPMS_ACCOUNT - NAVISION_TRANSACTION - NAVISION_TRANSACTION_LINE_DISCOUNT - NAVISION_TRANSACTION_ACCOUNT_DISCOUNT - NAVISION_TRANSACTION_SURCHARGE - NAVISION_PAYMENT - MEWS_OUTLET_BILL - MEWS_ORDER - MEWS_CHARGE - MEWS_EXTERNAL_PAYMENT - MEWS_EXTERNAL_PAYMENT_TIP pms-integrationRetryChargesDto: type: object discriminator: propertyName: type mapping: byRequest: '#/components/schemas/pms-integrationRetryChargesByRequestDto' byTransaction: '#/components/schemas/pms-integrationRetryChargesByTransactionDto' required: - type description: "Parameter and configuration to retry failed PMS charges.\n" properties: type: $ref: '#/components/schemas/pms-integrationRetryChargeTypeEnum' config: $ref: '#/components/schemas/pms-integrationRetryChargesConfigDto' pms-integrationRetryChargesConfigDto: type: object nullable: true description: "The configuration for the retry charges.\nIf not provided, the default configuration value will be used.\n" properties: sendPosTaskNotificationOnFailureRetry: type: boolean default: false description: "Whether to send POS task notification on failure retry.\nIf true, POS task notification will be sent.\nTask notification message format will be based on the transaction itself.\n" example: false maxRetryCount: type: integer default: 1 minimum: 1 maximum: 3 description: "The number of retry count if the execution still failure.\nThe maximum retry count is 3.\n" example: 1 pms-integrationRetryChargeTypeEnum: type: string description: The type of the retry request example: byRequest enum: - byRequest - byTransaction pms-integrationSortDirectionEnum: type: string description: The direction to sort the charges example: asc default: desc enum: - asc - desc pms-integrationTimeRangeFilter: type: object properties: startDate: type: string format: date-time example: '2024-01-01T00:00:00Z' description: "The start date of the items to be processed.\nThe date should be in UTC.\n" endDate: type: string format: date-time example: '2024-05-31T00:00:00Z' description: "The end date of the items to be processed.\nThe date should be in UTC\n" pms-integrationPageMetadata: type: object properties: total: type: integer format: int64 description: The total amount of elements. example: 500 totalPages: type: integer format: int32 description: The total number of total pages. example: 5 current: type: object properties: page: type: integer format: int32 description: The current page number. pageSize: type: integer format: int32 description: The total number of elements in the current page. pms-integrationPmsReservationDto: type: object properties: roomId: type: string description: The room id example: '101' roomDescription: type: string description: The room description clientName: type: string description: The name of the guest example: John Doe reservationId: type: string description: The reservation ID of the guest. Can be a room number, uuid, or any string depend on what provided by the PMS. example: '101' blocked: type: boolean example: true creditLimit: type: number example: 100.0 pos-config-apiDeviceTypeEnum: type: string enum: - POS - BackOffice - CustomerDisplay - TimeClock - KitchenDisplay - Ghost pos-config-apiDeviceShortDto: type: object properties: id: type: integer format: int64 name: type: string deviceType: $ref: '#/components/schemas/pos-config-apiDeviceTypeEnum' isActive: type: boolean sharingScore: type: integer format: int32 pos-config-apiDeviceLiteDto: type: object properties: id: type: integer format: int64 name: type: string deviceType: $ref: '#/components/schemas/pos-config-apiDeviceTypeEnum' isActive: type: boolean sharingScore: type: integer format: int32 status: $ref: '#/components/schemas/pos-config-apiPosDeviceStatusDto' pos-config-apiPosDeviceStatusDto: type: object required: - configurationStatus properties: configurationStatus: enum: - RELOAD_REQUESTED - OUT_OF_SYNC - UP_TO_DATE type: string lastSynchronized: format: date-time type: string pos-config-apiPosConfigurationAccountProfilesDto: type: object properties: enabledAccountProfiles: description: Account profiles selected for configuration. AKA availableTagsIds type: array items: type: integer format: int64 directSalesAccountProfileId: description: Account profile for direct sales. AKA defaultTagId type: integer format: int64 tableOrderingAccountProfileId: description: Account profile for table ordering. AKA accountTagId type: integer format: int64 directAskForAccountProfile: description: Require users to select an account profile for direct sales. When you enable this feature, the user has to select an order type for the sale, such as “Happy hour” or “Takeaway.” AKA directAskForTag type: boolean noDoneButtonAskAccountProfile: description: Skip confirmation when selecting account profile for direct sales. From the previous point, the validation step for the selection of the direct sales account profile is skipped. AKA noDoneButtonAskTag type: boolean remainOnCurrentOrderAfterSend: description: Remain on current order after tapping Send. Each time an order is sent, the cash register is by default in a waiting state for a new order. By activating this function, the booking order is called again and waits for new bookings. This is useful for businesses that offer goods and/or services before asking for payment. AKA reloadAccountOnCommit type: boolean pos-config-apiPosConfigurationMenuSettingsDto: type: object properties: menuId: description: Link menu to this POS configuration. AKA defaultMenuId type: integer format: int64 showAllCapsNamesOnMainMenuButtonNames: description: Show button names for main menu screens in all caps. AKA showUppercaseNamesOnGroupButtons type: boolean showAllCapsNamesOnItemButtonNames: description: Show buttons names for items in all caps. AKA showUppercaseNamesOnItemButtons type: boolean showItemSearchButton: description: Show item search button on order screen. To quickly find items on the POS, display the item search button at the bottom of your Order screen. AKA showSearchButton type: boolean pos-config-apiPosConfigurationDiscountsAndLoyaltyCardsDto: type: object properties: discountsIds: description: Selected discounts Ids. AKA availableDiscountsIds type: array items: type: integer format: int64 process3rdPartyQRCodes: description: Process 3rd-party QR codes. AKA serverSideLoyalty type: boolean loyaltyConsumerCardsMustBeIdentified: description: Users must link a loyalty card to a customer. Requires you to link loyalty cards to a customer record. type: boolean pos-config-apiPosConfigurationScreenSaverDto: type: object properties: screenSaver: description: Show a black screensaver when the POS is inactive. type: boolean screenSaverUsePhotos: description: Show photos from the POS device as a screensaver. When enabled, the screensaver includes photos on the POS device. type: boolean pos-config-apiPosConfigurationFloorPlanDto: type: object properties: floorPlanIds: description: Selected floor plans Ids. AKA availableSalesPointIds type: array items: type: integer format: int64 pos-config-apiPosConfigurationOrderScreenDto: type: object properties: printEachDuplicateItemSeparateOnReceipt: description: Keep duplicate items separate on order screen. Even if there are multiple orders of the same item, each item will appear as a separate line on the customer receipt. AKA transactionNoMerge type: boolean mergeLineDetails: description: Merge duplicates with different production instructions onto one item line on order screen. Allows multiple-ordered items with production instructions to be merged on the same line. For instance, if a customer orders two lattes prepared two different ways, Latte will appear as one line with two separate production instructions underneath. type: boolean automaticTransactionForEachItem: description: Create automatic transactions for each item. The POS will print separate production tickets for each item. AKA singleItemReceipt type: boolean showTaxOnScreen: description: Show actual tax rate next to item name. On the POS Order screen, a tax rate is displayed next to the order item’s name. type: boolean deleteOnlyLastItem: description: Users can only delete the last item entered on the POS. This mode makes it impossible to delete items that are already sent on the POS. AKA secureRetailMode type: boolean lockScreenOnOpenDrawer: description: Lock order screen when cash drawer opens. When enabled, the POS order screen will lock when the cash drawer opens. type: boolean allowPutDirectSalesOnHold: description: The option lets pause an active order tied to the direct sale. The On Hold will appear after activating this function. AKA enableOnHoldButton type: boolean pos-config-apiPosConfigurationReportingDto: type: object properties: transactionTagIds: description: Select tags to allowed to apply to transactions. type: array items: type: integer format: int64 reportIncludeItems: deprecated: true description: Include item details under product heading in POS reports. Include item statistics on POS reports. type: boolean reportDetailType: description: Select how item details under product heading in POS reports should look like. type: string enum: - NONE - ACCOUNTING_GROUPS - ACCOUNTING_GROUPS_AND_ITEMS pos-config-apiPosConfigurationStockDto: type: object required: - stockTransfers properties: stockTransfers: description: Stock transfers type: array items: $ref: '#/components/schemas/pos-config-apiPosConfigurationStockTransferItemDto' pos-config-apiPosConfigurationStockTransferItemDto: type: object properties: transferFromStockId: type: integer format: int64 transferToStockId: type: integer format: int64 pos-config-apiPosConfigurationGeneralSettingsDto: type: object properties: accountProfiles: $ref: '#/components/schemas/pos-config-apiPosConfigurationAccountProfilesDto' menuSettings: $ref: '#/components/schemas/pos-config-apiPosConfigurationMenuSettingsDto' discountsAndLoyaltyCards: $ref: '#/components/schemas/pos-config-apiPosConfigurationDiscountsAndLoyaltyCardsDto' screenSaver: $ref: '#/components/schemas/pos-config-apiPosConfigurationScreenSaverDto' floorPlans: $ref: '#/components/schemas/pos-config-apiPosConfigurationFloorPlanDto' orderScreen: $ref: '#/components/schemas/pos-config-apiPosConfigurationOrderScreenDto' reporting: $ref: '#/components/schemas/pos-config-apiPosConfigurationReportingDto' stock: $ref: '#/components/schemas/pos-config-apiPosConfigurationStockDto' pmsParameterValues: type: array items: $ref: '#/components/schemas/pos-config-apiPmsParameterValueDto' pos-config-apiPosConfigurationTableOptionsDto: type: object properties: defaultNumberOfCovers: description: Default number of covers for new orders. Enter the number of seats you want to assign to each table by default. AKA defaultClientCount type: integer format: int32 defaultScreenAfterLogin: description: Select default screen to display after login. Select which screen to display right after login. type: string enum: - REGISTER - TABLE - ORDERS createDirectOrders: description: Create direct orders by default. This setting can be activated to be sure that you are not working in direct sales mode when processing orders. Instead, the cash register will open order with the name Direct. This is helpful if you wish to allow users to run tabs or edit an order before processing payment. By default, orders are opened with Direct Sale mode; unless they are assigned to a table or given a name, a user will need to process the payment for that order before opening another. AKA createDirectAccounts type: boolean numberOfDirectOrdersToCreate: description: Number of direct orders to create. Can only be set when Create direct orders if enabled. AKA directAccountsCount type: integer format: int32 allowDirectSales: description: Allow direct sales. Users aren't required to assign an order to a table or a tab. Select this setting to allow pay-at-order flows on the POS. When enabled, orders can be opened in Direct Sale mode, but always assigned a table or name if dine-in is required. In Direct Sale mode, payments have to be completed immediately after sending an order to a prep station. AKA allowDirectSale type: boolean allowZeroCovers: description: Allow zero covers. type: boolean reserveTablesWhenOpened: description: Automatically reserve tables when opened. AKA commitEmptyTable type: boolean restrictedCoverNumberChange: description: Only managers can change the number of covers. Only managers can change guest counts. AKA disableCoverChange type: boolean restrictedTableTransfer: description: Only managers can transfer a table to another user. Managers are only permitted to transfer tables between employees. type: boolean requestContinuationButton: description: Show 'Fire course' button on order screen. Displays the button for firing the next course on the POS Order screen. type: boolean forbidAccessToOthersTables: description: Limits order taking to the user in charge of the table. Users cannot access tables opened by other users. AKA accountObjectProtection type: boolean startCoursingWithZero: description: User can start with course 0 (e.g. drinks) before starting with course 1 (e.g. starters) type: boolean enableDirectItems: description: User can fire items directly with direct items section. type: boolean autoFireFirstCourse: description: Allows user to configure if first course is automatically fired. type: boolean pos-config-apiPosConfigurationTableManagementDto: type: object properties: enableFullTableManagement: description: Enable full table management. AKA enableTableManagement type: boolean basicTableManagement: description: Enable basic table management. AKA trivialTableManagement type: boolean enableGroupOrdering: description: Enable the group ordering feature. type: boolean groupOrderingLowerTimeLimit: description: The lower time limit for group ordering. type: integer format: int32 groupOrderingUpperTimeLimit: description: The upper time limit for group ordering. type: integer format: int32 tableOptions: $ref: '#/components/schemas/pos-config-apiPosConfigurationTableOptionsDto' pos-config-apiPosConfigurationPaymentMethodsDto: type: object properties: paymentMethodIds: description: Selected payment methods Ids. AKA availablePaymentMethodIds type: array items: type: integer format: int64 defaultPaymentMethodId: description: Default payment method Id. type: integer format: int64 alternatePaymentMethodId: description: Second payment method Id. type: integer format: int64 preselectedPaymentMethodId: description: Preselected payment method Id. type: integer format: int64 pos-config-apiPosConfigurationPaymentOptionsDto: type: object properties: amountPaidNotificationDuration: description: Select duration of amount paid notification. The amount is displayed as a banner at the POS after selecting the payment method. AKA showLargeAmountOnPay type: integer format: int32 enableRefundOnPOS: description: Allow refund processing on POS. Users can process refunds on the POS. This is useful for processing returns and a deposit for glass bottles. AKA enableReturn type: boolean disableAutoChangeCalculationOnCash: description: Deactivate automatic change calculation on cash transactions. If this function is enabled, the change is not calculated automatically for cash payments. AKA disableChangeOnCash type: boolean allowSkipPaymentAmount: description: Skip amount prompt at payment. The totals screen isn't displayed, so you can finish the order quicker. type: boolean enableAdvancedCheckSplitting: description: Enable advanced check splitting. When selected, users can more easily divide and split bills on the POS app. Please note, the device must be using version 4.1.9 of the POS (K) app or later to use this feature. AKA enableAdvancedBillSplitting type: boolean captureSignatureOnTerminal: description: Capture signature when supported on terminal. When enabled, this allows for on-screen signatures (when supported by the payment terminal). AKA signOnScreenCreditCard type: boolean keypadNoCents: description: Allow only whole amounts on the payment keypad. Does not display options for entering cents on the keyboard. type: boolean activateQRCodeMoneyBackOnMealVoucher: description: Activate money back on meal vouchers. QR code generated to give holders a credit for the difference. type: boolean pos-config-apiPosConfigurationPredefinedTipAmountDto: type: object properties: id: type: integer format: int64 amount: description: tip value in cents type: integer format: int32 minimum: 1 pos-config-apiPosConfigurationPredefinedTipPercentageDto: type: object properties: id: type: integer format: int64 percentage: description: tip percentage in percent * 100 type: integer format: int32 minimum: 1 pos-config-apiPosConfigurationTipsDto: type: object properties: enableTippingOnTerminal: description: Enable tipping when supported on terminal. If your digital payment terminal offers direct tip adding, you can make use of it by enabling this feature. AKA askGratuityCreditCard type: boolean allowTippingAtPayment: description: Allow tipping at payment. Allows the user to add tips at the payment. AKA gratuityEnabled type: boolean allowTippingAfterPayment: description: Allows you to accept and tally tips after the receipt is paid. AKA deferredGratuity type: boolean enableGuestFacingTipping: description: Enable tipping for tap to pay on iPhone type: boolean default: false enablePredefinedTips: description: Enable showing predefined tip suggestion in the POS type: boolean default: false showPredefinedTipsOnPrintedReceipts: description: Show predefined tip suggestion on printed receipts type: boolean default: false showPredefinedTipsOnLsPayTerminals: description: Show predefined tip suggestion on LS Pay terminals type: boolean default: false calculateTipForTaxes: $ref: '#/components/schemas/pos-config-apiTipCalculationMode' calculateTipForDiscounts: $ref: '#/components/schemas/pos-config-apiTipCalculationMode' predefinedTipAmounts: description: Predefine some (3) tip amounts for users to quickly select from type: array items: $ref: '#/components/schemas/pos-config-apiPosConfigurationPredefinedTipAmountDto' maxItems: 3 predefinedTipPercentages: description: Predefine some (3) tip percentages for users to quickly select from type: array items: $ref: '#/components/schemas/pos-config-apiPosConfigurationPredefinedTipPercentageDto' maxItems: 3 predefinedTipsOption: description: show only amounts or only percentages or amounts below and percentages above a threshold type: string enum: - AMOUNTS - PERCENTAGES - THRESHOLD predefinedTipsThreshold: description: amount above which tips are shown as a percentage type: integer format: int32 pos-config-apiPosConfigurationPaymentsDto: type: object properties: paymentMethods: $ref: '#/components/schemas/pos-config-apiPosConfigurationPaymentMethodsDto' paymentOptions: $ref: '#/components/schemas/pos-config-apiPosConfigurationPaymentOptionsDto' tips: $ref: '#/components/schemas/pos-config-apiPosConfigurationTipsDto' pos-config-apiPosConfigurationProductionCentersDto: type: object properties: printOnProductionCenterIds: description: Production centers Ids for printing. AKA inverted doNotPrintOnProdCenterIds type: array items: type: integer format: int64 pos-config-apiPosConfigurationAirprintDto: type: object properties: enableAirPrint: description: Enable AirPrint. This feature requires the use of an AirPrint-compatible printer. type: boolean airPrintDraftReceipt: description: Use AirPrint for draft receipts. This feature requires the use of an AirPrint compatible printer and activating the previous option. This function is useful, for example, if you print custom invoices. type: boolean pos-config-apiPosConfigurationPrintingDto: type: object properties: productionCenters: $ref: '#/components/schemas/pos-config-apiPosConfigurationProductionCentersDto' airprint: $ref: '#/components/schemas/pos-config-apiPosConfigurationAirprintDto' pos-config-apiPosConfigurationPrintingReceiptsDto: type: object properties: defaultPrinterProfileId: description: Default printing profile Id for receipts. type: integer format: int64 defaultDraftsPrinterProfileId: description: Default printing profile Id used for draft receipts. AKA defaultNotePrinterProfileId type: integer format: int64 autoPrintReceiptOnPaidOrders: description: Automatically print receipt on paid orders. The POS will print automatically a receipt when the account is closed and paid. AKA printReceiptOnCommit type: boolean autoPrintReceiptOnPaidTableOrders: description: Automatically print receipt on paid table orders. Automatically prints a receipt for table payments after payment. AKA printReceiptForTables type: boolean autoPrintReceiptWhenCardPaymentReceiptPrinted: description: Automatically print receipt when card payment receipts are printed. Automatically prints a receipt when a card payment receipt is printed as well. AKA printReceiptWhenSlip type: boolean autoPrintCardPaymentReceipts: description: Automatically print card payment receipts. POS will print a card payment receipt automatically if payment is processed by the POS. AKA alwaysPrintSlip type: boolean autoPrintReceiptWhenDeliverySlipsPrinted: description: Automatically print receipt when delivery slips are printed. POS will print a corresponding receipt automatically in addition to the delivery slip. AKA printReceiptWhenDelivery type: boolean printDraftReceiptsOnlyOnce: description: Print draft receipts only once. To prevent unnecessary wastage, a draft receipt can only be printed once. AKA singleDraftReceipt type: boolean printReceiptForEachPartialPayment: description: Print receipt for each partial payment. This function prints a receipt for each partial payment instead of printing a total receipt after the last partial payment for a split. AKA printPayReceipt type: boolean pos-config-apiPosConfigurationCustomizeReceiptsDto: type: object properties: receiptShowZeroPriceItems: description: Show items that have no price as free on customer receipts. With this function, items discounted by you to zero will be indicated on the receipt with the price FOR FREE instead of 0.00 €/£/$. type: boolean showConsumerAddressOnReceipt: description: Show customer address on receipts. Useful and/or necessary for deliveries. Displays the customer or delivery address. type: boolean showConsumerNameOnReceipt: description: Show customer name on receipts. Useful and/or necessary for take-away and deliveries. Displays the client's name. type: boolean showAccountProfileOnReceipt: description: Show the account profile on receipts. Display the account profile (order type) on the client receipt. AKA printTagOnReceipt type: boolean printPreTaxTotalOnReceipt: description: Show pre-tax total on receipt. Allows displaying the price without taxes on the client receipt. AKA printTaxExcludedTotalOnReceipt type: boolean printLargeTransactionLinesOnReceipt: description: Print transaction lines on receipt in large font. Increases the size of the item rows printed on the client receipt. AKA doubleHeightLines type: boolean printLargeTotalOnReceipt: description: Print total on receipt in large font. Allows you to enlarge the size of the total on the client's receipt. AKA largeTotalLine type: boolean printLargeServerNameOnReceipt: description: Print server name on receipt in large font. Displays the service name for the client. AKA largeStatusLine type: boolean forceIncludeDeliveryOnReceipt: description: Include delivery information on printed receipts. When you enable this function, the receipt will contain your customer's information for the delivery. type: boolean taxOnDraftReceipt: description: Include tax rate on draft receipts. To display the VAT on the draft receipts (the account is still open). type: boolean showCoversOnReceipt: description: Include cover count on receipts. Displays the number of customers for this order. type: boolean hidePriceOnCompDiscount: description: Don't include price on receipt when applying a comp discount. If this option is enabled, no price or information will be printed behind a 100 % discounted item. type: boolean receiptMergeSubItems: description: Group sub-items on receipts. When enabled, sub-items can be grouped together on receipts. type: boolean showDivisionHint: description: Divide the draft receipt total by the number of covers and print this on the receipt. Divide the final draft receipt total by the number of seats on the transaction and print this information on the receipt. type: boolean perSeatReceipt: description: Group items on receipt by seat. Allows you to group items by customer. type: boolean receiptNoMerge: description: Give each duplicate item its own line on receipts. Keep every item separate on the customer receipt. Even if there are multiple orders of the same item, each item will appear as a separate line on the customer receipt. type: boolean showReceiptHistoryForRefunds: description: Show receipt history on refund receipts. When enabled, the refund receipt will contain the complete receipt history. type: boolean pos-config-apiPosConfigurationDigitalReceiptsDto: type: object properties: enableDigitalReceipt: description: Enable digital receipts which lets customers download a digital receipt by scanning a QR code on the POS. type: boolean pos-config-apiPosConfigurationReceiptsDto: type: object properties: printingReceipts: $ref: '#/components/schemas/pos-config-apiPosConfigurationPrintingReceiptsDto' customizeReceipts: $ref: '#/components/schemas/pos-config-apiPosConfigurationCustomizeReceiptsDto' digitalReceipts: $ref: '#/components/schemas/pos-config-apiPosConfigurationDigitalReceiptsDto' pos-config-apiPosConfigurationCustomizeDocketsDto: type: object properties: orderTicketShowContinuationItems: description: Print order summary on each continuation docket. In case you had to order several courses if this function is enabled all courses will be printed according to your order history. type: boolean orderTicketPrintPrice: description: Show the price of items on production dockets. Displays the price of the items on the production ticket. type: boolean orderTicketSeparator: description: Separate items with a divider on production dockets. Displays a line between order items. type: boolean showSubLinesInRed: description: 'Print sub-items in red. Prints sub-items in red (messages, side dishes, extras). NOTE: This settings requires a compatible printer with a red ink ribbon.' type: boolean noPrintForeignLines: description: Only print items and sub-items assigned to a production center. Only print items configured for the production center. type: boolean sortDocketLines: description: Sort items alphabetically by accounting group on production dockets. Sort lines on order tickets. type: boolean sortDocketLinesBySeat: description: Sort items by seat on production dockets. Sort lines (by seat) on order tickets. type: boolean mergeDuplicateItems: description: Show duplicate items as one line on production dockets. Merge duplicate items on production dockets. Allow multiple items to display as one line on order tickets, rather than individually. AKA smartDocket type: boolean docketShortLines: description: Shorten lines on production dockets. When enabled, lines can be shortened the lines on the order ticket. type: boolean singleItemOrderTicket: description: Print one item per production docket. type: boolean seatDetailsOnDocket: description: Show seat details on dockets. AKA perSeatOrderTicket type: boolean printAccountProfile: description: Show account profile on production dockets. AKA printTagOnDocket type: boolean docketCutBetweenCourses: description: Cut production dockets into separate courses. type: boolean printFloorPlanName: description: Print floor plan name on production dockets. AKA printSalesPointOnDocket type: boolean showConsumerAddressOnDocket: description: Show customer address on docket. type: boolean printCoversOnDocket: description: Print covers number on docket type: boolean printDocketOnTableTransfer: description: Print production docket when transferring table type: boolean pos-config-apiPosConfigurationProductionDocketsDto: type: object properties: customizeDockets: $ref: '#/components/schemas/pos-config-apiPosConfigurationCustomizeDocketsDto' pos-config-apiPosConfigurationPosUserRulesDto: type: object properties: userIds: description: Available staffs Ids. AKA availableStaffIds type: array items: type: integer format: int64 allowCancelAnyItem: description: Allow managers to cancel sent items. Management may cancel orders already sent to the production stations (Bar/Kitchen). type: boolean pincodeMenuButtonsProtection: description: Protect selection of menu buttons with manager pincode. AKA pincodeProtection type: boolean sendOrdersOnLogout: description: Send open orders on logout. Enable automatically sending the entered order to the appropriate production stations if the user logs out before sending the items. AKA commitOnLogout type: boolean showAllReceipts: description: Show receipts created by other users on the receipt screen. Allows you to view the receipts of other users. type: boolean blockClockOutWhenOpenTables: description: Users must settle open orders before clocking out. When enabled, open orders must be settled before closing a shift. type: boolean managersCannotOwnOrders: description: Managers cannot create or edit new orders. Members of POS's Manager user group cannot create new orders. AKA managerCannotOwnTransactions type: boolean pos-config-apiPosConfigurationAutomaticLogoutDto: type: object properties: autoLogoutMinutes: description: Set time for automatic user logout from the POS. Specify a time in minutes for when a user will be automatically logged out from the POS. AKA autoLogout type: integer format: int32 forceLogoutAfterOrderUpdate: description: Log user out after order updates. When enabled, users are automatically logged out of the Order screen after processing a transaction. AKA forceLogout type: boolean pos-config-apiPosConfigurationPosUserSettingsDto: type: object properties: posUserRules: $ref: '#/components/schemas/pos-config-apiPosConfigurationPosUserRulesDto' automaticLogout: $ref: '#/components/schemas/pos-config-apiPosConfigurationAutomaticLogoutDto' pos-config-apiTimedEventsSettingsDto: type: object properties: eventNotificationMinutesBeforeStart: type: integer format: int32 description: Minutes before the event to trigger notification on POS pos-config-apiPosConfigurationWriteDto: type: object properties: generalSettings: $ref: '#/components/schemas/pos-config-apiPosConfigurationGeneralSettingsDto' tableManagement: $ref: '#/components/schemas/pos-config-apiPosConfigurationTableManagementDto' payments: $ref: '#/components/schemas/pos-config-apiPosConfigurationPaymentsDto' printing: $ref: '#/components/schemas/pos-config-apiPosConfigurationPrintingDto' receipts: $ref: '#/components/schemas/pos-config-apiPosConfigurationReceiptsDto' productionDockets: $ref: '#/components/schemas/pos-config-apiPosConfigurationProductionDocketsDto' posUserSettings: $ref: '#/components/schemas/pos-config-apiPosConfigurationPosUserSettingsDto' timedEvents: $ref: '#/components/schemas/pos-config-apiTimedEventsSettingsDto' pos-config-apiPmsParameterValueDto: type: object properties: id: type: integer format: int32 name: type: string description: Name of the PMS parameter value example: MEWS value: type: string options: type: array items: type: object properties: key: type: string value: type: string definition: type: object properties: provider: type: string type: type: string enum: - SELECT - STRING - LONG mandatory: type: boolean pos-config-apiLoginTokenBaseDto: type: object properties: description: type: string minLength: 0 maxLength: 64 description: The description of the token posConfigurationId: type: integer format: int64 description: The POS configuration id deviceRole: $ref: '#/components/schemas/pos-config-apiDeviceTypeEnum' remainingCredit: type: integer format: int32 description: The remaining credit of the token, null if unlimited. forcePassive: type: boolean default: false description: Force the device to be passive noSharing: type: boolean default: false description: Force the device to not do any transaction sharing expirationDate: format: date-time type: string description: The expiration date of the token required: - description - posConfigurationId pos-config-apiTipCalculationMode: description: Calculate tip before/after taxes/discounts/... type: string enum: - BEFORE - AFTER default: AFTER pos-config-apiTimedMenuDto: type: object properties: activeDays: type: array items: $ref: '#/components/schemas/pos-config-apiDayOfWeek' maxItems: 7 minItems: 1 uniqueItems: true endDate: type: string format: date endTime: type: string format: time id: type: integer format: int64 menuId: type: integer format: int64 name: type: string startDate: type: string format: date startTime: type: string format: time required: - activeDays - startDate - menuId - name pos-config-apiDayOfWeek: type: string enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY preferences-apiApiError: properties: code: type: string detail: type: string title: type: string type: object preferences-apiJsonDocument: type: object additionalProperties: true pulse-reporting-serviceUser: type: object additionalProperties: false required: - userId - firstName - lastName - email - authorities properties: userId: description: User ID type: integer format: int64 firstName: description: First name type: string lastName: description: Last name type: string email: description: Email address type: string authorities: description: User authorities type: array items: type: string pulse-reporting-serviceUserBusiness: type: object additionalProperties: false required: - id - name - locale - status - currency - locations properties: id: description: Business ID type: integer format: int64 name: description: Business Name type: string locale: description: Locale type: string status: description: Status type: string currency: description: Currency code type: string locations: type: array items: $ref: '#/components/schemas/pulse-reporting-serviceUserBusinessLocation' pulse-reporting-serviceUserBusinessLocation: type: object additionalProperties: false required: - id - name - timezone - country - startOfDay - active properties: id: description: Location ID type: integer format: int64 name: description: Business location name type: string timezone: description: Business location timezone type: string country: description: Business location country type: string startOfDay: description: Start of day for the business location type: integer format: int64 active: description: Business location active type: boolean pulse-reporting-serviceSalesRevenueRecord: type: object additionalProperties: false required: - interval - salesAmount properties: interval: description: The interval label (e.g. hour, day, week, month) type: string salesAmount: description: Cumulative sales amount up to this interval type: number format: double pulse-reporting-serviceSalesIntervalsData: type: object additionalProperties: false required: - intervalFrom - intervalTo - amount - contributionPercent properties: intervalFrom: description: Start of the interval type: string format: date-time intervalTo: description: End of the interval type: string format: date-time amount: description: Sales amount for this interval type: number format: double contributionPercent: description: This interval's contribution as a fraction of total (sums to 1.0) type: number format: double pulse-reporting-serviceTopItem: type: object additionalProperties: false required: - name - amount - sold properties: name: description: Item name type: string amount: description: Total sales amount (dollars) type: number format: double sold: description: Quantity sold type: integer format: int64 pulse-reporting-serviceAccountingGroupIntervalData: type: object additionalProperties: false required: - intervalFrom - intervalTo - top - others - amount properties: intervalFrom: description: Start of the interval type: string format: date-time intervalTo: description: End of the interval type: string format: date-time top: type: array items: $ref: '#/components/schemas/pulse-reporting-serviceAccountingGroupSaleRecord' others: type: array items: $ref: '#/components/schemas/pulse-reporting-serviceAccountingGroupSaleRecord' amount: description: Total sales amount for this interval type: number format: double pulse-reporting-serviceAccountingGroupTotals: type: object additionalProperties: false required: - top - others properties: top: type: array items: $ref: '#/components/schemas/pulse-reporting-serviceAccountingGroupSaleRecord' others: type: array items: $ref: '#/components/schemas/pulse-reporting-serviceAccountingGroupSaleRecord' pulse-reporting-serviceAccountingGroupSaleRecord: type: object additionalProperties: false required: - accountingGroupId - accountingGroupName - amount - contributionPercent properties: accountingGroupId: description: Accounting group identifier type: string accountingGroupName: description: Accounting group name type: string amount: description: Sales amount type: number format: double contributionPercent: description: Contribution as a fraction (0.45 means 45%) type: number format: double pulse-reporting-servicePosUserIntervalData: type: object additionalProperties: false required: - intervalFrom - intervalTo - top - others - amount properties: intervalFrom: description: Start of the interval type: string format: date-time intervalTo: description: End of the interval type: string format: date-time top: type: array items: $ref: '#/components/schemas/pulse-reporting-servicePosUserSaleRecord' others: type: array items: $ref: '#/components/schemas/pulse-reporting-servicePosUserSaleRecord' amount: description: Total sales amount for this interval type: number format: double pulse-reporting-servicePosUserTotals: type: object additionalProperties: false required: - top - others properties: top: type: array items: $ref: '#/components/schemas/pulse-reporting-servicePosUserSaleRecord' others: type: array items: $ref: '#/components/schemas/pulse-reporting-servicePosUserSaleRecord' pulse-reporting-servicePosUserSaleRecord: type: object additionalProperties: false required: - posUserId - posUserName - amount - contributionPercent properties: posUserId: description: POS user identifier type: string posUserName: description: POS user display name type: string amount: description: Sales amount type: number format: double contributionPercent: description: Contribution as a fraction (0.45 means 45%) type: number format: double pulse-reporting-serviceSalesAnalysisRecord: type: object additionalProperties: false required: - amount - diffAmount - diffPercent - favorabilityIsPositive properties: amount: type: number format: double diffAmount: type: number format: double diffPercent: type: number format: double favorabilityIsPositive: type: boolean pulse-reporting-serviceLocationContribution: type: object additionalProperties: false required: - sales properties: sales: $ref: '#/components/schemas/pulse-reporting-serviceLocationAnalysisRecord' pulse-reporting-serviceLocationAnalysisRecord: type: object additionalProperties: false required: - amount - diffAmount - diffPercent - favorabilityIsPositive - contributionPercent properties: amount: type: number format: double diffAmount: type: number format: double diffPercent: type: number format: double favorabilityIsPositive: type: boolean contributionPercent: type: number format: double pulse-serviceProblemDetail: type: object description: RFC 7807 Problem Details for HTTP APIs properties: type: type: string description: A URI reference that identifies the problem type example: about:blank title: type: string description: A short, human-readable summary of the problem type example: Invalid Request status: type: integer description: The HTTP status code example: 400 detail: type: string description: A human-readable explanation specific to this occurrence example: The request is invalid instance: type: string description: A URI reference that identifies the specific occurrence example: /checklists/v1/admin/business-location/123/checklist-definitions details: type: string description: Additional details about the error example: Validation failed for field 'name' required: - status - title pulse-serviceCheckListItemDto: type: object properties: message: type: string description: Test string response example: Hello, World! pulse-serviceChecklistDefinitionBasic: type: object required: - name - tasks - dueTime - userTags properties: name: type: string minLength: 1 maxLength: 255 description: Name of the checklist definition example: Daily Opening Checklist tasks: type: array minItems: 1 maxItems: 255 description: List of checklist tasks items: $ref: '#/components/schemas/pulse-serviceChecklistTaskDefinitionCreate' dueTime: type: string minLength: 5 maxLength: 8 description: Time when the checklist is due example: 09:00:00 dueDays: type: array uniqueItems: true description: Days of the week when the checklist is due (two-letter abbreviations). Required for weekly repeat type and legacy requests without repeatType. items: type: string example: - Mo - We - Fr repeatType: $ref: '#/components/schemas/pulse-serviceRepeatTypeEnumDto' startDate: type: string format: date description: Start date anchor for advanced repeat schedules example: '2026-07-10' endDate: type: string format: date description: Optional end date for the checklist schedule example: '2026-12-31' roles: type: array uniqueItems: true deprecated: true description: Roles (POS user group) ids responsible for the checklist. Deprecated - use userTags instead items: type: string example: - '10' - '11' visibility: $ref: '#/components/schemas/pulse-serviceVisibilityEnumDto' notifications: $ref: '#/components/schemas/pulse-serviceChecklistNotificationsDto' userTags: type: array uniqueItems: true description: User tag IDs associated with this checklist minItems: 1 items: type: integer format: int64 example: - 1 - 2 - 3 businessLocationIds: type: array uniqueItems: true description: List of business location IDs where the checklist applies. items: type: integer format: int64 example: - 123 - 456 pulse-serviceChecklistTaskDefinitionCreate: type: object required: - name properties: name: type: string minLength: 1 maxLength: 255 description: Name of the task example: Clean the entrance area description: type: string default: '' maxLength: 500 description: Detailed description of the task example: Clean all glass surfaces and sweep the floor at the entrance index: type: integer format: int32 maximum: 32767 description: Deprecated! Index of the task. Used for sorting the task list example: 1 temperature: $ref: '#/components/schemas/pulse-serviceTemperatureDefinitionDto' multiChoice: $ref: '#/components/schemas/pulse-serviceMultiChoiceDefinitionDto' shortAnswerRequired: type: boolean default: false description: Flag if short answer is required for the task example: true imageRequired: type: boolean default: false description: Flag if image is required for the task example: false signatureRequired: type: boolean default: false description: Flag if signature is required for the task example: false count: $ref: '#/components/schemas/pulse-serviceCountDefinitionDto' pulse-serviceChecklistNotificationsDto: type: object properties: onCompleteEmail: $ref: '#/components/schemas/pulse-serviceChecklistNotificationSettingsDto' onLateIncompleteEmail: $ref: '#/components/schemas/pulse-serviceChecklistNotificationSettingsDto' pulse-serviceChecklistNotificationSettingsDto: type: object properties: enabled: type: boolean default: false description: Flag indicating if this notification type is enabled example: true recipients: type: array description: List of notification recipients items: $ref: '#/components/schemas/pulse-serviceChecklistNotificationRecipientDto' pulse-serviceChecklistNotificationRecipientDto: type: object required: - userId properties: userId: type: integer format: int64 description: User ID of the notification recipient example: 12345 pulse-serviceChecklistTaskDefinitionFull: allOf: - $ref: '#/components/schemas/pulse-serviceChecklistTaskDefinitionCreate' - type: object properties: id: type: integer format: int64 description: Unique identifier for the checklist task example: 1 pulse-serviceChecklistTaskInstanceDto: type: object required: - id - name - description - completed properties: id: type: integer format: int64 description: Unique identifier for the checklist task example: 1 name: type: string description: Name of the task example: Clean the entrance area description: type: string description: Detailed description of the task example: Clean all glass surfaces and sweep the floor at the entrance index: type: integer format: int32 description: Deprecated. Index of the task. Used for sorting the task list example: 1 completed: type: boolean description: Whether the task is completed example: false updateTime: type: string format: date-time description: Date and time when the task was last updated example: '2023-07-10T08:45:00Z' temperature: $ref: '#/components/schemas/pulse-serviceTemperatureInstanceDto' multiChoice: $ref: '#/components/schemas/pulse-serviceMultiChoiceInstanceDto' shortAnswer: $ref: '#/components/schemas/pulse-serviceShortAnswerInstanceDto' image: $ref: '#/components/schemas/pulse-serviceTaskInstanceImageDto' signature: $ref: '#/components/schemas/pulse-serviceTaskInstanceSignatureDto' comment: type: string description: Optional comment. No more than 1024 characters. example: The task is finished in time count: $ref: '#/components/schemas/pulse-serviceCountInstanceDto' userId: type: integer format: int64 description: id of user/staff member who completed the task example: 123 pulse-serviceChecklistInstanceShortDto: type: object required: - id - name - dueTime - completed - tasksTotal - tasksCompleted properties: id: type: integer format: int64 description: Unique identifier for the checklist instance example: 1 name: type: string description: Name of the checklist instance example: Daily Opening Checklist dueTime: type: string format: date-time description: Date and time when the checklist is due example: '2023-07-10T09:00:00Z' completed: type: boolean description: Whether the checklist is completed example: false tasksTotal: type: integer format: int32 description: Total number of tasks in the checklist instance example: 5 tasksCompleted: type: integer format: int32 description: Number of completed tasks in the checklist instance example: 2 completedTime: type: string format: date-time description: Date and time when the checklist was completed example: '2023-07-10T09:30:00Z' visibility: $ref: '#/components/schemas/pulse-serviceVisibilityEnumDto' userTagIds: type: array uniqueItems: true description: User tag IDs associated with this checklist items: type: integer format: int64 example: - 1 - 2 - 3 pulse-serviceTemperatureDefinitionDto: type: object properties: unit: $ref: '#/components/schemas/pulse-serviceTemperatureUnitEnumDto' minValue: type: number format: double description: Minimum temperature value example: 2.0 maxValue: type: number format: double description: Maximum temperature value example: 8.0 version: type: integer format: int32 description: Version of temperature logic. 2 means v2 (all values in C) example: 2 pulse-serviceCountDefinitionDto: type: object required: - unit - parValue properties: unit: $ref: '#/components/schemas/pulse-serviceCountUnitEnumDto' parValue: type: number format: double description: Current par value example: 5.0 pulse-serviceTemperatureInstanceDto: allOf: - $ref: '#/components/schemas/pulse-serviceTemperatureDefinitionDto' - type: object properties: value: type: number format: double description: Current temperature value example: 5.0 timestamp: type: string format: date-time description: Timestamp when the temperature was taken example: '2025-10-16T09:30:00Z' source: $ref: '#/components/schemas/pulse-serviceTemperatureSourceEnumDto' pulse-serviceCountInstanceDto: allOf: - $ref: '#/components/schemas/pulse-serviceCountDefinitionDto' - type: object properties: value: type: number format: double description: Current count example: 5.0 pulse-serviceTemperatureInstanceSubmitDto: type: object properties: value: type: number format: double description: Current temperature value example: 5.0 timestamp: type: string format: date-time description: Timestamp when the temperature was taken example: '2025-10-16T09:30:00Z' source: $ref: '#/components/schemas/pulse-serviceTemperatureSourceEnumDto' version: type: integer format: int32 description: Version of temperature logic. 2 means v2 (all values in C) example: 2 pulse-serviceTemperatureSourceEnumDto: type: string enum: - MANUAL - BLUETOOTH description: Temperature source example: MANUAL pulse-serviceTemperatureUnitEnumDto: type: string enum: - C - F description: Temperature unit example: C pulse-serviceCountUnitEnumDto: type: string enum: - POUND - OUNCE - QUART - EACH - LITER - KILOGRAM - CASE - PINT - CUP - UNIT description: Count unit example: POUND pulse-serviceVisibilityEnumDto: type: string enum: - ALL_DAY - AM - PM description: visibility settings for each checklist (ALL_DAY / AM / PM), so that staff only see the relevant checklists based on the time of day. example: ALL_DAY default: ALL_DAY pulse-serviceRepeatTypeEnumDto: type: string enum: - DAILY - WEEKLY - EVERY_2_WEEKS - EVERY_4_WEEKS - MONTHLY - EVERY_3_MONTHS - EVERY_6_MONTHS - YEARLY description: Advanced checklist repeat cadence example: WEEKLY pulse-serviceImageUploadDto: type: object required: - type properties: type: $ref: '#/components/schemas/pulse-serviceFileUploadTypeDto' imageData: type: string format: byte description: Base64-encoded compressed image data. If type is 'UPLOAD' - this field must not be null If type is 'KEEP' - this field will be ignored metadata: $ref: '#/components/schemas/pulse-serviceImageMetadataDto' pulse-serviceImageMetadataDto: type: object properties: contentType: type: string description: MIME type of the image example: image/jpeg originalSizeMB: type: number format: double description: Original image size in megabytes before compression example: 2.45 compressedSizeMB: type: number format: double description: Image size in megabytes after compression (only present if image was compressed) example: 0.98 compressionTimeMs: type: number format: double description: Time taken to compress the image in milliseconds (only present if image was compressed) example: 125.5 pulse-serviceSignatureUploadDto: type: object required: - type properties: type: $ref: '#/components/schemas/pulse-serviceFileUploadTypeDto' signatureData: type: string format: byte description: Base64-encoded signature image data. If type is 'UPLOAD' - this field must not be null If type is 'KEEP' - this field will be ignored pulse-serviceFileUploadTypeDto: type: string enum: - UPLOAD - KEEP pulse-serviceMultiChoiceDefinitionDto: type: object required: - type properties: type: $ref: '#/components/schemas/pulse-serviceMultiChoiceTypeEnumDto' options: type: array description: List of choice options minItems: 2 items: $ref: '#/components/schemas/pulse-serviceMultiChoiceOptionDto' pulse-serviceMultiChoiceTypeEnumDto: type: string enum: - EMBEDDED - REFERENCE description: Type of multi-choice definition. REFERENCE is not supported yet example: EMBEDDED pulse-serviceMultiChoiceInstanceDto: allOf: - $ref: '#/components/schemas/pulse-serviceMultiChoiceDefinitionDto' - type: object properties: selectedOption: $ref: '#/components/schemas/pulse-serviceMultiChoiceOptionDto' pulse-serviceMultiChoiceOptionDto: type: object required: - value properties: value: type: string description: Option value example: Yes minLength: 1 pulse-serviceMultiChoiceSubmitDto: type: object required: - selectedOption properties: selectedOption: $ref: '#/components/schemas/pulse-serviceMultiChoiceOptionDto' pulse-serviceShortAnswerInstanceDto: type: object properties: value: type: string description: The short answer value example: All surfaces cleaned pulse-serviceTaskInstanceImageDto: type: object properties: imageUrl: type: string description: Signed URL of the image that can be accessed to view the uploaded image example: http://s3/pulse/checklists/images/1/2025-05-05/image-a81bc81b-dead-4e5d-abff-90865d1e13b1.jpeg imageKey: type: string description: Plain (not signed) URL of the image stored in S3. This is the permanent reference to the image file and differs from imageUrl which is a temporary signed URL. example: pulse/checklists/images/1/2025-05-05/image-a81bc81b-dead-4e5d-abff-90865d1e13b1.jpeg pulse-serviceTaskInstanceSignatureDto: type: object properties: signatureUrl: type: string description: Signed URL of the signature that can be accessed to view the uploaded signature example: http://s3/pulse/checklists/signatures/1/2025-05-05/signature-a81bc81b-dead-4e5d-abff-90865d1e13b1.jpeg signatureKey: type: string description: Plain (not signed) URL of the signature stored in S3. This is the permanent reference to the signature file and differs from signatureUrl which is a temporary signed URL. example: pulse/checklists/signatures/1/2025-05-05/signature-a81bc81b-dead-4e5d-abff-90865d1e13b1.jpeg pulse-serviceChecklistReportScoringDto: type: object required: - definitionId - definitionName - instancesTotal - instancesCompleted - tasksTotal - tasksCompleted properties: definitionId: type: integer format: int64 description: Unique identifier of the checklist definition example: 1 definitionName: type: string description: Name of the checklist definition example: Morning checklist dueTime: type: string description: Time when the checklist is due example: 09:00:00 instancesTotal: type: integer format: int32 description: Total number of checklist instances example: 10 instancesCompleted: type: integer format: int32 description: Number of completed checklist instances example: 7 tasksTotal: type: integer format: int32 description: Total number of tasks across all instances example: 50 tasksCompleted: type: integer format: int32 description: Number of completed tasks across all instances example: 35 userTagIds: type: array uniqueItems: true description: User tag IDs associated with this checklist items: type: integer format: int64 example: - 1 - 2 - 3 pulse-serviceScheduledReportConfigDto: type: object required: - enabled - reportType - schedule properties: enabled: type: boolean description: Whether checkpoint reports are enabled example: true reportType: type: string enum: - CHECKPOINT - DAILY - WEEKLY description: Type of report schedule example: CHECKPOINT schedule: $ref: '#/components/schemas/pulse-serviceReportScheduleDto' pulse-serviceReportScheduleDto: type: object properties: times: type: array uniqueItems: true items: type: string pattern: ^([01]?[0-9]|2[0-3]):[0-5][0-9]$ description: Times of day for checkpoint emails (HH:MM format) example: - 11:00 - 14:30 - 17:00 - 22:30 maxItems: 10 recipients: type: array uniqueItems: true items: type: integer format: int64 description: List of user IDs as email recipients maxItems: 20 locationRecipients: type: array items: $ref: '#/components/schemas/pulse-serviceLocationRecipientsDto' description: List of location-based recipients. Only used for DAILY and WEEKLY reports. maxItems: 20 pulse-serviceLocationRecipientsDto: type: object required: - businessLocationId - enabled - recipients properties: businessLocationId: type: integer format: int64 description: Business location ID example: 123 enabled: type: boolean description: Whether this location's recipients are enabled for the report default: false example: false recipients: type: array uniqueItems: true items: type: integer format: int64 description: List of user IDs as email recipients for this location maxItems: 20 example: - 100 - 200 - 300 pulse-serviceChecklistInstancesLocationSummary: type: object required: - businessLocationId - totalTasks - completedTasks properties: businessLocationId: type: integer format: int64 description: Business location identifier example: 123 totalTasks: type: integer format: int64 description: Total number of tasks for this location example: 125 completedTasks: type: integer format: int64 description: Number of completed tasks for this location example: 100 pulse-serviceChecklistDefinitionLiteDto: type: object properties: id: type: integer format: int64 description: Unique identifier for the checklist definition example: 1 name: type: string description: Name of the checklist definition example: Daily Opening Checklist businessLocationIds: type: array uniqueItems: true description: List of business location IDs where the checklist applies items: type: integer format: int64 example: - 123 - 456 userTags: type: array uniqueItems: true description: User tag IDs associated with this checklist items: type: integer format: int64 example: - 1 - 2 - 3 dueDays: type: array uniqueItems: true description: Days of the week when the checklist is due (two-letter abbreviations) items: type: string example: - Mo - We - Fr repeatType: $ref: '#/components/schemas/pulse-serviceRepeatTypeEnumDto' startDate: type: string format: date description: Start date anchor for advanced repeat schedules example: '2026-07-10' endDate: type: string format: date description: Optional end date for the checklist schedule example: '2026-12-31' dueTime: type: string description: Time when the checklist is due example: 09:00 updatedAt: type: string format: date-time description: Timestamp when the checklist definition was last updated example: '2025-10-16T09:30:00Z' pulse-serviceUserTagDto: type: object properties: id: type: integer format: int64 description: The id of the tag example: 1234 name: type: string maxLength: 255 description: The name of the tag example: Bartender pulse-serviceUserTagWithUserIdsDto: allOf: - $ref: '#/components/schemas/pulse-serviceUserTagDto' - type: object properties: staffIds: type: array description: Ids of staff associated with specific tag items: type: integer format: int64 example: - 123 - 456 pulse-serviceUserTagLiteDto: type: object required: - name properties: name: type: string minLength: 1 maxLength: 255 description: The name of the user tag. example: Bartender pulse-servicePageDto: type: object properties: data: type: object description: The data content of the page - specific structure defined by each endpoint metadata: $ref: '#/components/schemas/pulse-servicePageInfo' pulse-servicePageInfo: type: object properties: page: type: integer example: 0 description: The current page number (0-based) size: type: integer example: 30 description: The number of elements in the page totalElements: type: integer format: int64 example: 150 description: The total number of elements totalPages: type: integer example: 5 description: The total number of pages pulse-serviceUserTagSummaryDto: type: object required: - id - name - userCount - checklistDefinitionCount properties: id: type: integer format: int64 description: The id of the tag example: 1234 name: type: string description: The name of the tag example: Bartender userCount: type: integer format: int64 description: Number of users assigned to this tag example: 5 checklistDefinitionCount: type: integer format: int64 description: Number of checklist definitions using this tag example: 3 pulse-serviceFeatureUpdateStatusDto: type: object required: - key - status properties: key: type: string maxLength: 255 description: Feature identifier/name example: pulse.taskmanagement status: $ref: '#/components/schemas/pulse-serviceFeatureStatusEnumUpdateDto' trialData: $ref: '#/components/schemas/pulse-serviceTrialDataDto' pulse-serviceFeatureStatusEnumUpdateDto: type: string enum: - On - Off - PastDue - Suspended description: Feature status pulse-serviceTrialDataDto: type: object properties: isTrial: type: boolean description: Boolean flag indicating trial status pastDueAt: type: string format: date-time description: ISO 8601 datetime when trial expires example: '2025-12-31T23:59:59Z' suspendedAt: type: string format: date-time description: ISO 8601 datetime when feature was suspended (optional) example: '2025-01-15T10:30:00Z' pulse-serviceLocationFeaturesDto: type: object required: - features properties: businessLocationId: type: integer format: int64 description: Business location ID features: type: array items: $ref: '#/components/schemas/pulse-serviceFeatureStatusDto' description: List of features with their statuses pulse-serviceFeatureStatusDto: type: object required: - name - status - enabled properties: name: type: string description: Feature name example: CHECKLISTS status: $ref: '#/components/schemas/pulse-serviceFeatureStatusEnumDto' enabled: type: boolean description: Whether the feature is enabled (false if status is OFF, true otherwise) example: true pulse-serviceFeatureStatusEnumDto: type: string enum: - ON - OFF - PAST_DUE - SUSPENDED description: Feature status quebec-fiscalLightspeedInfo: type: object properties: applicationIdentifier: example: '0000000000003201' type: string pattern: ^[0-9A-Fa-f]+$ applicationVersionIdentifier: example: 0000000000003FA1 type: string pattern: ^[0-9A-Fa-f]+$ applicationCertificationCode: example: RBC202306005 type: string pattern: ^[A-Za-z]{3}[0-9]{9}$ partnerIdentifier: example: 0000000000000C23 type: string pattern: ^[0-9A-Fa-f]+$ quebec-fiscalTotalsRequest: type: object required: - year - timezone properties: year: type: integer format: int32 minimum: 2000 maximum: 2999 timezone: type: string example: America/New_York quebec-fiscalTotalsData: type: object required: - transactionsCount - paymentTransactionsCount - transactionsTotal - transactionsSubTotal - adjustmentsTotal - totalAmountDue - gst - qst properties: transactionsCount: type: integer format: int64 paymentTransactionsCount: type: integer format: int64 transactionsSubTotal: type: integer format: int64 transactionsTotal: type: integer format: int64 adjustmentsTotal: type: integer format: int64 totalAmountDue: type: integer format: int64 gst: type: integer format: int64 qst: type: integer format: int64 quebec-fiscalFiscalReportDto: type: object properties: timestamp: type: string format: date-time example: '2024-01-01T00:00:00' documentNumber: type: string generatedById: type: string generatedByName: type: string deviceName: type: string deviceId: type: string fiscalYear: type: integer format: int32 prints: type: array items: type: string texts: type: array items: type: string qrCodes: type: array items: type: string quebec-fiscalPagination: type: object properties: size: type: integer format: int32 nextToken: type: string example: '1234567890' description: continuation token for pagination quebec-fiscalReceiptFiscalDataDto: type: object properties: receiptUuid: type: string fiscalData: $ref: '#/components/schemas/quebec-fiscalFiscalData' quebec-fiscalFiscalData: type: object properties: transactionDate: type: string transactionNumber: type: string machineIdentifier: type: string reporting-serviceAccount: description: Data of the response nullable: true properties: accountDiscountAmounts: $ref: '#/components/schemas/reporting-serviceDiscountAmounts' accountOriginId: description: Unique identifier for this account's parent type: string accountRefId: description: The original account this account is based from example: A12345.6 type: string accountType: description: The type of account example: UPDATE type: string closeDate: description: String representing the date the account was closed example: '2021-04-06T07:04:08.014Z' type: string coversPow2: description: The number of covers associated with this account to the power of 2 example: 400 format: int32 type: integer customer: $ref: '#/components/schemas/reporting-serviceCustomer' gratuity: description: The total amount of gratuity on this account in cents as an integer example: 100 format: int32 type: integer hasTransfer: description: States if this Account has an Item Transferred to another Account type: boolean lineDiscountAmounts: $ref: '#/components/schemas/reporting-serviceDiscountAmounts' meta: $ref: '#/components/schemas/reporting-serviceMeta' onlineOrder: $ref: '#/components/schemas/reporting-serviceOnlineOrder' owner: $ref: '#/components/schemas/reporting-serviceStaff' payments: description: Contains payments information relating to the account items: $ref: '#/components/schemas/reporting-servicePayment' type: array receiptTotal: description: Net sales in cents as an integer example: 500 format: int32 type: integer salesPointName: description: The name of the sales point associated with this account example: Principal type: string salesPointObjId: description: The id of the sales point associated with this account example: '1718753610897' type: string tableNumber: description: The table number associated with this account example: 4 format: int32 type: integer taxAmount: description: The total amount of tax on this account as a String example: '-0.5' type: string transactions: description: Contains transaction information relating to the account items: $ref: '#/components/schemas/reporting-serviceTransaction' type: array type: object reporting-serviceBaseWidgetRowDto: properties: name: type: string netSalesInCents: $ref: '#/components/schemas/reporting-serviceTaxableAmountDto' type: object reporting-serviceBestHour: description: Best Hour properties: hour: type: string receiptsCount: format: int64 type: integer type: object reporting-serviceBestSellingItem: properties: amountInCents: format: int64 type: integer id: format: int64 type: integer name: type: string type: object reporting-serviceBestSellingItems: description: Data of the response nullable: true properties: items: items: $ref: '#/components/schemas/reporting-serviceBestSellingItem' type: array type: object reporting-serviceComparableAmount: properties: amountInCents: format: int64 type: integer compareTo: $ref: '#/components/schemas/reporting-serviceCompareToAmount' type: object reporting-serviceComparableAmountOverTime: properties: amountInCents: format: int64 nullable: true type: integer compareToAmountInCents: format: int64 nullable: true type: integer compareToDateTime: example: '2020-09-28T15:09:38-05:00' format: date-time type: string compareToRanking: description: Impression stars for compare to date format: int32 maximum: 5 minimum: 0 type: integer compareToWeather: description: Weather rank for compare to date format: int32 maximum: 6 minimum: 0 type: integer dateTime: example: '2020-09-28T15:09:38-05:00' format: date-time type: string ranking: description: Impression stars format: int32 maximum: 5 minimum: 0 type: integer weather: description: Weather rank format: int32 maximum: 6 minimum: 0 type: integer type: object reporting-serviceComparableCount: properties: compareTo: $ref: '#/components/schemas/reporting-serviceCompareToCount' count: format: int64 type: integer type: object reporting-serviceCompareToAmount: properties: amountInCents: format: int64 type: integer percentDiff: type: number type: object reporting-serviceCompareToCount: properties: count: format: int64 type: integer percentDiff: type: number type: object reporting-serviceCustomer: description: Contains customer information associated with the ticket properties: addressLine1: description: First line of consumer record address example: 32 Some Street type: string addressLine2: description: Second line of consumer record address example: Some Area type: string city: description: City of consumer record address example: Arlington type: string emailAddress: description: Consumer record email address example: joe@soap.com type: string firstName: description: Consumer record first name example: Joe type: string id: description: Unique identifier for this consumer record. example: '12345634567' type: string lastName: description: Consumer record last name example: Soap type: string phoneNumber1: description: Consumer record first phone number example: '848305036539' type: string phoneNumber2: description: Consumer record second phone number example: '534605036539' type: string state: description: State of consumer record address example: Virginia type: string zipCode: description: Consumer record zip code example: '234567' type: string type: object reporting-serviceDiscount: description: Object describing the Account Level Discount applied to this Transaction. properties: discountCode: description: The short code for discount applied to this Sale. example: 10PCT type: string discountComp: description: Financial amount this Sale has been Comped by. Whole number by factor 100. example: 1000 format: int32 type: integer discountId: description: The discount identifier of the discount applied to this Sale. example: '116848880255009' type: string discountName: description: The name of discount applied to this Sale. Whole number by factor 100. example: 10% discount type: string discountRegular: description: Financial amount this Sale has of a regular discount. Whole number by factor 100. example: 1000 format: int32 type: integer discountType: description: The type of discount applied to this Sale. Whole number by factor 100. example: DISCOUNT type: string discountVoid: description: Financial amount this Sale has been Voided. Whole number by factor 100. example: 1000 format: int32 type: integer type: object reporting-serviceDiscountAmounts: description: An object containing the line total amounts of this account properties: discountComp: description: The total comp discount amount on this account in cents as an int example: 5000 format: int32 type: integer discountLoss: description: The total loss discount amount on this account in cents as an int example: 5000 format: int32 type: integer discountRegular: description: The total regular discount amount on this account in cents as an int example: 5000 format: int32 type: integer discountTotal: description: The total discount amount on this account in cents as an int example: 5000 format: int32 type: integer type: object reporting-serviceEmployeeReport: description: Data of the response nullable: true properties: collectedPerPaymentType: description: Collected per payment type items: $ref: '#/components/schemas/reporting-servicePaymentTypeAmount' type: array grossSalesGrossAmountInCents: description: Gross sales gross amount in cents (including discounts and service charges, excluding voids) format: int64 type: integer grossSalesNetAmountInCents: description: Gross sales Net amount in cents (including discounts and service charges, excluding voids) format: int64 type: integer id: description: Employee id type: string name: description: Employee name type: string netSalesGrossAmountInCents: description: Net sales gross amount in cents format: int64 type: integer netSalesNetAmountInCents: description: Net sales net amount in cents format: int64 type: integer tipsByPaymentType: description: Tips per payment method items: $ref: '#/components/schemas/reporting-servicePaymentTypeTips' type: array totalCollectedGrossAmountInCents: description: Total collected gross amount in cents format: int64 type: integer totalCollectedNetAmountInCents: description: Total collected net amount in cents format: int64 type: integer totalCollectedPerPaymentType: description: Total collected per payment type format: int64 type: integer totalCollectedTipsByPaymentType: description: Total collected tips per payment method format: int64 type: integer type: object reporting-serviceEmployeeReportByGroup: description: Data of the response nullable: true properties: groupReports: items: $ref: '#/components/schemas/reporting-serviceGroupReport' type: array total: description: Total result format: int32 type: integer type: object reporting-serviceEmployeeSummary: description: Data of the response nullable: true properties: bestHour: $ref: '#/components/schemas/reporting-serviceBestHour' hoursWorkedInMinutes: description: Hours worked in minutes format: int64 type: integer id: description: Employee id type: string name: description: Full name of employee type: string netSalesGrossAmountPerHourInCents: description: Gross average sales per working hour amount in cents format: int64 type: integer netSalesGrossAmountPerReceiptInCents: description: Gross average sales per receipt amount in cents format: int64 type: integer netSalesNetAmountPerHourInCents: description: Net average sales per working hour amount in cents format: int64 type: integer netSalesNetAmountPerReceiptInCents: description: Net average sales per receipt amount in cents format: int64 type: integer receiptsCount: description: Receipts count format: int32 type: integer type: object reporting-serviceError: description: Errors of the response nullable: true properties: code: maxLength: 256 type: string detail: type: string title: type: string required: - code type: object reporting-serviceFilterEntities: description: Data of the response nullable: true properties: accountProfiles: description: List of account profiles items: $ref: '#/components/schemas/reporting-serviceFilterEntity' type: array accountingGroups: description: List of accounting groups items: $ref: '#/components/schemas/reporting-serviceFilterEntity' type: array devices: description: List of devices items: $ref: '#/components/schemas/reporting-serviceFilterEntity' type: array staffs: description: List of staffs items: $ref: '#/components/schemas/reporting-serviceFilterEntity' type: array statisticGroupCategories: description: List of statistic group categories items: description: List of statistic group categories type: string type: array type: object reporting-serviceFilterEntity: description: List of account profiles properties: id: type: string name: type: string type: object reporting-serviceGroupReport: properties: grossSalesGrossAmountInCents: description: Gross sales gross amount in cents (including discounts and service charges, excluding voids) format: int64 type: integer grossSalesNetAmountInCents: description: Gross sales Net amount in cents (including discounts and service charges, excluding voids) format: int64 type: integer id: description: Group id type: string name: description: Group name type: string netSalesGrossAmountInCents: description: Net sales gross amount in cents format: int64 type: integer netSalesNetAmountInCents: description: Net sales net amount in cents format: int64 type: integer totalSalesGrossAmountInCents: description: Total sales gross amount in cents (including discounts and voids, excluding service charges) format: int64 type: integer totalSalesNetAmountInCents: description: Total sales Net amount in cents (including discounts and voids, excluding service charges) format: int64 type: integer type: object reporting-serviceGiftCardOperationsResponse: type: object properties: executionTimeInMs: description: Time taken by elasticsearch to execute the query format: int32 type: integer timedOut: description: if the ES query request timed out type: boolean total: description: Total number of operations matching the query format: int64 type: integer operations: description: List of gift card operations items: $ref: '#/components/schemas/reporting-serviceGiftCardOperation' type: array reporting-serviceGiftCardOperation: type: object properties: giftAccountId: description: Gift account identifier type: string example: '1110704312549378' giftCardId: description: Gift card identifier type: string example: GC123456 refillPaymentMethod: description: Payment method used for refill type: string example: Credit Card consumerRecordUUID: description: Consumer record UUID type: string example: 550e8400-e29b-41d4-a716-446655440000 staffName: description: Name of the staff member who performed the operation type: string example: Manager fiscDate: description: Fiscal date of the operation type: string format: date-time example: '2023-08-24T08:25:07.064Z' x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss.SSSX\")" paid: description: Amount paid in the operation type: number format: double example: 1300 locationName: description: Name of the source location type: string example: Happy tip: description: Tip amount type: number format: double example: 0 reporting-serviceItem: description: Object describing the Item in this Transaction. properties: accountingGroupName: description: This Category of this Item. example: Food type: string itemId: description: The item identifier. example: '116488103002179' type: string itemName: description: The name of the item. example: '116488103002179' type: string parentLineReferenceItemId: description: The identifier of this items parent. If there is none this is null. example: '116488103002173' type: string qtyPow4: description: The quantity of the item. Whole number by factor 10000. example: 10000 format: int32 type: integer totalPrice: description: The Total Price of this Item. Whole number by factor 100. example: 1000 format: int32 type: integer type: description: This Type of this Transaction.eg 'SALE', 'VOID' or 'REFUND. example: SALE type: string typeReversal: description: This Type of this Transaction.eg 'SALE', 'VOID' or 'REFUND. type: boolean unitAmount: description: The amount of the item sold. Whole number by factor 100. example: 1000 format: int32 type: integer unitPrice: description: The Total Price of this Item. Whole number by factor 100. example: 1000 format: int32 type: integer type: object reporting-serviceLabourReport: properties: discountedAmountInCents: description: All discounted (discount, loss, offered, returned) items amount in cents format: int64 type: integer discountedQuantity: description: All discounted (discount, loss, offered, returned) quantities rounded to 2 decimals for fractional quantities format: double type: number grossSalesGrossAmountInCents: description: Gross sales gross amount in cents (including discounts and service charges, excluding voids) format: int64 type: integer grossSalesNetAmountInCents: description: Gross sales Net amount in cents (including discounts and service charges, excluding voids) format: int64 type: integer hoursWorkedInMinutes: description: Hours worked in minutes format: int64 type: integer id: description: Staff id type: string name: description: Staff name type: string netSalesGrossAmountInCents: description: Net sales gross amount in cents format: int64 type: integer netSalesGrossAmountPerHourInCents: description: Gross average sales per working hour amount in cents format: int64 type: integer netSalesGrossAmountPerReceiptInCents: description: Gross average sales per receipt amount in cents format: int64 type: integer netSalesNetAmountInCents: description: Net sales net amount in cents format: int64 type: integer netSalesNetAmountPerHourInCents: description: Net average sales per working hour amount in cents format: int64 type: integer netSalesNetAmountPerReceiptInCents: description: Net average sales per receipt amount in cents format: int64 type: integer receiptsCount: description: Receipts count format: int32 type: integer serviceChargesAmountInCents: description: service charge amount in cents format: int64 type: integer tipsAmountInCents: description: Tips amount in cents format: int64 type: integer totalCollectedGrossAmountInCents: description: Total collected gross amount in cents format: int64 type: integer totalCollectedNetAmountInCents: description: Total collected net amount in cents format: int64 type: integer totalSalesGrossAmountInCents: description: Total sales gross amount in cents (including discounts and voids, excluding service charges) format: int64 type: integer totalSalesNetAmountInCents: description: Total sales Net amount in cents (including discounts and voids, excluding service charges) format: int64 type: integer voidAmountInCents: description: Void amount in cents format: int64 type: integer type: object reporting-serviceLabourReportsList: description: Data of the response nullable: true properties: labourReports: items: $ref: '#/components/schemas/reporting-serviceLabourReport' type: array total: description: Total result format: int32 type: integer type: object reporting-serviceMeta: description: Object describing date, accountId, SequenceId and PersiodId. properties: accountId: description: Unique identifier of the Account. example: A12553.14 type: string date: description: The date in UTC when this action occurred. example: '2021-03-25T16:37:21.701Z' type: string id: description: Unique identifier of this Object example: A12553.14 type: string periodId: description: Identifier of the Period. example: SP12660.13.22 type: string sod: description: The StartOfDay in UTC of the business location. example: '2021-03-25T05:30:00.000Z' type: string type: object reporting-serviceOnlineOrder: description: Contains online order information associated with the ticket properties: orderId: description: The Account ID of this order. example: A14618.1 type: string source: description: The Source of this order. Known as 'Account Profile Information' in K-Series. example: Deliveroo type: string timePlaced: description: The date in UTC when this Account was opened. example: '2021-03-25T16:37:21.701Z' type: string type: object reporting-servicePayment: description: Contains payments information relating to the account properties: authorization: description: Authorization code of the card transaction, if card payment. example: '654321' type: string cardAlias: description: An Alias for the Credit Card, if card payment. example: FF0000 type: string cardLastDigits: description: Last four digits of the credit card number, if card payment. example: '4321' type: string cardType: description: Card prefix. e.g. AMEX, DISC, VISA, MC example: AMEX type: string cardholderName: description: The name of the Credit Card Holder, if card payment. example: John Doe type: string currency: description: This currency of this Payment example: USD type: string meta: $ref: '#/components/schemas/reporting-serviceMeta' origin: $ref: '#/components/schemas/reporting-serviceReference' paid: description: The amount paid in this Payment. Whole number by factor 100. example: 1000 format: int32 type: integer paymentType: description: The Type of this Payment. eg 'PAYMENT', 'TRANSFER'. example: PAYMENT type: string pmType: description: Payment Method. eg 'CASH', 'CARD' example: CASH type: string reference: $ref: '#/components/schemas/reporting-serviceReference' staffMember: $ref: '#/components/schemas/reporting-serviceStaff' tip: description: The tip given in this Payment. Whole number by factor 100. example: 100 format: int32 type: integer type: object reporting-servicePaymentSummary: description: Data of the response nullable: true properties: accountId: type: string accountName: type: string deviceName: type: string paymentId: type: string receiptId: type: string reference: type: string staffName: type: string type: object reporting-servicePaymentTypeAmount: description: Collected per payment type properties: amount: description: Amount rounded to 2 decimals format: double type: number paymentType: type: string type: object reporting-servicePaymentTypeTips: description: Tips per payment method properties: paymentType: type: string tipsAmount: description: Amount of tips rounded to 2 decimals format: double type: number type: object reporting-serviceProduct: properties: accountingGroup: description: Accounting group name type: string costAmountInCents: description: Cost amount in cents format: int64 type: integer discountedAmountInCents: description: Discounted amount in cents format: int64 type: integer discountedQuantity: description: Discounted quantities rounded to 2 decimals for fractional quantities format: double type: number id: description: Product ID type: string includedCount: description: Included lines count format: int64 type: integer lossAmountInCents: description: Loss amount in cents format: int64 type: integer lossQuantity: description: Loss quantities rounded to 2 decimals for fractional quantities format: double type: number marginGrossAmountInCents: description: Margin gross amount in cents format: int64 type: integer marginNetAmountInCents: description: Margin net amount in cents format: int64 type: integer name: description: Product name type: string netAmountInCents: description: Net amount in cents format: int64 type: integer offeredAmountInCents: description: Offered amount in cents format: int64 type: integer offeredQuantity: description: Offered quantities rounded to 2 decimals for fractional quantities format: double type: number returnedAmountInCents: description: Returned amount in cents format: int64 type: integer returnedQuantity: description: Returned quantities rounded to 2 decimals for fractional quantities format: double type: number sequenceItems: description: List of sequence items in this sequence product items: $ref: '#/components/schemas/reporting-serviceProductSequentialItem' type: array serviceChargeAmountInCents: description: Service charge amount in cents format: int64 type: integer soldInASequence: $ref: '#/components/schemas/reporting-serviceProductStatistics' soldIndividually: $ref: '#/components/schemas/reporting-serviceProductStatistics' statisticGroupCategory: description: Statistic group category type: string taxAmountInCents: description: Tax amount in cents format: int64 type: integer totalAmountInCents: description: Total gross amount in cents format: int64 type: integer totalQuantity: description: Total quantities rounded to 2 decimals for fractional quantities format: double type: number transactionGrossAmountInCents: description: Transaction gross amount in cents format: int64 type: integer transactionNetAmountInCents: description: Transaction net amount in cents format: int64 type: integer transactionQuantity: description: Transaction quantities rounded to 2 decimals for fractional quantities format: double type: number type: description: 'Product type: common product, sequence or no item transaction (created in back office)' enum: - ITEM - SEQUENCE - NO_ITEM - ITEM - SEQUENCE - NO_ITEM type: string zeroPricedQuantity: description: Zero priced quantities rounded to 2 decimals for fractional quantities format: double type: number type: object reporting-serviceProductGroupItem: properties: costAmountInCents: description: Cost amount in cents format: int64 type: integer discountedAmountInCents: description: Discounted amount in cents format: int64 type: integer discountedQuantity: description: Discounted quantities rounded to 2 decimals for fractional quantities format: double type: number id: type: string includedCount: description: Included lines count format: int64 type: integer lossAmountInCents: description: Loss amount in cents format: int64 type: integer lossQuantity: description: Loss quantities rounded to 2 decimals for fractional quantities format: double type: number marginGrossAmountInCents: description: Margin gross amount in cents format: int64 type: integer marginNetAmountInCents: description: Margin net amount in cents format: int64 type: integer name: description: Product name type: string netAmountInCents: description: Net amount in cents format: int64 type: integer offeredAmountInCents: description: Offered amount in cents format: int64 type: integer offeredQuantity: description: Offered quantities rounded to 2 decimals for fractional quantities format: double type: number returnedAmountInCents: description: Returned amount in cents format: int64 type: integer returnedQuantity: description: Returned quantities rounded to 2 decimals for fractional quantities format: double type: number serviceChargeAmountInCents: description: Service charge amount in cents format: int64 type: integer statisticGroupCategory: description: Statistic group category type: string taxAmountInCents: description: Tax amount in cents format: int64 type: integer totalAmountInCents: description: Total gross amount in cents format: int64 type: integer totalQuantity: description: Total quantities rounded to 2 decimals for fractional quantities format: double type: number transactionGrossAmountInCents: description: Transaction gross amount in cents format: int64 type: integer transactionNetAmountInCents: description: Transaction net amount in cents format: int64 type: integer transactionQuantity: description: Transaction quantities rounded to 2 decimals for fractional quantities format: double type: number zeroPricedQuantity: description: Zero priced quantities rounded to 2 decimals for fractional quantities format: double type: number type: object reporting-serviceProductSequentialItem: description: List of sequence items in this sequence product properties: id: description: Sequence item ID type: string name: description: Sequence item name type: string quantity: description: Sequence item sold quantity format: double type: number type: object reporting-serviceProductStatistics: description: Statistics about the item sequence sells (item sold as part of a sequence) properties: costAmountInCents: description: Cost amount in cents format: int64 type: integer discountedAmountInCents: description: Discounted amount in cents format: int64 type: integer discountedQuantity: description: Discounted quantities rounded to 2 decimals for fractional quantities format: double type: number includedCount: description: Included lines count format: int64 type: integer lossAmountInCents: description: Loss amount in cents format: int64 type: integer lossQuantity: description: Loss quantities rounded to 2 decimals for fractional quantities format: double type: number marginGrossAmountInCents: description: Margin gross amount in cents format: int64 type: integer marginNetAmountInCents: description: Margin net amount in cents format: int64 type: integer name: description: Product name type: string netAmountInCents: description: Net amount in cents format: int64 type: integer offeredAmountInCents: description: Offered amount in cents format: int64 type: integer offeredQuantity: description: Offered quantities rounded to 2 decimals for fractional quantities format: double type: number returnedAmountInCents: description: Returned amount in cents format: int64 type: integer returnedQuantity: description: Returned quantities rounded to 2 decimals for fractional quantities format: double type: number serviceChargeAmountInCents: description: Service charge amount in cents format: int64 type: integer statisticGroupCategory: description: Statistic group category type: string taxAmountInCents: description: Tax amount in cents format: int64 type: integer totalAmountInCents: description: Total gross amount in cents format: int64 type: integer totalQuantity: description: Total quantities rounded to 2 decimals for fractional quantities format: double type: number transactionGrossAmountInCents: description: Transaction gross amount in cents format: int64 type: integer transactionNetAmountInCents: description: Transaction net amount in cents format: int64 type: integer transactionQuantity: description: Transaction quantities rounded to 2 decimals for fractional quantities format: double type: number zeroPricedQuantity: description: Zero priced quantities rounded to 2 decimals for fractional quantities format: double type: number type: object reporting-serviceProducts: description: Data of the response nullable: true properties: products: items: $ref: '#/components/schemas/reporting-serviceProduct' type: array total: description: Total results format: int32 type: integer type: object reporting-serviceProductsGroups: description: Data of the response nullable: true properties: productGroups: items: $ref: '#/components/schemas/reporting-serviceProductGroupItem' type: array total: description: Total result format: int32 type: integer type: object reporting-serviceReference: description: The reference of the original Transaction. properties: accountId: description: Unique identifier of the Account. example: A12553.14 type: string lineId: description: Identifier of the Line. example: T14309.1 type: string type: object reporting-serviceSalesOverTime: description: Data of the response nullable: true properties: grossRevenueOverTime: items: $ref: '#/components/schemas/reporting-serviceComparableAmountOverTime' type: array interval: description: interval used to split data enum: - MONTH - DAY - HOUR type: string type: object reporting-serviceSalesOverview: description: Data of the response nullable: true properties: grossTotal: $ref: '#/components/schemas/reporting-serviceComparableAmount' netTotal: $ref: '#/components/schemas/reporting-serviceComparableAmount' openReceipts: $ref: '#/components/schemas/reporting-serviceComparableCount' receipts: $ref: '#/components/schemas/reporting-serviceComparableCount' taxTotal: $ref: '#/components/schemas/reporting-serviceComparableAmount' type: object reporting-serviceSession: description: Data of the response nullable: true properties: closeDate: description: Close time of the session in UTC example: '2020-01-01T18:00:00Z' type: string openDate: description: Open time of the session in UTC example: '2020-01-01T17:00:00Z' type: string sessionDuration: description: Duration of the session in minutes example: 1175 format: int64 type: integer sessionUUID: description: Unique identifier of the session example: NA22x8xVS8Cs0n7rbCgi3A== type: string staff: $ref: '#/components/schemas/reporting-serviceStaff' type: object reporting-serviceShiftPerformanceWidgetRowDto: properties: grossSalesInCents: $ref: '#/components/schemas/reporting-serviceTaxableAmountDto' name: type: string netSalesInCents: $ref: '#/components/schemas/reporting-serviceTaxableAmountDto' type: object reporting-serviceStaff: description: Object describing the Staff Member. properties: firstName: description: The first name of the Staff Member. example: Joe type: string groupId: description: The Job Title Id of the Staff Member. example: '12345' type: string groupName: description: The Group Name is the Job Title of the Staff Member. example: SALES type: string lastName: description: The last name of the Staff Member. example: Bloggs type: string name: description: The USERNAME of the Staff Member. example: FranDonn type: string objId: description: The Identifier of the Staff Member. example: '12405' type: string type: object reporting-serviceTaxableAmountDto: properties: grossAmountInCents: format: int64 type: integer netAmountInCents: format: int64 type: integer type: object reporting-serviceTransaction: description: Contains transaction information relating to the account properties: accountDiscount: $ref: '#/components/schemas/reporting-serviceDiscount' item: $ref: '#/components/schemas/reporting-serviceItem' lineDiscount: $ref: '#/components/schemas/reporting-serviceDiscount' meta: $ref: '#/components/schemas/reporting-serviceMeta' origin: $ref: '#/components/schemas/reporting-serviceReference' reference: $ref: '#/components/schemas/reporting-serviceReference' staffMember: $ref: '#/components/schemas/reporting-serviceStaff' trxOrigin: description: The origin of this Transaction. example: NORMAL type: string voidDetail: $ref: '#/components/schemas/reporting-serviceVoidDetail' type: object reporting-serviceVoidDetail: description: Object describing the void if this Transaction was voided. properties: absoluteTotal: description: Financial amount voided. Whole number by factor 100 example: 1000 format: int32 type: integer description: description: The reason this item was voided. example: Broken type: string reasonId: description: The reason id this item was voided. example: '171102907138062' type: string staffMember: $ref: '#/components/schemas/reporting-serviceStaff' type: object reporting-serviceEntity: type: object properties: id: type: string name: type: string reporting-serviceEsAuditDto: type: object properties: fiscalDate: type: string format: date-time sod: type: string format: date-time eventName: type: string staff: $ref: '#/components/schemas/reporting-serviceEntity' device: $ref: '#/components/schemas/reporting-serviceEntity' details: type: object additionalProperties: type: string description: Data of the response reporting-serviceGiftCardStats: type: object properties: executionTimeInMs: description: Time taken by elasticsearch to execute the query format: int32 type: integer timedOut: description: if the ES query request timed out type: boolean refills: $ref: '#/components/schemas/reporting-serviceAggregatedStatResultDto' refillsPaymentBreakdown: description: Payment methods usage breakdown to refill gift cards items: $ref: '#/components/schemas/reporting-serviceAggregatedBucketDto' type: array totalCaNet: description: Total payments made during the requested time type: number format: double caAggregationByInterval: description: CA aggregation buckets by interval items: $ref: '#/components/schemas/reporting-serviceAggregatedBucketDto' type: array tips: $ref: '#/components/schemas/reporting-serviceAggregatedStatResultDto' withdrawals: $ref: '#/components/schemas/reporting-serviceAggregatedStatResultDto' reporting-serviceAggregatedStatResultDto: properties: docCount: description: Document count for this bucket format: int64 type: integer aggregationByInterval: description: Stat aggregation bucket by interval items: $ref: '#/components/schemas/reporting-serviceAggregatedBucketDto' type: array sum: description: Aggregated sum overall type: number format: double avg: description: Aggregated avg overall type: number format: double type: object reporting-serviceAggregatedBucketDto: properties: keyAsString: description: Contains timestamp as specified in the ES query type: string key: description: Contains aggregation key, mostly epoch time in millis type: string docCount: description: Document count for this bucket format: int64 type: integer amount: description: Aggregated value e.g sum/avg. Mostly amount for an interval type: number format: double type: object reporting-serviceConsumerReceiptStatsResponseDto: type: object reservation-serviceAccount: properties: accountNumber: description: The unique identifier of the account (order). example: A833754.74 type: string accountObjectId: description: The internal identifier of the table. example: '25769805453' type: string deprecated: true accountProfileCode: description: The code of the [account (order) profile](https://api-docs.lsk.lightspeed.app/operation/operation-reservationordernotification#operation-reservationordernotification-body-application-json-account-accountprofilecode) associated with this order.