openapi: 3.1.0 info: version: 1.0.0 title: Lightspeed Restaurant K Series Account 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 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: 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' 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: - 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: - 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: X-API-ID: Example-x-api-id X-API-SECRET: Example-x-api-secret parameters: {} 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: - 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: - 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 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: - almonds - egg dietaryRestrictions: - no alcohol - vegan liability: currency: EUR deposits: - {} refunds: - {} notes: More balloons! specialOffer: Free dessert tags: - romantic meal - special occasion partySize: 2 sequenceId: 145789499819 status: SCHEDULED tableNumbers: - '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: X-API-ID: Example-x-api-id X-API-SECRET: Example-x-api-secret parameters: {} 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: - webhooks-api 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 components: schemas: 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-serviceBusinessLocationId: description: The unique identifier of the business location. example: 9765040300495493 format: int64 type: integer reservation-servicePlatformCode: description: The unique code assigned to the reservation platform. example: MyPlatform maxLength: 11 pattern: '[a-zA-Z0-9_-]+' 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-servicePlatformRestaurantId: description: The external platform's unique identifier for the restaurant. example: Restaurant-123 pattern: '[a-zA-Z0-9_-]+' type: string 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-servicePlatformDepositSupported: description: Whether or not the platform supports deposits. example: true type: boolean 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-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-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-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-servicePlatformDisplayName: description: The official platform name that will be displayed. example: My Platform type: string reservation-serviceOnboardingCallbackResponse: properties: onboardingCode: $ref: '#/components/schemas/reservation-serviceOnboardingCode' required: - onboardingCode 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-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-servicePlatformIntegrationDto: properties: businessLocationId: $ref: '#/components/schemas/reservation-serviceBusinessLocationId' platformRestaurantId: $ref: '#/components/schemas/reservation-servicePlatformRestaurantId' required: - businessLocationId - platformRestaurantId 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-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-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-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-serviceOnboardingId: description: The unique identifier of the integration process that has started onboarding. example: 84f16177-98c5-4010-a7ab-d00144d1dede 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-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-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 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'