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.

    Maximum length is 11. Format should match the following pattern: [a-zA-Z0-9_-]+.

application/json

Body Required

  • baseUrl string(uri)

    The base URL of the external platform (optional).

  • Whether or not the platform supports deposits.

  • displayName string Required

    The official platform name that will be displayed.

  • The URL where notifications for any issues will be sent.
    Required for error notificationTypes.
    See Get Sample Error notification.

  • The URL where notifications for activation or deactivation of the customer's integration will be sent.
    Required for integration notificationTypes.
    See Integration notification.

  • notificationTypes array[string]

    The events that trigger a notification.

    Values are ORDER_OPENED, ORDER_UPDATED, ORDER_CLOSED, ONBOARDING_STARTED, INTEGRATION_ACTIVATED, INTEGRATION_DEACTIVATED, or ERROR.

  • The URL where notifications for the customer's integration onboarding will be sent.
    Required for onboarding notificationTypes.
    See Onboarding notification.

  • The URL where order notifications will be sent.
    Required for order notificationTypes.
    See Order Notification.

  • 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.

    Additional properties are allowed.

    Hide webhookAuthDetails attributes Show webhookAuthDetails attributes object
    • apiKeys object

      The API keys that will be sent with the webhook notifications. See API Keys.

      Additional properties are allowed.

      Hide apiKeys attributes Show apiKeys attributes object
      • headers object
        Hide headers attribute Show headers attribute object
        • * string Additional properties

          Key-value pairs of arbitrary static headers to send with the webhook request.

      • Hide parameters attribute Show parameters attribute object
        • * string Additional properties

          Key-value pairs of arbitrary static query parameters to send with the webhook request.

    • basic object

      The basic authentication credentials that will be sent with the webhook notifications. See Basic Authentication.

      Additional properties are allowed.

      Hide basic attributes Show basic attributes object
      • password string(password) Required

        The basic auth password.

      • username string Required

        The basic auth username.

    • bearer object

      The bearer token that will be sent with the webhook notifications. See Bearer Authentication.

      Additional properties are allowed.

      Hide bearer attributes Show bearer attributes object
      • token string(password) Required

        The bearer token.

      • ttl string(date-time)

        Token expiration time in UTC.

    • oauth2 object

      The OAuth2 credentials that will be sent with the webhook notifications. See OAuth 2.0.

      Additional properties are allowed.

      Hide oauth2 attributes Show oauth2 attributes object
  • webhookAuthType string Required

    The type of authentication used by the webhook.

    Values are BASIC_AUTH, BEARER_TOKEN, API_KEYS, OAUTH2, or NONE.

  • If true, table statuses can be customized using a number format.

    Default value is false.

  • List of customizable table statuses that will be used to notify platforms about reservation progress with outbound API.

    Hide inServiceTableStatuses attributes Show inServiceTableStatuses attributes object
    • 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(int32) Required

      This number is used to resolve collisions between statuses in order of highest priority.

Responses

POST /reservation/api/1/platform/{platform-code}/profile
curl \
 -X POST https://api.lsk.lightspeed.app/reservation/api/1/platform/MyPlatform/profile \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"baseUrl":"https://my.platform/api","depositSupported":true,"displayName":"My Platform","errorsWebhookUrl":"https://my.platform/api/webhook/errors","integrationWebhookUrl":"https://my.platform/api/webhook/integrations","notificationTypes":["ORDER_CLOSED"],"onboardingWebhookUrl":"https://my.platform/api/webhook/onboarding","orderWebhookUrl":"https://my.platform/api/webhook/orders","ownNotificationsOnly":true,"webhookAuthDetails":{"apiKeys":{"headers":{"X-API-ID":"Example-x-api-id","X-API-SECRET":"Example-x-api-secret"},"parameters":{"additionalProperty1":"string","additionalProperty2":"string"}},"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}]}'
Request examples
{
  "baseUrl": "https://my.platform/api",
  "depositSupported": true,
  "displayName": "My Platform",
  "errorsWebhookUrl": "https://my.platform/api/webhook/errors",
  "integrationWebhookUrl": "https://my.platform/api/webhook/integrations",
  "notificationTypes": [
    "ORDER_CLOSED"
  ],
  "onboardingWebhookUrl": "https://my.platform/api/webhook/onboarding",
  "orderWebhookUrl": "https://my.platform/api/webhook/orders",
  "ownNotificationsOnly": true,
  "webhookAuthDetails": {
    "apiKeys": {
      "headers": {
        "X-API-ID": "Example-x-api-id",
        "X-API-SECRET": "Example-x-api-secret"
      },
      "parameters": {
        "additionalProperty1": "string",
        "additionalProperty2": "string"
      }
    },
    "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
    }
  ]
}
Response examples (200)
{
  "baseUrl": "https://my.platform/api",
  "depositSupported": true,
  "displayName": "My Platform",
  "errorsWebhookUrl": "https://my.platform/api/webhook/errors",
  "integrationWebhookUrl": "https://my.platform/api/webhook/integrations",
  "notificationTypes": [
    "ORDER_CLOSED"
  ],
  "onboardingWebhookUrl": "https://my.platform/api/webhook/onboarding",
  "orderWebhookUrl": "https://my.platform/api/webhook/orders",
  "ownNotificationsOnly": true,
  "webhookAuthType": "OAUTH2",
  "allowCourseNumberUpdates": true,
  "inServiceTableStatuses": [
    {
      "statusLabel": "Appetizer",
      "statusValue": "appetizer",
      "sequence": 1
    }
  ]
}