ホテルAPI
都市コード(IATA形式、例:DXB)または当社カタログから保存したホテルコードで1.5M+の施設を検索し、食事条件とキャンセルポリシー付きの客室単位の料金を取得して、検証・予約し、ポリシーに従ってキャンセルできます。
検索
POST /v1/hotels/search with a destination and check-in/out dates and one to eight rooms (adults and child ages per room). The destination is a cityCode (IATA-style, e.g. "DXB" — GET /v1/content/cities lists them), a list of hotelCodes from the catalogue you store on your side (GET /v1/content/hotels per city), or a geo circle. Name matching is yours to do against your stored list; availability is always asked by code.
wait=true の場合は完全な結果セットが、wait=false の場合は GET /v1/hotels/search/{searchId} でポーリングするための searchId が返されます。料金キーを予約可能な状態に保つため、同じ日付と客室数を渡してください。各ホテルには、コンテンツ(名称、星評価、住所、位置情報、メイン画像、設備)と、客室ごとの最安料金(不透明な rateKey、合計と1泊あたりの料金、食事条件、返金可否、キャンセル期限)が含まれます。
客室と料金
GET /v1/hotels/{hotelCode}/rooms?rateKey=… は、検索した滞在期間について1つの施設のすべての客室タイプと料金を一覧表示します。ベッドタイプ、定員、食事条件、ポリシー、税金と手数料の内訳、料金が返金可能かどうかを含みます。
料金確認
POST /v1/hotels/rates/{rateKey}/check は、料金がまだ予約可能であることを確認し、最終的な価格とポリシーを返します。予約の直前に必ず実行してください。ここで 409 price_changed や rate_expired を受け取るほうが、予約の失敗よりもはるかに低コストです。
予約
POST /v1/hotels/bookings に、rateKey、予約者、客室ごとの宿泊者、連絡先を指定し、Idempotency-Key を付与します。レスポンスは、予約番号、サプライヤーの確認番号、バウチャー情報を含む予約です。GET /v1/hotels/bookings/{bookingId} でいつでも再取得できます。
キャンセル
GET /v1/hotels/bookings/{bookingId}/cancellation-quote は、現時点のポリシーに基づくキャンセル料を返します。POST /v1/hotels/bookings/{bookingId}/cancel(Idempotency-Key 必須)でキャンセルを確定します。