RateModifications

개요

이 API를 사용하면 가격 조정이나 환불 가능 여부 설정 등 조건이 충족될 때마다 요금에 작업을 동적으로 적용하는 방법을 정의할 수 있습니다. 가장 큰 할인이 적용되는 프로모션만 적용할 수 있는 Promotions API와 달리 이 API는 최종 가격을 궁극적으로 인상할 수 있는 가격 조정 등 특정 조건이 충족되면 모든 작업을 적용합니다.

요청

구문

RateModifications 메시지는 다음 구문을 사용합니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
                      id="message_ID"
                      timestamp="timestamp">
  <HotelRateModifications hotel_id="HotelID" action="[overlay]">
    <ItineraryRateModification id="ModificationID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </BookingDates>
      <BookingWindow min="integer" max="integer"/>
      <CheckinDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckinDates>
      <CheckoutDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckoutDates>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <LengthOfStay min="integer" max="integer"/>
      <MinimumAmount before_discount="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates application="[all|any]">
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="float"/>
        <RateRule id="RateRuleID"/>
        <Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/>
        <Availability status="[unavailable]"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

요소 및 속성

RateModifications 메시지에는 다음과 같은 요소와 속성이 있습니다.

요소 / @Attribute 발생 횟수 유형 설명
RateModifications 1 Complex element 요금 수정 메시지의 루트 요소입니다.
RateModifications / @partner 1 string 이 메시지의 파트너 계정입니다. 이 문자열 값은 Hotel Center의 계정 설정 페이지에 표시된 '파트너 키' 값입니다.

참고: 여러 계정의 피드를 제공하는 백엔드가 있는 경우 이 값은 동일한 계정의 <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> 메시지의 <RequestorID> 요소에 지정된 ID 속성 값과 일치해야 합니다.

RateModifications / @id 1 string 이 요청 메시지의 고유 식별자입니다. 이 값은 응답 메시지로 반환됩니다. 허용되는 문자는 a~z, A~Z, 0~9, _(밑줄), - (대시)입니다.
RateModifications / @timestamp 1 DateTime 이 메시지의 생성 날짜 및 시간입니다.
RateModifications / HotelRateModifications 0..n HotelRateModifications

숙박 시설의 요금 수정입니다. 각 요금 수정사항은 단일 숙박 시설에 적용됩니다.

참고: 동일한 요금에 여러 요금 수정사항을 적용할 수 있는 경우 모든 수정사항이 적용됩니다. 특정 순서는 보장되지 않습니다.

RateModifications / HotelRateModifications / @hotel_id 1 string 숙박 시설의 고유 식별자입니다. 이 값은 호텔 목록 피드의 <listing> 요소에서 <id>을 사용하여 지정된 호텔 ID와 일치해야 합니다. 호텔 ID는 Hotel Center에도 표시됩니다.
RateModifications / HotelRateModifications / @action 0..1 enum

action가 지정되지 않으면 이 요소 내의 수정사항이 이 호텔에 추가되거나 업데이트됩니다. action="overlay"이 지정되면 이 호텔에 대해 이전에 정의된 모든 수정사항이 먼저 삭제됩니다. 그런 다음 여기에 지정된 수정사항이 작성됩니다. action="overlay"가 사용되고 이 요소 내에 수정사항이 지정되지 않으면 이 호텔의 모든 수정사항이 삭제됩니다.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

숙박 시설의 단일 요금 수정입니다.

참고:요금 수정은 디버그하기 어려우므로 가능한 한 적게 사용하는 것이 좋습니다. 요금 수정이 200개를 초과하는 사용 사례는 기술계정 관리자 (TAM)에게 문의하세요.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string 요금 수정의 고유 식별자입니다. 허용되는 최대 문자 수는 40자(영문 기준)입니다. 허용되는 문자는 a~z, A~Z, 0~9, _ (밑줄), - (대시), .입니다. (마침표)를 누릅니다.
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

지정되지 않았고 동일한 id를 사용하는 요금 수정이 저장되지 않은 경우 이 요금 수정이 저장됩니다. 그렇지 않고 지정되지 않았으며 id이 동일한 요금 수정이 저장된 경우 기존 요금 수정이 업데이트됩니다.

