Change a booking
const url = 'https://example.kwickbooking.com/public/v1/bookings/example/amend';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"phone":"07911 123456","date":"2026-10-16","time":"21:00","partySize":4,"notes":null,"venueId":null}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.kwickbooking.com/public/v1/bookings/example/amend \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "phone": "07911 123456", "date": "2026-10-16", "time": "21:00", "partySize": 4, "notes": null, "venueId": null }'Moves a booking to another date, time or party size, or changes its notes, keeping its reference. If the new time is full the answer is unavailable with alternatives and nothing changes. A change the venue doesn’t allow online (too many guests, too close to the booking, too far ahead, or a booking still waiting for its deposit) answers needs_venue and passes the request to the venue’s team. A bigger party may owe a deposit top-up. Send an Idempotency-Key header.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”POST /public/v1/bookings/{reference}/amend: the phone on the booking and what to change
(venue-local yyyy-MM-dd and HH:mm); a null keeps the current value.
object
Example
{ "phone": "07911 123456", "date": "2026-10-16", "time": "21:00", "partySize": 4, "notes": null, "venueId": null}Responses
Section titled “Responses”OK
The answer to an amend or cancel: amended, cancelled or already_cancelled with the booking; unavailable with alternatives; or needs_venue with the enquiry raised for staff.
object
A booking as a caller who proved reference and phone may see it: its own details and the guest’s first name, nothing else about the guest.
object
A booking’s deposit: whether one applies, how much, and none, awaiting_payment or paid.
object
Another time, day or venue that fits when the asked one doesn’t.
object
A booking type that fits a time, with its length and deposit.
object
A deposit as a guest would hear it.
object
Example
{ "outcome": "amended", "booking": { "reference": "48271936", "venueId": "01920000-0000-7000-8000-000000000001", "venueName": "Soho", "date": "2026-10-16", "time": "20:00", "partySize": 4, "bookingType": "Table booking", "state": "confirmed", "guestFirstName": "Sam", "deposit": { "required": false, "amountPence": 0, "amountDisplay": null, "status": "none" }, "expectedArrival": null }, "alternatives": [], "enquiryId": null, "depositTopUp": null, "summary": "Done: your booking is now Fri 16/10 at 21:00 for 4."}Validation failed (https://developers.kwickblocks.ai/problems/validation-failed); Idempotency-Key required (https://developers.kwickblocks.ai/problems/idempotency-key-required)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Validation failed
{ "type": "https://developers.kwickblocks.ai/problems/validation-failed", "title": "Validation failed", "status": 400, "detail": "Some of the details weren't valid. Please check them and try again."}Idempotency-Key required
{ "type": "https://developers.kwickblocks.ai/problems/idempotency-key-required", "title": "Idempotency-Key required", "status": 400, "detail": "This request needs an Idempotency-Key header."}Invalid or missing integration key (https://developers.kwickblocks.ai/problems/invalid-key)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Invalid or missing integration key
{ "type": "https://developers.kwickblocks.ai/problems/invalid-key", "title": "Invalid or missing integration key", "status": 401, "detail": "This integration key isn't valid. Ask the venue's admin for a new one."}Capability not granted (https://developers.kwickblocks.ai/problems/capability-missing)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Capability not granted
{ "type": "https://developers.kwickblocks.ai/problems/capability-missing", "title": "Capability not granted", "status": 403, "detail": "This integration key isn't allowed to do that. Ask the venue's admin to add the capability."}Booking not found (https://developers.kwickblocks.ai/problems/booking-not-found)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Booking not found
{ "type": "https://developers.kwickblocks.ai/problems/booking-not-found", "title": "Booking not found", "status": 404, "detail": "I couldn't find a booking with that reference and phone number."}Booking can’t be changed (https://developers.kwickblocks.ai/problems/booking-not-changeable); Idempotency-Key conflict (https://developers.kwickblocks.ai/problems/idempotency-conflict)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Booking can't be changed
{ "type": "https://developers.kwickblocks.ai/problems/booking-not-changeable", "title": "Booking can't be changed", "status": 409, "detail": "This booking can't be changed any more."}Idempotency-Key conflict
{ "type": "https://developers.kwickblocks.ai/problems/idempotency-conflict", "title": "Idempotency-Key conflict", "status": 409, "detail": "That Idempotency-Key was already used for a different request."}Too many requests (https://developers.kwickblocks.ai/problems/rate-limited); Too many attempts (https://developers.kwickblocks.ai/problems/lookup-throttled)
RFC 9457 problem details. type is a URI with a page describing the problem.
object
Safe to read to a guest.
A machine-readable code on the widget’s routes.
Examples
Too many requests
{ "type": "https://developers.kwickblocks.ai/problems/rate-limited", "title": "Too many requests", "status": 429, "detail": "There have been too many requests. Please try again in a minute."}Too many attempts
{ "type": "https://developers.kwickblocks.ai/problems/lookup-throttled", "title": "Too many attempts", "status": 429, "detail": "Too many attempts. Please try again later."}