---
title: "Update a ShopSite"
method: PUT
path: "/shop/sites/{siteId}"
tags: ["Sites"]
---

# Update a ShopSite

`PUT /shop/sites/{siteId}`

Use this endpoint to update a `ShopSite`.

## Request body

- UpdateShopSite — Contains properties that may be updated on a `ShopSite`.
  - `basket_confirmed_email_message` string, nullable — A message which is appended to the end of every Basket Confirmed email for this site. HTML is supported, however only the following tags are allowed: `h1`, `strong`, `a`, `p`, `br`.
  - `category_ids` string[]
  - `custom_payment_type_ids` string[] — An array of custom payment type IDs for the site
  - `email_from_address` string, nullable — The email address used as the `From` header on all customer- facing email this site sends (confirmations, reminders, receipts). Must be verified with the email provider before delivery succeeds — check `email_from_address_verified_at`.
  - `email_settings` ShopSiteEmailSettings
    - `collect_email_addresses` boolean
    - `follow_up_emails_enabled` boolean
    - `follow_up_emails_days_after` integer
    - `follow_up_emails_time` string, nullable
    - `hide_manage_order` boolean
    - `qr_codes_enabled` boolean
    - `reminder_emails_enabled` boolean
    - `reminder_emails_days_ahead` integer
    - `reminder_emails_time` string, nullable
    - `auto_send_order_summary_on_checkout` boolean
    - `visibility_settings` object
      - `basket_confirmed` object
        - `show_day_of_week` boolean
        - `show_end_times` boolean
        - `show_guest_names` boolean
        - `show_practitioner_names` boolean
      - `basket_reminder` object
        - `show_day_of_week` boolean
        - `show_end_times` boolean
        - `show_guest_names` boolean
        - `show_practitioner_names` boolean
      - `order_summary` object
        - `show_day_of_week` boolean
        - `show_end_times` boolean
        - `show_guest_names` boolean
        - `show_practitioner_names` boolean
      - `new_order` object
        - `show_day_of_week` boolean
        - `show_end_times` boolean
        - `show_guest_names` boolean
        - `show_practitioner_names` boolean
  - `intake_form_questionnaire_id` string, nullable — ID of the intake-form questionnaire applied to bookings at this site. Null means no questionnaire is attached and the intake step is skipped.
  - `name` string — Display name of the site, shown to customers in the storefront, on receipts, and in confirmation emails sent to guests. Trimmed; 1-120 characters and must not contain HTML.
  - `opening_hours` ShopSiteOpeningHour[]
    - `time_from` string, required
    - `time_to` string, required
    - `weekday` string, required
  - `privacy_policy` string, nullable — Customer-facing privacy policy shown during checkout and on receipts. Markdown is rendered; null means inherit from the organisation.
  - `scheduling_week_interval` integer, nullable — Number of weeks between repeating scheduling rotations. Used to roll fortnightly or multi-week rotas. `2` means alternating weeks; null means no rotation (every week is identical).
  - `scheduling_week_interval_start` string, date-time, nullable — Anchor datetime used to compute which week of a multi-week rotation any given date falls into. Paired with `scheduling_week_interval`; null disables the rotation.
  - `terms` string, nullable — Customer-facing terms and conditions shown at checkout and linked in confirmation emails. Markdown is rendered; null means inherit from the organisation.
  - `default_commission_package_id` string, mongo-id, nullable — The default commission package for the site. This will be used as the default for any new practitioners, but can be overridden on a per-practitioner basis.

## Response `200`

The `ShopSite` was successfully updated.

