Skip to main content
PATCH
Update a reservation
status takes an id from Reservation Statuses. To cancel, use Cancel a Reservation.

Authorizations

Authorization
string
header
required

Your API key. See Authorization to create one.

Path Parameters

venueId
string
required

The venue being addressed. Every endpoint on this API is venue-scoped.

Minimum string length: 1
Example:

"6247"

id
string
required

The reservation's id — not its bookingRef.

Minimum string length: 1
Example:

"booking_2026-08-24_G3F7PA8HO438Z_1787294227662"

Body

application/json

Every field is optional and only what is present is changed, but the body must not be empty.

companyName and membershipNumber are accepted but not applied yet — a patch naming either returns 501.

localBookingDateAndTime
string

Venue-local wall clock. A different date returns a new reservation — see the description above.

Example:

"2026-09-01T19:00:00"

partySize
integer

Re-runs table allocation.

Required range: 1 <= x <= 1000
sectionId
string

Section to move to. Honoured or refused — there is no fallback to another section.

serviceId
string

Service to move to.

Minimum string length: 1
Example:

"service_dinner"

tableId
string

Seat the party on this exact table, skipping availability checks. Can produce a double-booked table.

Minimum string length: 1
Example:

"table_12"

firstName
string

Guest detail. Updates the reservation's copy, not the linked customer record.

Maximum string length: 100
lastName
string

Guest detail. Updates the reservation's copy, not the linked customer record.

Maximum string length: 200
email
string<email>

Guest detail. Updates the reservation's copy, not the linked customer record.

Maximum string length: 250
mobileNumber
string

Guest detail. Updates the reservation's copy, not the linked customer record.

Maximum string length: 20
companyName
string

Accepted but not applied yet — returns 501.

Maximum string length: 100
membershipNumber
string

Accepted but not applied yet — returns 501.

Maximum string length: 30
notes
string

Replaces the reservation's notes.

Maximum string length: 1000
tagIds
string[]

Replaces the reservation's tags outright rather than merging into them — send the full set you want to end up with. An empty array clears every tag.

Maximum array length: 20
Minimum string length: 1
selectedOptions
object[]

Replaces the reservation's booking options outright rather than merging into them; an empty array clears every option.

Required, not merely accepted, whenever the rest of the patch invalidates what is stored — a partySize change on a PerPax service breaks the rule that main-option quantities total the party, and a localBookingDateAndTime or serviceId change can resolve a different menu entirely. Omitting it then is a 400, because the request is incomplete rather than the venue's state refusing it.

Maximum array length: 50
status
string

The venue's status id from the reservation-statuses endpoint — e.g. status_confirmed, not the code. Several statuses can share one code, so only the id says which you mean. The accepted values are exactly the ids that venue returns; an id it does not have is a 400. status_cancelled is refused here — use the cancel endpoint.

Minimum string length: 1
Example:

"status_confirmed"

Response

The updated reservation. After a date change this is the replacement, with a new id.

A reservation. Absent optional fields are omitted from the JSON rather than sent as null or [].

id
string
required

The identifier that addresses this reservation.

Example:

"booking_2026-08-24_G3F7PA8HO438Z_1787294227662"

bookingDateTime
string
required

Venue-local wall clock, ISO formatted. Not an absolute instant.

Example:

"2026-08-24T14:00:00"

partySize
integer
required
Example:

2

tableIds
string[]
required

The tables allocated. Empty only for a standby or waitlist entry.

tagIds
string[]
required
optionsSelected
object[]
required

Booking options the guest chose, with the prices that determined what was payable.

paymentDetails
object
required

Where the reservation stands on payment. Always present, including for reservations that take no payment.

bookingRef
string

The reference you quote to a guest. A different identifier from id, and not usable as a path parameter.

Example:

"94227662"

status
enum<string>

The status code the reservation carries, joining onto the reservation-statuses endpoint's code. U unconfirmed, P$ pending payment, C confirmed, X cancelled, NS cancelled no-show, S seated, F finished, SP standby pending, TX SMS sent or SMS failed.

Several statuses can share one code, so treat code as a coarse grouping and statusId as the precise value. Venues can add statuses of their own, so read the venue's own set from the reservation-statuses endpoint rather than assuming this list is closed.

Available options:
U,
P$,
C,
X,
NS,
S,
F,
SP,
TX
statusId
string

The status's id. Several statuses can share one code, so this is what identifies the status the reservation is in — and the value a patch sets status to.

Example:

"status_seated_main"

reservationType
enum<string>

A standby or waitlist entry is the same kind of record as a confirmed booking.

Available options:
Booking,
WaitList,
StandbyList
durationMinutes
integer
Example:

120

service
object
diner
object

Guest details recorded on the reservation.

requestedSectionId
string

The section the reservation asked for, which is often not where the allocated table sits. Absent when no preference was given.

movedFromBookingId
string

The reservation this one replaced, set when a reservation was moved to another calendar date. The same id coming back means an ordinary change; a new id with this set means a replacement, and the value names the reservation to stop tracking.

Example:

"booking_2026-08-24_G3F7PA8HO438Z_1787294227662"

notes
string
source
string

Originating channel. Read-only — set from your credential when the reservation is created.

Example:

"online"

createdAt
string<date-time>

When the reservation was made. An absolute instant, unlike bookingDateTime.

updatedAt
string<date-time>