비율 수정

개요

이 API를 사용하면 조건이 충족될 때마다 요금에 작업을 동적으로 적용하는 방법(예: 가격 조정 또는 환불 가능 여부 사용 설정)을 정의할 수 있습니다. 가장 높은 할인으로 요건을 충족하는 프로모션만 적용할 수 있는 프로모션 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:00까지 환불 가능합니다'를 지정할 수 있습니다. 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>, <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> 메시지 모두 <StatusApplicationControl>RatePlanCode 속성에 매핑되는 PackageID 값에 매핑됩니다. 허용되는 최대 문자 수는 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 UserCountry 사양의 유형입니다.

유효한 값은 includeexclude입니다.

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

사용자 국가 typeexclude이면 표시된 국가 외의 사용자에게 요금 수정이 적용됩니다.

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

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country 요금 수정이 허용되는 사용자 국가를 지정합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string CLDR 국가 코드(예: DE 또는 FR) 일부 국가의 경우 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>


요금 수정 1개 삭제

다음 예에서는 속성의 요금 수정 1개를 삭제하는 방법을 보여줍니다.

<?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>