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.
See the [order profiles](https://api-portal.lsk.lightspeed.app/guides/definitions/order-profiles) definition for more details. example: zoneB type: string accountProfileId: description: The unique identifier 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. example: '25769805764' type: string accountProfileName: description: The name 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. example: Livraison Zone B type: string businessLocationId: description: The unique identifier of the business location. example: '9765040300495493' type: string closeDate: description: The timestamp of when transaction was completed, in milliseconds. example: 1694083785354 format: int64 nullable: true type: integer consumerRecord: $ref: '#/components/schemas/reservation-serviceConsumerRecord' coverCount: description: The number of covers associated with the transaction. example: 2 format: int64 type: integer currencyCode: description: The ISO-4217 3 letter currency code. example: EUR type: string currentProductionPhase: description: The active course. Starts with 0. example: 0 format: int32 type: integer discounts: items: $ref: '#/components/schemas/reservation-serviceDiscount' type: array externalReferences: description: The unique identifiers of this transaction provided by 3rd parties or the K-Series backend. items: $ref: '#/components/schemas/reservation-serviceExternalReference' type: array gratuityAmount: description: The tip amount. example: 20 type: number id: description: Legacy account identifier created by the POS (for backwards compatibility). example: '21474836499' type: string deprecated: true latestExternalReferences: items: $ref: '#/components/schemas/reservation-serviceExternalReference' type: array name: description: The name of the transaction or tab. example: Floor 1, Table 2 type: string offset: description: The UTC Offset of the location, in minutes. example: 240 format: int32 type: integer orderMode: description: "Order mode of the transaction:\n* DIRECT – Retail-like direct sale, no table associated\n* TABLE – Table based order / sale\n* DELIVERY – Retail-like delivery or take-away sale, no table associated\n* LOCAL_ORDER – Sale generated by a local order system (e.g. drink dispenser)\n* ONLINE – Sale generated by a remote order system (e.g. a web site)\n* SYSTEM – Used for transfer operations between payment methods\n* ON_HOLD – Direct Sale that is currently put on hold (parked), resumed at a later time\n* CROSS_BL – Cross business location order\n" example: ONLINE type: string enum: - DIRECT - TABLE - DELIVERY - LOCAL_ORDER - ONLINE - SYSTEM - OTHER - ON_HOLD - CROSS_BL - BAR_TAB openDate: description: The timestamp of when transaction was started, in milliseconds. example: 1694083785354 format: int64 type: integer originAccountId: description: Legacy reference identifier of origin account created by the POS (for backwards compatibility). example: 21474836579 format: int64 nullable: true type: integer originAccountNumber: description: A unique identifier of an account, used to identify sales transactions. example: A1.5 nullable: true type: string paidAmount: description: The amount paid. example: 45 type: number paymentLines: items: $ref: '#/components/schemas/reservation-servicePaymentLine' type: array preTaxAmount: description: The amount before tax. example: 201.78 type: number receiptNumber: description: The unique identifier of the final transaction. example: R1.2 type: string serviceCharge: description: The sum of all surcharges applied to the transaction. example: 34.2 type: number staffId: description: The unique identifier of staff member who created/started and owns the transaction. example: '13' type: string staffName: description: The name of staff member who created/started and owns the transaction. example: Manager type: string tableName: description: The name of the table. example: Table 112 type: string deprecated: true tableNumber: description: Integer number of the table. example: 112 type: number deprecated: true tables: description: List of table names (codes) associated with this order example: - '112' - 112A type: array items: type: string taxAmount: description: The total amount of tax. example: 14.12 type: number totalAmount: description: The total amount of the receipt. example: 30 type: number totalDiscount: description: The applied discount rate, as a percentage. example: 0.9 type: number transactionLines: items: $ref: '#/components/schemas/reservation-serviceTransactionLine' type: array type: description: The sale line type. example: SALE type: string updateDate: description: The timestamp of when the complete update was finalized at the POS, in milliseconds. example: 1694083819623 format: int64 type: integer type: object reservation-serviceBackofficeIntegrationCourses: additionalProperties: items: type: string type: array example: dessert: - brownie mainDishes: - meat - schnitzel starterDishes: - cheese - salad type: object reservation-serviceBackofficeIntegrationDetails: required: - platformCode - platformRestaurantId - platformDepositSupported - platformOnboardingSupported - platformActivationSupported - platformDeactivationSupported - activatedAt properties: activatedAt: description: The date-time when the integration was activated. example: '2024-01-01T20:00:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" courses: $ref: '#/components/schemas/reservation-serviceBackofficeIntegrationCourses' platformActivationSupported: $ref: '#/components/schemas/reservation-servicePlatformActivationSupported' platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformDeactivationSupported: $ref: '#/components/schemas/reservation-servicePlatformDeactivationSupported' platformDepositSupported: $ref: '#/components/schemas/reservation-servicePlatformDepositSupported' platformDisplayName: $ref: '#/components/schemas/reservation-servicePlatformDisplayName' platformOnboardingSupported: $ref: '#/components/schemas/reservation-servicePlatformOnboardingSupported' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' settings: $ref: '#/components/schemas/reservation-serviceBackofficeIntegrationSettings' type: object reservation-serviceBackofficeIntegrationSettings: properties: allowWalkIn: description: Allow order creation for walk-in guests. example: true type: boolean orderAutoCreation: description: Allow order creation for reservation with 'seated' state. example: true type: boolean multiTableSupport: description: Create linked POS orders for multi-table reservations (default true). example: true default: true type: boolean required: - allowWalkIn - orderAutoCreation type: object reservation-serviceBackofficePlatformRestaurantSettings: properties: platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' settings: $ref: '#/components/schemas/reservation-serviceBackofficeIntegrationSettings' required: - platformCode - platformRestaurantId - settings type: object reservation-serviceBackofficeOnboardingCode: description: The onboarding code of current integration process. enum: - PENDING - EXPIRED - ERROR example: PENDING type: string reservation-serviceBackofficeOnboardingConfig: properties: onboardingCode: $ref: '#/components/schemas/reservation-serviceBackofficeOnboardingCode' onboardingId: $ref: '#/components/schemas/reservation-serviceOnboardingId' platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformDisplayName: $ref: '#/components/schemas/reservation-servicePlatformDisplayName' platformRestaurantReference: $ref: '#/components/schemas/reservation-servicePlatformRestaurantReference' startedAt: description: The date and time in UTC when the onboarding was created. example: '2024-01-01T20:00:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" required: - platformCode - onboardingId - onboardingCode - startedAt - platformRestaurantReference type: object reservation-serviceBackofficePlatformProfile: required: - platformCode - platformActivationSupported - platformDeactivationSupported - platformDepositSupported - platformOnboardingSupported properties: platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformActivationSupported: $ref: '#/components/schemas/reservation-servicePlatformActivationSupported' platformDeactivationSupported: $ref: '#/components/schemas/reservation-servicePlatformDeactivationSupported' platformDepositSupported: $ref: '#/components/schemas/reservation-servicePlatformDepositSupported' platformDisplayName: $ref: '#/components/schemas/reservation-servicePlatformDisplayName' platformOnboardingSupported: $ref: '#/components/schemas/reservation-servicePlatformOnboardingSupported' type: object reservation-serviceBackofficeReservationDto: description: Reservation details for Backoffice. properties: businessLocationId: $ref: '#/components/schemas/reservation-serviceBusinessLocationId' guest: properties: firstName: description: First name of the guest. example: John type: string lastName: description: Last name of the guest. example: Doe type: string required: - firstName - lastName type: object liability: $ref: '#/components/schemas/reservation-serviceBackofficeLiabilityDto' notes: description: Additional information about the reservation. example: Table near the window type: string partySize: description: Number of guests in the reservation. example: 2 format: int32 type: integer platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformReservationId: $ref: '#/components/schemas/reservation-servicePlatformReservationId' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' sentToPos: description: If `true`, the reservation was sent to the POS. example: true type: boolean status: $ref: '#/components/schemas/reservation-serviceStatus' tableNumbers: description: List of table numbers. The table numbers are unique within the business location. example: - '1' items: type: string type: array utcDepartedAt: description: Date and time in UTC when the reservation departed. example: '2024-07-26T16:26:29Z' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" utcScheduledAt: description: Date and time in UTC when the reservation was scheduled. example: '2024-07-26T16:26:29Z' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" utcSeatedAt: description: Date and time in UTC when the reservation was seated. example: '2024-07-26T16:26:29Z' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" utcUpdatedAt: description: Date and time in UTC when the reservation was updated. example: '2024-07-26T16:26:29Z' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" required: - platformCode - platformRestaurantId - platformReservationId - businessLocationId - status - partySize - tableNumbers - sentToPos - utcScheduledAt type: object reservation-serviceBackofficeReservationSettings: properties: deviceIds: description: IDs of the devices enabled for reservations. example: - 12 - 34 items: format: int64 type: integer type: array staffId: description: The unique identifier of the staff member that will be used for reservations. example: 123456 format: int64 type: integer tagId: description: The unique identifier of the tag that will be used for reservations. example: 123456 format: int64 type: integer useDefaultOrderProfile: description: If `true`, the system will use the same order profile assignment logic as for orders opened on the POS. example: true type: boolean required: - staffId - deviceIds - useDefaultOrderProfile type: object reservation-serviceBusinessLocationId: description: The unique identifier of the business location. example: 9765040300495493 format: int64 type: integer reservation-serviceBusinessId: description: The unique identifier of the business. example: 9765040300495493 format: int64 type: integer reservation-serviceCategory: description: A list of the reporting categories in which the sale is to be aggregated. properties: category: description: The reporting category name. example: default type: string value: description: The reporting category value. example: Misc type: string type: object reservation-serviceConfiguration: properties: id: format: int64 type: integer name: type: string type: object reservation-serviceCheckId: properties: check_ids: items: type: string type: array type: object reservation-serviceConsumer: nullable: true properties: emailAddress: example: napoleon@bonapart.fr type: string id: example: '111466' type: string type: object reservation-serviceConsumerRecord: nullable: true properties: consumer: $ref: '#/components/schemas/reservation-serviceConsumer' consumerRecordUUID: example: 8649450c-5c10-4e63-8461-12bbf5a51cbc format: uuid type: string contactInformation: $ref: '#/components/schemas/reservation-serviceContactInfo' externalReferences: description: The external reservation system's unique identifier for the consumer. items: $ref: '#/components/schemas/reservation-serviceExternalConsumerRecord' type: array id: example: '36577' type: string type: object reservation-serviceContactInfo: properties: city: example: Paris type: string companyName: example: Non type: string emailReceipts: description: Whether or not email notifications are enabled. example: false type: boolean firstName: example: Alexandr type: string fullName: description: Combines `firstName` and `lastName`. example: Alexandr Pushkin type: string lastName: example: Pushkin type: string taxIdentifier: example: '23142342134' type: string type: object reservation-serviceDevPortalIntegrationDto: properties: activatedAt: format: date-time type: string activatedCount: format: int32 type: integer deactivatedAt: format: date-time type: string locationId: format: int64 type: integer platformRestaurantId: type: string type: object reservation-serviceDevPortalPlatformDto: properties: baseUrl: type: string format: uri createdAt: format: date-time type: string depositSupported: type: boolean displayName: type: string errorsWebhookUrl: type: string format: uri integrationWebhookUrl: type: string format: uri notificationTypes: items: enum: - ORDER_OPENED - ORDER_UPDATED - ORDER_CLOSED - ONBOARDING_STARTED - INTEGRATION_ACTIVATED - INTEGRATION_DEACTIVATED - POS_RESERVATION_UPDATED - ERROR type: string type: array onboardingWebhookUrl: type: string format: uri orderWebhookUrl: type: string format: uri ownNotificationsOnly: type: boolean platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' posReservationUpdateWebhookUrl: type: string format: uri webhookAuthType: enum: - BASIC_AUTH - BEARER_TOKEN - API_KEYS - OAUTH2 - NONE type: string allowedPosStatuses: type: array items: $ref: '#/components/schemas/reservation-servicePlatformReservationStatus' type: object required: - platformCode - createdAt - depositSupported - ownNotificationsOnly - notificationTypes reservation-serviceDiscount: properties: code: description: The discount code. example: test_discount type: string description: description: The name of the discount. example: test discount description type: string id: description: The unique identifier of the discount. example: '197568495841' type: string rate: description: The discount rate. example: 0.9 type: number taxFree: description: Indicates if the discount is considered tax free. example: false type: boolean type: object reservation-serviceEntityType: description: The type of entity with which the error occurred. enum: - business-location - general - platform-profile - platform-restaurant - platform-reservation example: platform-reservation type: string reservation-serviceErrorCode: description: A code that describes the reason for the error. enum: - PLATFORM_NOT_FOUND - URL_MUST_START_WITH_HTTPS - BEARER_AUTH_TTL_IS_EXPIRED - BASIC_AUTH_FIELDS_CAN_NOT_BE_EMPTY - BEARER_AUTH_FIELDS_CAN_NOT_BE_EMPTY - API_KEY_AUTH_FIELDS_CAN_NOT_BE_EMPTY - OAUTH_FIELDS_CAN_NOT_BE_EMPTY - RESTAURANT_PROPERTIES_REQUIRED - RESTAURANT_PROPERTIES_INVALID - RESTAURANT_PROPERTIES_EXPIRED - INTEGRATION_LOCATION_ID_MISMATCH - PLATFORM_ALREADY_ACTIVATED - CURRENCY_NOT_ACCEPTABLE - PLATFORM_FIELDS_CAN_NOT_BE_EMPTY - PLATFORM_CODE_TOO_MANY_SYMBOLS - REQUESTED_TABLE_IS_UNAVAILABLE - PLATFORM_RESTAURANT_NOT_FOUND - PLATFORM_PROPERTIES_INVALID - PLATFORM_PROPERTIES_DUPLICATION - RESERVATION_FIELDS_CAN_NOT_BE_EMPTY - RESERVATION_ID_TOO_MANY_SYMBOLS - RESERVATION_PARTY_SIZE_ERROR - RESERVATION_SEQUENCE_ID_ERROR - RESERVATION_PROPERTIES_INVALID - GUEST_URL_UNREACHABLE - GUEST_PROPERTIES_INVALID - GUEST_FIELDS_CAN_NOT_BE_EMPTY - VOIDED_DEPOSIT_CAN_NOT_BE_FUNDED_AGAIN - DEPOSIT_AMOUNT_CAN_NOT_BE_CHANGED - DEPOSIT_UNACCEPTABLE_AMOUNT - DEPOSIT_ID_MUST_BE_UNIQUE - VOIDED_REFUND_CAN_NOT_BE_REFUNDED_AGAIN - REFUND_AMOUNT_CAN_NOT_BE_CHANGED - REFUND_ID_MUST_BE_UNIQUE - REFUND_UNACCEPTABLE_AMOUNT - CURRENCY_CAN_NOT_BE_CHANGED - TOO_MANY_DEPOSITS - TOO_MANY_REFUNDS - TOO_MANY_INTEGRATIONS_WITH_PLATFORM - INTERNAL_ERROR - ACCOUNT_CREATION_ERROR - CLIENT_REQUEST_ERROR - INTEGRATION_ONBOARDING_PROPERTIES_INVALID - INTEGRATION_ONBOARDING_NOTIFICATION_FAILED example: REQUESTED_TABLE_IS_UNAVAILABLE type: string reservation-serviceErrorWebhook: properties: entityType: $ref: '#/components/schemas/reservation-serviceEntityType' errorCode: $ref: '#/components/schemas/reservation-serviceErrorCode' errorMessage: description: Error description. example: Incorrect properties type: string errorProperties: description: The list of request properties that are incorrect. items: example: tableNumbers type: string type: array httpCode: description: The [code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) of http error (4xx, 5xx) response. example: 400 format: int32 type: integer platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformReservationId: $ref: '#/components/schemas/reservation-servicePlatformReservationId' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' traceId: description: Unique identifier of the issue. example: b43f8e3e-5ac9-464e-ab34-20b4e137115e type: string required: - errorMessage - traceId - httpCode - entityType - errorCode type: object reservation-serviceExternalConsumerRecord: description: The external reservation system's unique identifier for the consumer. properties: key: description: An identifier for the external reservation system. example: open-table-api-client type: string reference: example: OO.11.opentable-anonymous type: string type: object reservation-serviceExternalReference: description: The unique identifier of this transaction provided by 3rd parties or the K-Series backend. properties: prefix: example: TASK type: string reference: example: RN-197568495618-reservation_id_123213126 type: string type: object reservation-serviceForkCustomerDto: required: - allergies - civility - dietaryRestrictions - firstName - id - lastName - note type: object properties: id: type: string civility: type: string firstName: type: string lastName: type: string allergies: type: array items: type: string dietaryRestrictions: type: array items: type: string note: type: string reservation-serviceForkOfferDto: required: - name - presetMenuType - type type: object properties: type: type: string name: type: string discountPercentage: type: integer format: int32 presetMenuType: type: string price: type: number currency: type: string reservation-serviceForkPrepaymentDto: required: - amount - currency type: object properties: amount: type: integer format: int32 currency: type: string reservation-serviceForkTableDto: required: - areaName - name type: object properties: name: type: string areaName: type: string reservation-servicePlatform: type: object properties: platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' restaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' allowedStatusTransitions: type: object additionalProperties: type: array items: $ref: '#/components/schemas/reservation-serviceStatus' example: ON_HOLD: - SCHEDULED - PARTIALLY_ARRIVED - ARRIVED - PARTIALLY_SEATED - SEATED - CANCELLED - NO_SHOW - DEPARTED SCHEDULED: - PARTIALLY_ARRIVED - ARRIVED - PARTIALLY_SEATED - SEATED - CANCELLED - NO_SHOW - DEPARTED CANCELLED: [] NO_SHOW: [] PARTIALLY_ARRIVED: - ARRIVED - PARTIALLY_SEATED - SEATED - CANCELLED - NO_SHOW - DEPARTED ARRIVED: - PARTIALLY_SEATED - SEATED - CANCELLED - NO_SHOW - DEPARTED PARTIALLY_SEATED: - SEATED SEATED: [] PAID: - DEPARTED DEPARTED: [] showNextBestAction: type: boolean description: should POS suggest next best action for this platform reservation-serviceIntegrationOnboardingDto: properties: onboardingCode: enum: - PENDING - ERROR - EXPIRED type: string onboardingId: type: string platformCode: type: string platformDisplayName: type: string platformRestaurantReference: type: string startedAt: format: date-time type: string type: object reservation-serviceIntegrationWebhook: properties: businessLocationId: $ref: '#/components/schemas/reservation-serviceBusinessLocationId' notificationType: description: The type of notification. enum: - ACTIVATED - DEACTIVATED type: string platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' required: - notificationType - platformCode - businessLocationId - platformRestaurantId type: object reservation-serviceLiability: description: The guest's obligation for the reservation. properties: currency: description: ISO-4217 example: EUR pattern: '[A-Z]{3}' type: string deposits: description: List of all prepaid deposits made through the external platform. items: properties: amount: description: The amount of the deposit made through the external platform. example: '100.00' pattern: ^[0-9]+.[0-9]{2}$ type: string platformDepositId: description: The external platform's unique identifier for the deposit. example: '1' pattern: '[a-zA-Z0-9_-]+' type: string utcCreatedAt: description: Deposit creation time. example: '2024-01-01T20:00:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" utcVoidedAt: description: Deposit void time, if applicable. example: '2024-01-01T20:00:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" voided: description: Whether or not the deposit was voided. example: false type: boolean required: - amount - utcCreatedAt type: object type: array uniqueItems: true refunds: description: List of all deposits refunded to the guest. items: properties: amount: description: The amount which was refunded by the external platform. example: '100.00' pattern: ^[0-9]+.[0-9]{2}$ type: string platformRefundId: description: The external platform's unique identifier for the refund. example: '1' pattern: '[a-zA-Z0-9_-]+' type: string utcCreatedAt: description: Refund creation time. example: '2024-01-01T20:00:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" utcVoidedAt: description: Refund void time, if applicable. example: '2024-01-01T20:00:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" voided: description: Whether or not the refund was voided. example: false type: boolean required: - amount - utcCreatedAt type: object type: array uniqueItems: true required: - currency - deposits type: object reservation-serviceBackofficeDepositDto: required: - amount - cents - createdAt - depositId - status type: object properties: depositId: type: string status: type: string enum: - FUNDED - VOIDED - FAILED amount: type: integer format: int32 cents: type: integer format: int32 createdAt: type: string format: date-time voidedAt: type: string format: date-time reservation-serviceBackofficeLiabilityDto: description: The guest's obligation for this reservation. required: - currency - deposits - refunds type: object properties: currency: description: ISO-4217 based currency code. type: string enum: - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BOV - BRL - BSD - BTN - BWP - BYN - BZD - CAD - CDF - CHE - CHF - CHW - CLF - CLP - COP - COU - CRC - CUP - CVE - CZK - DJF - DKK - DOP - DZD - EGP - ERN - ETB - EUR - FJD - FKP - GBP - GEL - GHS - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HTG - HUF - IDR - ILS - INR - IQD - IRR - ISK - JMD - JOD - JPY - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MRU - MUR - MVR - MWK - MXN - MXV - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - RON - RSD - CNY - RUB - RWF - SAR - SBD - SCR - SDG - SEK - SGD - SHP - SLE - SLL - SOS - SRD - SSP - STN - SVC - SYP - SZL - THB - TJS - TMT - TND - TOP - TRY - TTD - TWD - TZS - UAH - UGX - USD - USN - UYI - UYU - UYW - UZS - VED - VES - VND - VUV - WST - XAF - XAG - XAU - XBA - XBB - XBC - XBD - XCD - XDR - XOF - XPD - XPF - XPT - XSU - XTS - XUA - XXX - YER - ZAR - ZMW - ZWL - UNKNOWN_CURRENCY deposits: description: Deposits assigned to the reservation. type: array items: $ref: '#/components/schemas/reservation-serviceBackofficeDepositDto' refunds: description: Refunds assigned to the reservation. type: array items: $ref: '#/components/schemas/reservation-serviceBackofficeRefundDto' reservation-serviceBackofficeRefundDto: required: - amount - cents - createdAt - refundId - status type: object properties: refundId: type: string status: type: string enum: - REFUNDED - VOIDED - FAILED amount: type: integer format: int32 cents: type: integer format: int32 createdAt: type: string format: date-time voidedAt: type: string format: date-time reservation-serviceMenu: properties: configurations: items: $ref: '#/components/schemas/reservation-serviceConfiguration' type: array id: format: int64 type: integer name: type: string owner: $ref: '#/components/schemas/reservation-serviceParentLocation' webExtensionButton: $ref: '#/components/schemas/reservation-serviceWebExtensionButton' type: object reservation-serviceModifier: description: A production instruction entered for a line. properties: name: description: Line text. example: Milch type: string quantity: description: Line quantity. example: 1 format: int64 type: integer type: object reservation-serviceOpenTableDepositDto: properties: currency: type: string currencyDenominator: format: int32 type: integer status: type: string totalPaid: format: int64 type: integer totalPrice: format: int64 type: integer totalRefunded: format: int64 type: integer type: object reservation-serviceOnboardingCallbackRequest: properties: businessLocationId: $ref: '#/components/schemas/reservation-serviceBusinessLocationId' onboardingCode: $ref: '#/components/schemas/reservation-serviceOnboardingCode' onboardingId: $ref: '#/components/schemas/reservation-serviceOnboardingId' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' required: - onboardingId - onboardingCode - platformRestaurantId - businessLocationId type: object reservation-serviceOnboardingCallbackResponse: properties: onboardingCode: $ref: '#/components/schemas/reservation-serviceOnboardingCode' required: - onboardingCode type: object reservation-serviceOnboardingCode: description: The machine code to interact with the external platform during the onboarding process. enum: - ACCEPTED - DONE - ONBOARDING_EXPIRED - ONBOARDING_ID_NOT_VALID - PLATFORM_CODE_NOT_VALID - BUSINESS_LOCATION_NOT_VALID - PLATFORM_RESTAURANT_NOT_VALID - PLATFORM_RESTAURANT_NOT_FOUND - UNEXPECTED_ERROR example: DONE type: string reservation-serviceOnboardingId: description: The unique identifier of the integration process that has started onboarding. example: 84f16177-98c5-4010-a7ab-d00144d1dede type: string reservation-serviceOnboardingWebhook: properties: businessInformation: properties: businessLocationId: $ref: '#/components/schemas/reservation-serviceBusinessLocationId' city: description: The city of the company. example: Genève type: string country: description: The country code of the company. example: CH type: string name: description: The company name in Lightspeed Backoffice. example: Le Gâteau type: string state: description: The state of the company. example: Canton de Genève type: string street1: description: The primary street of the company. example: Rue de la Servette 10 type: string street2: description: The secondary street of the company. example: Suite 2 type: string zip: description: The zip code of the company. example: '101201' type: string required: - businessLocationId - name type: object epochSecondsDeadlineUtc: description: The epoch time in seconds until which the onboarding process remains active. example: 1711628625 format: int64 type: integer onboardingId: $ref: '#/components/schemas/reservation-serviceOnboardingId' platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformRestaurantReference: $ref: '#/components/schemas/reservation-servicePlatformRestaurantReference' required: - platformCode - platformRestaurantReference - onboardingId - epochSecondsDeadlineUtc - businessInformation type: object reservation-serviceParentLocation: properties: id: format: int64 type: integer name: type: string type: object reservation-servicePaymentLine: properties: accountId: description: Legacy account identifier created by the POS (supplied because older API provides it to 3rd parties). example: '21474836499' type: string amount: description: Amount given by the customer to settle the transaction. example: 45 type: number currencyCode: description: An ISO-4217 3 letter currency code example: GBP type: string date: description: Timestamp in ms of the moment when the line was registered. by the user example: 1694084890294 format: int64 type: integer gratuityAmount: description: Amount of tip given by the customer using the payment method. example: 50 type: number id: description: Legacy line identifier created by the POS (supplied because older API provides it to 3rd parties). example: 21474836506 format: int64 type: integer paymentMethod: description: Short code of the payment method the customer used to settle the transaction. example: IKGIFT type: string paymentMethodDescription: description: Name of the payment method used. example: Geschenkkarte type: string type: object reservation-servicePlatformAPIKeysWebhook: description: The API keys that will be sent with the webhook notifications. See [API Keys](https://swagger.io/docs/specification/authentication/api-keys/). properties: headers: additionalProperties: description: Key-value pairs of arbitrary static headers to send with the webhook request. type: string example: *id012 type: object parameters: additionalProperties: description: Key-value pairs of arbitrary static query parameters to send with the webhook request. type: string example: *id013 type: object type: object reservation-servicePlatformActivationSupported: description: Whether or not the platform supports activations. example: true type: boolean reservation-servicePlatformBasicAuthWebhook: description: The basic authentication credentials that will be sent with the webhook notifications. See [Basic Authentication](https://swagger.io/docs/specification/authentication/basic-authentication/). properties: password: description: The basic auth password. example: Example-Password format: password type: string username: description: The basic auth username. example: LightspeedKSeries type: string required: - username - password type: object reservation-servicePlatformBearerTokenWebhook: description: The bearer token that will be sent with the webhook notifications. See [Bearer Authentication](https://swagger.io/docs/specification/authentication/bearer-authentication/). properties: token: description: The bearer token. example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... format: password type: string ttl: description: Token expiration time in UTC. example: '2035-01-01T00:00:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" required: - token type: object reservation-servicePlatformBusinessLocation: properties: businessLocationId: description: The unique identifier of the business location. type: string city: description: The business location's city. type: string country: description: The business location's country. type: string name: description: The business location's name. type: string state: description: The business location's state. type: string street1: description: The first line of the business location's street address. type: string street2: description: The second line of the business location's street address. type: string zip: description: The business location's postal code. type: string required: - businessLocationId type: object reservation-servicePlatformCode: description: The unique code assigned to the reservation platform. example: MyPlatform maxLength: 11 pattern: '[a-zA-Z0-9_-]+' type: string reservation-servicePlatformDeactivationSupported: description: Whether or not the platform supports deactivations. example: true type: boolean reservation-servicePlatformDepositSupported: description: Whether or not the platform supports deposits. example: true type: boolean reservation-servicePlatformDisplayName: description: The official platform name that will be displayed. example: My Platform type: string reservation-servicePlatformIntegrationDto: properties: businessLocationId: $ref: '#/components/schemas/reservation-serviceBusinessLocationId' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' required: - businessLocationId - platformRestaurantId type: object reservation-servicePlatformOAuth2Webhook: description: The OAuth2 credentials that will be sent with the webhook notifications. See [OAuth 2.0](https://oauth.net/2/). properties: authorizationGrantType: default: CLIENT_CREDENTIALS description: The authorization grant type. See [OAuth2 Grant Types](https://oauth.net/2/grant-types/). enum: - CLIENT_CREDENTIALS example: CLIENT_CREDENTIALS type: string clientAuthorizationMethod: default: CLIENT_SECRET_BASIC description: The client authorization method. See [OAuth2 Client Authentication](https://oauth.net/2/client-authentication/). enum: - CLIENT_SECRET_BASIC - CLIENT_SECRET_JWT - CLIENT_SECRET_POST example: CLIENT_SECRET_BASIC type: string clientId: description: The OAuth2 client ID. example: LightspeedKSeries type: string clientName: description: The OAuth2 client name. example: LightspeedKSeries type: string clientSecret: description: The OAuth2 client secret. example: Example-Client-Secret format: password type: string providerJwkSetUri: description: The external platform URL for getting public keys to verify given access tokens on the K-Series side. example: https://my.platform/public-keys format: uri type: string providerTokenUri: description: The external platform URL for getting access tokens by private credentials. example: https://my.platform/emitter/token format: uri type: string scopes: description: The scopes being granted to the API client. example: *id014 items: type: string type: array uniqueItems: true required: - clientId - clientSecret - providerTokenUri type: object reservation-servicePlatformOnboardingSupported: description: Whether or not the platform supports onboarding. example: true type: boolean reservation-servicePlatformProfile: properties: baseUrl: description: The base URL of the external platform (optional). example: https://my.platform/api/lsk format: uri type: string depositSupported: $ref: '#/components/schemas/reservation-servicePlatformDepositSupported' displayName: $ref: '#/components/schemas/reservation-servicePlatformDisplayName' errorsWebhookUrl: description: "The URL where notifications for any issues will be sent.
Required for [`error` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Get Sample Error notification](https://api-docs.lsk.lightspeed.app/operation/operation-reservationErrorNotification).\n" example: https://my.platform/api/lsk/webhook/errors type: string format: uri integrationWebhookUrl: description: "The URL where notifications for activation or deactivation of the customer's integration will be sent.
Required for [`integration` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Integration notification](https://api-docs.lsk.lightspeed.app/operation/operation-reservationintegrationnotification).\n" example: https://my.platform/api/lsk/webhook/integrations type: string format: uri notificationTypes: description: The events that trigger a notification. example: *id018 items: type: string enum: - ORDER_OPENED - ORDER_UPDATED - ORDER_CLOSED - ONBOARDING_STARTED - INTEGRATION_ACTIVATED - INTEGRATION_DEACTIVATED - POS_RESERVATION_UPDATED - ERROR type: array uniqueItems: true onboardingWebhookUrl: description: "The URL where notifications for the customer's integration onboarding will be sent.
Required for [`onboarding` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Onboarding notification](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservationonboardingnotification).\n" example: https://my.platform/api/lsk/webhook/onboarding type: string format: uri orderWebhookUrl: description: "The URL where order notifications will be sent.
Required for [`order` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Order Notification](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservationordernotification).\n" example: https://my.platform/api/lsk/webhook/orders type: string format: uri posReservationUpdateWebhookUrl: description: The URL where notifications about reservation changes on POS will be sent. type: string format: uri example: https://my.platform/api/lsk/webhook/reservation ownNotificationsOnly: description: When `true`, notifications will only be sent for orders linked to the reservation platform. example: true type: boolean webhookAuthDetails: description: The authentication credentials to be sent with the webhook notifications. properties: apiKeys: $ref: '#/components/schemas/reservation-servicePlatformAPIKeysWebhook' basic: $ref: '#/components/schemas/reservation-servicePlatformBasicAuthWebhook' bearer: $ref: '#/components/schemas/reservation-servicePlatformBearerTokenWebhook' oauth2: $ref: '#/components/schemas/reservation-servicePlatformOAuth2Webhook' type: object webhookAuthType: description: The type of authentication used by the webhook. enum: - BASIC_AUTH - BEARER_TOKEN - API_KEYS - OAUTH2 - NONE example: OAUTH2 type: string allowCourseNumberUpdates: type: boolean example: true default: false description: If true, table statuses can be customized using a number format. inServiceTableStatuses: items: $ref: '#/components/schemas/reservation-servicePlatformTableStatusDto' type: array description: List of customizable table statuses that will be used to notify platforms about reservation progress with outbound API. allowedPosStatuses: type: array items: $ref: '#/components/schemas/reservation-servicePlatformReservationStatus' required: - displayName - webhookAuthType - webhookAuthDetails type: object reservation-servicePlatformProfileResponse: properties: baseUrl: description: The base URL of the external platform (optional). example: https://my.platform/api/lsk format: uri type: string depositSupported: $ref: '#/components/schemas/reservation-servicePlatformDepositSupported' displayName: $ref: '#/components/schemas/reservation-servicePlatformDisplayName' errorsWebhookUrl: description: "The URL where notifications for any issues will be sent.
Required for [`error` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Get Sample Error notification](https://api-docs.lsk.lightspeed.app/operation/operation-reservationErrorNotification).\n" example: https://my.platform/api/lsk/webhook/errors type: string format: uri integrationWebhookUrl: description: "The URL where notifications for activation or deactivation of the customer's integration will be sent.
Required for [`integration` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Integration notification](https://api-docs.lsk.lightspeed.app/operation/operation-reservationintegrationnotification).\n" example: https://my.platform/api/lsk/webhook/integrations type: string format: uri notificationTypes: description: The events that trigger a notification. example: *id011 items: type: string enum: - ORDER_OPENED - ORDER_UPDATED - ORDER_CLOSED - ONBOARDING_STARTED - INTEGRATION_ACTIVATED - INTEGRATION_DEACTIVATED - POS_RESERVATION_UPDATED - ERROR type: array uniqueItems: true onboardingWebhookUrl: description: "The URL where notifications for the customer's integration onboarding will be sent.
Required for [`onboarding` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Onboarding notification](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservationonboardingnotification).\n" example: https://my.platform/api/lsk/webhook/onboarding type: string format: uri orderWebhookUrl: description: "The URL where order notifications will be sent.
Required for [`order` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Order Notification](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservationordernotification).\n" example: https://my.platform/api/lsk/webhook/orders type: string format: uri posReservationUpdateWebhookUrl: description: The URL where notifications about reservation changes on POS will be sent. example: https://my.platform/api/lsk/webhook/reservation type: string format: uri ownNotificationsOnly: description: When `true`, notifications will only be sent for orders linked to the reservation platform. example: true type: boolean webhookAuthType: description: The type of authentication used by the webhook. enum: - BASIC_AUTH - BEARER_TOKEN - API_KEYS - OAUTH2 - NONE example: OAUTH2 type: string allowCourseNumberUpdates: type: boolean example: true default: false description: If true, table statuses can be customized using a number format. inServiceTableStatuses: items: $ref: '#/components/schemas/reservation-servicePlatformTableStatusDto' type: array description: List of customizable table statuses that will be used to notify platforms about reservation progress with outbound API. allowedPosStatuses: type: array items: $ref: '#/components/schemas/reservation-servicePlatformReservationStatus' description: Reservation statuses allowed for setting on a POS. PARTIALLY_ARRIVED should be included only with ARRIVED, and PARTIALLY_SEATED only with SEATED. Requires posReservationUpdateWebhookUrl to be set. required: - displayName - webhookAuthType type: object reservation-servicePlatformReservation: properties: guest: description: Guest information associated with the reservation. properties: email: description: The guest's email address. example: john.smith@email.com format: email type: string firstName: description: The guest's first name. example: John type: string lastName: description: The guest's last name. example: Smith type: string phone: description: The guest's phone number. example: '+13453455555' format: phone type: string platformGuestId: description: The external platform's unique identifier for the guest. example: ABC-123 pattern: '[a-zA-Z0-9_-]+' type: string walkIn: default: false description: When `true`, indicates this is a walk-in reservation. example: true type: boolean foodAndDrinkNotes: example: Only milk and cookies! type: string description: Any details about guest's food and drink preferences. notes: example: Put the ring in the champagne! type: string description: Other notes about the guest. 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: *id019 items: type: string type: array uniqueItems: true description: Any allergens linked to this guest. See [Allergens](https://api-portal.lsk.lightspeed.app/guides/reference/reference-tables/allergens) table for a list of allergen names with available translations. Any other text will be displayed as provided in the request body. dietaryRestrictions: example: *id020 items: type: string type: array uniqueItems: true description: Any dietary restrictions linked to this guest. See [Dietary Restrictions](https://api-portal.lsk.lightspeed.app/guides/reference/reference-tables/dietary-restrictions) table for a list of restrictions with available translations. Any other text will be displayed as provided in the request body. required: - platformGuestId - firstName type: object liability: $ref: '#/components/schemas/reservation-serviceLiability' 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: *id021 items: type: string type: array uniqueItems: true description: Tags linked to this reservation. See [Reservation Tags](https://api-portal.lsk.lightspeed.app/guides/reference/reference-tables/reservation-tags) table for a list of tags with available translations. All others will be displayed as provided in the request body. partySize: description: The number of expected guests. example: 2 format: int32 type: integer sequenceId: description: "An optional sequence number assigned by the external platform. If provided, it will be used to determine the order of updates of a reservation. It is the responsibility of the external platform to provide a monotonically increasing sequence number.\nIf omitted, the utcUpdatedAt field will be used to determine the order of updates. That can be imprecise when dealing with events that happen in short timeframes in a distributed system.\nThe value SHOULD NOT be set to null or zero or any special value, but instead omitted from the JSON object entirely if it is not used.\n" example: 145789499819 type: integer format: int64 status: $ref: '#/components/schemas/reservation-servicePlatformReservationStatus' tableNumbers: description: "The list of table numbers associated with this reservation.\nIf no valid table is provided, POS order is not created.\n" example: *id022 items: type: string type: array uniqueItems: true utcScheduledAt: description: The scheduled reservation time. example: '2024-01-01T20:00:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" utcUpdatedAt: description: "The timestamp of the most recent change to the reservation.\n" example: '2024-01-01T20:10:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" 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. example: PT30M type: string format: duration x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" required: - utcUpdatedAt - utcScheduledAt - partySize - guest - status type: object reservation-servicePlatformReservationId: description: The external platform's unique identifier for the reservation. example: Reservation-123 maxLength: 36 pattern: '[a-zA-Z0-9_-]+' type: string reservation-servicePlatformRestaurantId: description: The external platform's unique identifier for the restaurant. example: Restaurant-123 pattern: '[a-zA-Z0-9_-]+' type: string reservation-servicePlatformRestaurantReference: description: The alias for a restaurant on an external platform, such as its unique identifier or local unique name. example: Schnitzel_and_Kartoffel pattern: '[a-zA-Z0-9_-]+' type: string reservation-servicePlatformReservationAcceptedDto: required: - accepted - platformCode - platformReservationId - platformRestaurantId type: object properties: platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformRestaurantId: description: The external platform's unique identifier for the restaurant. example: Restaurant-123 pattern: '[a-zA-Z0-9_-]+' type: string platformReservationId: description: The external platform's unique identifier for the reservation. example: Reservation-123 maxLength: 36 pattern: '[a-zA-Z0-9_-]+' type: string accepted: description: Whether the reservation request was accepted. example: true type: boolean reservation-servicePlatformWebhookResponseDto: type: object description: Updated webhook authorization details. required: - accepted - currentAuthType properties: accepted: description: Whether the webhook request was accepted. example: true type: boolean currentAuthType: description: The current authentication type. enum: - BASIC_AUTH - BEARER_TOKEN - API_KEYS - OAUTH2 type: string reservation-servicePosReservation: properties: businessLocationId: $ref: '#/components/schemas/reservation-serviceBusinessLocationId' externalReference: description: External reference to the reservation. example: TASK:RN-1234567890-ABC#123 type: string guest: properties: firstName: example: John type: string lastName: example: Smith type: string notes: example: Put the ring in the champagne! type: string language: example: en type: string description: The language in which all notes are written, two-symbol ISO-639 codes are available or UNKNOWN_LANGUAGE. allergens: example: - almonds - egg items: type: string type: array uniqueItems: true dietaryRestrictions: example: - no alcohol - vegan items: type: string type: array uniqueItems: true required: - firstName type: object liability: description: Reservation deposit details. properties: currency: description: The ISO-4217 currency code. example: EUR pattern: '[A-Z]{3}' type: string totalDepositAmount: description: Total sum of deposits, excluding refund transactions. example: 100 type: integer format: int32 totalDepositCents: description: Amount between 0-99. example: 99 type: integer format: int32 totalRefundAmount: description: Total sum of refund transactions. example: 100 type: integer format: int32 totalRefundCents: description: Amount between 0-99. example: 99 type: integer format: int32 required: - currency - totalDepositAmount - totalDepositCents - totalRefundAmount - totalRefundCents type: object notes: example: More balloons! type: string specialOffer: example: Free dessert type: string tags: example: - romantic meal - special occasion items: type: string type: array uniqueItems: true partySize: description: Expected number of guests for the reservation. example: 2 format: int32 type: integer platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformReservationId: $ref: '#/components/schemas/reservation-servicePlatformReservationId' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' status: enum: - ON_HOLD - SCHEDULED - PARTIALLY_ARRIVED - ARRIVED - PARTIALLY_SEATED - SEATED - DEPARTED - CANCELLED - NO_SHOW - ERROR example: SCHEDULED type: string posOrderState: enum: - INITIATED - DISABLED - OPENED - FAILED example: OPENED type: string tableNumbers: description: List of table numbers for the reservation. 'seated' reservation event example: - '1' items: type: string type: array uniqueItems: true utcDepartedAt: description: Guest departure time. example: '2024-01-01T20:10:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" utcScheduledAt: description: Guest arrival time. example: '2024-01-01T20:00:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" utcSeatedAt: description: Guest seating time. example: '2024-01-01T20:10:00' format: date-time type: string x-field-extra-annotation: "@com.fasterxml.jackson.annotation.JsonFormat(pattern = \"yyyy-MM-dd'T'HH:mm:ss\", shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, timezone = \"UTC\")" guestRequest: description: Notes added to the reservation by the guest. example: I would need two baby chairs. type: string sequenceId: format: int64 type: integer expectedDuration: description: Expected duration of the meal. ISO-8601 format. example: PT30M type: string format: duration required: - platformCode - platformRestaurantId - platformReservationId - businessLocationId - utcScheduledAt - externalReference - partySize - tags - tableNumbers - status type: object reservation-servicePlatformReservationStatus: 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 reservation-serviceStatus: description: Extended Lightspeed reservation statuses. enum: - ON_HOLD - SCHEDULED - PARTIALLY_ARRIVED - ARRIVED - PARTIALLY_SEATED - SEATED - DEPARTED - CANCELLED - NO_SHOW - ERROR - PAID example: SEATED type: string reservation-serviceOrderUpdate: properties: account: $ref: '#/components/schemas/reservation-serviceAccount' businessLocationId: $ref: '#/components/schemas/reservation-serviceBusinessLocationId' notificationType: enum: - OPEN - UPDATE - CLOSE - CANCEL type: string platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' sequenceId: type: string platformReservationId: $ref: '#/components/schemas/reservation-servicePlatformReservationId' platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' type: object reservation-servicePosReservationUpdate: properties: platformCode: $ref: '#/components/schemas/reservation-servicePlatformCode' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' platformReservationId: $ref: '#/components/schemas/reservation-servicePlatformReservationId' businessLocationId: $ref: '#/components/schemas/reservation-serviceBusinessLocationId' status: $ref: '#/components/schemas/reservation-serviceStatus' tables: description: Name of tables associated with the reservation. type: array items: type: string example: - 1A - 2B covers: description: The number of covers associated with the reservation. format: int32 type: integer type: object reservation-serviceTax: properties: code: description: Code of the tax as defined in the configuration context. example: TVA77 type: string description: description: Name of the tax as defined in the configuration context. example: TVA 7.7% type: string rate: description: Tax percentage (e.g. 19% => '1.19'). example: 1.07 format: double type: number taxIncluded: description: Indicates whether the tax is VAT or Sales Tax. example: true type: boolean type: object reservation-serviceTransactionLine: properties: accountId: description: Legacy account identifier created by the POS (supplied because older API provides it to 3rd parties). example: '502721627029505' type: string accountingGroupId: description: The unique identifier of the product group assigned to the item. example: '77309411368' type: string accountingGroupName: description: Name of the product group assigned to the item. example: Misc type: string activeTax: $ref: '#/components/schemas/reservation-serviceTax' amount: description: The actual (final) amount the customer will be charged, ie. `regularAmount` with `modifiers` applied. example: 0.45 type: number amountLessTax: description: Taxable amount not including any taxes. example: 4.21 type: number amountWithTax: description: Final amount including taxes. example: 4.5 type: number categories: description: A list of the reporting categories in which the sale is to be aggregated. items: $ref: '#/components/schemas/reservation-serviceCategory' type: array date: description: Timestamp in ms of the moment when the line was registered. by the user example: 1694083815402 format: int64 type: integer discountedAmount: description: The line discount amount applied to the line. example: 0.05 type: number grossUnitAmount: description: Regular price for one unit of the line item. example: 4.5 type: number id: description: Legacy line identifier created by the POS (supplied because older API provides it to 3rd parties). example: '502721627029513' type: string itemDescription: description: Name of the item sold. example: Dom Pérignon type: string itemId: description: The unique identifier of the item at the business location. example: '77309411427' type: string itemSku: description: SKU (stock keeping unit) of the item. example: '6' type: string modifiers: description: A production instruction entered for a line. items: $ref: '#/components/schemas/reservation-serviceModifier' type: array nameOverride: description: Manually entered item name example: Burger for our friend Ben type: string phase: description: Course number assigned to the line. example: 0 format: int32 type: integer quantity: description: Quantity example: 6 type: number tags: description: Array of tags associated with the sales line. example: Test tag 4 type: string unitAmount: description: Actual amount for one unit of the line item including all markup, markdowns & surcharges. example: 0.9 type: number type: object reservation-serviceWebExtensionButton: properties: id: format: int64 type: integer screenId: format: int64 type: integer type: object reservation-servicePlatformTableStatusDto: properties: statusLabel: type: string example: Appetizer description: The unique text which will be displayed in the back-office for users. statusValue: type: string example: appetizer description: The unique code which will be used for outbound communication within table status mapping. sequence: format: int32 type: integer example: 1 description: This number is used to resolve collisions between statuses in order of highest priority. type: object required: - statusLabel - statusValue - sequence reservation-servicePlatformCourseSettingsDto: properties: allowCourseNumberUpdates: type: boolean example: true default: false description: If true, table statuses can be customized using a number format. inServiceTableStatuses: items: $ref: '#/components/schemas/reservation-servicePlatformTableStatusDto' type: array description: List of customizable table statuses that will be used to notify platforms about reservation progress with outbound API. type: object reservation-serviceTable: description: a POS table properties: name: description: The alphanumeric name (code). type: string example: 1A 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 reservation-serviceLightspeedOrigin: description: Extended Lightspeed reservation statuses. enum: - BACKOFFICE - ONLINE - POS - WIDGET - GOOGLE_INTEGRATION example: POS type: string staff-apiStaffLiteDto: type: object properties: staffId: $ref: '#/components/schemas/staff-apiStaffId' username: $ref: '#/components/schemas/staff-apiUsername' firstName: $ref: '#/components/schemas/staff-apiFirstName' lastName: $ref: '#/components/schemas/staff-apiLastName' email: $ref: '#/components/schemas/staff-apiEmail' staff-apiCreateWebhookRequest: type: object required: - notificationType - url - webhookName properties: notificationType: $ref: '#/components/schemas/staff-apiWebhookTopic' url: type: string description: The URL for the webhook. format: uri webhookName: type: string description: The name for the webhook. staff-apiResponseSchema: type: object properties: data: type: object items: {} links: type: object properties: first: type: object properties: href: type: string description: The URL for the first page of results. format: uri example: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc self: type: object properties: href: type: string description: The URL for the current page of results. format: uri example: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc next: type: object properties: href: type: string description: The URL for the next page of results. format: uri example: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc last: type: object properties: href: type: string description: The URL for the last page of results. format: uri example: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc page: $ref: '#/components/schemas/staff-apiPageInfo' staff-apiPageInfo: type: object properties: page: type: integer example: 1 description: The current page number. size: type: integer example: 10 description: The number of elements in the page. totalElements: type: integer example: 100 description: The total number of elements. totalPages: type: integer example: 10 description: The total number of pages of results. staff-apiEvent: description: Shift event such as clock in/out, please use the newest one when multiple events existing with same event type. type: object properties: uuid: description: The unique identifier for the event. type: string example: REcdfpCwQJKUR53gdzIk5Q== timestamp: description: The time of the event. type: string format: date-time example: '2020-01-01T00:00:00Z' createdOn: description: The creation time of the event. type: string format: date-time example: '2020-01-01T00:00:00Z' eventType: $ref: '#/components/schemas/staff-apiEventType' staff-apiShift: description: Shift details. x-plural: shifts type: object properties: uuid: description: The unique identifier for the shift. type: string example: REcdfpCwQJKUR53gdzIk5Q== businessId: description: The unique identifier for the business. type: integer format: int64 example: 12345 businessLocationId: description: The unique identifier for the business location. type: integer format: int64 example: 1234567890 deviceId: description: The unique identifier for the device. type: integer format: int64 example: 54321 staffId: description: The unique identifier for the user. type: integer format: int64 example: 1234 declaredCashTips: description: The declared tips for the shift. type: string example: '10.00' multipleOf: 0.01 dateInUTC: description: The timestamp of the last update to the shift. type: string format: date-time example: '2020-01-01T00:00:00Z' events: description: List of events during the shift. type: array items: $ref: '#/components/schemas/staff-apiEvent' staff-apiWebhookTopic: description: The type of webhook notification. type: string enum: - shift.created - shift.updated - shift.deleted staff-apiEventType: description: The type of event. type: string enum: - CLOCK_IN - CLOCK_OUT staff-apiUserType: description: The user type. type: string enum: - POS - BACK_OFFICE - API staff-apiPOSStaff: type: object x-plural: staff properties: staffId: $ref: '#/components/schemas/staff-apiStaffId' username: $ref: '#/components/schemas/staff-apiUsername' userTypes: type: array items: $ref: '#/components/schemas/staff-apiUserType' firstName: $ref: '#/components/schemas/staff-apiFirstName' lastName: $ref: '#/components/schemas/staff-apiLastName' active: $ref: '#/components/schemas/staff-apiActive' pinCodeSet: $ref: '#/components/schemas/staff-apiPinCodeSet' createdOn: $ref: '#/components/schemas/staff-apiCreatedOn' modifiedOn: $ref: '#/components/schemas/staff-apiModifiedOn' businessId: $ref: '#/components/schemas/staff-apiBusinessId' businessLocationId: $ref: '#/components/schemas/staff-apiBusinessLocationId' groups: type: array items: $ref: '#/components/schemas/staff-apiStaffGroupIdDto' reportAccess: type: array items: $ref: '#/components/schemas/staff-apiReportAccess' roles: type: array description: The roles assigned to the user. items: $ref: '#/components/schemas/staff-apiStaffRoleDto' staff-apiBOStaff: type: object x-plural: staff properties: staffId: $ref: '#/components/schemas/staff-apiStaffId' userTypes: type: array items: $ref: '#/components/schemas/staff-apiUserType' firstName: $ref: '#/components/schemas/staff-apiFirstName' lastName: $ref: '#/components/schemas/staff-apiLastName' email: $ref: '#/components/schemas/staff-apiEmail' active: $ref: '#/components/schemas/staff-apiActive' createdOn: $ref: '#/components/schemas/staff-apiCreatedOn' modifiedOn: $ref: '#/components/schemas/staff-apiModifiedOn' businessId: $ref: '#/components/schemas/staff-apiBusinessId' businessLocationId: $ref: '#/components/schemas/staff-apiBusinessLocationId' groups: type: array items: $ref: '#/components/schemas/staff-apiStaffGroupIdDto' reportAccess: type: array items: $ref: '#/components/schemas/staff-apiReportAccess' roles: type: array description: The roles assigned to the user. items: $ref: '#/components/schemas/staff-apiStaffRoleDto' staff-apiStaff: type: object x-plural: staff properties: staffId: $ref: '#/components/schemas/staff-apiStaffId' username: $ref: '#/components/schemas/staff-apiUsername' userTypes: type: array items: $ref: '#/components/schemas/staff-apiUserType' firstName: $ref: '#/components/schemas/staff-apiFirstName' lastName: $ref: '#/components/schemas/staff-apiLastName' email: $ref: '#/components/schemas/staff-apiEmail' active: $ref: '#/components/schemas/staff-apiActive' pinCodeSet: $ref: '#/components/schemas/staff-apiPinCodeSet' createdOn: $ref: '#/components/schemas/staff-apiCreatedOn' modifiedOn: $ref: '#/components/schemas/staff-apiModifiedOn' businessId: $ref: '#/components/schemas/staff-apiBusinessId' businessLocationId: $ref: '#/components/schemas/staff-apiBusinessLocationId' groups: type: array items: $ref: '#/components/schemas/staff-apiStaffGroupIdDto' reportAccess: type: array items: $ref: '#/components/schemas/staff-apiReportAccess' roles: type: array description: The roles assigned to the user. items: $ref: '#/components/schemas/staff-apiStaffRoleDto' staff-apiUpdatePosStaffDto: type: object required: - username - pinCode - firstName - lastName - active - visible - reportAccess - roles properties: username: $ref: '#/components/schemas/staff-apiUsername' pinCode: type: string maxLength: 4 description: The 4-digit pin code for the user. example: '1234' firstName: $ref: '#/components/schemas/staff-apiFirstNameNoDefault' lastName: $ref: '#/components/schemas/staff-apiLastNameNoDefault' active: $ref: '#/components/schemas/staff-apiActiveNoDefault' visible: $ref: '#/components/schemas/staff-apiVisibleNoDefault' group: type: integer format: int64 default: -1 x-positive-number-required: true description: The unique identifier for the user group. reportAccess: $ref: '#/components/schemas/staff-apiReportAccessNoDefault' roles: type: array x-default-null: true description: The roles assigned to the user. items: $ref: '#/components/schemas/staff-apiCreatestaffRoleDto' staff-apiCreatePosStaffDto: type: object required: - username properties: username: $ref: '#/components/schemas/staff-apiUsername' pinCode: type: string maxLength: 4 nullable: true description: The 4-digit pin code for the user. example: '1234' firstName: $ref: '#/components/schemas/staff-apiFirstName' lastName: $ref: '#/components/schemas/staff-apiLastName' active: $ref: '#/components/schemas/staff-apiActive' visible: $ref: '#/components/schemas/staff-apiVisible' group: type: integer format: int64 description: The unique identifier for the user group. reportAccess: $ref: '#/components/schemas/staff-apiReportAccess' roles: description: The roles assigned to the user. type: array items: $ref: '#/components/schemas/staff-apiCreatestaffRoleDto' default: *id023 staff-apiStaffGroupIdDto: type: object properties: id: type: integer format: int64 description: The unique identifier for the user group. example: 1234 name: type: string description: The name of the user group. example: Bar Staff staff-apiStaffRoleDto: type: object properties: id: type: integer format: int64 description: The unique identifier for the role. example: 1234 name: type: string description: The name of the role. example: ROLE_CAN_LOGIN staff-apiStaffGroup: type: object properties: id: type: integer format: int64 description: The unique identifier for the user group. example: 1234 name: type: string description: The name of the user group. example: Bar Staff roles: type: array items: $ref: '#/components/schemas/staff-apiStaffRoleDto' reportAccess: $ref: '#/components/schemas/staff-apiReportAccess' staff-apiWebhookEventDto: type: object properties: notificationType: $ref: '#/components/schemas/staff-apiWebhookTopic' data: $ref: '#/components/schemas/staff-apiShift' staff-apiWebhookDto: type: object properties: uuid: type: string format: uuid description: The unique identifier for the webhook. example: e95c2cc5-4489-4025-a7e2-a34faeaa5f9d notificationType: $ref: '#/components/schemas/staff-apiWebhookTopic' url: type: string description: The URL for the webhook. webhookName: type: string description: The name for the webhook. example: My Awesome Webhook businessLocationId: type: integer format: int64 description: The unique identifier for the business location. example: 1234567890 createdAt: type: string format: date-time description: The creation time of the webhook. updatedAt: type: string format: date-time description: The last update time of the webhook. staff-apiBusinessLocationIds: type: object properties: businessLocationIds: type: array items: type: integer format: int64 description: List of all `businessLocationIds` to be added. example: *id015 staff-apiReportAccessNoDefault: type: string description: User report permissions. staff-apiReportAccess: type: string default: STAFF_REPORT_OWN_ACCESS description: User report permissions. staff-apiReportAccessLevel: type: object x-plural: reportAccessLevels properties: value: type: string description: The value of the report access level. example: STAFF_REPORT_OWN_ACCESS description: type: string description: The description of the report access level. example: The POS user can see their own reports staff-apiUserPermission: type: object x-plural: userPermissions properties: value: type: string description: The value of the user permission. example: ROLE_MANAGER description: type: string description: The description of the user permission. example: POS user is a manager staff-apiValidatePincodeStatus: type: string description: Status of the pincode validation enum: - OK - WRONG_PIN - PIN_IS_NOT_SET example: OK staff-apiUsername: description: The staff username. Only used for POS staff. type: string x-nonempty: true maxLength: 128 example: John Doe staff-apiStaffId: type: integer format: int64 description: The unique identifier for the user. example: 1234 staff-apiFirstName: type: string maxLength: 128 description: The first name of the user. default: '' example: John staff-apiFirstNameNoDefault: type: string maxLength: 128 description: The first name of the user. example: John staff-apiLastName: type: string maxLength: 128 description: The last name of the user. default: '' example: Doe staff-apiLastNameNoDefault: type: string maxLength: 128 description: The last name of the user. example: Doe staff-apiActive: type: boolean default: true description: Indicates if the user is active. staff-apiActiveNoDefault: type: boolean description: Indicates if the user is active. staff-apiVisible: type: boolean default: true description: Indicates if the user is visible. staff-apiVisibleNoDefault: type: boolean description: Indicates if the user is visible. staff-apiPinCodeSet: type: boolean description: Indicates if the user has a PIN code set. Relevant for POS users only. staff-apiCreatedOn: type: string format: date-time description: The timestamp of the creation of the user. staff-apiModifiedOn: type: string format: date-time description: The timestamp of the last update to the user. staff-apiBusinessId: type: integer format: int64 description: The unique identifier for the business. example: 12345 staff-apiBusinessLocationId: type: integer format: int64 description: The unique identifier for the business location. example: 1234567890 staff-apiEmail: description: The email associated with the user. Only used for Back Office staff. type: string format: email maxLength: 128 staff-apiCreatestaffRoleDto: type: string description: List of roles assigned to the user. Normally, these are the default POS user roles. See [Get All POS User Permissions](https://api-docs.lsk.lightspeed.app/operation/operation-staff-apigetposuserpermissions) for a list of roles. teckelBusinessId: example: 454335871 description: The unique identifier for the business. type: integer format: int64 teckelSKU: example: UGG-BB-PUR-06 maxLength: 25 description: The SKU of the item. type: string teckelLocalesDto: description: A list of locales. example: *id017 items: type: string type: array teckelLink: properties: deprecation: type: string href: type: string hreflang: type: string name: type: string profile: type: string templated: type: boolean title: type: string type: type: string type: object teckelLinks: additionalProperties: $ref: '#/components/schemas/teckelLink' type: object teckelPictureSpecDto: description: Contains picture requirements. properties: _links: $ref: '#/components/schemas/teckelLinks' minHeight: description: The minimum image height. format: int32 type: integer minWidth: description: The minimum image width. format: int32 type: integer requiredAspectRatio: description: The image aspect ratio (width divided by length). If not set, there is no aspect ratio check. format: float type: number type: object teckelLinkSelf: type: object properties: self: properties: href: example: https://api.trial.lsk.lightspeed.app/i/richItem/8262/UGG-BB-PUR-06 type: string description: The URL of the item. type: object teckelLinkSelfPage: type: object properties: self: properties: href: example: https://api.trial.lsk.lightspeed.app/i/i/richItem/8262?page=0&size=100&sort= type: string description: The URL of the page of results. type: object teckelLinkItems: type: object properties: items: properties: href: example: https://api.trial.lsk.lightspeed.app/i/richItem/8262/ type: string description: The URL for all items. type: object teckelRichItemDto: properties: businessId: $ref: '#/components/schemas/teckelBusinessId' sku: $ref: '#/components/schemas/teckelSKU' descriptions: description: List of localized descriptions example: - localeCode: de description: Das ist ein Test displayName: Rich Item 1 DE - localeCode: en description: This is a test for a rich item displayName: Rich Item 1 items: $ref: '#/components/schemas/teckelRichItemDescriptionDto' uniqueItems: true type: array allergenCodes: description: List of allergen codes. example: - milk - cereals items: type: string uniqueItems: true type: array type: object teckelRichItemDtoDates: properties: creationDate: description: The creation date of the item. example: '2021-11-03T13:50:47Z' type: string format: date-time lastUpdateDate: description: The last update date of the item. example: '2021-11-11T16:29:56Z' type: string format: date-time type: object teckelRichItemDtoPictures: properties: pictureUrl: example: http://s3-eu-west-1.amazonaws.com/com.ikentoo.trial.rich-content-store/25372_029b5ad1-08f7-4e1f-9087-3ca91ad818f7.png description: The URL of the picture. type: string previewPictureUrl: example: http://s3-eu-west-1.amazonaws.com/com.ikentoo.trial.rich-content-store/25372_029b5ad1-08f7-4e1f-9087-3ca91ad818f7.png description: The URL of the preview picture. type: string rawPictureUrl: example: http://s3-eu-west-1.amazonaws.com/com.ikentoo.trial.rich-content-store/25372_029b5ad1-08f7-4e1f-9087-3ca91ad818f7_raw.png description: The URL of the raw picture. type: string type: object teckelRichItemDtoLinks: properties: _links: allOf: - $ref: '#/components/schemas/teckelLinkSelf' - $ref: '#/components/schemas/teckelLinkItems' type: object teckelRichItemDescriptionDto: description: Stores an item description with its locale code. example: *id024 properties: localeCode: description: The language code (ISO 639) of the description. minLength: 2 maxLength: 7 nullable: false type: string description: description: The item description in the language of the locale. maxLength: 4000 type: string displayName: description: The display name of the item in the language of the locale. type: string required: - localeCode type: object responses: Ok: description: Ok BadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/pulse-serviceProblemDetail' Unauthorized: description: Not authenticated content: application/problem+json: schema: $ref: '#/components/schemas/pulse-serviceProblemDetail' NotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/pulse-serviceProblemDetail' Forbidden: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/pulse-serviceProblemDetail' InternalServerError: description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/pulse-serviceProblemDetail' BadRequestException: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/pulse-serviceProblemDetail' NotFoundException: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/pulse-serviceProblemDetail' Conflict: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/pulse-serviceProblemDetail' ForbiddenException: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/pulse-serviceProblemDetail' parameters: apaleo-integrationbusinessLocationId: in: path name: businessLocationId required: true schema: format: int64 type: integer example: 45454565682155 description: the id of the businessLocation belgium-fiscalBusinessLocationId: in: path name: businessLocationId required: true description: Business location id schema: type: integer format: int64 business-config-apiPaymentMethodId: in: path name: paymentMethodId required: true description: Payment method id schema: type: integer format: int64 business-config-apilspayAdyenAccountInfoId: in: path name: lspayAdyenAccountInfoId required: true description: Lspay Adyen Account Info Id schema: type: integer format: int64 business-config-apiBusinessLocationId: in: path name: businessLocationId required: true description: Business location id schema: type: integer format: int64 business-config-apiPaymentMethodCode: in: path name: paymentMethodCode required: true description: Payment Method Code schema: type: string business-config-apiIsActive: in: query name: is-active required: true description: Indicates if the object must be active schema: type: boolean business-config-apiBusinessId: in: path name: businessId required: true description: Business id schema: type: integer format: int64 business-config-apiDiscountId: in: path name: discountId required: true description: Discount id schema: type: integer format: int64 business-config-apiIncludeDefaultProfile: in: query name: includeDefaultProfile required: false description: Indicates whether to include default profile in response schema: type: boolean default: false business-config-apiTargetUserId: in: path name: targetUserId required: true description: Staff id schema: type: integer format: int64 business-config-apiEmailAddress: in: query name: emailAddress description: Email Address schema: type: string business-config-apiAccountProfileId: in: path name: accountProfileId required: true description: Account Profile Id schema: type: integer format: int64 business-config-apiTransactionTagId: in: path name: transactionTagId required: true description: Transaction tag id schema: type: integer format: int64 business-config-apiProductionCenterId: in: path name: productionCenterId required: true description: Production Center Id schema: type: integer format: int64 business-config-apiPrintingProfileId: in: path name: printingProfileId required: true description: Printing Profile Id schema: type: integer format: int64 business-config-apiFiscalDataModuleId: in: path name: fiscalDataModuleId required: true description: Fiscal Data Module Id schema: type: integer format: int64 business-config-apiBusinessType: in: query name: business-type required: true description: Business type schema: type: string business-config-apiSearchTerm: in: query name: searchTerm required: false description: Search term schema: type: string business-config-apiVoidReasonId: in: path name: voidReasonId required: true description: Void reason id schema: type: integer format: int64 business-config-apiExcludeLsPaymentMethods: in: query name: excludeLsPaymentMethods required: false description: Indicates whether to exclude LS payment methods in response schema: type: boolean default: false businessinfo-apiBusinessLocationId: in: path name: businessLocationId required: true description: Business location id schema: type: integer format: int64 businessinfo-apiBusinessId: in: path name: businessId required: true description: Business id schema: type: integer format: int64 businessinfo-apiLicenseStatusQueryParam: name: license-status in: query required: false schema: $ref: '#/components/schemas/businessinfo-apiLicenseStatusEnumDto' businessinfo-apiBusinessIsActive: name: business-is-active in: query required: false schema: type: boolean businessinfo-apiAttachToUser: name: attached-to-user in: query required: false schema: type: boolean businessinfo-apiPage: name: page in: query required: false schema: type: integer format: int32 default: 0 minimum: 0 businessinfo-apiPageSize: name: page-size in: query required: false schema: type: integer format: int32 default: 50 businessinfo-apiSize: name: size in: query required: false schema: maximum: 1000 minimum: 1 type: integer format: int32 default: 10 businessinfo-apiIsAction: name: is-active in: query required: false schema: type: boolean businessinfo-apiCountry: name: country in: path required: true schema: type: string minLength: 2 maxLength: 2 customers-apiBusinessId: name: businessId in: path required: true schema: type: integer format: int64 customers-apiCustomerId: name: customerId in: path required: true schema: type: integer format: int64 developer-portal-serviceStart: name: start in: query required: false schema: type: string format: date-time description: Start of date range to filter by title: Start description: Start of date range to filter by developer-portal-serviceEnd: name: end in: query required: false schema: type: string format: date-time description: End of date range to filter by title: End description: End of date range to filter by developer-portal-serviceSort: name: sort in: query required: false schema: type: array items: $ref: '#/components/schemas/developer-portal-serviceSortBy' description: Sort in ascending or descending order on one or more fields. Fields that are prefixed with a `-` will be sorted in descending order while those without the prefix will be sorted in ascending order. title: Sort description: Sort in ascending or descending order on one or more fields. Fields that are prefixed with a `-` will be sorted in descending order while those without the prefix will be sorted in ascending order. developer-portal-serviceStatus: name: status in: query required: false schema: type: array items: $ref: '#/components/schemas/developer-portal-serviceRequestStatus' description: Filter by the status of the request. Supports filtering by one or more statuses. title: Status description: Filter by the status of the request. Supports filtering by one or more statuses. developer-portal-serviceRequestType: name: request_type in: query required: false schema: type: array items: $ref: '#/components/schemas/developer-portal-serviceRequestType' description: Filter by one or more request types by providing the type of request(s). title: Request Type description: Filter by one or more request types by providing the type of request(s). developer-portal-serviceSearchPhrase: name: search_phrase in: query required: false schema: type: string description: The search phrase is what we use to match the results. If empty, all results are returned. If non-empty, we will match on the provisioned id (e.g. business location id, client id), the display name of the client, or the business name. The match is done by looking for exact substring matches and is not case sensitive. For example, "foo bar" will match a business called "This is Foo bar 2" but not "Foo's Bar". default: '' title: Search Phrase description: The search phrase is what we use to match the results. If empty, all results are returned. If non-empty, we will match on the provisioned id (e.g. business location id, client id), the display name of the client, or the business name. The match is done by looking for exact substring matches and is not case sensitive. For example, "foo bar" will match a business called "This is Foo bar 2" but not "Foo's Bar". developer-portal-servicePage: name: page in: query required: false schema: type: integer description: The page number to return. Defaults to 1. default: 1 minimum: 1 title: Page description: The page number to return. Defaults to 1. developer-portal-servicePageSize: name: page_size in: query required: false schema: type: integer description: The number of items to return per page. Defaults to 25. default: 25 minimum: 1 title: Page Size description: The number of items to return per page. Defaults to 25. financial-apiPageSize: in: query name: pageSize schema: type: integer format: int32 default: 50 maximum: 100 description: Number of entries to return. financial-apiNextPageToken: in: query name: nextPageToken schema: type: string default: '' description: A token that indicates the starting point of the next set of records when paginating through results. financial-apiBusinessLocationId: in: path name: businessLocationId required: true schema: format: int64 type: integer minimum: 1 example: 45454565682155 description: The unique identifier for the business location. financial-apiExternalReferenceId: schema: type: string example: TASK:OO-{businessLocationId}-{unique-reference-code} name: externalReferenceId description: The external reference of the receipt. See [externalReferences](https://api-docs.lsk.lightspeed.app/operation/operation-financial-apigetfinancials#operation-financial-apigetfinancials-200-body-application-json-sales-externalreferences). in: query required: true financial-apiDateParameter: schema: example: '2021-10-28' type: string format: date name: date description: The date in YYYY-MM-DD format. in: query required: false financial-apiFromParameter: schema: example: '2021-09-21T10:11:56Z' type: string format: date-time name: from description: "Start of requested results, in ISO 8601 format.\n\nExample:`2022-09-21T10:11:56Z` or `2022-09-21T06:11:56-04:00`" in: query required: false financial-apiToParameter: schema: example: '2021-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: query required: false financial-apiFlattenedParameter: schema: example: true default: false type: boolean name: flattened in: query required: false financial-apiGroupByParameter: schema: type: string minLength: 3 maxLength: 2147483647 description: "Comma-separated list of parameters to group the results by.\nThe allowed values are: `staff`, `device`, `deviceId`, `tag`, `accountingGroup`, and `statisticGroup`.\nFor example, `groupBy` can be set to `staff,device`." name: groupBy in: query required: true financial-apiIncludeParameter: schema: type: string default: '' description: "Objects to be included in the response.\n\nThe allowed values are: `staff`, `table`, `consumer`, `payments`, `revenue_center`, `account_profile`, `payment_authorization`." name: include in: query required: false id-cards-apiBusinessLocationId: name: businessLocationId in: path required: true description: The unique identifier for the business location. schema: type: integer format: int64 insights-serviceLocationIdParam: name: location_id in: query description: K-Series location to report on. allowEmptyValue: false required: true schema: $ref: '#/components/schemas/insights-serviceLocationId' insights-serviceBusinessIdParam: name: business_id in: query description: K-Series business to report on. allowEmptyValue: false schema: $ref: '#/components/schemas/insights-serviceBusinessId' insights-serviceCountryCodeParam: name: country_code in: query description: The country code of the Merchant. This affects calculations like NetSales. allowEmptyValue: false required: false schema: $ref: '#/components/schemas/insights-serviceCountryCode' insights-serviceLocationIdsParam: name: location_ids[] in: query description: K-Series locations to report on. Business level requests should include a list of locations. explode: true allowEmptyValue: false required: true schema: type: array items: $ref: '#/components/schemas/insights-serviceLocationId' example: - '123456789' - '987654321' insights-serviceItemIdsParam: name: item_ids[] in: query description: Item ids to report on. explode: true allowEmptyValue: false required: false schema: type: array items: $ref: '#/components/schemas/insights-serviceItemId' example: - '123456789' - '987654321' insights-serviceRangeStartParam: name: range_start in: query description: 'First date to report on, using ISO 8601 date format. Example: 2022-12-22' allowEmptyValue: false x-go-type-skip-optional-pointer: true schema: $ref: '#/components/schemas/insights-serviceDate' insights-serviceRangeEndParam: name: range_end in: query description: 'Last date to report on, using ISO 8601 date format. Example: 2022-12-29' allowEmptyValue: false schema: $ref: '#/components/schemas/insights-serviceDate' insights-serviceRequiredRangeStartParam: name: range_start in: query description: 'First date to report on, using ISO 8601 date format. Example: 2022-12-22' required: true allowEmptyValue: false x-go-type-skip-optional-pointer: true schema: $ref: '#/components/schemas/insights-serviceDate' insights-serviceRequiredRangeEndParam: name: range_end in: query description: 'Last date to report on, using ISO 8601 date format. Example: 2022-12-29' required: true allowEmptyValue: false schema: $ref: '#/components/schemas/insights-serviceDate' insights-serviceIntervalParam: name: interval in: query description: "Time interval to report on.\nThis will return the data grouped by the interval. This will affect how the report being aggregated.\nFor example if 'DAY' is used, then the data will be aggregated and grouped day by day.\n\n**ALWAYS** use the biggest interval that makes sense for the data you are requesting.\n**Only** use smaller intervals if you really need the details, for example a day by day report for the last week.\nUsing bigger intervals will make the data cleaner and pre-aggregated.\n\nExamples:\n- If you only need the report of the last month, then use 'MONTH' as the interval.\n- If you only need the report of the last week, then use 'WEEK' as the interval." allowEmptyValue: false schema: $ref: '#/components/schemas/insights-serviceTimeUnit' insights-serviceIntervalsParam: name: intervals[] in: query description: Time intervals to report on. If omitted all Intervals are returned. allowEmptyValue: true schema: type: array items: $ref: '#/components/schemas/insights-serviceTimeUnit' insights-serviceDaysOfWeekParam: name: day_of_week[] in: query description: "To be used to filter day of the week using zero based index, and Monday is always the start of week.\nLeave this as empty list `[]` if you do not need to filter the report by day of the week.\nAlways fill in at least `[]` empty list, this is not nullable.\nOnly fill the list with indexes if you need to filter the report by day of the week.\nUse case example:\n- Show me the sales report for last week on Monday and Tuesday only. -> Use `[0, 1]`\n- Show me the sales report for last month on Saturday and Sunday only. -> Use `[5, 6]`\nUse case where this is not needed and should use `[]` (empty list):\n- Show me the sales report for the last week. -> Use `[]`" explode: true allowEmptyValue: true x-go-type-skip-optional-pointer: true schema: type: array items: $ref: '#/components/schemas/insights-serviceDayOfWeek' example: - 5 - 6 insights-serviceHourStartParam: name: hour_start in: query description: "Start of Hour to filter from in a business day.\nOnly use this if filtering by hour is explicitly needed.\nA single business day can pass midnight, so the hour filter need to follow 48 hour rule, example:\n- Filter from 23:00 to 03:00 then the hour_start is 23\n- The whole day -> Not needed" allowEmptyValue: true schema: $ref: '#/components/schemas/insights-serviceHour' insights-serviceHourEndParam: name: hour_end in: query description: "End of hour to filter from in a business day.\nOnly use this if filtering by hour is explicitly needed.\nA single business day can pass midnight, so the hour filter need to follow 48 hour rule, example:\n- Filter from 23:00 to 03:00 then hour_end is 27\n- The whole day -> Not needed" allowEmptyValue: true schema: $ref: '#/components/schemas/insights-serviceHour' insights-serviceServerIdsParam: name: server_ids[] in: query description: The Ids of the servers to report on. required: false allowEmptyValue: false schema: type: array $ref: '#/components/schemas/insights-serviceServerId' insights-serviceServerGroupIdsParam: name: server_group_ids[] in: query description: The Ids of the server Job Groups to report on. required: false allowEmptyValue: false schema: type: array $ref: '#/components/schemas/insights-serviceServerGroupId' insights-serviceTimeRangesParam: name: time_ranges[] in: query description: An array of TimeRange strings in the format `HH:MM-HH:MM`(StartTime-EndTime) where both times must be on the half hour. Hours can be '00' to '47'. Minutes can be '00' or '30'. The Time Range is from the start time and before the end time, so the end time must be after the start time to get results. TimeRanges should NOT overlap. This is what is used to get Reporting Shift data. required: false allowEmptyValue: false schema: type: array $ref: '#/components/schemas/insights-serviceTimeRange' insights-serviceFileTypeParam: name: file_type in: query description: The type of file to which the data will be exported. The default value is csv. required: false allowEmptyValue: false schema: type: string enum: - csv - xlsx insights-serviceLocaleParam: name: locale in: query description: The locale use for translation. The default value is English. required: false allowEmptyValue: false schema: type: string examples: - fr_CA - en - fr_FR - es insights-serviceCurrencyParam: name: currency in: query description: The currency to use for the data. If omitted, the currency used is hidden. required: false allowEmptyValue: false schema: type: string examples: - USD - CAD - EUR - GBP items-apiBusinessLocationId: in: path name: businessLocationId required: true description: The unique identifier for the business location. schema: type: integer format: int64 items-apiBusinessId: in: path name: businessId required: true description: The unique identifier for the business. schema: type: integer format: int64 items-apiItemId: in: path name: itemId required: true description: Item id schema: type: integer format: int64 items-apiModifierId: in: path name: modifierId required: true description: The unique identifier for the modifier schema: type: integer format: int64 items-apiModifierGroupId: in: path name: modifierGroupId required: true description: The unique identifier for the modifier group. schema: type: integer format: int64 items-apiProductionInstructionId: in: path name: productionInstructionId required: true description: The unique identifier for the production instruction. schema: type: integer format: int64 items-apiAccountingGroupId: in: path name: accountingGroupId required: true description: The unique identifier for the accounting group. schema: type: integer format: int64 items-apiGroupId: in: path name: groupId required: true description: The unique identifier for the group. schema: type: integer format: int64 items-apiScreenId: in: path name: screenId required: true description: The unique identifier for the screen. schema: type: integer format: int64 items-apiSubScreenId: in: path name: subScreenId required: true description: The unique identifier for the sub screen. schema: type: integer format: int64 items-apiMenuId: in: path name: menuId required: true description: The unique identifier for the menu. schema: type: integer format: int64 items-apiSkuPathParam: in: path name: sku required: true schema: type: string description: sku path parameter items-apiItemsSortingField: in: query name: sorting required: false schema: $ref: '#/components/schemas/items-apiSortFieldsEnumDto' items-apiSortingOrder: in: query name: sortOrder required: false schema: $ref: '#/components/schemas/items-apiSortOrderEnumDto' items-apiPaginationPage: in: query name: page required: false schema: type: integer format: int32 default: 0 description: Zero-based page number for items list items-apiPaginationSize: in: query name: pageSize required: false schema: type: integer format: int32 default: 10 minimum: 1 maximum: 500 description: Limit of number of items to return items-apiQuickCreate: in: query name: quickCreate required: false schema: type: boolean default: true description: Describes if the item should contain all the properties or only the essential ones items-apiItemsIds: in: query name: itemsIds required: true schema: type: array items: type: integer format: int64 description: Comma separated list of items ids items-apiOptionalItemsIds: in: query name: itemsIds required: false schema: type: array items: type: integer format: int64 description: Comma separated list of items ids items-apiBulkItemIds: in: query name: itemIds required: true schema: type: array minItems: 1 maxItems: 100 items: type: integer format: int64 description: Comma separated list of items ids to apply bulk action to items-apiDryRun: in: query name: dryRun schema: type: boolean default: true items-apiAvailableFilter: in: query name: available description: Available filter. Empty value - show all. schema: type: boolean items-apiSearchFilter: in: query name: searchFilter required: false schema: type: string description: Search filter for wildcard search items-apiSearchInFields: in: query name: searchInFields required: false schema: default: - ACCOUNTING_GROUP - ITEM_SKU - ITEM_PRICE - ITEM_NAME - BUTTON_NAME type: array items: $ref: '#/components/schemas/items-apiSearchInFieldEnumDto' description: List of fields for wildcard search items-apiAccountingGroupsFilter: in: query name: accountingGroupsFilter required: false schema: type: array items: type: integer format: int64 description: Comma separated list of accounting groups for filter items-apiStatisticGroupsFilter: in: query name: statisticGroupsFilter required: false schema: type: array items: type: string description: Comma separated list of statistic groups for filter. To filter for null values use `$null` value items-apiLinkedMenusFilter: in: query name: linkedMenusFilter required: false schema: type: array items: type: integer format: int64 description: Comma separated list of linked menus for filter items-apiLinkedMenusDeepFilter: in: query name: linkedMenusDeepFilter required: false schema: type: array items: type: integer format: int64 description: "Comma separated list of linked menus for filter. Search for all items as well as all items in combos for provided menu.\n" items-apiStatusesFilter: in: query name: statusesFilter required: false schema: type: array items: $ref: '#/components/schemas/items-apiItemStatusFilterEnumDto' description: Comma separated list of statuses for filter items-apiLinkingFilter: in: query name: linkingFilter required: false schema: type: array items: $ref: '#/components/schemas/items-apiItemLinkingFilterEnumDto' description: Comma separated list of linking statuses for filter items-apiPriceStructureFilter: in: query name: priceStructuresFilter required: false schema: type: array items: $ref: '#/components/schemas/items-apiPriceStructureEnumDto' description: Comma separated list of price types for filter items-apiTypesFilter: in: query name: typesFilter required: false schema: type: array items: $ref: '#/components/schemas/items-apiItemTypeEnumDto' description: Comma separated list of types for filter items-apiParentTypeFilter: in: query name: parentType required: true schema: $ref: '#/components/schemas/items-apiParentTypeEnumDto' items-apiSharingStatusesFilter: in: query name: sharingStatusesFilter required: false schema: type: array items: $ref: '#/components/schemas/items-apiSharingTypeEnumDto' description: Comma separated list of sharing statuses for filter items-apiOptionsFilter: in: query name: optionsFilter required: false schema: type: array items: $ref: '#/components/schemas/items-apiAdditionalFilterOptionsEnumDto' description: Comma separated list of options for filter items-apiItemIdsFilter: in: query name: itemIdsFilter required: false schema: type: array items: type: integer format: int64 description: Comma separated list of item ids to export items-apiSkuFilter: in: query name: sku required: false schema: type: string description: Search filter for sku items-apiSkusParam: in: query name: skus required: true schema: uniqueItems: true type: array items: type: string minItems: 1 maxItems: 50 description: Skus of items to retrieve items-apiSkusFilter: in: query name: skus required: false schema: type: array items: type: string minItems: 1 maxItems: 100 description: Search filter for skus items-apiItemNameFilter: in: query name: itemName required: false schema: type: string description: Search filter for item name items-apiNameSearchTerm: in: query name: nameSearchTerm required: false schema: type: string description: Search filter for item name items-apiProductNameSearchTerm: in: query name: nameSearchTerm required: false schema: type: string description: Filter by product name (case-insensitive, partial match) items-apiItemTypesFilter: in: query name: itemTypes required: false schema: type: array items: type: string enum: - ITEM - COMBO - GROUP description: Filter by one or more item types, use comma-separated values. items-apiDimensionCriteria: in: query name: dimension required: false schema: $ref: '#/components/schemas/items-apiContentDimensionEnumDto' items-apiUomCode: in: query name: uomCode required: false schema: type: string description: Uom code like L, dl, oz items-apiButtonId: in: path name: buttonId required: true description: Button id schema: type: integer format: int64 items-apiReloadDevices: in: query name: reload-devices required: false schema: type: boolean default: false items-apiActiveOnly: in: query name: activeOnly required: false schema: type: boolean default: true description: Filter active items only items-apiAccountProfileId: in: path name: accountProfileId required: true description: Account Profile Id schema: type: integer format: int64 items-apiCSVMappingProductionInstructionNameColumn: name: X-CSV-PI-Name in: header description: Name of the 'name' column in the provided CSV import file required: true schema: type: string items-apiCSVMappingProductionInstructionTypeColumn: name: X-CSV-PI-Type in: header description: Name of the 'type' column in the provided CSV import file required: true schema: type: string items-apiCSVMappingProductionInstructionValueColumn: name: X-CSV-PI-Value in: header description: Name of the 'value' column in the provided CSV import file required: true schema: type: string items-apiCSVMappingProductionInstructionOneOf: name: X-CSV-PI-Type-OneOf in: header description: ONE_OF type i18n value in the provided CSV import file required: true schema: type: string items-apiCSVMappingProductionInstructionManyOf: name: X-CSV-PI-Type-ManyOf in: header description: MANY_OF type i18n value in the provided CSV import file required: true schema: type: string items-apiCSVMappingProductionInstructionCategory: name: X-CSV-PI-Category in: header description: Name of the 'category' column in the provided CSV import file required: false schema: type: string items-apiCSVMappingProductionInstructionCategoryComment: name: X-CSV-PI-Category-Comment in: header description: COMMENT type i18n value in the provided CSV import file required: false schema: type: string items-apiCSVMappingProductionInstructionCategoryAddOn: name: X-CSV-PI-Category-AddOn in: header description: ADD_ON type i18n value in the provided CSV import file required: false schema: type: string items-apiCSVMappingProductionInstructionCategoryRemoval: name: X-CSV-PI-Category-Removal in: header description: REMOVAL type i18n value in the provided CSV import file required: false schema: type: string items-apiCSVMappingProductionInstructionCategoryWarning: name: X-CSV-PI-Category-Warning in: header description: WARNING type i18n value in the provided CSV import file required: false schema: type: string items-apiCategoryId: in: path name: categoryId required: true description: Top screen button id schema: type: integer format: int64 items-apiTagCode: in: query name: tagCode required: false schema: type: string items-apiLocale: in: query name: locale required: false schema: type: string description: Locale code default: en items-apiGetAccountingGroupSortFilter: in: query name: sortFilter description: Sort type for accounting group by locations schema: type: object properties: sorting: $ref: '#/components/schemas/items-apiLocationAccountingGroupSortFieldsEnumDto' sortOrder: $ref: '#/components/schemas/items-apiSortOrderEnumDto' order-paybusinessLocationIdParam: in: path name: businessLocationId required: true schema: type: integer format: int64 example: 120391267 description: the business location id payments-processing-serviceIdempotencyKey: in: header name: Idempotency-Key required: true description: A unique key for each payment request. schema: type: string payments-processing-serviceBusinessLocationId: in: path name: businessLocationId required: true description: Business location id schema: type: integer format: int64 payments-processing-serviceLSPayId: in: path name: lspayId required: true description: LSPay reference id returned in the response of initiate payment aka merchant reference id schema: type: string example: 0d00b6f8-0c52-4968-8925-ac3bbe5123a1 payments-processing-serviceUserAgent: in: header name: User-Agent required: true description: User agent of the client making the request schema: type: string pms-integrationLocationIdPathParam: name: locationId in: path required: true schema: type: integer format: int64 example: '12345236663' description: "The location ID of the charges to be fetched for.\n" pos-config-apiBusinessId: in: path name: businessId required: true description: Business id schema: type: integer format: int64 pos-config-apiBusinessLocationId: in: path name: businessLocationId required: true description: Business location id schema: type: integer format: int64 pos-config-apiLoginTokenId: in: path name: loginTokenId required: true description: Login Token Id schema: type: integer format: int64 pos-config-apiPosConfigurationId: in: path name: posConfigurationId required: true description: POS configuration id schema: type: integer format: int64 pos-config-apiDeviceId: in: path name: deviceId required: true description: Device id schema: type: integer format: int64 pos-config-apiFilterMenuIds: in: query name: menu-ids required: true description: Comma separated menu ids schema: type: array items: type: integer format: int64 pos-config-apiFilterConfigurationIds: in: query name: configuration-ids required: true description: Comma separated configuration ids schema: type: array items: type: integer format: int64 preferences-apibusinessId: description: Business ID. This field is ignored, setting is set by a Location ID param. in: path name: businessId required: true schema: type: integer format: int64 preferences-apilocationId: description: Location ID in: path name: locationId required: true schema: type: integer format: int64 preferences-apinamespace: description: Namespace of the preference in: path name: namespace required: true schema: type: string preferences-apidocumentKey: description: key of the preference in: path name: documentKey required: true schema: type: string pulse-reporting-serviceBusinessIdPath: in: path name: businessId required: true description: The unique identifier for the business. schema: type: integer format: int64 pulse-reporting-serviceBusinessLocationIdPath: in: path name: businessLocationId required: true description: The unique identifier for the business location. schema: type: integer format: int64 pulse-reporting-serviceStartDateQuery: in: query name: startDate required: true description: Zoneless datetime, format yyyy-MM-ddTHH:mm. No seconds, no timezone offset. schema: type: string pulse-reporting-serviceEndDateQuery: in: query name: endDate required: true description: Zoneless datetime, format yyyy-MM-ddTHH:mm. No seconds, no timezone offset. schema: type: string pulse-reporting-serviceSaleTypeQuery: in: query name: saleType required: true description: The type of sale to report on. schema: type: string enum: - gross - net pulse-reporting-serviceIntervalQuery: in: query name: interval required: true description: The time interval for grouping data. schema: type: string enum: - hour - day - week - month pulse-reporting-serviceLocationIdsQuery: in: query name: locationIds required: true description: List of business location identifiers to include. schema: type: array items: type: string pulse-reporting-serviceComparisonStartDateQuery: in: query name: comparisonStartDate required: true description: Comparison period start. Zoneless datetime, format yyyy-MM-ddTHH:mm. No seconds, no timezone offset. schema: type: string pulse-reporting-serviceComparisonEndDateQuery: in: query name: comparisonEndDate required: true description: Comparison period end. Zoneless datetime, format yyyy-MM-ddTHH:mm. No seconds, no timezone offset. schema: type: string pulse-serviceBusinessIdPath: in: path name: businessId required: true description: The unique identifier for the business. schema: type: integer format: int64 pulse-serviceBusinessLocationIdPath: in: path name: businessLocationId required: true description: The unique identifier for the business location. schema: type: integer format: int64 pulse-serviceBusinessLocationIdParam: in: query name: businessLocationId required: true description: The unique identifier for the business location. schema: type: integer format: int64 pulse-serviceChecklistDefinitionIdPath: in: path name: checklistDefinitionId required: true description: The unique identifier for the checklist definition. schema: type: integer format: int64 pulse-serviceChecklistInstanceId: in: path name: checklistInstanceId required: true description: The unique identifier for the checklist instance. schema: type: integer format: int64 pulse-serviceStartDateParam: in: query name: startDate required: true description: Start date for filtering (ISO 8601 DateTime) schema: type: string format: date-time example: '2023-07-10T00:00:00Z' pulse-serviceEndDateParam: in: query name: endDate required: true description: End date for filtering(ISO 8601 DateTime) schema: type: string format: date-time example: '2023-07-11T23:59:59Z' pulse-serviceLimitParam: in: query name: limit required: false description: Max number of objects to return schema: type: integer format: int32 default: 100 minimum: 1 maximum: 500 pulse-serviceFileTypeParam: in: path name: fileType required: true description: The type of file to upload schema: type: string enum: - image - signature pulse-serviceFileNameParam: in: query name: fileName required: false description: Optional file name for the upload schema: type: string pulse-serviceUserIdPath: name: userId in: path required: true description: The id of the user schema: type: integer format: int64 pulse-serviceUserTagId: name: userTagId in: path required: true description: The id if the user-tag schema: type: integer format: int64 pulse-servicePage: name: page in: query description: The page number (0-based) required: false schema: type: integer format: int32 default: 0 minimum: 0 pulse-serviceSize: name: size in: query description: Number of results to return per page required: false schema: type: integer format: int32 default: 10 minimum: 1 maximum: 30 pulse-serviceTemperatureVersionParam: name: temperatureVersion in: query description: For create/update requests, this parameter takes priority over the version field inside individual tasks. If omitted (defaults to 1), all tasks are treated as version 1 regardless of the version specified in the task body. required: false schema: type: integer format: int32 default: 1 enum: - 1 - 2 pulse-serviceAppPlatformParam: name: platform in: query required: true description: Mobile app platform. Supported values are ios and android. schema: type: string example: ios pulse-serviceUserTagsSortingField: in: query name: sortField required: false schema: type: string default: name enum: - id - name description: sorting field pulse-serviceSortingOrder: in: query name: sortOrder required: false schema: type: string default: asc enum: - asc - desc description: sort order quebec-fiscalBusinessLocationId: in: path name: businessLocationId required: true schema: format: int64 type: integer example: 45454565682155 description: ID of the business location quebec-fiscalTotalsId: in: path name: totalsId required: true description: Concatenation of {business location ID}_{year}_{requestedAt} schema: type: string reporting-serviceBusinessId: in: path name: businessId required: true description: Business Id schema: type: integer format: int64 reporting-serviceBusinessLocationId: in: path name: businessLocationId required: true description: Business location Id schema: type: integer format: int64 reporting-serviceStartDate: in: query name: startDate required: true example: '2021-04-16' schema: type: string format: date reporting-serviceEndDate: in: query name: endDate required: true example: '2021-04-16' schema: type: string format: date reporting-serviceStartDateTime: in: query name: from required: true schema: example: '2025-03-21T10:11:56Z' type: string format: date-time reporting-serviceEndDateTime: in: query name: to required: true schema: example: '2025-03-22T10:11:56Z' type: string format: date-time reporting-serviceLimit: in: query name: limit required: false schema: type: integer format: int32 default: 5 staff-apiBusinessId: name: businessId in: path required: true description: The unique identifier for the business. schema: type: integer format: int64 staff-apiBusinessLocationId: name: businessLocationId in: path required: true description: The unique identifier for the business location. schema: type: integer format: int64 staff-apiStaffId: name: staffId in: query required: false description: Filter on the unique identifier for the user. schema: type: integer format: int64 staff-apiPage: name: page in: query description: The page number, when paginating. schema: default: 1 minimum: 1 type: integer format: int32 staff-apiSize: name: size in: query description: Number of results to return per page, when paginating. schema: default: 10 minimum: 1 type: integer format: int32 staff-apiSortByShift: name: sort in: query description: Sort by field and direction. schema: type: array items: type: string default: - date,desc staff-apiSortByStaff: name: sort in: query description: Sort by field and direction. schema: type: array items: type: string default: - userId,desc staff-apiSortByStaffGroup: name: sort in: query description: Sort by field and direction. schema: type: array items: type: string default: - name,asc staff-apiStartDate: name: startDate in: query description: Show results after this start time. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format). schema: type: string format: date-time staff-apiEndDate: name: endDate in: query description: Show results before this end time. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format). schema: type: string format: date-time staff-apiStartTime: name: startTime in: query description: Show results after this start time. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format). schema: type: string format: date-time staff-apiEndTime: name: endTime in: query description: Show results before this end time. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format). schema: type: string format: date-time teckelPathBusinessId: in: path name: businessId required: true schema: $ref: '#/components/schemas/teckelBusinessId' teckelPathSKU: in: path name: sku required: true schema: $ref: '#/components/schemas/teckelSKU' teckelPage: in: query name: page required: false schema: type: integer example: 10 description: Starting page of results, when paginating. default: 0 teckelSize: in: query name: size required: false schema: type: integer example: 100 description: Number of results to return, when paginating. default: 1000 teckelSort: in: query name: sort required: false schema: type: array items: type: string example: sku description: Field used to determine order of results. examples: {} requestBodies: Request: required: true description: New business or client creation request body content: application/json: schema: $ref: '#/components/schemas/developer-portal-serviceRequestIn' example: name: Business creation request data: request_type: Business address: 123 Main St zip_code: '12345' city: New York state: NY country: US business_name: My Business business_location_name: My Location business_location_language: en business_location_timezone: America/New_York RequestChange: required: true description: Change the request after it has been provisioned. content: application/json: schema: $ref: '#/components/schemas/developer-portal-serviceRequestChangeIn' headers: {} securitySchemes: OAuth2: description: "The Lightspeed Restaurant K-Series APIs support OAuth2 authentication using the [authorization code grant flow](https://www.oauth.com/oauth2-servers/server-side-apps/authorization-code/).\nSee our [Authorization Quick Start Guide](https://api-portal.lsk.lightspeed.app/quick-start/authentication/authorization-overview) for more details on how to authenticate.\n" type: oauth2 flows: authorizationCode: authorizationUrl: /oauth/authorize tokenUrl: /oauth/token scopes: orders-api: "Read business information, floors, menus, discounts, and production instructions.\nRead and write orders and payments. Read [Rich Item](https://api-docs.lsk.lightspeed.app/prod/group/endpoint-rich-item) data." financial-api: Read financial data reservation-***: Platform reservations scope. The `***` will be replaced by the [platform-code](https://api-docs.lsk.lightspeed.app/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-platform-code) of the reservation platform. items: Read and write items propertymanagement: Read and write Property Management System configurations. id-cards: Create and manage ID card batches and cards. staff-api: Read shift information, read and write user information. reservations-api: "Configure *legacy* reservation integrations.\n**Note:** This API will eventually be deprecated in favour of the new [Reservations for Platforms](https://api-docs.lsk.lightspeed.app/group/endpoint-reservations-for-platforms) API.\nMore information on the new reservations workflows can be found in the [Integration Guide](https://api-portal.lsk.lightspeed.app/category/reservations)." links: {} callbacks: {}