Skip to content

Reservations

GET /partners/sync/reservations?lastSyncedAt=... returns table reservations and requests. See Keep your data in sync first.

{
  "newReservations": [
    {
      "id": "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeeee",
      "uniqueId": "RES-abc1234567",
      "venueId": "11111111-1111-4111-8111-111111111111",
      "eventId": "22222222-2222-4222-8222-222222222222",
      "date": "2026-11-15T05:00:00.000Z",
      "time": "2026-11-15T03:00:00.000Z",
      "guestsTotal": 6,
      "guests": { "total": 6, "male": 3, "female": 3 },
      "reservationStatus": "BOOKED",
      "paymentStatus": "NONE",
      "minimum": 1000,
      "minimumType": "AMOUNT",
      "seatingArrangementId": "33333333-3333-4333-8333-333333333333",
      "bookedByType": "EVENT_TABLE",
      "isDeleted": false,
      "consumerUserHasBooking": [
        { "consumerUserId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa" }
      ],
      "paylinks": [],
      "tableBooking": {
        "id": "ffffffff-ffff-4fff-8fff-ffffffffffff",
        "paymentStatus": "SUCCESS",
        "bookingSourceType": "DIRECT",
        "spendAgreement": { "total": 1250, "balanceDueAtVenue": 950 },
        "tableBookingPriceBreakdown": {
          "base": 200,
          "gratuity": 40,
          "salesTax": 18,
          "seFees": 42,
          "discount": 0,
          "total": 300
        }
      }
    }
  ],
  "updatedReservations": [],
  "syncedAt": "2026-11-05T12:00:00.000Z",
  "meta": { "venueId": "11111111-1111-4111-8111-111111111111", "newCount": 1, "updatedCount": 0 }
}

Who is in which list

List What
newReservations Created at or after the checkpoint
updatedReservations Created earlier, and changed at or after the checkpoint
  • Requests are here too. A guest's table request is a reservation with reservationStatus REQUESTED.
  • A declined request can still say REQUESTED. See the warning. The request's own status is not in this answer today.
  • Deleted rows are here too. Leave out rows where isDeleted is true.
  • Only a change to the reservation itself counts. A change to its paylink or table payment does not bring it back by itself.

Fields to use

Other columns can appear. Do not rely on them.

Field Meaning
id, uniqueId The reservation
venueId, eventId eventId is null when it is not tied to an event
date, time The date, and the arrival time when one is set. Both are UTC times, so convert them to the venue's time zone before you read the day.
guestsTotal, guests The party size. guests can also split it by male and female.
reservationStatus See the list. Free text, so expect new values.
paymentStatus For paylinks only. An online table payment is in tableBooking.paymentStatus.
paidPaylinkAmount The total paid through paylinks
minimum, minimumType The minimum. minimumType is AMOUNT, BOTTLES, NO_MIN or COMP.
seatingArrangementId, timeSlotId The seating area and time slot, when one was picked
seatingArea The seating area as text, on requests
bookedByType EVENT_TABLE (online), REQUESTED, VENUE_USER (staff), WALK_IN or ATTRIBUTION_USER. Can be null.
bookingSourceType, bookingSource Where it came from, as on orders
checkInAt, seatedAt, checkInGuests When the party arrived and sat, and how many. checkInGuests has total, male and female.
totalSpend, subTotalSpend What the party spent, from the venue's POS when it is connected
isDeleted Leave out rows where this is true
createdAt, updatedAt ISO 8601 in UTC
consumerUserHasBooking[].consumerUserId The guest. See Guests.

paylinks lists the payment links sent for this reservation. Use id, paymentStatus (values), paidOn, expiredAt and createdAt. The amounts are not in this answer.

Online table payment

tableBooking is set when the table was paid online:

Field Meaning
id The table payment. Refunds and disputes point to it.
paymentStatus SUCCESS when paid
bookingSourceType, bookingSource Where it came from
tableBookingPriceBreakdown What the guest paid online: base, gratuity, salesTax, seFees (the service fee), discount, total, and custom fees
spendAgreement The full minimum with fees and tax in total, and what is left to pay at the venue in balanceDueAtVenue