openapi: 3.2.0 info: version: 1.0.0 title: Lightspeed Restaurant K Series Reservations for Platforms 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. Detailed developer guides can be found in the [Lightspeed Restaurant API Portal](https://api-portal.lsk.lightspeed.app/). These services are in continuous development and subject to change. Please find our versioning policy [here](https://api-portal.lsk.lightspeed.app/quick-start/versioning). ' x-logo: altText: Lightspeed Commerce url: static/lightspeed@2x.png 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: Reservations for Platforms paths: /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' responses: '200': content: application/json: schema: $ref: '#/components/schemas/reservation-serviceOnboardingCallbackResponse' description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/reservation-serviceOnboardingCallbackResponse' 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' description: Platform not found security: - OAuth2: - reservation-platform-code summary: Callback to Complete Onboarding tags: - Reservations for Platforms /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' 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: Platform Profile Details tags: - Reservations for Platforms 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' responses: '200': content: application/json: schema: $ref: '#/components/schemas/reservation-servicePlatformProfileResponse' 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: Create or Update Platform Profile tags: - Reservations for Platforms /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' 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: Platform course settings definition tags: - Reservations for Platforms /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' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/reservation-servicePlatformReservationAcceptedDto' '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: Create or Update Reservation tags: - Reservations for Platforms /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' responses: '200': description: Accepted content: application/json: schema: $ref: '#/components/schemas/reservation-servicePlatformWebhookResponseDto' '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: Add authentication by XApiKey tags: - Reservations for Platforms /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' responses: '200': description: Accepted content: application/json: schema: $ref: '#/components/schemas/reservation-servicePlatformWebhookResponseDto' '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: Add authentication with BasicAuth tags: - Reservations for Platforms /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' responses: '200': description: Accepted content: application/json: schema: $ref: '#/components/schemas/reservation-servicePlatformWebhookResponseDto' '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: Add authentication with BearerAuth tags: - Reservations for Platforms /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' responses: '200': description: Accepted content: application/json: schema: $ref: '#/components/schemas/reservation-servicePlatformWebhookResponseDto' '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: Add authentication with OAuth2 tags: - Reservations for Platforms /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' 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: Get Business Locations tags: - Reservations for Platforms /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' 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: Activate Integration for Restaurant tags: - Reservations for Platforms /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' 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: Deactivate Integration for Restaurant tags: - Reservations for Platforms webhooks: 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. components: schemas: 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: * DIRECT – Retail-like direct sale, no table associated * TABLE – Table based order / sale * DELIVERY – Retail-like delivery or take-away sale, no table associated * LOCAL_ORDER – Sale generated by a local order system (e.g. drink dispenser) * ONLINE – Sale generated by a remote order system (e.g. a web site) * SYSTEM – Used for transfer operations between payment methods * ON_HOLD – Direct Sale that is currently put on hold (parked), resumed at a later time * CROSS_BL – Cross business location order ' 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-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-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-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-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-serviceBusinessLocationId: description: The unique identifier of the business location. example: 9765040300495493 format: int64 type: integer 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: - almonds - egg 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: - no alcohol - vegan 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: - romantic meal - special occasion 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. If 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. The 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. ' example: 145789499819 type: integer format: int64 status: $ref: '#/components/schemas/reservation-servicePlatformReservationStatus' tableNumbers: description: 'The list of table numbers associated with this reservation. If no valid table is provided, POS order is not created. ' example: - '1' 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. ' 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-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-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-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-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-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-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-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-servicePlatformReservationId: description: The external platform's unique identifier for the reservation. example: Reservation-123 maxLength: 36 pattern: '[a-zA-Z0-9_-]+' type: string 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-serviceOnboardingCallbackResponse: properties: onboardingCode: $ref: '#/components/schemas/reservation-serviceOnboardingCode' required: - onboardingCode type: object reservation-servicePlatformDisplayName: description: The official platform name that will be displayed. example: My Platform type: string 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-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-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-servicePlatformCode: description: The unique code assigned to the reservation platform. example: MyPlatform maxLength: 11 pattern: '[a-zA-Z0-9_-]+' type: string 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). ' 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). ' example: https://my.platform/api/lsk/webhook/integrations type: string format: uri notificationTypes: description: The events that trigger a notification. example: - ORDER_CLOSED 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). ' 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). ' 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-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-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-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-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-servicePlatformRestaurantId: description: The external platform's unique identifier for the restaurant. example: Restaurant-123 pattern: '[a-zA-Z0-9_-]+' type: string 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-servicePlatformIntegrationDto: properties: businessLocationId: $ref: '#/components/schemas/reservation-serviceBusinessLocationId' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' required: - businessLocationId - platformRestaurantId type: object 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). ' 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). ' example: https://my.platform/api/lsk/webhook/integrations type: string format: uri notificationTypes: description: The events that trigger a notification. example: - ORDER_CLOSED 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). ' 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). ' 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-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-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-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-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: X-API-ID: Example-x-api-id X-API-SECRET: Example-x-api-secret type: object parameters: additionalProperties: description: Key-value pairs of arbitrary static query parameters to send with the webhook request. type: string example: {} type: object type: object 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-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-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-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-servicePlatformDepositSupported: description: Whether or not the platform supports deposits. example: true type: boolean reservation-serviceOnboardingId: description: The unique identifier of the integration process that has started onboarding. example: 84f16177-98c5-4010-a7ab-d00144d1dede 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-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: - webhooks-api items: type: string type: array uniqueItems: true required: - clientId - clientSecret - providerTokenUri 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-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 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/). See our [Authorization Quick Start Guide](https://api-portal.lsk.lightspeed.app/quick-start/authentication/authorization-overview) for more details on how to authenticate. ' type: oauth2 flows: authorizationCode: authorizationUrl: /oauth/authorize tokenUrl: /oauth/token scopes: orders-api: 'Read business information, floors, menus, discounts, and production instructions. Read 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. **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. More information on the new reservations workflows can be found in the [Integration Guide](https://api-portal.lsk.lightspeed.app/category/reservations).' 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'