Create or Update Reservation

PUT /reservation/api/1/platform/{platform-code}/restaurant/{platform-restaurant-id}/reservation/{platform-reservation-id}/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-id string Required

    The external platform's unique identifier for the restaurant.

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

  • The external identifier of the reservation.

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

application/json

Body Required

  • guest object Required

    Guest information associated with the reservation.

    Additional properties are allowed.

    Hide guest attributes Show guest attributes object
    • email string(email)

      The guest's email address.

    • firstName string Required

      The guest's first name.

    • lastName string

      The guest's last name.

    • phone string(phone)

      The guest's phone number.

    • platformGuestId string Required

      The external platform's unique identifier for the guest.

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

    • walkIn boolean

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

      Default value is false.

    • Any details about guest's food and drink preferences.

    • notes string

      Other notes about the guest.

    • language string

      Guest's language; use two-symbol ISO-639 for best results on POS.

    • allergens array[string]

      Any allergens linked to this guest. See Allergens table for a list of allergen names with available translations. Any other text will be displayed as provided in the request body.

    • dietaryRestrictions array[string]

      Any dietary restrictions linked to this guest. See Dietary Restrictions table for a list of restrictions with available translations. Any other text will be displayed as provided in the request body.

  • The guest's obligation for the reservation.

    Additional properties are allowed.

    Hide liability attributes Show liability attributes object
    • 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
      • amount string Required

        The amount of the deposit made through the external platform.

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

      • The external platform's unique identifier for the deposit.

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

      • utcCreatedAt string(date-time) Required

        Deposit creation time.

      • utcVoidedAt string(date-time)

        Deposit void time, if applicable.

      • voided boolean

        Whether or not the deposit was voided.

    • refunds array[object]

      List of all deposits refunded to the guest.

      Hide refunds attributes Show refunds attributes object
      • amount string Required

        The amount which was refunded by the external platform.

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

      • The external platform's unique identifier for the refund.

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

      • utcCreatedAt string(date-time) Required

        Refund creation time.

      • utcVoidedAt string(date-time)

        Refund void time, if applicable.

      • voided boolean

        Whether or not the refund was voided.

  • notes string

    Venue-entered notes specific to the reservation.

  • Any special offer linked to the reservation.

  • tags array[string]

    Tags linked to this reservation. See Reservation Tags table for a list of tags with available translations. All others will be displayed as provided in the request body.

  • partySize integer(int32) Required

    The number of expected guests.

  • sequenceId integer(int64)

    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.

  • status string Required

    Reservation statuses to return.

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

  • tableNumbers array[string]

    The list of table numbers associated with this reservation. If no valid table is provided, POS order is not created.

  • utcScheduledAt string(date-time) Required

    The scheduled reservation time.

  • utcUpdatedAt string(date-time) Required

    The timestamp of the most recent change to the reservation.

Responses

  • 202 application/json

    Accepted

    Hide response attributes Show response attributes object
    • platformCode string Required

      The unique code assigned to the reservation platform.

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

    • platformRestaurantId string Required

      The external platform's unique identifier for the restaurant.

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

    • platformReservationId string Required

      The external platform's unique identifier for the reservation.

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

    • accepted boolean Required

      Whether the reservation request was accepted.

  • Non relevant request

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

  • Integration not found

PUT /reservation/api/1/platform/{platform-code}/restaurant/{platform-restaurant-id}/reservation/{platform-reservation-id}/push
curl \
 -X PUT https://api.lsk.lightspeed.app/reservation/api/1/platform/MyPlatform/restaurant/Restaurant-123/reservation/Reservation-123/push \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"guest":{"email":"john.smith@email.com","firstName":"John","lastName":"Smith","phone":"+13453455555","platformGuestId":"ABC-123","walkIn":true,"foodAndDrinkNotes":"Only milk and cookies!","notes":"Put the ring in the champagne!","language":"en","allergens":["almonds","egg"],"dietaryRestrictions":["no alcohol","vegan"]},"liability":{"currency":"EUR","deposits":[{"amount":"100.00","platformDepositId":"1","utcCreatedAt":"2024-01-01T20:00:00","utcVoidedAt":"2024-01-01T20:00:00","voided":false}],"refunds":[{"amount":"100.00","platformRefundId":"1","utcCreatedAt":"2024-01-01T20:00:00","utcVoidedAt":"2024-01-01T20:00:00","voided":false}]},"notes":"More balloons!","specialOffer":"Free dessert","tags":["romantic meal","special occasion"],"partySize":2,"sequenceId":145789499819,"status":"SCHEDULED","tableNumbers":["1"],"utcScheduledAt":"2024-01-01T20:00:00","utcUpdatedAt":"2024-01-01T20:10:00"}'
Request examples
{
  "guest": {
    "email": "john.smith@email.com",
    "firstName": "John",
    "lastName": "Smith",
    "phone": "+13453455555",
    "platformGuestId": "ABC-123",
    "walkIn": true,
    "foodAndDrinkNotes": "Only milk and cookies!",
    "notes": "Put the ring in the champagne!",
    "language": "en",
    "allergens": [
      "almonds",
      "egg"
    ],
    "dietaryRestrictions": [
      "no alcohol",
      "vegan"
    ]
  },
  "liability": {
    "currency": "EUR",
    "deposits": [
      {
        "amount": "100.00",
        "platformDepositId": "1",
        "utcCreatedAt": "2024-01-01T20:00:00",
        "utcVoidedAt": "2024-01-01T20:00:00",
        "voided": false
      }
    ],
    "refunds": [
      {
        "amount": "100.00",
        "platformRefundId": "1",
        "utcCreatedAt": "2024-01-01T20:00:00",
        "utcVoidedAt": "2024-01-01T20:00:00",
        "voided": false
      }
    ]
  },
  "notes": "More balloons!",
  "specialOffer": "Free dessert",
  "tags": [
    "romantic meal",
    "special occasion"
  ],
  "partySize": 2,
  "sequenceId": 145789499819,
  "status": "SCHEDULED",
  "tableNumbers": [
    "1"
  ],
  "utcScheduledAt": "2024-01-01T20:00:00",
  "utcUpdatedAt": "2024-01-01T20:10:00"
}
Response examples (202)
{
  "platformCode": "MyPlatform",
  "platformRestaurantId": "Restaurant-123",
  "platformReservationId": "Reservation-123",
  "accepted": true
}