Modificações de taxas

Visão geral

Essa API permite 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 capacidade de reembolso. 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 possam aumentar o preço final.

Pedidos

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 elementos e atributos a seguir:

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

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

RateModifications / @id 1 string Um identificador exclusivo para essa 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 taxas para uma propriedade. Cada modificação da taxa se aplica a uma única propriedade.

Observação:se várias modificações de tarifa puderem ser aplicadas à mesma taxa, todas as modificações serão aplicadas. Nenhuma ordem específica é garantida.

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 aparece na Central para Hotéis.
RateModifications / HotelRateModifications / @action 0..1 enum

Se action não for especificado, as modificações nesse 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 taxa para uma propriedade.

Observação:as modificações de taxa são difíceis de depurar, e recomendamos que elas sejam usadas com moderação. Entre em contato com seu Gerente técnico de contas (TAM) para casos de uso que exijam mais de 200 modificações de taxa.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string Um identificador exclusivo para a modificação da taxa. 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 especificada, e uma modificação de taxa com o mesmo id não for armazenada, essa modificação será armazenada. Caso contrário, se não for especificada e uma modificação de taxa com o mesmo id for armazenada, a modificação atual será atualizada.

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

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates É um contêiner de um ou mais períodos que definem quando a reserva precisa ocorrer para que a modificação da taxa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Um período que especifica quando a reserva precisa ocorrer para que a modificação da 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 igual ou anterior à data em end. Se start não for especificado, o período será efetivamente 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 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 do check-in (com base no fuso horário da propriedade). Por exemplo, a janela de reserva pode ser definida como de 7 a 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 ocorrer para que a modificação da tarifa seja aplicada. Se isso não for especificado, não haverá um 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 ocorrer para que a modificação da tarifa seja aplicada. Se isso não for especificado, não haverá um 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 taxa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Um período que especifica quando o check-in precisa ocorrer para que a modificação da taxa seja aplicada. Esse elemento não será necessá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 igual ou anterior à data em end. Se start não for especificado, o período será efetivamente 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 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 taxa 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 da taxa seja aplicada. Esse elemento não será necessá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 igual ou anterior à data em end. Se start não for especificado, o período será efetivamente 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 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 de usuários 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 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 que são 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 Tanto AmountBeforeTax quanto AmountAfterTax são multiplicados por esse valor.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Modifica a taxa aplicando o ID de regra de tarifação especificada a ela.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Esse ID faz a correspondência de uma taxa a uma definição no arquivo Definição de regra de tarifação. Observação:
  • O limite de caracteres para este campo é de 40 caracteres.
  • Cada tarifa só pode ser associada a uma única regra de tarifação.
  • Se houver várias modificações aplicando um ID de regra de tarifação, o ID lexicograficamente menor será atribuído à taxa.
  • Se esse ID não corresponder a uma regra de tarifação no arquivo de definição da regra de tarifação, ele será considerado não qualificado.
Consulte este artigo para informações sobre os diferentes tratamentos de IU com tarifas exclusivas.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Substitui o reembolso da taxa pelo valor especificado.

