即時予約
モジュラー型 API により、貴社とお客様が宿泊施設の予約を完了するために必要なデータポイントがすべて提供されます。
Rapid API の仕組みとパートナーにとってのメリットについては、こちらを参照してください。
1. ショップ
指定した施設 (1 回のリクエストで最大 250 施設) のすべての客室タイプの料金と空室状況が Shop API から返されます。応答には、プロモーション、料金が払い戻し可能かどうか、キャンセル料金、該当する市場での料金表示条件を満たす完全な料金内訳など、料金に関する詳細が表示されます。このサービスの詳細については、こちらを参照してください。
空室状況を取得する
GetAvailabilityOperationParams getAvailabilityOperationParams = GetAvailabilityOperationParams.builder()
.checkin("YYYY-MM-DD")
.checkout("YYYY-MM-DD")
.currency("USD")
.language("en_US")
.countryCode("US")
.occupancy(List.of("OCCUPANCY"))
.propertyId(List.of("PROPERTY ID"))
.customerIp("127.0.0.1")
.ratePlanCount(BigDecimal.ONE)
.salesChannel("SALES CHANNEL")
.salesEnvironment("SALES ENVIRONMENT")
.build();
GetAvailabilityOperation getAvailabilityOperation = new GetAvailabilityOperation(getAvailabilityOperationParams);
Response<List<Property>> propertiesResponse = rapidClient.execute(getAvailabilityOperation);
客室料金を確認する
Property property = propertiesResponse.getData().get(0);
if (!(property instanceof PropertyAvailability)) {
return;
}
PropertyAvailability propertyAvailability = (PropertyAvailability) property;
Link propertyAvailabilityLink = propertyAvailability.getRooms().get(0).getRates().get(0).getBedGroups().entrySet().stream().findFirst().get().getValue().getLinks().getPriceCheck(); // selecting the first rate for the first room
PriceCheckOperationContext priceCheckOperationContext = PriceCheckOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PriceCheckOperation priceCheckOperation = new PriceCheckOperation(propertyAvailabilityLink, priceCheckOperationContext);
Response<RoomPriceCheck> response = rapidClient.execute(priceCheckOperation);
RoomPriceCheck roomPriceCheck = response.getData();
2. 予約
Booking API を使用して、Price Check 応答で確定した料金で客室を予約できます。Rapid Booking API の詳細については、こちらを参照してください。
旅程を作成する
Booking API のプライマリ旅程メソッドで、選択した施設、客室、料金、客室利用人数の予約を作成します。請求先やカード所有者の連絡先などの支払い情報は、このリクエストに直接入力します。詳しくはこちらをご覧ください。
Link postItineraryLink = roomPriceCheck.getLinks().getBook(); // from the previous step
PostItineraryOperationContext postItineraryOperationContext = PostItineraryOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PostItineraryOperation itineraryCreationOperation = new PostItineraryOperation(postItineraryLink, postItineraryOperationContext, createItineraryRequest(false));
Response<ItineraryCreation> response = rapidClient.execute(itineraryCreationOperation);
ItineraryCreation itineraryCreationResponse = response.getData();