Skip to content

Change a booking

POST
/public/v1/bookings/{reference}/amend
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.

reference
required
string
Media typeapplication/json

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
phone
required
string
date
null | string
time
null | string
partySize
null | integer format: int32
notes
null | string
venueId
null | string format: uuid
Example
{
"phone": "07911 123456",
"date": "2026-10-16",
"time": "21:00",
"partySize": 4,
"notes": null,
"venueId": null
}

OK

Media typeapplication/json

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
outcome
required
string
booking
required
One of:
null
alternatives
required
Array<object>

Another time, day or venue that fits when the asked one doesn’t.

object
venueId
required
string format: uuid
venueName
required
string
date
required
string
time
required
string
options
required
Array<object>

A booking type that fits a time, with its length and deposit.

object
bookingTypeId
required
string format: uuid
bookingType
required
string
durationMinutes
required
integer format: int32
deposit
required

A deposit as a guest would hear it.

object
required
required
boolean
amountPence
required
integer format: int32
amountDisplay
required
null | string
enquiryId
required
null | string format: uuid
depositTopUp
required
One of:
null
summary
required
string
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."
}
Media typeapplication/problem+json

RFC 9457 problem details. type is a URI with a page describing the problem.

object
type
required
string format: uri
title
required
string
status
required
integer format: int32
detail
required

Safe to read to a guest.

string
instance
string
traceId
string
code

A machine-readable code on the widget’s routes.

string
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."
}

Invalid or missing integration key (https://developers.kwickblocks.ai/problems/invalid-key)

Media typeapplication/problem+json

RFC 9457 problem details. type is a URI with a page describing the problem.

object
type
required
string format: uri
title
required
string
status
required
integer format: int32
detail
required

Safe to read to a guest.

string
instance
string
traceId
string
code

A machine-readable code on the widget’s routes.

string
Examples
Exampleinvalid-key

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."
}
Media typeapplication/problem+json

RFC 9457 problem details. type is a URI with a page describing the problem.

object
type
required
string format: uri
title
required
string
status
required
integer format: int32
detail
required

Safe to read to a guest.

string
instance
string
traceId
string
code

A machine-readable code on the widget’s routes.

string
Examples
Examplecapability-missing

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."
}
Media typeapplication/problem+json

RFC 9457 problem details. type is a URI with a page describing the problem.

object
type
required
string format: uri
title
required
string
status
required
integer format: int32
detail
required

Safe to read to a guest.

string
instance
string
traceId
string
code

A machine-readable code on the widget’s routes.

string
Examples
Examplebooking-not-found

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."
}
Media typeapplication/problem+json

RFC 9457 problem details. type is a URI with a page describing the problem.

object
type
required
string format: uri
title
required
string
status
required
integer format: int32
detail
required

Safe to read to a guest.

string
instance
string
traceId
string
code

A machine-readable code on the widget’s routes.

string
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."
}
Media typeapplication/problem+json

RFC 9457 problem details. type is a URI with a page describing the problem.

object
type
required
string format: uri
title
required
string
status
required
integer format: int32
detail
required

Safe to read to a guest.

string
instance
string
traceId
string
code

A machine-readable code on the widget’s routes.

string
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."
}