RateModifications

Visão geral

Com essa API, é possível definir maneiras de aplicar ações dinamicamente a uma taxa sempre que as condições forem atendidas, como ajustar o preço ou ativar a reembolsabilidade. Ao contrário da API Promotions, que só pode aplicar promoções qualificadas com os maiores descontos, essa API aplica ações quando determinadas condições são atendidas, incluindo ajustes de preço que podem aumentar o preço final.

Solicitações

Sintaxe

A mensagem RateModifications usa a seguinte sintaxe:

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

Elementos e atributos

A mensagem RateModifications tem os seguintes elementos e atributos:

Elemento / @Attribute Ocorrências Tipo Descrição
RateModifications 1 Complex element O elemento raiz de uma mensagem de modificações de taxa.
RateModifications / @partner 1 string A conta do parceiro para esta mensagem. Esse valor de string é a "Chave do parceiro" listada na página "Configurações da conta" da Central para Hotéis.

Observação:se você tiver um back-end que forneça feeds para várias contas, esse valor precisará corresponder ao valor do atributo ID especificado no elemento <RequestorID> das mensagens <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ> da mesma conta.

RateModifications / @id 1 string Um identificador exclusivo para esta mensagem de solicitação. Esse valor é retornado na mensagem de resposta. Os caracteres permitidos são a-z, A-Z, 0-9, _ (sublinhado) e - (traço).
RateModifications / @timestamp 1 DateTime A data e a hora de criação desta mensagem.
RateModifications / HotelRateModifications 0..n HotelRateModifications

Modificações de tarifas para uma propriedade. Cada modificação de taxa se aplica a uma única propriedade.

Observação:se várias modificações de tarifa puderem ser aplicadas à mesma tarifa, todas as modificações serão aplicadas. Não há garantia de uma ordem específica.

RateModifications / HotelRateModifications / @hotel_id 1 string O identificador exclusivo da propriedade. Esse valor precisa corresponder ao ID do hotel especificado usando <id> no elemento <listing> do feed de lista de hotéis. O ID do hotel também está listado na Central para Hotéis.
RateModifications / HotelRateModifications / @action 0..1 enum

Se action não for especificado, as modificações neste elemento serão adicionadas ou atualizadas para o hotel. Se action="overlay" for especificado, todas as modificações definidas anteriormente para esse hotel serão excluídas primeiro. Em seguida, as modificações especificadas aqui são gravadas. Se action="overlay" for usado e nenhuma modificação for especificada nesse elemento, todas as modificações do hotel serão excluídas.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

Uma única modificação de tarifa para uma propriedade.

Observação:as modificações de taxa são difíceis de depurar, e recomendamos usá-las com moderação. Entre em contato com seu gerente técnico de contas (TAM) para casos de uso que exigem mais de 200 modificações de taxa.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string Um identificador exclusivo da modificação de tarifa. O número máximo de caracteres permitidos é 40. Os caracteres permitidos são a-z, A-Z, 0-9, _ (sublinhado), - (traço) e . (ponto final).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

Se não for especificado e uma modificação de taxa com o mesmo id não for armazenada, essa modificação de taxa será armazenada. Caso contrário, se não for especificado e uma modificação de taxa com o mesmo id for armazenada, a modificação de taxa atual será atualizada.

Se especificado, o valor precisa ser "delete". Se "delete" for especificado, a mudança de taxa armazenada com o mesmo id será excluída. Ao usar "delete", não inclua elementos filhos em <ItineraryRateModification>. Além disso, "delete" não é permitido com <HotelRateModifications action="overlay"/>.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Um contêiner para um ou mais períodos que definem quando a reserva precisa ser feita para que a modificação da tarifa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Um período que especifica quando a reserva precisa ser feita para que a modificação de tarifa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date A data de início (com base no fuso horário da propriedade), inclusive, do período. Essa data precisa ser anterior ou igual à data de end. Se start não for especificado, o período será ilimitado em termos de data de início.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date A data de término (com base no fuso horário da propriedade), inclusive, do período. Essa data precisa ser igual ou posterior à data de start. Se end não for especificado, o período será efetivamente ilimitado em termos de data de término.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Os dias da semana permitidos no período. Se não for especificado, todos os dias serão permitidos no período. Cada caractere na string especifica um dia. Por exemplo, "MTWHF" especifica que os dias da semana são permitidos no período.

