Reservations V3 Updates - 2026-05-12


Added

  • Add reservation search at GET /reservations-v3/search, with filtering, sorting, and pagination
  • Add reservation travel information updates at PUT /reservations-v3/{reservationId}/travel-information
  • Add reservation activity log retrieval at GET /reservation-logs/{reservationId}

Changed

  • Make mergeAccommodationFarePriceComponents optional and defaulted on GET /reservations-v3, PUT /reservations-v3/{reservationId}/source, PUT /reservations-v3/{reservationId}/dates, PUT /reservations-v3/{reservationId}/guests, and PUT /reservations-v3/{reservationId}/relocate
  • Make mergeAccommodationFarePriceComponents optional and defaulted on GET /quotes/{quoteId}, POST /quotes, POST /quotes/multiple, and POST /quotes/{quoteId}/coupons
  • Add mergeInclusiveTaxes support to GET /reservations-v3
  • Add ignoreCalendar, ignoreTerms, and ignoreBlocks request fields to PUT /reservations-v3/{reservationId}/dates, PUT /reservations-v3/{reservationId}/guests, and PUT /reservations-v3/{reservationId}/relocate
  • Add reservedUntil request and response support to PUT /reservations-v3/{reservationId}/status
  • Allow HOST as a cancellation actor on PUT /reservations-v3/{reservationId}/status
  • Make reason and messageToGuest optional on POST /reservations-v3/{reservationId}/decline
  • Expose additional reservation metadata in reservation and quote responses, including isUsingVCC and channel cancellationFee

Deprecation tags added to legacy listings and reservations resources to indicate Guesty's intention to sunset them in the near future

Added

  • Add the isTest flag to GET /listings, POST /listings, GET /listings/{id}, PUT /listings/{id}, PUT /listings/{id}/availability-settings, GET /owners-reservations, GET /owners-reservations/{id}, and PUT /owners-reservations/{id} responses to identify test properties
  • Add secondarySource to GET /reservations, POST /reservations, GET /reservations/{id}, PUT /reservations/{id}, and POST /reservations/{id}/invoiceItems responses to expose the reservation website name when available
  • Added feeGroupName to GET /payment-transactions/reports/payouts-reconciliation responses to expose the fee group name for payout reconciliation entries

Changed

  • Deprecate GET /listings/{id}/custom-fields, PUT /listings/{id}/custom-fields, GET /listings/{id}/custom-fields/{field_id}, and DELETE /listings/{listing_id}/custom-fields/{field_id}
  • Deprecate POST /reservations.csv and POST /reservations.email

Financials - 2026-04-27

No breaking changes have been introduced to taxes; rather, the documentation now aligns with the actual product behavior.

Added

  • Add pre-deduct commission support so you can configure automatic deduction behavior in commission settings (PUT /channel-commissions-v2/account, PUT /channel-commissions-v2/listings, PUT /channel-commission/listings, and PUT /channel-commission/account)
  • Add optional isUpsellFee to requests for POST /invoice-items/reservation/:reservationId
  • Add optional realizationDates.items.from and realizationDates.items.to to requests for POST /invoice-items/reservation/:reservationId
  • Add optional stayIndex to requests for POST /invoice-items/reservation/:reservationId
  • Add DIRECT_SERVICE, GUESTY_BASIC_TRAVEL_COVERAGE, GUESTY_EXTENDED_TRAVEL_COVERAGE, GUESTY_SHIELD, PROPERTY_INSURANCE, and TOTAL_PAYOUT_BASED enum values to secondIdentifier in requests for POST /invoice-items/reservation/:reservationId
  • Support parentInvoiceItemId, realizationDates[].from, realizationDates[].to, and stayIndex in requests to POST /price-adjustments/manual-total-amount to allow richer mapping of manual total amount adjustments
  • Support additional secondIdentifier values DIRECT_SERVICE, GUESTY_BASIC_TRAVEL_COVERAGE, GUESTY_EXTENDED_TRAVEL_COVERAGE, GUESTY_SHIELD, PROPERTY_INSURANCE, and TOTAL_PAYOUT_BASED in requests to POST /price-adjustments/manual-total-amount
  • Support additional normalType values MAR and MARF in requests to POST /price-adjustments/manual-total-amount
  • Return optional parentInvoiceItemId, realizationDatesRange, and stayIndex fields in 200 responses from GET /price-adjustments/total-amount/:id for better visibility into item-level adjustment context
  • Add optional request property channelOverrides to POST /taxes and PATCH /taxes/:id
  • Add optional request property isInclusive to POST /taxes and PATCH /taxes/:id
  • Add optional query parameter applyRequiredChangesToTaxesWithSameType to PATCH /taxes/:id
  • Add optional response property channelOverrides to POST /taxes, PATCH /taxes/:id, GET /taxes/account, GET /taxes/unit-type/:id, and GET /taxes/unit-type/:id/actual
  • Add optional response property isInclusive to POST /taxes, PATCH /taxes/:id, GET /taxes/account, GET /taxes/unit-type/:id, and GET /taxes/unit-type/:id/actual
  • Expand supported request enum values for appliedOnFees/items in POST /taxes and PATCH /taxes/:id to include many additional fee types (for example: ACTIVITIES, ADDITIONAL_BED, BOOKING_FEE, CLEANING, PARKING, POOL_HEATING, RESORT, WIFI, WOOD, and others)

