Lightspeed Reservations for Platforms API
The Reservations for Platforms API from Lightspeed — 11 operation(s) for reservations for platforms.
The Reservations for Platforms API from Lightspeed — 11 operation(s) for reservations for platforms.
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
# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lightspeed-pos/refs/heads/main/openapi/lightspeed-pos-reservations-for-platforms-api-openapi.yml