지정된 경우 값은 "delete"여야 합니다. "delete"가 지정되면 동일한 id이 있는 저장된 요금 수정이 삭제됩니다. "delete"를 사용하는 경우 <ItineraryRateModification>에 하위 요소를 포함하지 마세요. 또한 "delete"<HotelRateModifications action="overlay"/>과 함께 사용할 수 없습니다.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates 요금 수정이 적용되려면 예약이 이루어져야 하는 시점을 정의하는 하나 이상의 기간 컨테이너입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange 요금 수정이 적용되려면 예약이 이루어져야 하는 기간입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date 기간의 시작일입니다 (속성의 시간대 기준, 포함). 이 날짜는 end 날짜 이전이거나 같아야 합니다. start가 지정되지 않으면 시작일 측면에서 날짜 범위가 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date 기간의 종료일입니다 (속성의 시간대 기준, 기간에 포함). 이 날짜는 start 날짜와 같거나 그 이후여야 합니다. end가 지정되지 않으면 종료일 측면에서 날짜 범위가 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

날짜 범위에서 허용되는 요일입니다. 지정하지 않으면 날짜 범위의 모든 요일이 허용됩니다. 문자열의 각 문자는 요일을 지정합니다. 예를 들어 'MTWHF'는 날짜 범위에 평일이 허용됨을 지정합니다.

유효한 문자는 다음과 같습니다.

  • 월요일의 경우 M
  • 화요일의 경우 T
  • 수요일의 경우 W
  • 목요일의 경우 H
  • 금요일의 경우 F
  • 토요일의 경우 S
  • 일요일의 경우 U

모든 문자 조합이 유효합니다.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow 체크인 날짜 (숙박 시설의 시간대 기준)를 기준으로 예약이 이루어져야 하는 기간을 지정합니다. 예를 들어 예약 기간은 체크인 전 최소 7일, 최대 180일로 설정할 수 있습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer 요금 수정이 적용되려면 예약이 이루어져야 하는 체크인 전 최소 일수입니다. 지정하지 않으면 최솟값이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer 요금 수정이 적용되려면 예약이 이루어져야 하는 체크인 전 최대 일수입니다. 지정하지 않으면 최댓값이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates 요금 수정이 적용되려면 체크인이 이루어져야 하는 시점을 정의하는 하나 이상의 기간의 컨테이너입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange 요금 수정이 적용되려면 체크인이 이루어져야 하는 기간입니다. 하나 이상의 요금 수정사항을 삭제하는 경우에는 이 요소가 필요하지 않습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date 기간의 시작일입니다 (속성의 시간대 기준, 포함). 이 날짜는 end 날짜 이전이거나 같아야 합니다. start가 지정되지 않으면 시작일 측면에서 날짜 범위가 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date 기간의 종료일입니다 (속성의 시간대 기준, 기간에 포함). 이 날짜는 start 날짜와 같거나 그 이후여야 합니다. end가 지정되지 않으면 종료일 측면에서 날짜 범위가 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

날짜 범위에서 허용되는 요일입니다. 지정하지 않으면 날짜 범위의 모든 요일이 허용됩니다. 문자열의 각 문자는 요일을 지정합니다. 예를 들어 'MTWHF'는 날짜 범위에 평일이 허용됨을 지정합니다.

유효한 문자는 다음과 같습니다.

  • 월요일의 경우 M
  • 화요일의 경우 T
  • 수요일의 경우 W
  • 목요일의 경우 H
  • 금요일의 경우 F
  • 토요일의 경우 S
  • 일요일의 경우 U

모든 문자 조합이 유효합니다.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates 요금 수정이 적용되려면 체크아웃이 발생해야 하는 시점을 정의하는 하나 이상의 기간 컨테이너입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange 요금 수정이 적용되려면 체크아웃이 발생해야 하는 시점을 지정하는 기간입니다. 하나 이상의 요금 수정사항을 삭제하는 경우에는 이 요소가 필요하지 않습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date 기간의 시작일입니다 (속성의 시간대 기준, 포함). 이 날짜는 end 날짜 이전이거나 같아야 합니다. start가 지정되지 않으면 시작일 측면에서 날짜 범위가 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date 기간의 종료일입니다 (속성의 시간대 기준, 기간에 포함). 이 날짜는 start 날짜와 같거나 그 이후여야 합니다. end가 지정되지 않으면 종료일 측면에서 날짜 범위가 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

