---
title: "Update or create listing level channel commission"
method: PUT
path: "/channel-commissions-v2/unit-type/{unitTypeId}"
tags: ["Channel Commission"]
---

# Update or create listing level channel commission

`PUT /channel-commissions-v2/unit-type/{unitTypeId}`

## Request

- Base URL: `https://open-api.guesty.com/v1`
- URL: `https://open-api.guesty.com/v1/channel-commissions-v2/unit-type/{unitTypeId}`
- Auth: API key in header `authorization`

Replaces all listing-level channel commissions for the given listing.

Send an array of channel and source commission definitions. Each item requires `channel` and `source`; `tax` and `commission` are optional (same as POST/PATCH). If none exist yet, they are created. Any listing-level commissions missing from the body are removed (an empty array removes all listing-level commissions).

Unlike GET `/unit-type/{unitTypeId}` (which remaps a sub-unit ID to its parent before lookup), this PUT stores commissions under the `unitTypeId` you send — no parent remapping and no 400 for sub-units. Prefer the parent unit type ID so GET and PUT address the same listing-level commissions.

These commissions are used for reservations only when the listing `levelEntityType` is `UNIT_TYPE` (see GET/PUT `unit-type/{unitTypeId}/level-configurations`). When the level is `ACCOUNT`, account-level commissions are used instead.

## Path parameters

- `unitTypeId` string, required

## Request body