- object
  - `data` ShopSite, required — The shop-domain projection of a `Site` — extends the core `Site` with checkout-facing configuration such as currency, supported payment types, email/SMS branding, feature flags and category mappings. This is the shape used by booking flows, the kiosk and the customer-facing storefront.
    - `id` string, uuid, required — The ID of the site
    - `appointment_enquiries_enabled` boolean, required
    - `basket_confirmed_email_message` string, nullable, required — A message which is appended to the end of every Basket Confirmed email for this site. HTML is supported, however only the following tags are allowed: `h1`, `strong`, `a`, `p`, `br`.
    - `brand_id` string, uuid, required — The ID of the parent `Brand`.
    - `category_ids` string[], required
    - `country_code` string, nullable, required — The country code of the site
    - `country_name` string, nullable, required
    - `currency` string, required — The currency of the site. See [Supported Currencies](/endpoints/Meta#listMetaSupportedCurrencies) for a list of supported currencies.
    - `custom_payment_types` ShopSiteCustomPaymentType[], required
      - `id` string, required
      - `fiscalisation_type` string
      - `kind` string
      - `name` string, required
    - `customer_search_config` ShopSiteCustomerSearchConfig
      - `sources` object[], required
        - `key` string, required
        - `name` string, required
        - `supported_fields` string[], required
    - `email_from_address` string, nullable, required — The email address used as the `From` header on all customer- facing email this site sends (confirmations, reminders, receipts). Must be verified with the email provider before delivery succeeds — check `email_from_address_verified_at`.
    - `email_from_address_verified_at` string, date-time, nullable, required
    - `email_settings` ShopSiteEmailSettings, required
      - `collect_email_addresses` boolean
      - `follow_up_emails_enabled` boolean
      - `follow_up_emails_days_after` integer
      - `follow_up_emails_time` string, nullable
      - `hide_manage_order` boolean
      - `qr_codes_enabled` boolean
      - `reminder_emails_enabled` boolean
      - `reminder_emails_days_ahead` integer
      - `reminder_emails_time` string, nullable
      - `auto_send_order_summary_on_checkout` boolean
      - `visibility_settings` object
        - `basket_confirmed` object
          - `show_day_of_week` boolean
          - `show_end_times` boolean
          - `show_guest_names` boolean
          - `show_practitioner_names` boolean
        - `basket_reminder` object
          - `show_day_of_week` boolean
          - `show_end_times` boolean
          - `show_guest_names` boolean
          - `show_practitioner_names` boolean
        - `order_summary` object
          - `show_day_of_week` boolean
          - `show_end_times` boolean
          - `show_guest_names` boolean
          - `show_practitioner_names` boolean
        - `new_order` object
          - `show_day_of_week` boolean
          - `show_end_times` boolean
          - `show_guest_names` boolean
          - `show_practitioner_names` boolean
    - `external_id` string — An external ID for the site This can be used to link the site to an external system.
    - `feature_flags` object, required
    - `features` ShopSiteFeatures, required
      - `support_wearable_payments` boolean
    - `has_booking_engine_integration` boolean, required
    - `has_fiscalisation_integration` boolean, required
    - `has_payments_integration` boolean, required
    - `has_pos_integration` boolean, required
    - `has_table_reservation_integration` boolean, required
    - `intake_form_questionnaire_id` string, nullable, required — ID of the intake-form questionnaire applied to bookings at this site. Null means no questionnaire is attached and the intake step is skipped.
    - `locale` string, required — The locale of the site. See [Supported Locales](/endpoints/Meta#listMetaSupportedLocales) for a list of supported locales.
    - `name` string, required — Display name of the site, shown to customers in the storefront, on receipts, and in confirmation emails sent to guests. Trimmed; 1-120 characters and must not contain HTML.
    - `opening_hours` ShopSiteOpeningHour[], required
      - `time_from` string, required
      - `time_to` string, required
      - `weekday` string, required
    - `payment_config` ShopSitePaymentConfig
      - `default_processor` string, required
      - `should_show_stripe` boolean, required
      - `stripe` ShopSiteStripeConfig
        - `account_id` string
        - `account_type` string
      - `terminal_payments` object
        - `enabled` boolean, required
        - `processor` string, nullable, required
    - `pms_integration` ShopSitePmsIntegration, required
      - `async` boolean, nullable, required
      - `enabled` boolean, required
      - `charge_to_room_enabled` boolean, required
      - `supports_partial_charge_to_room` boolean — Whether the site's PMS integration supports charging an amount less than the outstanding basket total to a room.
      - `type` string, nullable, required
    - `privacy_policy` string, nullable, required — Customer-facing privacy policy shown during checkout and on receipts. Markdown is rendered; null means inherit from the organisation.
    - `revenue_centres` object[], required
    - `scheduling_week_interval` integer, nullable, required — Number of weeks between repeating scheduling rotations. Used to roll fortnightly or multi-week rotas. `2` means alternating weeks; null means no rotation (every week is identical).
    - `scheduling_week_interval_start` string, date-time, nullable, required — Anchor datetime used to compute which week of a multi-week rotation any given date falls into. Paired with `scheduling_week_interval`; null disables the rotation.
    - `shop_config` ShopSiteShopConfig, required
      - `features` object[], required
      - `require_member_guests` boolean, required
      - `separate_name_values_enforced` boolean, required
    - `stripe_config` ShopSiteStripeConfig, required
      - `account_id` string
      - `account_type` string
    - `terms` string, nullable — Customer-facing terms and conditions shown at checkout and linked in confirmation emails. Markdown is rendered; null means inherit from the organisation.
    - `timezone` string, required — The timezone of the site
    - `vouchers_integration` ShopSiteVouchersIntegration, required
      - `enabled` boolean, required
      - `name` string, nullable, required
      - `type` string, nullable, required
    - `default_commission_package_id` string, mongo-id, nullable, required — The default commission package for the site. This will be used as the default for any new practitioners, but can be overridden on a per-practitioner basis.
    - `organisation` OrganisationSummary, required
      - `id` string, uuid, required
      - `name` string, required — The name of the organisation

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `404` — The resource couldn't be found
- `422` — The request didn't pass validation

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
