---
title: "Cancel Campaign Booking"
method: POST
path: "/campaigns/{campaign_id}/customers/{customer_id}/cancel-booking"
tags: ["campaigns"]
---

# Cancel Campaign Booking

`POST /campaigns/{campaign_id}/customers/{customer_id}/cancel-booking`

## Request

- Base URL: `https://api.noso.so` (the document declares no server; this is the origin it was published from)
- URL: `https://api.noso.so/campaigns/{campaign_id}/customers/{customer_id}/cancel-booking`
- Auth: HTTP bearer

Cancel a booked ServiceTitan job from the campaign dashboard.

## Path parameters

- `campaign_id` string, required
- `customer_id` string, required

## Request body

- CampaignCancelBookingRequest
  - `item_id` string, required
  - `reason_id` integer, required
  - `memo` string

## Response `200`

Successful Response

- CampaignCancelBookingResponse
  - `item_id` string, required
  - `customer_status` string, required
  - `message` string, required

## Other responses

- `404`: Not found
- `422`: Validation Error

---

[API](https://skmtc.dev/noso/apis/crucible-backend-api.md) - [All operations](https://skmtc.dev/noso/apis/crucible-backend-api/llms.txt) - [OpenAPI document](https://skmtc.dev/noso/apis/crucible-backend-api/revisions/c714e58b5156?raw)
