{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "reservation-servicePlatformProfileResponse",
"description": "reservation-servicePlatformProfileResponse schema from Lightspeed Restaurant K Series API",
"$id": "https://raw.githubusercontent.com/api-evangelist/lightspeed-pos/refs/heads/main/json-schema/restaurant-k-series-reservation-service-platform-profile-response-schema.json",
"type": "object",
"properties": {
"baseUrl": {
"description": "The base URL of the external platform (optional).",
"example": "https://my.platform/api/lsk",
"format": "uri",
"type": "string"
},
"depositSupported": {
"description": "Whether or not the platform supports deposits.",
"example": true,
"type": "boolean"
},
"displayName": {
"description": "The official platform name that will be displayed.",
"example": "My Platform",
"type": "string"
},
"errorsWebhookUrl": {
"description": "The URL where notifications for any issues will be sent.
Required for [`error` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Get Sample Error notification](https://api-docs.lsk.lightspeed.app/operation/operation-reservationErrorNotification).\n",
"example": "https://my.platform/api/lsk/webhook/errors",
"type": "string",
"format": "uri"
},
"integrationWebhookUrl": {
"description": "The URL where notifications for activation or deactivation of the customer's integration will be sent.
Required for [`integration` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Integration notification](https://api-docs.lsk.lightspeed.app/operation/operation-reservationintegrationnotification).\n",
"example": "https://my.platform/api/lsk/webhook/integrations",
"type": "string",
"format": "uri"
},
"notificationTypes": {
"description": "The events that trigger a notification.",
"example": [
"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).\n",
"example": "https://my.platform/api/lsk/webhook/onboarding",
"type": "string",
"format": "uri"
},
"orderWebhookUrl": {
"description": "The URL where order notifications will be sent.
Required for [`order` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).
See [Order Notification](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservationordernotification).\n",
"example": "https://my.platform/api/lsk/webhook/orders",
"type": "string",
"format": "uri"
},
"posReservationUpdateWebhookUrl": {
"description": "The URL where notifications about reservation changes on POS will be sent.",
"example": "https://my.platform/api/lsk/webhook/reservation",
"type": "string",
"format": "uri"
},
"ownNotificationsOnly": {
"description": "When `true`, notifications will only be sent for orders linked to the reservation platform.",
"example": true,
"type": "boolean"
},
"webhookAuthType": {
"description": "The type of authentication used by the webhook.",
"enum": [
"BASIC_AUTH",
"BEARER_TOKEN",
"API_KEYS",
"OAUTH2",
"NONE"
],
"example": "OAUTH2",
"type": "string"
},
"allowCourseNumberUpdates": {
"type": "boolean",
"example": true,
"default": false,
"description": "If true, table statuses can be customized using a number format."
},
"inServiceTableStatuses": {
"items": {
"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"
]
},
"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": {
"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"
},
"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"
]
}