2026-10-18
October 18th, 2026
Added
- Basic fees (beta): A new "[Beta] Basic Fees" group manages a listing's cleaning fee and per-channel overrides.
GET /basic-fees/listings: fetch basic fees for up to 50 listings. PasslistingIdsas repeated query parameters or as one comma-separated value. Listings with no basic fees are omitted from the response.GET /basic-fees/listings/{listingId}: fetch the basic fees for one listing. Returns404when none are configured.PUT /basic-fees/listings/{listingId}: create or update a listing's basic fees.- Leaving out
cleaningFeekeeps the stored fee. channelConfigurationsis required, and[]clears all channel overrides.shouldUpdateSubUnits=trueoverwrites child listings with the same payload (no merge).
- Leaving out
DELETE /basic-fees/listings/{listingId}: delete a listing's basic fees and return the deleted configuration. Returns404when none are configured.GET /basic-fees/listings/{listingId}/channels/{channel}: get the cleaning fee in effect on one channel. This is the channel override if there is one; otherwise, the listing default. Returns200withoutcleaningFeewhen neither is set, and404only when the listing has no basic fees.
- Channel commissions v2:
/channel-commissions-v2now manages commissions at the account level and the listing (unit type) level.POST /channel-commissions-v2: create one channel/source commission entry. Leave outunitTypeIdfor the account level, or set it for the listing level. Returns409if the channel/source pair already exists at that level.PATCH /channel-commissions-v2/{channelCommissionId}: update one entry. The body must repeat the entry'schannelandsource, and leaving outcommissionortaxremoves them. Returns404when no entry matches.DELETE /channel-commissions-v2/{channelCommissionId}: delete one entry. Deleting the last entry at a level removes all commissions at that level. Returns204even if the entry is already gone.GET /channel-commissions-v2/unit-type/{unitTypeId}: get the entries stored for a listing, with no account-level inheritance. A sub-unit ID is resolved to its parent unit type.PUT /channel-commissions-v2/unit-type/{unitTypeId}: replace the listing's full set of entries. Entries missing from the body are removed.type.PUT /channel-commissions-v2/unit-type/{unitTypeId}: replace the listing's full set of entries. Entries missing from the body are removed.GET /channel-commissions-v2/unit-type/{unitTypeId}/actual: get the commissions that currently apply to a listing after its level configuration is resolved.GET /channel-commissions-v2/unit-type/{unitTypeId}/level-configurations: get whether a listing usesACCOUNTorUNIT_TYPEcommissions (defaultACCOUNT).PUT /channel-commissions-v2/unit-type/{unitTypeId}/level-configurations: set a listing's level toACCOUNTorUNIT_TYPE.PUT /channel-commissions-v2/reservations/{reservationId}(beta): manually override a reservation's channel commission (hostServiceFee) amount and update its folio.realizationDatesmust fall within the reservation's allowed accounting recognition window. Returns400when the channel has already pre-deducted the commission from the host payout.
Changed
- Check-in instructions: Listing and owner reservation responses gain an optional
checkInInstructionsobject (primaryCheckIn,alternativeCheckIn,notes,pictureUrl,pictureUrls).primaryCheckInandalternativeCheckInare nullable and acceptRECEPTION,LOCK_BOX,DOOR_CODE,MEETandOTHER.pictureUrlsholds up to 10 photo URLs.pictureUrlis a backward-compatible alias of the first one.- Affects
GET /listings,POST /listings,GET /listings/{id},PUT /listings/{id},PUT /listings/{id}/availability-settings,GET /owners-reservations,GET /owners-reservations/{id}andPUT /owners-reservations/{id}. On the owners-reservations endpoints, it sits underlisting.
- Guest folio webhooks: The webhook
eventslist gainsguest-folio.createdandguest-folio.updated, so you can subscribe to them. AffectsGET /webhooks,POST /webhooks,GET /webhooks/{id}andPUT /webhooks/{id}. A guide expounding on these events is planned. - Conversations:
GET /communication/conversationsgains thetypequery parameter (guest,ownerorowner-direct; defaultguest). The earlier docs namedtypeas the filter but listed onlyguestandowner. - Messages:
POST /communication/conversations/{conversationId}/send-messagenow listsplatformas a supportedmodule.type. - Guest folio invoice items:
normalTypeonGET /guest-folio/invoice-itemsgains the valuesAFD,AFA,EPF,ADF,OTHERandOT, each now explained. - Creating invoice items:
POST /invoice-items/reservation/{reservationId}:- Docs corrected: the page previously listed both a
200and a201with an empty description and an untyped body. It now documents only201, "The updated folio with the new invoice item". 400now lists its common causes, and a403is documented for callers without financials access to the reservation's listing.stayIndexis an integer with a minimum of0.0is the first stay, and it is required for multi-stay reservations and omitted for single-stay ones. A cleaning fee (CF) can only be added on stay0.realizationDatesneeds at least 1 date, informat: date.isUpsellFeeis described: it is only allowed whennormalTypeisAFE.
- Docs corrected: the page previously listed both a
- Account-level channel commissions v2: Docs corrected for
GET /channel-commissions-v2/accountandPUT /channel-commissions-v2/account. Both pages were copies of the legacy/channel-commission/accountdocs, with no response documented. Each now has its own description and response.PUTnow takes an array of channel/source commission definitions (taxrequired per item) that replaces the full account-level set, so entries not in the body are removed. - Documented limits:
PUT /channel-commission/accountaccepts at most 200manualitems.PUT /channel-commission/listingsaccepts 1–50channelCommissionsper request and at most 200manualitems. - Date formats:
realizationDatesonPOST /price-adjustments/manual-total-amountis now documented withformat: date.
Deprecated
- Channel commission (v1): Four legacy endpoints are now marked deprecated. No removal date has been announced.
GET /channel-commission/account: useGET /channel-commissions-v2/account.PUT /channel-commission/account: usePUT /channel-commissions-v2/account.GET /channel-commission/listings: useGET /channel-commissions-v2/unit-type/{unitTypeId}for stored entries, orGET /channel-commissions-v2/unit-type/{unitTypeId}/actualfor effective ones.PUT /channel-commission/listings: usePUT /channel-commissions-v2/unit-type/{unitTypeId}andPUT /channel-commissions-v2/unit-type/{unitTypeId}/level-configurations.
- On
GET /communication/conversations, the olderconversation typesparameter is deprecated in favor oftype.
Removed
GET /channel-commissions-v2/listingsandPUT /channel-commissions-v2/listingspages were removed. They were copies of the legacy/channel-commission/listingsdocs. UseGETandPUT /channel-commissions-v2/unit-type/{unitTypeId}instead, which work with one listing per call. There should be no disruption to existing implementations, but you are encouraged to migrate to the new resources as soon as possible.