Reservation migration
How to move your operations from Guesty's legacy reservation resources to the current ones for compliance.
Overview
Guesty has upgraded its reservations infrastructure. As part of that work, the reservation endpoints under /reservations are being replaced by a new set of endpoints. In this guide, you’ll find a full list of the old endpoints and their new equivalents.
New additions
The new API also supports things the old one could not, including:
Migration timeline
The legacy endpoints will be retired on 1 March 2027. After that date, calls to them will stop working.
Old and new reservation endpoints will run side by side until the close date, giving you time to update your integrations. One exception is the legacy guest payment resources: although they are marked for deprecation, we don't have a set removal date yet; however, we encourage you to adopt the new payment resources as soon as possible for the best experience.
Additional notes
Two things to know before you start:
- One endpoint per operation. The single
PUT /v1/reservations/{id}that accepted any field is replaced by a dedicated endpoint for each operation — dates, notes, status, and so on.
- Related data by reference. Guest, financial, and payment data are no longer embedded in the response. You fetch them separately, so some flows that were one call may now require two or three requests.
The sections below address both changes.
Endpoint mapping
Reservation retrieval
The new reservation resources have leaner payloads and are more specific to each case. Financials and payments are now separate from stay details and have their own dedicated retrieval resources. Likewise, guest details must be pulled from the /guests endpoints.
- Get stay details:
- Get custom fields: Migrated earlier this year. See the Custom Reservation Fields Migration guide for details.
- Get the guest folio:
- Get payments:
- Get reservation logs*:*
- Use:
GET /reservation-logs/{reservationId}(link)
- Use:
- Reservation report or curated search:
- Deprecated:
GET /reservations(link) - Move to:
GET /reservations-v3/search(link)- Filtering by guest name, phone, or email is not carried over—filter by guest ID instead.
lastUpdatedAtdate filtering is also not supported at this time. Rely on thereservation.updated.v2webhook event for ordering and exact changes.
- Filtering by guest name, phone, or email is not carried over—filter by guest ID instead.
GET /reservations-reports/{viewId}(link)- Retrieves preconfigured reservation reports by their
viewId
- Retrieves preconfigured reservation reports by their
- Deprecated:
CSVs and Email reports
Some of the following operations are fully deprecated because they struggled with large datasets, and you can achieve the same outcome with newer, similar features.
- Download CSV reservation list:
- Email a reservation list:
- Deprecated:
POST /reservations.email(link) - Move to: Schedule mailings of preconfigured reports through your Guesty dashboard. Learn more
- Deprecated:
Reservation creation
There are several booking types and flows, from quick booking to quote and book, to group bookings, and owner reservations:
- Create quote:
- Apply coupon:
- Quick booking: Applies the default rate plan and given fees
- Create booking from quote:
- Create group booking
- Approve/Decline booking request:
- Pre-approve channel inquiries:
- Create owner reservation:
- Use:
POST /reservations-v3/owner/confirmed(link)
- Use:
Reservation alterations
Instead of a broad update resource, Guesty now uses a more focused approach with an endpoint for each operation type.
Approvals, stay details, and custom fields
- Change guest stay status:
- Change reservation source:
- Update reservation notes:
- Update travel information:
- Update reservation dates:
- Update reservation listing:
- Update reservation status:
- Update confirmation code:
- Update booking date:
- Deprecated:
PUT /reservations/{reservationId}and body parametercreatedAt(link) - Move to:
PUT /reservations-v3/{reservationId}/booking-date(link)createdAtbecomes canonical for Guesty as the date the booking enters our system, andbookingDatebecomes the real-world adjustable booking date for when dates don’t align
- Deprecated:
- Update guests breakdown:
- Update reservation custom field:
- Deprecated: Migrated earlier this year. See the Custom Reservation Fields Migration guide for details.
- Move to:
PUT /reservations-v3/{reservationId}/custom-fields(link)
- Delete reservation custom field:
- Deprecated: Migrated earlier this year. See the Custom Reservation Fields Migration guide for details.
- Move to:
DELETE /reservations-v3/{reservationId}/custom-fields/{fieldId}(link)
- Create a mid-stay:
- No legacy equivalent. This is a new resource.
- Use:
POST /reservations-v3/mid-stay(link)
- Request cancellation of a channel reservation:
- No legacy equivalent. This is a new resource.
- Use:
POST /reservations-v3/{reservationId}/request-cancellation(link)- The reservation must be from a channel and in
confirmedstatus to be canceled
- The reservation must be from a channel and in
- Reservation comments: A new way to communicate internally about a guest stay. Only the comment author can edit and delete their comments. Learn more
- List comments:
GET /reservations-v3/{reservationId}/comments - Post a comment:
POST /reservations-v3/{reservationId}/comments - Edit a comment:
PATCH /reservations-v3/{reservationId}/comments/{commentId} - Delete a comment:
DELETE /reservations-v3/{reservationId}/comments/{commentId}
- List comments:
Reservation financials
Access the reservation’s invoice and related financial information from the new dedicated endpoints. Price adjustment and adding an invoice item operations remain unchanged. Please continue to use their dedicated endpoints respectively.
- Guest folio and settings snapshot:
- Deprecated:
GET /reservations/{reservationId}?fields=money(link) - Move to:
- Guest folio overview:
GET /guest-folio/overview - Invoice item details:
GET /guest-folio/invoice-items - Settings snapshot:
GET /guest-folio/settings-snapshot
- Guest folio overview:
- Deprecated:
- Add invoice item(s):
- Continue to use:
POST /invoice-items/reservation/{reservationId}(link)
- Continue to use:
- Price adjustments:
Reservation payments
Not all legacy reservation payment resources currently have a retirement date. However, we encourage you to adopt the new resources as soon as possible for the best experience.
Payment methods
- Retrieve payment methods:
- Add a payment method:
Reservation payments
- Retrieve reservation payment records: Returns the
totalPaid,balanceDue, and the payments. - Create a payment:
- Deprecated:
POST /reservations/{id}/payments(link) - Move to:
- Schedule a charge:
POST /payments - Charge immediately:
POST /payments/{paymentId}/pay - Capture authorization hold:
POST /payments/{paymentId}/capture - Record chargeback:
POST /payments/{paymentId}/chargeback
- Schedule a charge:
- Deprecated:
- Update payment:
- Cancel payment:
- Refund payment:
Recorded transactions
- Record offline payment:
- Update recorded payment
Guest details
The new guest stay payload identifies the guest only by bookerId or guestId. You will need to call Get guest by ID to retrieve detailed information and Update guest to update the guest’s details.
Webhooks
Refer to the webhooks migration guide for complete details about the new webhook events you must subscribe to to ensure you receive the relevant updates across all bookings. New events to subscribe to include:
reservation.created.v2andreservation.updated.v2guest-folio.createdandguest-folio.updated
The legacy reservation.new and reservation.updated events will also be retired on 1 March 2027.
Supplementary guides
We plan to update the existing reservation and payment guides in due course. Until then, please defer to this guide and the reference documentation and contact the Guesty Customer Experience team with any questions.
Need help?
Open a ticket with API support if you are unsure which endpoint replaces a flow you rely on, or if a replacement does not cover your use case.
Updated about 1 hour ago