날짜 범위에서 허용되는 요일입니다. 지정하지 않으면 날짜 범위의 모든 요일이 허용됩니다. 문자열의 각 문자는 요일을 지정합니다. 예를 들어 'MTWHF'는 날짜 범위에 평일이 허용됨을 지정합니다.

유효한 문자는 다음과 같습니다.

  • 월요일의 경우 M
  • 화요일의 경우 T
  • 수요일의 경우 W
  • 목요일의 경우 H
  • 금요일의 경우 F
  • 토요일의 경우 S
  • 일요일의 경우 U

모든 문자 조합이 유효합니다.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices 요금 수정이 가능한 사용자 기기를 나열하는 컨테이너입니다. 지정된 경우 사용자가 나열된 기기 중 하나와 일치하는 경우에만 요금 수정이 적용됩니다. 지정하지 않으면 요금 수정 적용이 제한되지 않습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device 요금 수정 대상인 사용자 기기 유형을 정의합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum 기기 유형입니다. 값은 desktop, tablet 또는 mobile이어야 합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

지정된 모든 조건이 충족되는 경우 요율에 적용되는 작업입니다.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment AmountBeforeTaxAmountAfterTax에 지정된 승수를 곱하여 비율을 수정합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float AmountBeforeTaxAmountAfterTax 모두 이 값으로 곱해집니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule 지정된 요금 규칙 ID를 적용하여 요금을 수정합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string 이 ID는 요금 규칙 정의 파일의 정의에 요금을 매칭합니다. 참고:
  • 이 입력란의 글자 수 제한은 40자(영문 기준)입니다.
  • 각 요금은 단일 요금 규칙과만 연결될 수 있습니다.
  • 요금 규칙 ID를 적용하는 수정사항이 여러 개 있는 경우 사전순으로 가장 작은 요금 규칙 ID가 요금에 할당됩니다.
  • 이 ID가 요금 규칙 정의 파일의 요금 규칙과 일치하지 않으면 부적격으로 간주됩니다.
다양한 특별 요금 UI 처리에 관한 자세한 내용은 이 도움말을 참고하세요.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable 요금의 환불 가능 여부를 지정된 값으로 덮어씁니다.

