호텔 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=…는 검색한 숙박 일정에 대해 한 숙소의 모든 객실 유형과 요금을 나열합니다: 침대 유형, 투숙 인원, 식사 조건, 정책, 세금 및 수수료 내역, 환불 가능 여부.
요금 확인
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 필수)로 취소를 확정합니다.