---
title: "Update CommissionPackage"
method: PUT
path: "/shop/commission-packages/{commissionPackageId}"
tags: ["CommissionPackages"]
---

# Update CommissionPackage

`PUT /shop/commission-packages/{commissionPackageId}`

Use this endpoint to update a `CommissionPackage`.

## Request body

- object
  - `name` string — Display name of the commission package, shown in the admin UI when assigning packages to practitioners and on commission reports. Pick a name that summarises the package's rate structure. 1-120 characters.
  - `default_evaluation_period` 'weekly' | 'bi_weekly' | 'monthly'
  - `week_starts_on` 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday', nullable — A day of the week.
  - `requested_surcharge_percentage` number, nullable — An optional surcharge percentage applied to requested practitioner bookings.
  - `rates` CreateCommissionPackageRate[] — The commission rates for this package.
    - `name` string, nullable — The name of the rate.
    - `rate_type` 'percentage' | 'flat', nullable — Whether this rate pays a `percentage` of the item's value or a `flat_amount` per item. Omit or send `null` to default to `percentage`.
    - `percentage` number, nullable — The commission percentage to apply. Required unless `rate_type` is `flat`.
    - `flat_amount` integer, nullable — The fixed commission amount to pay per item, in pence. Required when `rate_type` is `flat`.
    - `calculation_basis` 'before_discount' | 'after_discount', required — Whether the commission is calculated on the price before or after discount.
    - `attribution` 'performed' | 'sold', nullable — Which side of the sale this rate rewards. Omit or send `null` to default to `performed`.
    - `offerings` OfferingIdentifier[] — The specific offerings this rate applies to.
      - `offering_id` string, mongo-id, required — The ID of the offering.
      - `offering_name` string, required — The name of the offering.
      - `offering_type` 'appointment' | 'appointment_enquiry' | 'area_booking' | 'course' | 'hotel_room_reservation' | 'membership' | 'package' | 'product' | 'session' | 'table_reservation' | 'voucher', required — Discriminator describing what kind of sellable item an `Offering` represents. The value determines which downstream schema (`Appointment`, `Session`, `Package`, etc.) the offering's `offering_id` resolves against, and which checkout/booking flow applies.
    - `offering_set_ids` string[] — IDs of offering sets this rate applies to.
    - `threshold_amount` integer, nullable — The minimum revenue threshold (in pence) that must be reached before this rate applies.
    - `evaluation_period` 'weekly' | 'bi_weekly' | 'monthly', nullable — Overrides the package's default evaluation period for this rate.
    - `valid_from` string, date, nullable — The date from which this rate is valid.
    - `valid_to` string, date, nullable — The date until which this rate is valid.

## Response `200`

The `CommissionPackage` was successfully retrieved.

- object
  - `data` CommissionPackage, required
    - `id` string, mongo-id, required — The ID of the commission package.
    - `name` string, required — The name of the commission package.
    - `default_evaluation_period` 'weekly' | 'bi_weekly' | 'monthly', required — The default period over which commission is evaluated.
    - `week_starts_on` 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday', nullable, required — The day a `weekly` or `bi_weekly` evaluation period starts on. Defaults to `monday` when not set.
    - `requested_surcharge_percentage` number, nullable, required — An optional surcharge percentage applied to requested practitioner bookings.
    - `rates` CommissionRate[], required — The commission rates defined in this package.
      - `name` string, nullable, required — The name of the rate.
      - `rate_type` 'percentage' | 'flat', nullable, required — Whether this rate pays a `percentage` of the item's value or a `flat_amount` per item. Defaults to `percentage` when not set, including for rates persisted before flat rates were introduced.
      - `percentage` number, nullable, required — The commission percentage to apply. Populated only when `rate_type` is `percentage`; `null` for a `flat` rate.
      - `flat_amount` integer, nullable, required — The fixed commission amount to pay per item, in pence. Populated only when `rate_type` is `flat`; `null` for a `percentage` rate.
      - `calculation_basis` 'before_discount' | 'after_discount', required — Whether the commission is calculated on the price before or after discount.
      - `attribution` 'performed' | 'sold', nullable, required — Which side of the sale this rate rewards. Defaults to `performed` (the practitioner who delivered the service) when not set; `sold` rewards the basket item's `sold_by` attribution instead.
      - `offerings` OfferingIdentifier[], required — The specific offerings this rate applies to. An empty array means the rate applies to all offerings.
        - `offering_id` string, mongo-id, required — The ID of the offering.
        - `offering_name` string, required — The name of the offering.
        - `offering_type` 'appointment' | 'appointment_enquiry' | 'area_booking' | 'course' | 'hotel_room_reservation' | 'membership' | 'package' | 'product' | 'session' | 'table_reservation' | 'voucher', required — Discriminator describing what kind of sellable item an `Offering` represents. The value determines which downstream schema (`Appointment`, `Session`, `Package`, etc.) the offering's `offering_id` resolves against, and which checkout/booking flow applies.
      - `offering_sets` OfferingSetSummary[], required — The offering sets this rate applies to.
        - `id` string, mongo-id, required — The ID of the offering set.
        - `name` string, required — The name of the offering set.
      - `threshold_amount` integer, nullable, required — The minimum revenue threshold (in pence) that must be reached before this rate applies.
      - `evaluation_period` 'weekly' | 'bi_weekly' | 'monthly', nullable, required — Overrides the package's default evaluation period for this rate.
      - `valid_from` string, date, nullable, required — The date from which this rate is valid.
      - `valid_to` string, date, nullable, required — The date until which this rate is valid.
    - `site_id` string, mongo-id, required — The ID of the site this package belongs to.
    - `organisation_id` string, mongo-id, required — The ID of the organisation this package belongs to.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## 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)