Os caracteres válidos são:

  • M para segunda-feira
  • T para terça-feira
  • W para quarta-feira
  • H para quinta-feira
  • F para sexta-feira
  • S para sábado
  • U para domingo

Qualquer combinação de caracteres é válida.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow Especifica o período em que a reserva precisa ocorrer em relação à data de check-in (com base no fuso horário da propriedade). Por exemplo, a janela de reserva pode ser definida para pelo menos 7 dias, mas não mais de 180 dias, antes do check-in.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer O número mínimo de dias antes do check-in em que a reserva precisa ser feita para que a modificação da tarifa seja aplicada. Se não for especificado, não haverá valor mínimo.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer O número máximo de dias antes do check-in em que a reserva precisa ser feita para que a modificação da tarifa seja aplicada. Se não for especificado, não haverá valor máximo.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Um contêiner para um ou mais períodos que definem quando o check-in precisa ocorrer para que a modificação da tarifa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Um período especificando quando o check-in precisa ocorrer para que a modificação de tarifa seja aplicada. Esse elemento não é obrigatório se você estiver excluindo uma ou mais modificações de tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date A data de início (com base no fuso horário da propriedade), inclusive, do período. Essa data precisa ser anterior ou igual à data de end. Se start não for especificado, o período será ilimitado em termos de data de início.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date A data de término (com base no fuso horário da propriedade), inclusive, do período. Essa data precisa ser igual ou posterior à data de start. Se end não for especificado, o período será efetivamente ilimitado em termos de data de término.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

Os dias da semana permitidos no período. Se não for especificado, todos os dias serão permitidos no período. Cada caractere na string especifica um dia. Por exemplo, "MTWHF" especifica que os dias da semana são permitidos no período.

Os caracteres válidos são:

  • M para segunda-feira
  • T para terça-feira
  • W para quarta-feira
  • H para quinta-feira
  • F para sexta-feira
  • S para sábado
  • U para domingo

Qualquer combinação de caracteres é válida.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates Um contêiner para um ou mais períodos que definem quando o check-out precisa ocorrer para que a modificação da tarifa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange Um período que especifica quando o check-out precisa ocorrer para que a modificação de tarifa seja aplicada. Esse elemento não é obrigatório se você estiver excluindo uma ou mais modificações de tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date A data de início (com base no fuso horário da propriedade), inclusive, do período. Essa data precisa ser anterior ou igual à data de end. Se start não for especificado, o período será ilimitado em termos de data de início.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date A data de término (com base no fuso horário da propriedade), inclusive, do período. Essa data precisa ser igual ou posterior à data de start. Se end não for especificado, o período será efetivamente ilimitado em termos de data de término.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

Os dias da semana permitidos no período. Se não for especificado, todos os dias serão permitidos no período. Cada caractere na string especifica um dia. Por exemplo, "MTWHF" especifica que os dias da semana são permitidos no período.

Os caracteres válidos são:

  • M para segunda-feira
  • T para terça-feira
  • W para quarta-feira
  • H para quinta-feira
  • F para sexta-feira
  • S para sábado
  • U para domingo

Qualquer combinação de caracteres é válida.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices Contêiner para listar os dispositivos do usuário qualificados para a modificação da taxa. Se especificado, a modificação da taxa só será aplicada se o usuário corresponder a um dos dispositivos listados. Se não for especificado, isso não vai restringir a aplicação da modificação da taxa.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Define um tipo de dispositivo do usuário que está qualificado para a modificação da taxa.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum Um tipo de dispositivo. O valor precisa ser desktop, tablet ou mobile.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

Ações aplicadas à taxa se todas as condições especificadas forem atendidas.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Modifica a taxa multiplicando AmountBeforeTax e AmountAfterTax pelo multiplicador especificado.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float Ambos AmountBeforeTax e AmountAfterTax são multiplicados por esse valor.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Modifica a tarifa aplicando o ID da regra de tarifação especificado.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Esse ID corresponde a uma tarifa e a uma definição no arquivo Definição da regra de tarifação. Observação:
  • O limite de caracteres para esse campo é 40.
  • Cada tarifa só pode ser associada a uma única regra de tarifa.
  • Se houver várias modificações aplicando um ID de regra de tarifação, o ID lexicograficamente menor será atribuído à tarifa.
  • Se esse ID não corresponder a uma regra de tarifação no arquivo de definição de regra de tarifação, ele será considerado inelegível.
