Cancel a reservation
curl --request POST \
--url https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel \
--header 'Authorization: Bearer <token>'import requests
url = "https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "booking_2026-09-01_G3F7PA8HO438Z_1787294227662",
"status": "X"
}{
"code": "ValidationError",
"message": "Query parameters failed validation",
"requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90",
"errors": {
"partySize": [
"partySize must be at least 1"
],
"endDate": [
"endDate must be on or after startDate"
]
}
}{
"detail": "Reservation not found: booking_2026-09-01_G3F7PA8HO438Z_1787294227662"
}{
"detail": "This reservation is already cancelled"
}{
"code": "InternalError",
"message": "Internal server error",
"requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90"
}{
"detail": "Cancelling a reservation that involves payment is not implemented yet"
}Reservations
Cancel a Reservation
Cancel a reservation and release its table.
POST
/
venue
/
{venueId}
/
reservation
/
{id}
/
cancel
Cancel a reservation
curl --request POST \
--url https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel \
--header 'Authorization: Bearer <token>'import requests
url = "https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/reservation/{id}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "booking_2026-09-01_G3F7PA8HO438Z_1787294227662",
"status": "X"
}{
"code": "ValidationError",
"message": "Query parameters failed validation",
"requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90",
"errors": {
"partySize": [
"partySize must be at least 1"
],
"endDate": [
"endDate must be on or after startDate"
]
}
}{
"detail": "Reservation not found: booking_2026-09-01_G3F7PA8HO438Z_1787294227662"
}{
"detail": "This reservation is already cancelled"
}{
"code": "InternalError",
"message": "Internal server error",
"requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90"
}{
"detail": "Cancelling a reservation that involves payment is not implemented yet"
}Cancels a reservation and releases its table, so the slot becomes bookable again.
Authorizations
Your API key. See Authorization to create one.
Path Parameters
The venue being addressed. Every endpoint on this API is venue-scoped.
Minimum string length:
1Example:
"6247"
The reservation's id — not its bookingRef.
Minimum string length:
1Example:
"booking_2026-08-24_G3F7PA8HO438Z_1787294227662"
Response
Cancelled. The body is the reservation id and its resulting status.
What a cancellation returns: the reservation it cancelled and the status that reservation now holds — not the whole reservation. GET the reservation if you need the full record; the tables, options and payment on a cancelled reservation are the ones it had, not what it still holds.