Changed

  • Restrict appliedOnFees/items to enum values in POST /taxes and PATCH /taxes/:id
  • Restrict conditionalOverrides.rules[].dateRange.from and conditionalOverrides.rules[].dateRange.to to MMDD_DATE_FORMAT_REGEX in POST /taxes and PATCH /taxes/:id
  • Add vrboLite as a possible response enum value for appliedByDefaultOnChannels/items in POST /taxes, PATCH /taxes/:id, GET /taxes/account, GET /taxes/unit-type/:id, and GET /taxes/unit-type/:id/actual
  • Expand the supported commission.of values by adding DIRECT_SERVICE, GUESTY_BASIC_TRAVEL_COVERAGE, GUESTY_EXTENDED_TRAVEL_COVERAGE, GUESTY_SHIELD, PROPERTY_INSURANCE, and TOTAL_PAYOUT_BASED in update payloads for PUT /channel-commission/account, PUT /channel-commission/listings, PUT /channel-commissions-v2/account, and PUT /channel-commissions-v2/listings
  • Relax validation by making tax optional for payloads used by PUT /channel-commissions-v2/account and PUT /channel-commissions-v2/listings
  • Allow commission tax to be omitted when it is not relevant in channel commission updates (PUT /channel-commissions-v2/account, PUT /channel-commissions-v2/listings)
  • Improve consistency of channel commission update inputs to make account and listing updates more predictable (PUT /channel-commissions-v2/account, PUT /channel-commissions-v2/listings).
  • Make realizationDates.items.date optional in requests for POST /invoice-items/reservation/:reservationId
  • Allow priceAdjustments[].realizationDates[].date to be omitted in requests to POST /price-adjustments/manual-total-amount when using range-based realization dates (from/to)

Removed

  • Remove channel enum values agoda, airbnb, bookingCom, bookingPal, expedia, homeAway, homeaway2, rentalsUnited, siteMinder, and tripAdvisor from request property appliedByDefaultOnChannels/items in POST /taxes and PATCH /taxes/:id

Owner Payout Methods 2026-04-23

New Payouts API for managing owner payout details

Added

  • Add GET /payouts/owners/{ownerId} to retrieve owner payout details
  • Add POST /payouts/owners/{ownerId} for creating a payout method for a given owner
  • Add PUT /payouts/owners/{ownerId} for updating an existing payout method for a given owner
  • Add POST /payouts/owners/bulk for adding payout methods for multiple owners in a single request

Roles are deprecated from the /users API and separated into their own /roles and /user-scope API resources to align Guesty's Open API with the latest roles and permissions version supported by the platform.


Added

  • Add GET /roles to retrieve a list of supported user roles and permissions
  • Add GET /roles/:id to retrieve the roles and permissions assigned to a user
  • Add POST /roles/assign to assign roles and permissions to a user
  • Add POST /user-scope/assign to assign the scope of listing permissions to a user
  • Add GET /user-scope/:id to retrieve the scope of listing permissions assigned to a user

Changed

  • Add optional country request property to POST /users
  • Add optional registrationOrigin request property to POST /users

Removed

  • Breaking: deprecated the roles property from the /user endpoints. Update your integrations to utilise the /roles and /user-scope APIs to manage user roles and permissions instead

