---
title: "Create or Update Platform Profile"
method: POST
path: "/reservation/api/1/platform/{platform-code}/profile"
tags: ["Reservations for Platforms"]
---

# Create or Update Platform Profile

`POST /reservation/api/1/platform/{platform-code}/profile`

Create or update details for external reservation platform.

## Path parameters

- `platform-code` string, required — The unique code assigned to the reservation platform.

## Request body

- ReservationServicePlatformProfile
  - `baseUrl` string, uri — The base URL of the external platform (optional).
  - `depositSupported` boolean — Whether or not the platform supports deposits.
  - `displayName` string, required — The official platform name that will be displayed.
  - `errorsWebhookUrl` string, uri — The URL where notifications for any issues will be sent. <br> Required for [`error` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).<br> See [Get Sample Error notification](https://api-docs.lsk.lightspeed.app/operation/operation-reservationErrorNotification).
  - `integrationWebhookUrl` string, uri — The URL where notifications for activation or deactivation of the customer's integration will be sent. <br> Required for [`integration` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).<br> See [Integration notification](https://api-docs.lsk.lightspeed.app/operation/operation-reservationintegrationnotification).
  - `notificationTypes` string[] — The events that trigger a notification.
  - `onboardingWebhookUrl` string, uri — The URL where notifications for the customer's integration onboarding will be sent. <br> Required for [`onboarding` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).<br> See [Onboarding notification](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservationonboardingnotification).
  - `orderWebhookUrl` string, uri — The URL where order notifications will be sent. <br> Required for [`order` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).<br> See [Order Notification](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservationordernotification).
  - `posReservationUpdateWebhookUrl` string, uri — The URL where notifications about reservation changes on POS will be sent.
  - `ownNotificationsOnly` boolean — When `true`, notifications will only be sent for orders linked to the reservation platform.
  - `webhookAuthDetails` object, required — The authentication credentials to be sent with the webhook notifications.
    - `apiKeys` ReservationServicePlatformAPIKeysWebhook — The API keys that will be sent with the webhook notifications. See [API Keys](https://swagger.io/docs/specification/authentication/api-keys/).
      - `headers` object
      - `parameters` object
    - `basic` ReservationServicePlatformBasicAuthWebhook — The basic authentication credentials that will be sent with the webhook notifications. See [Basic Authentication](https://swagger.io/docs/specification/authentication/basic-authentication/).
      - `password` string, password, required — The basic auth password.
      - `username` string, required — The basic auth username.
    - `bearer` ReservationServicePlatformBearerTokenWebhook — The bearer token that will be sent with the webhook notifications. See [Bearer Authentication](https://swagger.io/docs/specification/authentication/bearer-authentication/).
      - `token` string, password, required — The bearer token.
      - `ttl` string, date-time — Token expiration time in UTC.
    - `oauth2` ReservationServicePlatformOAuth2Webhook — The OAuth2 credentials that will be sent with the webhook notifications. See [OAuth 2.0](https://oauth.net/2/).
      - `authorizationGrantType` 'CLIENT_CREDENTIALS' — The authorization grant type. See [OAuth2 Grant Types](https://oauth.net/2/grant-types/).
      - `clientAuthorizationMethod` 'CLIENT_SECRET_BASIC' | 'CLIENT_SECRET_JWT' | 'CLIENT_SECRET_POST' — The client authorization method. See [OAuth2 Client Authentication](https://oauth.net/2/client-authentication/).
      - `clientId` string, required — The OAuth2 client ID.
      - `clientName` string — The OAuth2 client name.
      - `clientSecret` string, password, required — The OAuth2 client secret.
      - `providerJwkSetUri` string, uri — The external platform URL for getting public keys to verify given access tokens on the K-Series side.
      - `providerTokenUri` string, uri, required — The external platform URL for getting access tokens by private credentials.
      - `scopes` string[] — The scopes being granted to the API client.
  - `webhookAuthType` 'BASIC_AUTH' | 'BEARER_TOKEN' | 'API_KEYS' | 'OAUTH2' | 'NONE', required — The type of authentication used by the webhook.
  - `allowCourseNumberUpdates` boolean — If true, table statuses can be customized using a number format.
  - `inServiceTableStatuses` ReservationServicePlatformTableStatusDto[] — List of customizable table statuses that will be used to notify platforms about reservation progress with outbound API.
    - `statusLabel` string, required — The unique text which will be displayed in the back-office for users.
    - `statusValue` string, required — The unique code which will be used for outbound communication within table status mapping.
    - `sequence` integer, required — This number is used to resolve collisions between statuses in order of highest priority.
  - `allowedPosStatuses` ReservationServicePlatformReservationStatus[]

## Response `200`

Platform profile details

- ReservationServicePlatformProfileResponse
  - `baseUrl` string, uri — The base URL of the external platform (optional).
  - `depositSupported` boolean — Whether or not the platform supports deposits.
  - `displayName` string, required — The official platform name that will be displayed.
  - `errorsWebhookUrl` string, uri — The URL where notifications for any issues will be sent. <br> Required for [`error` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).<br> See [Get Sample Error notification](https://api-docs.lsk.lightspeed.app/operation/operation-reservationErrorNotification).
  - `integrationWebhookUrl` string, uri — The URL where notifications for activation or deactivation of the customer's integration will be sent. <br> Required for [`integration` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).<br> See [Integration notification](https://api-docs.lsk.lightspeed.app/operation/operation-reservationintegrationnotification).
  - `notificationTypes` string[] — The events that trigger a notification.
  - `onboardingWebhookUrl` string, uri — The URL where notifications for the customer's integration onboarding will be sent. <br> Required for [`onboarding` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).<br> See [Onboarding notification](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservationonboardingnotification).
  - `orderWebhookUrl` string, uri — The URL where order notifications will be sent. <br> Required for [`order` notificationTypes](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-body-application-json-notificationtypes).<br> See [Order Notification](https://api-docs.lsk.lightspeed.app/prod/operation/operation-reservationordernotification).
  - `posReservationUpdateWebhookUrl` string, uri — The URL where notifications about reservation changes on POS will be sent.
  - `ownNotificationsOnly` boolean — When `true`, notifications will only be sent for orders linked to the reservation platform.
  - `webhookAuthType` 'BASIC_AUTH' | 'BEARER_TOKEN' | 'API_KEYS' | 'OAUTH2' | 'NONE', required — The type of authentication used by the webhook.
  - `allowCourseNumberUpdates` boolean — If true, table statuses can be customized using a number format.
  - `inServiceTableStatuses` ReservationServicePlatformTableStatusDto[] — List of customizable table statuses that will be used to notify platforms about reservation progress with outbound API.
    - `statusLabel` string, required — The unique text which will be displayed in the back-office for users.
    - `statusValue` string, required — The unique code which will be used for outbound communication within table status mapping.
    - `sequence` integer, required — This number is used to resolve collisions between statuses in order of highest priority.
  - `allowedPosStatuses` ReservationServicePlatformReservationStatus[] — 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.

## Other responses

- `400` — Non relevant request
- `403` — Scope 'reservation-{platform-code}' not found in the token

---

[API](https://skmtc.dev/lightspeed/apis/lightspeed-restaurant-k-series-api.md) · [All operations](https://skmtc.dev/lightspeed/apis/lightspeed-restaurant-k-series-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lightspeed/lightspeed-restaurant-k-series-api/revisions/6b019a6adcb3/schema)
