Modificações de taxas

Visão geral

Essa API permite definir maneiras de aplicar ações dinamicamente a uma tarifa sempre que as condições forem atendidas, como ajustar o preço ou ativar a reembolsabilidade. Ao contrário da API Promoções, que só pode aplicar promoções qualificadas com os descontos mais altos, essa API aplica qualquer ação 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ção de tarifa.
RateModifications / @partner 1 string A conta do parceiro para esta mensagem. Esse valor de string é o valor da "chave do parceiro" listado na página "Configurações da conta" da Central para Hotéis.

Observação:se você tiver 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> da 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 da mensagem.
RateModifications / HotelRateModifications 0..n HotelRateModifications

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

Observação:se várias modificações de tarifa puderem ser aplicadas à mesma tarifa, todas elas serão aplicadas. Não há garantia de 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> no 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 nesse elemento serão adicionadas ou atualizadas para esse 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 desse hotel serão excluídas.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

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

Observação:as modificações de taxa são difíceis de depurar e recomendamos que você as use 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 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 modificação 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 em conjunto 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 ocorrer para que a modificação de tarifa 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) 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) do período. Essa data precisa ser igual ou posterior à data de start. Se end não for especificado, o período será 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 ocorrer 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 ocorrer 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 de tarifa 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 de tarifa seja aplicada. Esse elemento não é 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) 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) do período. Essa data precisa ser igual ou posterior à data de start. Se end não for especificado, o período será 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 de 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 é 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) 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) do período. Essa data precisa ser igual ou posterior à data de start. Se end não for especificado, o período será 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 que estão qualificados para a modificação de 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 restringe a aplicação da modificação de taxa.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Define um tipo de dispositivo do usuário qualificado para a modificação de 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 à tarifa 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 tarifa aplicando o ID da regra de tarifa especificado.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Esse ID corresponde a uma tarifa a uma definição no arquivo Rate Rule Definition. Observação:
  • O limite de caracteres para esse campo é de 40.
  • Cada tarifa só pode ser associada a uma regra de tarifa.
  • Se houver várias modificações que aplicam um ID de regra de tarifação, o ID de regra de tarifação que for lexicograficamente menor será atribuído à tarifa.
  • 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 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 substitui completamente a configuração de Reembolsável de uma tarifa qualificada, não apenas os campos preenchidos.
  • Se available ou refundable_until_days não estiverem definidos, 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 aparece como reembolsável, mesmo que um ou ambos os outros atributos estejam definidos.
  • É recomendável definir refundable_until_time. Se não for definido, 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 tarifa 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 de antecedência ao 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, no horário local do hotel, em que uma solicitação de reembolso total será 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 for 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 tarifa será tratada como se estivesse indisponível, mesmo que exista 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 entre 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 de taxa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Contêiner para uma lista de planos de tarifação aos quais a modificação de tarifa se aplica. Se <RatePlans> não for especificado, a modificação de taxa será aplicada a todos os planos de tarifas.
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 de 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 de tarifa se aplica. A modificação da tarifa é aplicada a cada <RoomType> especificado. Se <RoomTypes> não for especificado, a modificação de preço 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 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, por exemplo, para acomodar preços sazonais.
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 sobrepõem às datas da estadia.
  • any: aplica a modificação da tarifa a todas as noites no itinerário se alguma data no itinerário se sobrepõe a uma data 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 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) 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) do período. Essa data precisa ser igual ou posterior à data de start. Se end não for especificado, o período será 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 de taxa será aplicada independentemente da localização do usuário.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum O tipo de especificação de UserCountries.

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

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

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

Se a type de UserCountries não estiver definida, ela será tratada 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 de usuário permitido para a modificação de taxa.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string Um código de país CLDR, como DE ou FR. Para alguns países, o código de país do CLDR não é o mesmo que o código de país 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 tarifa

O exemplo a seguir mostra como excluir uma modificação 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">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

Excluir todas as modificações de tarifa

O exemplo abaixo 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 taxa

O exemplo a seguir mostra como sobrepor <HotelRateModifications> para a propriedade com uma ou mais novas modificações de taxa. Quando action="overlay", todas as modificações de taxa armazenadas são excluídas antes de armazenar as modificações de taxa 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 do japonês (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 da 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 durante o processamento da 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 durante o processamento da mensagem RateModifications. Confira detalhes sobre esses 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 para 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

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