New feature for adding and managing external links in your property's "Channels" section, and a new owner-guest creation endpoint to support owner-guest reservations


Added

  • Add POST /properties-api/listing-settings/external-links/{propertyId} for adding an external link to the property's page
  • Add PUT /properties-api/listing-settings/external-links/{propertyId}/{linkId} for updating the URL and name of an existing external link
  • Add PUT /properties-api/listing-settings/external-links/{propertyId}/order for reordering the list of external links
  • Add GET /properties-api/listing-settings/external-links/{propertyId} for retrieving the property's list of external links
  • Add DEL properties-api/listing-settings/external-links/{propertyId}/{linkId} for deleting an external link
  • Add POST /owners/:ownerId/guest endpoint to support owner reservations. You need to generate this ID only for a first-time owner reservation.

Changed

  • Add EXPENSES_CSV_IMPORT as a filterable trigger to GET /accounting-api/journal-entries and GET /accounting-api/journal-entries/all
  • Document GET /expenses-api/expenses pagination limit as “up to 100 items per page” in the endpoint description.
  • Document POST /expenses-api/expenses validation/usage details in the endpoint description (including lock period behavior and clarifications around required inputs and mutual exclusivity of owners vs listingIds).
  • Document GET /expenses-api/expenses/:id} returned details to explicitly mention attachments in the endpoint description.
  • Document POST /expenses-api/expenses/:id/attachments constraints and required fields in the endpoint description (including “up to 10 attachments per request” and urlThumbnail).
  • Document DELETE /expenses-api/expenses/:id/attachments/:attachmentId behavior in the endpoint description to emphasize it returns the updated expense after removal.
  • Document updated cancellation rules for POST /expenses-api/expenses/:id/cancel in the endpoint description (expanded eligible statuses and clarified rejection conditions).
  • Simplify/standardize multiple 404 response descriptions (e.g., “Expense not found”, “Expense or attachment not found”).
  • Add businessInformation.businessName to Owner create/update payloads and expose it in Owner responses (POST /owners, PUT /owners/:ownerId, GET /owners/:ownerId).
  • Add ownersPortalSettings.rentalIncome to Owner create/update payloads and expose it in Owner responses (POST /owners, PUT /owners/:ownerId, GET /owners/:ownerId).
  • Add bulk support for businessInformation.businessName and ownersPortalSettings.rentalIncome in request/response items (POST /owners/bulk).

Resources


Added


Removed

  • Remove CASH from the supported recorded payment enums list, as it is part of the payment automations workflow and can lead to an unintended credit card charge, once a valid credit card is added to the reservation. Use RECORDED_CASH instead.

Introducing a new custom review functionality for uploading external reviews to Guesty. Learn more

Changed

  • General backend optimizations

Added

  • Add POST /reviews/custom-channel-reviews endpoint.
  • Add GET /reviews/custom-channels endpoint.
  • Add POST /reviews/custom-channels endpoint.

Removed

  • Remove non-functional and unsupported PUT /reviews endpoint.

Added

  • Add reservation.created.v2 and reservation.updated.v2 enum values to the events request and response properties for the GET, POST, and PUT methods on the /webhooks and /webhooks/{id} endpoints.

Changed

  • Deprecate the PUT /reservations/{id}/custom-fields, GET /reservations/{id}/custom-fields/{field_id}, and DELETE /reservations/{reservation_id}/custom-fields/{field_id} endpoints. See Custom Reservation Fields Migration.

Introducing Combo Properties (Unified Unit) to replace Smart Calendar Rules; currently in limited pilot testing (see Pilot: Managing combo properties and property variants and Understanding Guesty property types


Added

  • Add POST /properties-api/groups/group to create COMBO or DUPLICATES groups
  • Add GET /properties-api/groups/group to list and filter property groups with pagination
  • Add GET /properties-api/groups/group/{id} to retrieve details for a specific group
  • Add PATCH /properties-api/groups/group/{id} to modify group membership or primary listing
  • Add DELETE /properties-api/groups/group/{id} to remove groups and associated rules
  • Add DELETE /expenses-api/expenses/{id}/attachments/{attachmentId} to permit you to correct any mistakes with expense attachments

Changed

  • Update description of owners property in POST /expenses-api/expenses request body to clarify requirements: that you may only send owners entries if the corresponding OWNER appears in the shares array with a payment share.