Booking Hold and Resume
Rapid's Hold and Resume functionality gives you the ability to support a 2-step booking model. Please see here for more information on Hold and Resume.
1. SHOP
Get availability
List<PropertyAvailability> propertyAvailabilityList = rapidClient.getAvailability(
"YYYY-MM-DD",
"YYYY-MM-DD",
"USD",
"LANGUAGE",
"US",
List.of("OCCUPANCY"),
List.of("PROPERTY_ID"),
"SALES-CHANNEL",
"SALES-ENV",
BigDecimal.ONE,
"CUSTOMER-IP"
);
Check room prices
RoomPriceCheck roomPriceCheck = rapidClient.priceCheck(
"11775754",
propertyAvailabilityList.get(0).getRooms().get(0).getId(),
propertyAvailabilityList.get(0).getRooms().get(0).getRates().get(0).getId(),
Helpers.getPriceCheckToken(propertyAvailabilityList)
);
2. BOOK
Create itinerary
ItineraryCreation itineraryCreation = rapidClient.postItinerary(
/* CUSTOMER IP */,
getPostItineraryToken(roomPriceCheck),
createItineraryRequest(true)
);
Resume on-hold booking
rapidClient.putResumeBooking(
/* CUSTOMER IP */,
itineraryCreation.getItineraryId(),
Helpers.getResumeBookingToken(itineraryCreation)
);