Consulte este artigo para informações sobre os diferentes tratamentos de interface de tarifas exclusivas.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Substitui a reembolsabilidade da tarifa pelo valor especificado.

Ao definir os atributos, observe o seguinte:

  • Essa ação de modificação reescreve completamente a configuração "Reembolsável" de uma tarifa qualificada, não apenas os campos preenchidos.
  • Se available ou refundable_until_days não estiver definido, a tarifa não será mostrada como reembolsável.
  • Se available for 0 ou false, os outros atributos serão ignorados. A tarifa não aparece como reembolsável, mesmo que um ou ambos os outros atributos estejam definidos.
  • Recomendamos definir refundable_until_time. Caso contrário, o horário mais cedo (meia-noite) será usado.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Obrigatório) Defina como 1 ou true para indicar se a taxa permite um reembolso total. Caso contrário, defina como 0 ou false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Obrigatório se available for true) Especifica o número de dias antes do check-in em que um reembolso total pode ser solicitado. O valor de refundable_until_days precisa ser um número inteiro entre 0 e 330.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (Recomendado se available for true) Especifica o horário mais recente do dia, no horário local do hotel, em que uma solicitação de reembolso total é atendida. Isso pode ser combinado com refundable_until_days para especificar, por exemplo, que "os reembolsos estão disponíveis até as 16h dois dias antes do check-in". Se refundable_until_time não estiver definido, o valor padrão será meia-noite.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Substitui a disponibilidade da tarifa pelo valor especificado. Só é possível definir a taxa como unavailable.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum Se status="unavailable", a taxa será tratada como se estivesse indisponível, independente de haver um preço válido para ela.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Define os limites de duração da estadia em que essa modificação de tarifa pode ser aplicada. A modificação da tarifa não é aplicada quando a duração da estadia está fora dos limites mínimo e máximo.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer O número mínimo de noites permitidas na estadia para que a modificação da tarifa seja aplicada. Se não for especificado, não haverá valor mínimo.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer O número máximo de noites permitidas na estadia para que a modificação da tarifa seja aplicada. Se não for especificado, não haverá valor máximo.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Especifica a soma mínima das tarifas diárias dos quartos (usando o maior valor de AmountBeforeTax ou AmountAfterTax) que precisa ser excedida para que a modificação da tarifa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer O valor que precisa ser excedido para que a modificação da tarifa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Contêiner para uma lista de planos de tarifação a que a modificação da tarifa se aplica. Se <RatePlans> não for especificado, a modificação da taxa será aplicada a todos os planos de taxas.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Especifica um plano de taxa. Um plano de tarifa é definido por uma combinação de pacote, tarifas e disponibilidade, conforme definido nas mensagens Transaction (Property Data), OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ, e identificado pelo PackageID.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string O identificador exclusivo do plano de tarifas. Esse valor é mapeado para o valor PackageID em <PackageData> em uma mensagem de transação (dados da propriedade) e no atributo RatePlanCode em <StatusApplicationControl> nas mensagens <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ>. O número máximo de caracteres permitidos é 50.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Contêiner para uma lista de tipos de quarto a que a modificação da tarifa se aplica. A modificação de tarifa é aplicada a cada <RoomType> especificado. Se <RoomTypes> não for especificado, a modificação da taxa será aplicada a todas as salas.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Especifica um tipo de quarto. Um tipo de quarto é definido em um elemento <RoomData> em uma mensagem Transação (dados da propriedade) e é referenciado usando o valor <RoomID>. O valor <RoomID> também é referenciado pelo atributo InvTypeCode nas mensagens OTA_HotelRateAmountNotifRQ.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string O identificador exclusivo do inventário (tipo de quarto). Esse valor é mapeado para <RoomID> em uma mensagem de transação (dados da propriedade). O número máximo de caracteres permitidos é 50.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Um contêiner para um ou mais períodos que determinam como a modificação de tarifa é aplicada, como para acomodar a precificação sazonal.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Descreve como a modificação da tarifa deve ser aplicada.

Os valores válidos são:

  • all: aplica a modificação da tarifa a cada noite do itinerário se todas as datas do itinerário se sobrepuserem às datas da estadia.
  • any: aplica a modificação da tarifa a todas as noites do itinerário se alguma data do itinerário se sobrepuser a uma data do período da estadia.