- object[]
  - `commission` object: Commission percentage (`value`) and which charges it applies to (`of`). Omit to save the entry without a commission.
    - `value` number, required: Commission percentage (0–100)
    - `of` string[], required: Which charges the commission applies to. Use these API enum values (for example `ACCOMMODATION_FARE`, `CLEANING_FEE`, `PAYOUT`) — not the Valid Enumerations guide’s legacy names `fareAccommodation` / `fareCleaning`. Allowed values: PAYOUT, ACCOMMODATION_FARE, CLEANING_FEE, CANCELLATION_FEE, ACTIVITIES, ADDITIONAL_BED, ADDITIONAL_CHARGE, AIR_CONDITIONING, BABY_BED, BEVERAGE, BOOKING_FEE, BREAKFAST, BUSINESS_CENTER, CAR_RENTAL, CHEF, CLEANING, CLUB_CARD, COMMISSION_CHARGE, COMMUNITY, CONCIERGE, CREDIT_CARD_PROCESSING_FEE, DAMAGE_CHARGE, DAMAGE_WAIVER, DEPOSIT, DIRECT_SERVICE, DOCK_FEE, EARLY_CHECK_IN, EARLY_CHECKOUT, ELECTRICITY, EQUIPMENT_RENTAL, FLIGHTS, FOOD, GIFT_BASKET, GOLF_CART_RENTAL, GUEST_SERVICE, GUESTY_BASIC_TRAVEL_COVERAGE, GUESTY_EXTENDED_TRAVEL_COVERAGE, GUESTY_SHIELD, HEATING, HOMEOWNERS_ASSOCIATION, HOT_TUB, HOUSEKEEPING, INSURANCE, PROPERTY_INSURANCE, INTERNET, LATE_CHECK_IN, LATE_CHECKOUT, LAUNDRY, LINENS, MANAGEMENT, MEAL, MEET_AND_GREET, MINIBAR, MISCELLANEOUS, OIL, PARKING, PAYMENT_FEE, PET, POOL, POOL_HEATING, RESERVATION_FEE, RESORT, SERVICE, SHIPPING, SPA, TOILETRIES, TOTAL_PAYOUT_BASED, TOUR, TOWELS, TRANSFER, TRANSPORTATION, UTILITY_FEE, VALET, VIP_SERVICES, WATER, WELLNESS, WIFI, WOOD, LOCAL_TAX, CITY_TAX, VAT, GOODS_AND_SERVICES_TAX, TOURISM_TAX, OTHER, STATE_TAX, COUNTY_TAX, OCCUPANCY_TAX, TRANSIENT_OCCUPANCY_TAX, HOME_SHARING_TAX, HARMONIZED_SALES_TAX, MINIMUM_ALTERNATE_TAX. Channel-specific rules still apply (for example `homeaway2` requires `of: ["PAYOUT"]` only). The guide’s “Applies to” column is a product overview and may list fewer or differently named charges.
  - `tax` number: Tax percentage on the channel commission (0–100). Omit to save the entry without tax (same optional behavior as POST/PATCH create and update).
  - `channel` string, required: Booking channel name (for example `bookingCom`, `airbnb2`, `homeaway2`, or `manual`). Must form a valid pair with `source`: either `manual` (always allowed), or an **active** pair from the channel-commission configurations catalog. The Guesty Open API [Valid Enumerations — Channel Commission Sources](https://open-api-docs.guesty.com/docs/valid-enumerations) guide is a product overview of sources; acceptance here is the active catalog (invalid pairs return 400). The guide’s “Set Commission” column may disagree with the catalog for a given source.
  - `source` string, required: Booking source within the channel. Often the same as `channel` for direct channels; can differ for channel managers (for example channel `rentalsUnited` with source `homeAway`). Must form a valid pair with `channel` (see `channel` for the catalog rule).
  - `isPreDeduct` boolean: When `true`, Guesty automatically deducts the channel commission from the host payout for reservations from this source (adds a negative host channel fee on the folio). This API only honors `isPreDeduct` for the `manual` channel — for any other channel the value is ignored and stored as `false`. The Valid Enumerations guide may list Pre-deduct for other sources (for example `expedia`) as a product/UI capability; that is not controlled by this field. Defaults to `false` when omitted.

## Response `200`

The saved listing-level channel commissions. Each item in `channels` includes `_id` for use as `channelCommissionId` on PATCH and DELETE.

- object
  - `channels` object[], required: Saved channel commission entries for this account or listing. Each entry includes `_id` for use as `channelCommissionId` on PATCH and DELETE.
    - `commission` object: Commission percentage (`value`) and which charges it applies to (`of`). Omitted when no commission is set.
      - `value` number, required: Commission percentage (0–100)
      - `of` string[], required: Which charges the commission applies to. Use these API enum values (for example `ACCOMMODATION_FARE`, `CLEANING_FEE`, `PAYOUT`) — not the Valid Enumerations guide’s legacy names `fareAccommodation` / `fareCleaning`. Allowed values: PAYOUT, ACCOMMODATION_FARE, CLEANING_FEE, CANCELLATION_FEE, ACTIVITIES, ADDITIONAL_BED, ADDITIONAL_CHARGE, AIR_CONDITIONING, BABY_BED, BEVERAGE, BOOKING_FEE, BREAKFAST, BUSINESS_CENTER, CAR_RENTAL, CHEF, CLEANING, CLUB_CARD, COMMISSION_CHARGE, COMMUNITY, CONCIERGE, CREDIT_CARD_PROCESSING_FEE, DAMAGE_CHARGE, DAMAGE_WAIVER, DEPOSIT, DIRECT_SERVICE, DOCK_FEE, EARLY_CHECK_IN, EARLY_CHECKOUT, ELECTRICITY, EQUIPMENT_RENTAL, FLIGHTS, FOOD, GIFT_BASKET, GOLF_CART_RENTAL, GUEST_SERVICE, GUESTY_BASIC_TRAVEL_COVERAGE, GUESTY_EXTENDED_TRAVEL_COVERAGE, GUESTY_SHIELD, HEATING, HOMEOWNERS_ASSOCIATION, HOT_TUB, HOUSEKEEPING, INSURANCE, PROPERTY_INSURANCE, INTERNET, LATE_CHECK_IN, LATE_CHECKOUT, LAUNDRY, LINENS, MANAGEMENT, MEAL, MEET_AND_GREET, MINIBAR, MISCELLANEOUS, OIL, PARKING, PAYMENT_FEE, PET, POOL, POOL_HEATING, RESERVATION_FEE, RESORT, SERVICE, SHIPPING, SPA, TOILETRIES, TOTAL_PAYOUT_BASED, TOUR, TOWELS, TRANSFER, TRANSPORTATION, UTILITY_FEE, VALET, VIP_SERVICES, WATER, WELLNESS, WIFI, WOOD, LOCAL_TAX, CITY_TAX, VAT, GOODS_AND_SERVICES_TAX, TOURISM_TAX, OTHER, STATE_TAX, COUNTY_TAX, OCCUPANCY_TAX, TRANSIENT_OCCUPANCY_TAX, HOME_SHARING_TAX, HARMONIZED_SALES_TAX, MINIMUM_ALTERNATE_TAX. Channel-specific rules still apply (for example `homeaway2` requires `of: ["PAYOUT"]` only). The guide’s “Applies to” column is a product overview and may list fewer or differently named charges.
    - `tax` number: Tax percentage on the channel commission (0–100). Omit to save the entry without tax (same optional behavior as POST/PATCH create and update).
    - `channel` string, required: Booking channel name (for example `bookingCom`, `airbnb2`, `homeaway2`, or `manual`). Must form a valid pair with `source`: either `manual` (always allowed), or an **active** pair from the channel-commission configurations catalog. The Guesty Open API [Valid Enumerations — Channel Commission Sources](https://open-api-docs.guesty.com/docs/valid-enumerations) guide is a product overview of sources; acceptance here is the active catalog (invalid pairs return 400). The guide’s “Set Commission” column may disagree with the catalog for a given source.
    - `source` string, required: Booking source within the channel. Often the same as `channel` for direct channels; can differ for channel managers (for example channel `rentalsUnited` with source `homeAway`). Must form a valid pair with `channel` (see `channel` for the catalog rule).
    - `isPreDeduct` boolean: When `true`, Guesty automatically deducts the channel commission from the host payout for reservations from this source (adds a negative host channel fee on the folio). This API only honors `isPreDeduct` for the `manual` channel — for any other channel the value is ignored and stored as `false`. The Valid Enumerations guide may list Pre-deduct for other sources (for example `expedia`) as a product/UI capability; that is not controlled by this field. Defaults to `false` when omitted.
    - `_id` string, required: ID of this channel commission entry. Use this value as `channelCommissionId` on PATCH and DELETE.
  - `accountId` string: Account ID that owns these channel commissions
  - `unitTypeId` string: Listing / unit type ID for listing-level commissions; omitted for account-level commissions

## Other responses

- `400`: The request is invalid. Common causes: `unitTypeId` is not a valid ID, body is not an array of channel commission items, or an item has invalid channel/source/commission/tax fields.

## Changes

- **2026-11-03** `3122b8618183`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/guesty/apis/guesty-open-api/changes/channel-commissions-v2/unit-type/:unitTypeId/put.md)

---

[API](https://skmtc.dev/guesty/apis/guesty-open-api.md) - [All operations](https://skmtc.dev/guesty/apis/guesty-open-api/llms.txt) - [OpenAPI document](https://skmtc.dev/guesty/apis/guesty-open-api/revisions/3122b8618183?raw)
