Improvements to the guest payment method and vendor documentation
Changed
Rename POST /guests/{id}/payment-methods from “Create payment method" to “Create guest payment method”
Label the POST /guests/{id}/payment-methods request-body variants as Stripe Payment Method and Guesty Pay Payment Method while preserving their required fields
Document payoutMethod in vendor response bodies for GET /vendors and GET /vendors/{id}, including bank account, routing, BSB, sort code, account holder, and business address fields
Added
Document the 201 application/json response body for POST /guests/{id}/payment-methods with a guest payment method schema and example
Document the 200 application/json response body for GET /guests/{id}/payment-methods with a list of guest payment methods and example
Add PaymentMethod and PaymentMethodList schemas for guest payment method response documentation covering /guests/{id}/payment-methods
Add POST /vendors for creating vendors with company, firstName, lastName, email, optional contact details, tax code, notes, and payoutMethod request fields
Add PATCH /vendors/{id} for updating vendor details and vendor payoutMethod data by vendor ID
Add create and update vendor schemas for POST /vendors and PATCH /vendors/{id}, including CreatePayoutMethodDto, UpdatePayoutMethodDto, and vendor response schemas
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
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
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).
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.
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.