속성을 설정할 때는 다음 사항에 유의하세요.

  • 이 수정 작업은 채워진 필드뿐만 아니라 자격 요금의 환불 가능 설정을 완전히 다시 작성합니다.
  • available 또는 refundable_until_days이 설정되지 않은 경우 요금이 환불 가능으로 표시되지 않습니다.
  • available0 또는 false이면 다른 속성은 무시됩니다. 다른 속성 중 하나 또는 둘 다 설정되어 있어도 요금이 환불 가능으로 표시되지 않습니다.
  • refundable_until_time를 설정하는 것이 좋습니다. 설정하지 않으면 가장 빠른 시간 (자정)이 사용됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (필수사항) 요율이 전액 환불을 허용하는지 여부를 나타내려면 1 또는 true로 설정하고, 그렇지 않으면 0 또는 false로 설정합니다.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (availabletrue인 경우 필수) 체크인 전에 전액 환불을 요청할 수 있는 일수를 지정합니다. refundable_until_days 값은 0~330 사이의 정수여야 합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (availabletrue인 경우 권장) 전액 환불 요청이 가능한 가장 늦은 시간(호텔 현지 시간대 기준)을 지정합니다. refundable_until_days와 결합하여 예를 들어 '체크인 2일 전 오후 4시까지 환불 가능'과 같이 지정할 수 있습니다. refundable_until_time이 설정되지 않은 경우 값은 기본적으로 자정입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability 요금의 사용 가능 여부를 지정된 값으로 덮어씁니다. 요율을 unavailable로 설정하는 것만 지원됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum status="unavailable"인 경우 유효한 가격이 있는지와 관계없이 요금이 사용할 수 없는 것으로 처리됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay 이 요금 수정이 적용될 수 있는 숙박 기간 한도를 정의합니다. 숙박 기간이 최소 및 최대 한도를 벗어나면 요금 수정이 적용되지 않습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer 요금 수정이 적용되려면 숙박에 허용되는 최소 숙박 일수입니다. 지정되지 않으면 최솟값이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer 요금 수정이 적용될 수 있는 숙박의 최대 숙박 일수입니다. 지정하지 않으면 최댓값이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount 요금 수정이 적용되려면 초과해야 하는 일일 객실 요금의 최소 합계를 지정합니다 (AmountBeforeTax 또는 AmountAfterTax 중 더 큰 값 사용).
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer 요금 수정이 적용되려면 초과해야 하는 값입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans 요금 수정이 적용되는 요금제 목록의 컨테이너입니다. <RatePlans>를 지정하지 않으면 요금 수정이 모든 요금제에 적용됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan 요금제를 지정합니다. 요금제는 트랜잭션(숙박 시설 데이터), OTA_HotelRateAmountNotifRQ, OTA_HotelAvailNotifRQ 메시지에 정의되고 PackageID로 식별되는 패키지, 요금, 이용 가능 여부의 조합으로 정의됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string 요금제의 고유 식별자입니다. 이 값은 트랜잭션 (숙박 시설 데이터) 메시지의 <PackageData>에 있는 PackageID 값과 <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> 메시지 모두에서 <StatusApplicationControl>RatePlanCode 속성에 매핑됩니다. 허용되는 최대 문자 수는 50자(영문 기준)입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes 요금 수정이 적용되는 객실 유형 목록의 컨테이너입니다. 요금 수정은 지정된 각 <RoomType>에 적용됩니다. <RoomTypes>이 지정되지 않은 경우 요금 수정이 모든 객실에 적용됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType 방 유형을 지정합니다. 객실 유형은 트랜잭션 (숙박 시설 데이터) 메시지의 <RoomData> 요소에 정의되며 <RoomID> 값을 사용하여 참조됩니다. (<RoomID> 값은 OTA_HotelRateAmountNotifRQ 메시지의 InvTypeCode 속성에서도 참조됩니다.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string 인벤토리 (객실 유형)의 고유 식별자입니다. 이 값은 트랜잭션 (숙박 시설 데이터) 메시지의 <RoomID>에 매핑됩니다. 허용되는 최대 문자 수는 50자(영문 기준)입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates 요금 수정이 적용되는 방식을 결정하는 하나 이상의 기간 컨테이너입니다(예: 시즌별 가격 책정).
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

요금 수정이 적용되는 방식을 설명합니다.

유효한 값은 다음과 같습니다.

  • all: 일정의 모든 날짜가 숙박 날짜와 겹치는 경우 일정의 각 숙박에 요금 수정을 적용합니다.
  • any: 일정의 날짜가 숙박 기간의 날짜와 겹치는 경우 일정의 모든 숙박에 요금 수정을 적용합니다.

이 속성은 항상 지정해야 합니다.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange 요금 수정이 적용될 날짜를 지정하는 기간입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date 기간의 시작일입니다 (속성의 시간대 기준, 포함). 이 날짜는 end 날짜 이전이거나 같아야 합니다. start가 지정되지 않으면 시작일 측면에서 날짜 범위가 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date 기간의 종료일입니다 (속성의 시간대 기준, 기간에 포함). 이 날짜는 start 날짜와 같거나 그 이후여야 합니다. end가 지정되지 않으면 종료일 측면에서 날짜 범위가 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

날짜 범위에서 허용되는 요일입니다. 지정하지 않으면 날짜 범위의 모든 요일이 허용됩니다. 문자열의 각 문자는 요일을 지정합니다. 예를 들어 'MTWHF'는 날짜 범위에 평일이 허용됨을 지정합니다.

유효한 문자는 다음과 같습니다.

  • 월요일의 경우 M
  • 화요일의 경우 T
  • 수요일의 경우 W
  • 목요일의 경우 H
  • 금요일의 경우 F
  • 토요일의 경우 S
  • 일요일의 경우 U

모든 문자 조합이 유효합니다.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries 지정된 경우 사용자가 지정된 국가 중 하나에 있는 경우에만 요금 수정이 적용됩니다. 지정하지 않으면 사용자의 위치와 관계없이 요금 수정이 적용됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum UserCountries 사양의 유형입니다.

유효한 값은 includeexclude입니다.

UserCountries typeinclude로 설정된 경우 요금 수정은 나열된 국가의 사용자에게 적용됩니다.

UserCountries typeexclude인 경우 나열된 국가 외의 사용자에게 요금 수정이 적용됩니다.

UserCountries type가 설정되지 않은 경우 include로 처리되며 요금 수정이 나열된 국가의 사용자에게 적용됩니다.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country 요금 수정에 허용된 사용자 국가를 지정합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string DE 또는 FR과 같은 CLDR 국가 코드입니다. 일부 국가의 경우 CLDR 국가 코드가 2자리 ISO 국가 코드와 다릅니다. 또한 CLDR 지역 코드는 지원되지 않습니다.

기본 메시지

다음 예시에서는 기본 RateModifications 메시지를 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


요금 수정사항 하나 삭제

다음 예는 숙박 시설의 요금 수정사항 하나를 삭제하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

모든 요금 수정사항 삭제

다음 예는 숙박 시설의 모든 요금 수정사항을 삭제하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>


모든 요금 수정사항 오버레이

다음 예는 하나 이상의 새로운 요금 수정사항으로 속성의 <HotelRateModifications>를 오버레이하는 방법을 보여줍니다. action="overlay"인 경우 저장된 모든 요금 수정사항이 현재 메시지에 지정된 요금 수정사항을 저장하기 전에 삭제됩니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

여러 수정 작업

다음 예에서는 여러 수정 작업을 한 번에 실행하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-01-01" end="2023-02-28"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier=".95"/>
        <Refundable available="true"
                    refundable_until_days="1"
                    refundable_until_time="12:00:00"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


사용자 국가의 요금제 사용 중지하기

다음 예에서는 요금제를 일본 (JP) 사용자에게만 제한하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <RatePlans>
         <RatePlan id="jp_only"/>
      </RatePlans>
      <UserCountries type="exclude">
        <Country code="JP"/>
      </UserCountries>
      <ModificationActions>
        <Availability status="unavailable"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


응답

구문

RateModificationsResponse 메시지는 다음 구문을 사용합니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type"><var>issue_description</var></Issue>
  </Issues>
</RateModificationsResponse>

요소 및 속성

RateModificationsResponse 메시지에는 다음 요소와 속성이 있습니다.

요소 / @Attribute 발생 횟수 유형 설명
RateModifications 1 Complex element 수신된 RateModifications 요청 메시지의 성공 또는 문제를 나타내는 루트 요소입니다.
RateModificationsResponse / @timestamp 1 DateTime 이 메시지의 생성 날짜 및 시간입니다.
RateModificationsResponse / @id 1 string 연결된 RateModifications 메시지의 고유 식별자입니다.
RateModificationsResponse / @partner 1 string 이 메시지의 파트너 계정입니다.
RateModificationsResponse / Success 0..1 Success 경고, 오류 또는 실패 없이 RateModifications 메시지가 성공적으로 처리되었음을 나타냅니다.

각 메시지에 <Success> 또는 <Issues>가 있습니다.

RateModificationsResponse / Issues 0..1 Issues RateModifications 메시지를 처리하는 중에 발생한 하나 이상의 문제 컨테이너입니다.

각 메시지에 <Success> 또는 <Issues>가 있습니다.

RateModificationsResponse / Issues / Issue 1..n Issue RateModifications 메시지를 처리하는 중에 발생한 경고, 오류 또는 실패에 관한 설명입니다. 이러한 문제에 관한 자세한 내용은 피드 상태 오류 메시지를 참고하세요.
RateModificationsResponse / Issues / Issue / @code 1 integer 문제의 식별자입니다.
RateModificationsResponse / Issues / Issue / @status 1 enum

발생한 문제의 유형입니다.

유효한 값은 warning, error, failure입니다.

성공

다음은 성공적으로 처리된 RateModifications 메시지에 대한 응답입니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</RateModificationsResponse>

문제

다음은 오류로 인해 처리되지 않은 RateModifications 메시지에 대한 응답입니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</RateModificationsResponse>