Lightspeed Restaurant K Series API
1.0.0

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.

These services are in continuous development and subject to change. Find our versioning policy here.

This is the documentation for version 1.0.0 of the API. Last update on May 1, 2024.

Base URL
https://api.trial.lsk.lightspeed.app

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

  • baseUrl string(uri)

    The base url of the external platform for non-standard webhooks.

  • The url where order notifications will be sent.
    Required for order notification types, see notificationTypes field.
    Example of outbound payload in Get Sample Order Update

  • The url where notifications for activation or deactivation of the customer's integration will be sent.
    Required for integration notification types, see notificationTypes field.
    Example of outbound payload in Get Sample Integration notification

  • The url where notifications for the customer's integration onboarding will be sent.
    Required for onboarding notification types, see notificationTypes field.
    Example of outbound payload in Get Sample Onboarding notification

  • The url where notifications for any issues will be sent.
    Required for error notification types, see notificationTypes field.
    Example of outbound payload in Get Sample Error notification

  • The events that trigger a notification.

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

  • displayName string Required

    The official platform name that will be displayed.

  • Whether or not the platform supports deposits.

  • When true, notifications will only be sent for orders linked to the reservation platform.

  • webhookAuthType string Required

    The type of authentication used by the webhook.

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

  • webhookAuthDetails object Required

    The authentication credentials to be sent with the webhook notifications.

    Hide webhookAuthDetails attributes Show webhookAuthDetails attributes

Responses

  • 200

    Accepted

  • 400

    Non relevant request

  • 403

    Scope 'reservation-{platform-code}' not found in the token

POST /reservation/api/1/platform/{platform-code}/profile
curl \
 -X POST https://api.trial.lsk.lightspeed.app/reservation/api/1/platform/EasyTable/profile \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"baseUrl":"https://table.easy/api","orderWebhookUrl":"https://table.easy/api/webhook/orders","integrationWebhookUrl":"https://table.easy/api/webhook/integrations","onboardingWebhookUrl":"https://table.easy/api/webhook/onboarding","errorsWebhookUrl":"https://table.easy/api/webhook/errors","notificationTypes":["ORDER_CLOSED"],"displayName":"Easy Table","depositSupported":true,"ownNotificationsOnly":true,"webhookAuthType":"OAUTH2","webhookAuthDetails":{"basic":{"username":"LightspeedKSeries","password":"Example-Password"},"bearer":{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...","tokenTtl":"2025-01-01T00:00:00"},"apiKeys":{"headers":{"X-API-ID":"Example-x-api-id","X-API-SECRET":"Example-x-api-secret"},"parameters":{"key":"string"}},"oauth2":{"clientId":"LightspeedKSeries","clientSecret":"Example-Client-Secret","clientName":"LightspeedKSeries","clientAuthorizationMethod":"CLIENT_SECRET_BASIC","authorizationGrantType":"CLIENT_CREDENTIALS","scopes":["webhooks-api"],"providerTokenUri":"https://table.easy/emitter/token","providerJwkSetUri":"https://table.easy/public-keys"}}}'
Request example
{
  "baseUrl": "https://table.easy/api",
  "orderWebhookUrl": "https://table.easy/api/webhook/orders",
  "integrationWebhookUrl": "https://table.easy/api/webhook/integrations",
  "onboardingWebhookUrl": "https://table.easy/api/webhook/onboarding",
  "errorsWebhookUrl": "https://table.easy/api/webhook/errors",
  "notificationTypes": [
    "ORDER_CLOSED"
  ],
  "displayName": "Easy Table",
  "depositSupported": true,
  "ownNotificationsOnly": true,
  "webhookAuthType": "OAUTH2",
  "webhookAuthDetails": {
    "basic": {
      "username": "LightspeedKSeries",
      "password": "Example-Password"
    },
    "bearer": {
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
      "tokenTtl": "2025-01-01T00:00:00"
    },
    "apiKeys": {
      "headers": {
        "X-API-ID": "Example-x-api-id",
        "X-API-SECRET": "Example-x-api-secret"
      },
      "parameters": {
        "key": "string"
      }
    },
    "oauth2": {
      "clientId": "LightspeedKSeries",
      "clientSecret": "Example-Client-Secret",
      "clientName": "LightspeedKSeries",
      "clientAuthorizationMethod": "CLIENT_SECRET_BASIC",
      "authorizationGrantType": "CLIENT_CREDENTIALS",
      "scopes": [
        "webhooks-api"
      ],
      "providerTokenUri": "https://table.easy/emitter/token",
      "providerJwkSetUri": "https://table.easy/public-keys"
    }
  }
}