Esse atributo precisa ser sempre especificado.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Um período que especifica as datas em que a modificação da tarifa será aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date A data de início (com base no fuso horário da propriedade), inclusive, do período. Essa data precisa ser anterior ou igual à data de end. Se start não for especificado, o período será ilimitado em termos de data de início.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date A data de término (com base no fuso horário da propriedade), inclusive, do período. Essa data precisa ser igual ou posterior à data de start. Se end não for especificado, o período será efetivamente ilimitado em termos de data de término.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

Os dias da semana permitidos no período. Se não for especificado, todos os dias serão permitidos no período. Cada caractere na string especifica um dia. Por exemplo, "MTWHF" especifica que os dias da semana são permitidos no período.

Os caracteres válidos são:

  • M para segunda-feira
  • T para terça-feira
  • W para quarta-feira
  • H para quinta-feira
  • F para sexta-feira
  • S para sábado
  • U para domingo

Qualquer combinação de caracteres é válida.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries Se especificada, a modificação da taxa só será aplicada se o usuário estiver localizado em um dos países especificados. Se não for especificada, a modificação da taxa será aplicada independente da localização do usuário.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum O tipo de especificação UserCountries.

Os valores válidos são include e exclude.

Se o UserCountries type estiver definido como include, a modificação da taxa será aplicada aos usuários dos países listados.

Se UserCountries type for exclude, a modificação da taxa será aplicada a usuários fora dos países listados.

Se o UserCountries type não estiver definido, ele será tratado como include, e a modificação da taxa será aplicada aos usuários dos países listados.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Especifica um país permitido para a modificação da taxa.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string Um código de país CLDR, como DE ou FR. Em alguns países, o código do país CLDR não é o mesmo que o código ISO de duas letras. Além disso, os códigos de região CLDR não são aceitos.

Exemplos

Mensagem básica

O exemplo a seguir mostra uma mensagem RateModifications básica:

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


Excluir uma modificação de taxa

O exemplo a seguir mostra como excluir uma modificação de taxa para uma propriedade:

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

Excluir todas as modificações de taxa

O exemplo a seguir mostra como excluir todas as modificações de taxa de uma propriedade:

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


Sobrepor todas as modificações de taxa

O exemplo a seguir mostra como substituir <HotelRateModifications> para propriedade com uma ou mais novas modificações de taxa. Quando action="overlay", todas as modificações de tarifa armazenadas são excluídas antes de armazenar as modificações especificadas na mensagem atual:

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

Várias ações de modificação

O exemplo a seguir mostra como realizar várias ações de modificação de uma só vez:

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


Desativar um plano de tarifas para países de usuários

O exemplo a seguir mostra como limitar um plano de tarifas apenas a usuários japoneses (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>


Respostas

Sintaxe

A mensagem RateModificationsResponse usa a seguinte sintaxe:

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

Elementos e atributos

A mensagem RateModificationsResponse tem os seguintes elementos e atributos:

Elemento / @Attribute Ocorrências Tipo Descrição
RateModifications 1 Complex element O elemento raiz que indica o sucesso ou os problemas de uma mensagem de solicitação RateModifications recebida.
RateModificationsResponse / @timestamp 1 DateTime A data e a hora de criação desta mensagem.
RateModificationsResponse / @id 1 string O identificador exclusivo da mensagem RateModifications associada.
RateModificationsResponse / @partner 1 string A conta do parceiro para esta mensagem.
RateModificationsResponse / Success 0..1 Success Indica que a mensagem "RateModifications" foi processada sem avisos, erros ou falhas.

<Success> ou <Issues> está presente em cada mensagem.

RateModificationsResponse / Issues 0..1 Issues Um contêiner para um ou mais problemas encontrados ao processar a mensagem RateModifications.

<Success> ou <Issues> está presente em cada mensagem.

RateModificationsResponse / Issues / Issue 1..n Issue A descrição de um aviso, erro ou falha encontrada ao processar a mensagem RateModifications. Confira os detalhes desses problemas em Mensagens de erro de status do feed.
RateModificationsResponse / Issues / Issue / @code 1 integer O identificador do problema.
RateModificationsResponse / Issues / Issue / @status 1 enum

O tipo de problema encontrado.

Os valores válidos são warning, error e failure.

Exemplos

Sucesso

Confira a seguir uma resposta a uma mensagem RateModifications processada com sucesso.

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

Problemas

A seguir, uma resposta a uma mensagem RateModifications não processada devido a erros.

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