Cancel a booking
Cancels a booking, cleaning up any in-flight payment so no held stock or dangling payment reference is left behind. Clients should call this proactively when the customer abandons the booking flow or the session times out, rather than relying on server-side reservation expiry.
On success the endpoint returns 204 No Content. What happens depends
on how far the booking has progressed:
No payment started → the booking is destroyed; a subsequent GET
returns 404.
Payment pending (incl. a held card-terminal reader the customer has
not tapped) → any live reader action and its Stripe payment are
cancelled, and the Terminal payment state becomes cancelled. Other
pending payment types are marked failed. No retry payment is created,
and the booking moves to cancelled.
Payment already charged → the booking moves to cancelled but the
payment is left untouched; no refund is issued.
Payment processing (an online payment confirming, or a card-terminal
reader the customer has tapped whose payment is settling or has already
succeeded in Stripe) → 422; retry once the payment resolves.
Path Parameters
Booking prefixed ID (e.g. bk_mR2nL5pW) or human-readable booking reference (e.g. SWG-4829)
Header Parameters
Client-generated key for idempotent writes; the server deduplicates retries within a 24-hour window.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/bookings/string" \ -H "Easol-API-Version: 2026-11-01"{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}