Skip to content

Report running late

POST
/public/v1/bookings/{reference}/running-late
curl --request POST \
--url https://example.kwickbooking.com/public/v1/bookings/example/running-late \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "phone": "07911 123456", "minutesLate": 20, "venueId": null }'

Tells the venue a guest with a confirmed booking today will arrive late. Up to an hour is noted on the booking and the venue’s live diary, and the table is held until then plus the venue’s grace period. More than an hour goes to the venue’s team, who will be in touch. Send an Idempotency-Key header.

reference
required
string
Media typeapplication/json

POST /public/v1/bookings/{reference}/running-late: the phone on the booking and how many minutes late.

object
phone
required
string
minutesLate
required
integer format: int32
venueId
null | string format: uuid
Example
{
"phone": "07911 123456",
"minutesLate": 20,
"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": "noted",
"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": "Thanks, Soho knows you're about 20 minutes late (expected 20:15)."
}
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."
}