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
reservationStatusREQUESTED. - 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
isDeletedistrue. - 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¶
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 |