Getting Started with the Xeni Activities APIHow to Book an ActivityHow to Browse Activity Tags and CategoriesHow to Cancel an Activity BookingHow to Check Activity AvailabilityHow to Get Activity DetailsHow to Retrieve Activity Booking DetailsHow to Search for Activities with FiltersHow to Search for Activity DestinationsCar Rental API - Getting StartedCar Rental API - Understanding Response FieldsHow to Book a Car RentalHow to Get Rental Car Details and Equipment Add-OnsHow to Retrieve or Cancel a Car Rental BookingHow to Search for Available Rental CarsHow to Search for Pickup LocationsHow to Use Car Rental Search FiltersDeals API Best Practices for IntegrationDeals API Frequently Asked QuestionsGetting Started with the Xeni Deals APIDeals API Request Parameters and Headers ReferenceDeals API Supported Currencies and LocalizationHow to Display Deals in Your ApplicationHow to Fetch Hotel Deals by LocationFlights API Error Codes and TroubleshootingGetting Started with the Xeni Flights APIHow to Book a FlightHow to Check Flight Availability and PricingHow to Confirm or Cancel a Flight BookingHow to Retrieve Fare Rules for a FlightHow to Retrieve Flight Booking DetailsHow to Search for Airports Using AutocompleteHow to Search for FlightsHow to Use Flight Search Filters, Sorting, and PaginationHow to Check Room Availability and PricingHow to Filter Vacation Rental ResultsHow to Get Resort Property Details, Amenities, and AccessibilityHow to Hold and Confirm a Resort BookingHow to Release a Resort HoldHow to Retrieve Resort Booking DetailsHow to Search for Available ResortsHow to Search for Resort DestinationsHow to Search for Vacation Rental LocationsHow to Search for Vacation RentalsHow to Use Resort Search Filters and SortingGetting Started with the Xeni Resorts APIResorts API: Understanding Booking Statuses and PoliciesGetting Started with the Vacation Rentals APIVacation Rentals Frequently Asked QuestionsVacation Rentals Supported Property TypesUnderstanding Async Search for Vacation RentalsAuthentication & API SignaturesBooking Hotels — Direct API & SSO CheckoutError Handling, Rate Limits & Best PracticesGetting Started with the Xeni Hotels APIManaging Bookings: Status, Retrieval & CancellationPricing Confirmation & Token LifecycleRetrieving Hotel Details & Room AvailabilitySearching for Hotels: Locations, Filters & PaginationSearching for HotelsSession Management & Correlation IDsAPI authentication and getting your API keys

How to Release a Resort Hold

Last updated: 2026-03-03

How to Release a Resort Hold

If a booking is in a HOLD state and you no longer wish to proceed, you can release it. Releasing a hold cancels the pending reservation and frees the room for other guests. This action cannot be undone.

Endpoint

PUT {{apihost}}/resorts/api/v2/itineraries?referencenumber={reference_number}&status=RELEASE

Required Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
x-api-keyYour API keyYes
x-correlation-idUnique correlation identifierYes

Query Parameters

ParameterTypeRequiredDescription
reference_numberstringYesThe booking reference number from the hold response
statusstringYesMust be "RELEASE"

Request Body

The request body should be empty.

Example Request

PUT {{apihost}}/resorts/api/v2/itineraries?referencenumber=XRN-2026040100123&status=RELEASE

Example Response

JSON
{
  "status": 200,
  "data": {
    "reference_number": "XRN-2026040100123",
    "status": "RELEASED"
  }
}

Response Fields

FieldTypeDescription
reference_numberstringThe booking reference number
statusstringThe updated booking status: "RELEASED"

When to Release a Hold

Common scenarios where you should release a hold:

  • Payment failure — The guest's payment could not be processed after the hold was created.
  • Guest cancellation — The guest decides not to proceed before the booking is confirmed.
  • Timeout — Your application's internal timeout for completing the booking has elapsed.
  • Error in traveler details — Incorrect information was submitted and a new booking needs to be created.

Error Handling

417 — Booking Not in HOLD State

If the booking has already been confirmed, released, or is in another state that does not allow release, the API returns a 417 error:

JSON
{
  "message": "Booking is not in HOLD state",
  "status": 417
}

This occurs when:

  • The booking was already confirmed (status: CONFIRMED)
  • The booking was already released (status: RELEASED)
  • The hold expired automatically

Best Practices


  • Release promptly — If you know the booking will not be confirmed, release the hold immediately to free up inventory.
  • Check status before releasing — If you are unsure of the current booking state, retrieve the booking details first using the GET booking endpoint to verify it is still in HOLD status.
  • Handle 417 gracefully — A 417 response does not necessarily indicate an error in your logic. The hold may have expired automatically. Log the response and update your local state accordingly.
  • Released bookings are final — Once a hold is released, it cannot be reinstated. The guest would need to go through the full search, availability, pricing, and booking flow again.


Was this article helpful?