---
title: "Cancel a booking (only when supported)"
method: POST
path: "/bookings/{bookingId}/cancel"
tags: ["bookings"]
---

# Cancel a booking (only when supported)

`POST /bookings/{bookingId}/cancel`

## Request

- Base URL: `https://agentbookable.com`
- URL: `https://agentbookable.com/bookings/{bookingId}/cancel`
- Auth: none declared

Requires a mandate with action `cancel_booking`. **Only available when the business `capabilities.cancellation` is true** — otherwise you get `CANCELLATION_NOT_ALLOWED`. Do not offer cancellation to users for businesses where it is unsupported.

## Path parameters

- `bookingId` string, required

## Request body

- CancelCreate
  - `businessId` string, required
  - `mandateRef` string, required
  - `reason` string
  - `idempotencyKey` string

## Response `200`

Cancelled booking

- Booking
  - `id` string
  - `businessId` string
  - `serviceId` string
  - `staffId` string, nullable
  - `start` string
  - `end` string
  - `status` 'confirmed' | 'pending' | 'cancelled' | 'completed'
  - `customer` object: Personal data partially masked
    - `name` string
    - `email` string, nullable
    - `phone` string, nullable
  - `createdVia` 'agent'
  - `mandateRef` string
  - `createdAt` string
  - `updatedAt` string

## Other responses

- `400`: Invalid request
- `409`: Cancellation not allowed for this business
- `429`: Too many requests — slow down

---

[API](https://skmtc.dev/agentbookable/apis/agentbookable-booking-api-for-ai-agents.md) · [All operations](https://skmtc.dev/agentbookable/apis/agentbookable-booking-api-for-ai-agents/llms.txt) · [OpenAPI document](https://skmtc.dev/agentbookable/apis/agentbookable-booking-api-for-ai-agents/revisions/736963f5951a?raw)
