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 Reservation

PUT /reservation/api/1/platform/{platform-code}/restaurant/{platform-restaurant}/reservation/{platform-reservation}/push

Create a new reservation or provide updates about guests, deposits, status, etc.

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_-]+.

  • platform-restaurant string Required

    The external platform ID for the restaurant.

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

  • platform-reservation string Required

    The external ID of the reservation.

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

application/json

Body

  • status string Required

    Values are ON_HOLD, SCHEDULED, PARTIALLY_ARRIVED, ARRIVED, PARTIALLY_SEATED, SEATED, DEPARTED, CANCELLED, NO_SHOW, or ERROR.

  • partySize integer(int32) Required

    The number of expected guests.

  • guest object Required
    Hide guest attributes Show guest attributes
    • platformGuestId string Required

      The external platform ID for the guest.

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

    • firstName string Required

      The guest's first name.

    • lastName string

      The guest's last name.

    • email string(email)

      The guest's email address.

    • phone string(phone)

      The guest's phone number.

    • walkIn boolean

      When true, indicates this is a walk-in reservation.

      Default value is false.

  • tableNumbers array[string]

    The list of table numbers associated with this reservation. The field is required when the reservation state is SEATED or PARTIALLY_SEATED.

  • notes string

    Additional details about the reservation.

  • The guest's obligation for this reservation.

    Hide liability attributes Show liability attributes
    • currency string Required

      ISO-4217

      Format should match the following pattern: [A-Z]{3}.

    • deposits array[object] Required

      List of all prepaid deposits made through the external platform.

      Hide deposits attributes Show deposits attributes object
      • The external platform ID for the deposit.

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

      • amount string Required

        The amount of the deposit made through the external platform.

        Format should match the following pattern: ^[0-9]+.[0-9]{2}$.

      • voided boolean

        Whether or not the deposit was voided.

      • utcCreatedAt string(date-time) Required

        Deposit creation time.

      • utcVoidedAt string(date-time)

        Deposit void time, if applicable.

    • refunds array[object]

      List of all deposits refunded to the guest.

      Hide refunds attributes Show refunds attributes object
      • The external platform ID for the refund.

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

      • amount string Required

        The amount which was refunded by the external platform.

        Format should match the following pattern: ^[0-9]+.[0-9]{2}$.

      • voided boolean

        Whether or not the refund was voided.

      • utcCreatedAt string(date-time) Required

        Refund creation time.

      • utcVoidedAt string(date-time)

        Refund void time, if applicable.

  • utcScheduledAt string(date-time) Required

    The scheduled reservation time.

  • utcUpdatedAt string(date-time) Required

    The timestamp of the most recent change to the reservation.

  • sequenceId integer

    An optional sequence number assigned by the external platform. If provided, it will be used to determine the order of updates of a reservation. It is the responsibility of the external platform to provide a monotonically increasing sequence number. If omitted, the utcUpdatedAt field will be used to determine the order of updates. That can be imprecise when dealing with events that happen in short timeframes in a distributed system. The value SHOULD NOT be set to null or zero or any special value, but instead omitted from the JSON object entirely if it is not used.

Responses

  • 202

    Accepted

  • 400

    Non relevant request

  • 403

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

  • 404

    Integration not found

PUT /reservation/api/1/platform/{platform-code}/restaurant/{platform-restaurant}/reservation/{platform-reservation}/push
curl \
 -X PUT https://api.trial.lsk.lightspeed.app/reservation/api/1/platform/EasyTable/restaurant/Restaurant-123/reservation/Reservation-123/push \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"status":"SCHEDULED","partySize":2,"guest":{"platformGuestId":"ABC-123","firstName":"John","lastName":"Smith","email":"john.smith@email.com","phone":"+13453455555","walkIn":true},"tableNumbers":["1"],"notes":"My birthday","liability":{"currency":"EUR","deposits":[{"platformDepositId":"1","amount":"100.00","voided":false,"utcCreatedAt":"2024-01-01T20:00:00","utcVoidedAt":"2024-01-01T20:00:00"}],"refunds":[{"platformRefundId":"1","amount":"100.00","voided":false,"utcCreatedAt":"2024-01-01T20:00:00","utcVoidedAt":"2024-01-01T20:00:00"}]},"utcScheduledAt":"2024-01-01T20:00:00","utcUpdatedAt":"2024-01-01T20:10:00","sequenceId":145789499819}'
Request example
{
  "status": "SCHEDULED",
  "partySize": 2,
  "guest": {
    "platformGuestId": "ABC-123",
    "firstName": "John",
    "lastName": "Smith",
    "email": "john.smith@email.com",
    "phone": "+13453455555",
    "walkIn": true
  },
  "tableNumbers": [
    "1"
  ],
  "notes": "My birthday",
  "liability": {
    "currency": "EUR",
    "deposits": [
      {
        "platformDepositId": "1",
        "amount": "100.00",
        "voided": false,
        "utcCreatedAt": "2024-01-01T20:00:00",
        "utcVoidedAt": "2024-01-01T20:00:00"
      }
    ],
    "refunds": [
      {
        "platformRefundId": "1",
        "amount": "100.00",
        "voided": false,
        "utcCreatedAt": "2024-01-01T20:00:00",
        "utcVoidedAt": "2024-01-01T20:00:00"
      }
    ]
  },
  "utcScheduledAt": "2024-01-01T20:00:00",
  "utcUpdatedAt": "2024-01-01T20:10:00",
  "sequenceId": 145789499819
}