Ao definir os atributos, observe o seguinte:

  • Essa ação de modificação reescreve totalmente a configuração "Reembolsável" de uma taxa qualificada, não apenas os campos preenchidos.
  • Se available ou refundable_until_days não estiver definido, a tarifa não vai aparecer como reembolsável.
  • Se available for 0 ou false, os outros atributos serão ignorados. A tarifa não é mostrada como reembolsável, mesmo que um ou ambos os outros atributos estejam definidos.
  • Recomendamos a configuração de refundable_until_time. Se ela não for definida, será usado o horário mais cedo (meia-noite).
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Obrigatório) Defina como 1 ou true para indicar se a taxa permite 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 com quantos dias de antecedência um reembolso total pode ser solicitado antes do check-in. 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 a hora mais recente, no horário local do hotel, em que uma solicitação de reembolso total é atendida. 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 for definido, o valor será definido como meia-noite por padrão.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Substitui a disponibilidade da taxa 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 não estivesse disponível, independentemente de existir 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 da taxa pode ser aplicada. A modificação da taxa 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 mínimo de noites permitidas na estadia para que a modificação da tarifa seja aplicada. Se isso não for especificado, não há um 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 isso não for especificado, não haverá um limite máximo.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Especifica a soma mínima das diárias (usando AmountBeforeTax ou AmountAfterTax) que precisam ser excedidas 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 taxa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Contêiner para uma lista de planos de tarifas aos quais a modificação de taxa se aplica. Se <RatePlans> não for especificado, a modificação da taxa será aplicada a todos os planos de tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Especifica um plano de tarifa. Um plano de tarifa é definido por uma combinação de pacotes, tarifas e disponibilidade, conforme definido nas mensagens de transação (dados da propriedade), OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ e conforme identificado pelo PackageID.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string O identificador exclusivo do plano de tarifa. Esse valor é mapeado para o valor PackageID em <PackageData> em uma mensagem de transação (dados da propriedade) e para o atributo RatePlanCode em <StatusApplicationControl> nas mensagens <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ>. O número máximo de caracteres permitido é 50.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Contêiner com uma lista de tipos de quarto a que a modificação da tarifa se aplica. A modificação da taxa é aplicada a cada <RoomType> especificado. Se <RoomTypes> não for especificado, a modificação da tarifa será aplicada a todos os quartos.
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 de 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 permitido é 50.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Um contêiner para um ou mais períodos que determinam como a modificação da taxa é aplicada, por exemplo, para acomodar os preços sazonais.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Descreve como aplicar a modificação da taxa.

Os valores válidos são:

  • all: aplica a modificação da tarifa a cada noite do itinerário se todas as datas dele se sobrepuserem às datas da estadia.
  • any: aplica a modificação da tarifa a todas as noites do itinerário caso alguma data se sobreponha a uma que esteja no 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 taxa deve 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 igual ou anterior à data em end. Se start não for especificado, o período será efetivamente 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 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 especificado, a modificação da taxa só será aplicada se o usuário estiver localizado em um dos países especificados. Se não for especificado, a modificação da taxa será aplicada independentemente do local do usuário.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum O tipo de especificação UserCountry.

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

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Especifica um país do usuário 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 CLDR não é o mesmo que o código ISO de duas letras. Além disso, não há suporte para códigos de região CLDR.

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 da 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 tarifas

O exemplo a seguir mostra como excluir todas as modificações de tarifa 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 tarifas

O exemplo a seguir mostra como sobrepor <HotelRateModifications> à propriedade com uma ou mais modificações de taxa novas. Quando action="overlay", todas as modificações de tarifa armazenadas serão excluídas antes de armazenar as modificações de tarifa 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 preços para os países dos usuários

O exemplo a seguir mostra como limitar um plano de tarifa a apenas 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 de RateModifieds recebida.
RateModificationsResponse / @timestamp 1 DateTime A data e a hora de criação desta mensagem.
RateModificationsResponse / @id 1 string O identificador exclusivo da mensagem RateModifieds associada.
RateModificationsResponse / @partner 1 string A conta do parceiro para esta mensagem.
RateModificationsResponse / Success 0..1 Success Indica que a mensagem RateModifieds foi processada sem avisos, erros ou falhas.

<Success> ou <Issues> está presente em todas as mensagens.

RateModificationsResponse / Issues 0..1 Issues Um contêiner para um ou mais problemas encontrados durante o processamento da mensagem RateModifieds.

<Success> ou <Issues> está presente em todas as mensagens.

RateModificationsResponse / Issues / Issue 1..n Issue A descrição de um aviso, erro ou falha encontrada durante o processamento da mensagem RateModifieds. Os detalhes desses problemas podem ser encontrados 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

Concluído

Veja a seguir uma resposta a uma mensagem de RateModifieds 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>

Issues

Veja a seguir uma resposta a uma mensagem RateModifieds 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>