---
title: "Update business setup with version and replay protection"
method: PATCH
path: "/api/v1/business"
---

# Update business setup with version and replay protection

`PATCH /api/v1/business`

## Request

- Base URL: `http://127.0.0.1:4310`
- URL: `http://127.0.0.1:4310/api/v1/business`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `sfb_session`

## Request body

- object
  - `name` string
  - `description` string
  - `contact_email` string
  - `phone` string
  - `timezone` string
  - `brand_colour` string
  - `deposit_percent` integer
  - `hold_minutes` integer
  - `min_notice_minutes` integer
  - `max_advance_days` integer
  - `customer_cancel_cutoff_hours` integer
  - `slot_step_minutes` integer
  - `booking_page` 'open' | 'paused' | 'hidden'
  - `booking_page_message` string, nullable
  - `expected_version` integer, required
  - `idempotency_key` string, required
  - `calendar_start_minute` integer, nullable
  - `calendar_end_minute` integer, nullable
  - `require_client_phone` boolean
  - `calendar_colour_by` 'staff' | 'treatment': Calendar appointment colours: by team member or by the service collection
  - `industry` 'beauty_salon' | 'hair_salon' | 'barber' | 'nail_salon' | 'lash_and_brow' | 'aesthetics_clinic' | 'day_spa' | 'massage' | 'medical_clinic' | 'dentist' | 'physiotherapy' | 'gym' | 'fitness_studio' | 'tattoo' | 'veterinary' | 'trades' | 'other' | 'null', nullable: Kind of business, used for the booking page structured data type
  - `theme` 'aesthetics' | 'dental' | 'physio' | 'vets' | 'clinic' | 'beauty' | 'hair' | 'trades' | 'null', nullable: Niche theme for the booking pages and workspace; null is the Classic look
  - `mascot` 'swan' | 'otter' | 'hare' | 'cat' | 'pup' | 'owl' | 'fox' | 'poodle' | 'robin' | 'null', nullable: Workspace mascot; null switches it off
  - `mascot_on_booking` boolean: The mascot peeks once on the client booking confirmation
  - `card_charge_max_minor` integer, nullable: Owner only: the most a saved card may be charged at once, in pence; null switches card charges off
  - `card_save_at_checkout` boolean: Offer clients a tick box to save their card when paying a deposit online
  - `staff_booking_deposit` boolean: Bookings made by the team take the deposit (true, the default) or are confirmed with payment in the salon (false)

## Response `200`

OK

- object

## Other responses

- `400`: Validation error
- `401`: Unauthenticated
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict or invalid state

## Changes

- **2026-10-19** `81704199cd37`: 1 info
  - added the new optional request property `calendar_colour_by`

[Operation history](https://skmtc.dev/scalingfirm/apis/tsf-booking-api/changes/api/v1/business/patch.md)

---

[API](https://skmtc.dev/scalingfirm/apis/tsf-booking-api.md) · [All operations](https://skmtc.dev/scalingfirm/apis/tsf-booking-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scalingfirm/apis/tsf-booking-api/revisions/81704199cd37?raw)
