Modificações de taxas

Visão geral

Essa API permite definir maneiras de aplicar ações dinamicamente a uma taxa sempre que que as condições sejam atendidas, como ajustar o preço ou ativar o reembolso. Ao contrário da API Promotions, que só pode aplicar promoções qualificadas com os maiores descontos, essa API aplica qualquer ação quando certas condições são atendidas, incluindo ajustes de preços que podem por fim, aumenta 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 tarifa.
RateModifications / @partner 1 string A conta do parceiro para esta mensagem. Esse valor de string é o "Chave do parceiro" valor listado em o 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 ID o valor do atributo especificado em <RequestorID> elemento dos seus <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ> mensagens iguais do Compute Engine.

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 para uma propriedade. Cada modificação de taxa se aplica a uma única propriedade.

Observação:se for possível aplicar várias modificações de tarifa na mesma taxa, todas as modificações são aplicadas. Não há uma 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> no 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 neste elemento são adicionadas ou atualizadas para o hotel. Se action="overlay" é especificado, todos os valores definidos anteriormente as modificações deste hotel são excluídas primeiro. Depois, as modificações especificados aqui estão escritos. Se action="overlay" for usado e nenhuma modificação for especificada dentro desse elemento, as modificações deste hotel foram excluídas.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

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

Observação:as modificações de taxa são difíceis de depurar e nós recomendam usá-los 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 Identificador exclusivo da 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 especificado, e uma modificação de taxa com a mesma id não será armazenado, e essa modificação de taxa será armazenada. Caso contrário, se não for especificado, e uma modificação da taxa com a mesma id é armazenado, e a modificação da taxa atual é atualizado.

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 no <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 as reservas precisam 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 ser feita para a tarifa modificação 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, de o período. Essa data deve ser anterior ou igual à data end. Se start não for especificada, a data é 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 ao start. Se end não for especificada, a data período é 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. Caso contrário especificado, todos os dias são permitidos no período. Cada 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 ao data do check-in (com base no fuso horário da propriedade). Por exemplo, o a janela de reserva pode ser definida para no mínimo 7 dias e no máximo 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 quando a reserva precisa ocorrer para que a modificação seja aplicada. Se isso não for especificado, haverá não há um mínimo.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer O número máximo de dias antes do check-in quando a reserva precisa ocorrer para que a modificação seja aplicada. Se isso não for especificado, haverá não é 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 especificando quando o check-in precisa ser feito para a tarifa modificação seja aplicada. Esse elemento não é necessário se você 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, de o período. Essa data deve ser anterior ou igual à data end. Se start não for especificada, a data é 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 ao start. Se end não for especificada, a data período é 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. Caso contrário especificado, todos os dias são permitidos no período. Cada 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 o momento do check-out deve ocorrer para que a modificação seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange Um período especificando quando o check-out deve ocorrer para a tarifa modificação seja aplicada. Esse elemento não é necessário se você 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, de o período. Essa data deve ser anterior ou igual à data end. Se start não for especificada, a data é 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 ao start. Se end não for especificada, a data período é 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. Caso contrário especificado, todos os dias são permitidos no período. Cada 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 o a modificação da taxa. Se especificado, a modificação da taxa será apenas será aplicado 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 da taxa.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Define um tipo de dispositivo do usuário qualificado para a taxa. modificação.
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 serão aplicadas à taxa se todas as condições especificadas sejam atendidos.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Modifica a taxa multiplicando tanto AmountBeforeTax e AmountAfterTax pelo multiplicador especificado
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float Tanto AmountBeforeTax quanto AmountAfterTax são multiplicado por esse valor.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Modifica a taxa aplicando o ID da regra de tarifação especificada a ela.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Esse ID faz a correspondência entre uma taxa e uma definição na sua arquivo Rate Rule Definition. Observação:
  • O limite de caracteres desse 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 o menor ID da regra de tarifação lexicograficamente é atribuído a taxa.
  • Se esse ID não corresponder a uma regra de tarifação na definição dela ele será considerado não qualificado.
. Consulte este artigo para saber mais sobre as diferentes interfaces de tarifas exclusivas. tratamentos.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Substitui o reembolso da taxa pelo valor especificado.

Ao definir os atributos, observe o seguinte:

  • Esta ação de modificação reescreve completamente o campo Reembolsável de uma taxa qualificada e não apenas os campos preenchidos.
  • Se available ou refundable_until_days for não estiver definida, a tarifa não aparecerá como reembolsável.
  • Se available for 0 ou false, os outros atributos serão ignorados. A taxa não é exibida como reembolsável, mesmo que um ou ambos os atributos estejam definidos.
  • Recomendamos configurar refundable_until_time. caso contrário definido, o primeiro horário (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 total refund; caso contrário, será definido como 0 ou false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Obrigatório se available é true) Especifica o número de dias de antecedência do check-in para reembolso total solicitado. O valor de refundable_until_days deve ser um número inteiro entre 0 e 330, inclusive.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (Recomendado se available for true) Especifica na hora mais recente do dia, no horário local do hotel, em que um solicitação de reembolso seja atendida. Isso pode ser combinado com refundable_until_days para especificar, para exemplo, que "os reembolsos estão disponíveis até as 16h dois dias antes check-in". Se refundable_until_time não estiver definido, o valor o padrão é meia-noite.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Substitui a disponibilidade da taxa para o valor especificado. É possível definir apenas a taxa como unavailable.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum Se for status="unavailable", a taxa será tratada como se estivesse indisponível, independentemente de haver um preço válido reimplantá-lo.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Define os limites de duração da estadia em que essa modificação da taxa pode ser aplicadas. A modificação da tarifa não é aplicada quando a duração da estadia é 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 isso 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 isso não for especificado, não haverá limite máximo.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Especifica a soma mínima das diárias diárias (usando o maior valor de AmountBeforeTax ou AmountAfterTax) que precisam ser excedido para que a modificação da taxa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer O valor que deve ser excedido para que a modificação da taxa seja aplicada.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Contêiner com uma lista de planos de tarifas em que a modificação da taxa se aplica. Se <RatePlans> não for especificado, a taxa se aplica a todos os planos de tarifas.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Especifica um plano de tarifação. Um plano de tarifação é definido por uma combinação de pacote, taxas e disponibilidade, conforme definido em Transação (Dados de propriedade), OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ e conforme identificado por PackageID.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string O identificador exclusivo do plano de tarifa. Esse valor é mapeado para o Valor do PackageID em <PackageData> em uma mensagem de transação (dados da propriedade) e no Atributo RatePlanCode em <StatusApplicationControl> em ambos <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ> mensagens. 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, o A modificação da tarifa é válida para todos os quartos.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Especifica um tipo de quarto. Um tipo de quarto é definido em uma <RoomData> elemento em um mensagem Transação (dados da propriedade) e referenciada usando seu valor <RoomID>. (Seu O valor <RoomID> também é referenciado pelo Atributo InvTypeCode em OTA_HotelRateAmountNotifRQ messages.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string O identificador exclusivo do inventário (tipo de quarto). Esse valor mapeia como <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 o a modificação da taxa é aplicada, como para acomodar 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 para cada noite de o itinerário se todas as datas dele se sobrepuserem com as datas da estadia.
  • any: aplica a modificação da tarifa a todas as noites em do itinerário se alguma data do itinerário se sobrepuser a uma data no o período da estadia.

Esse atributo deve sempre ser especificado.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Um período que especifica as datas em que a modificação da taxa 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, de o período. Essa data deve ser anterior ou igual à data end. Se start não for especificada, a data é 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. A data precisa ser igual ou posterior a start. data. Se end não for especificada, a data período é 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. Caso contrário especificado, todos os dias são permitidos no período. Cada 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 localizada em um dos países especificados. Se não for especificada, a taxa modificação seja aplicada independentemente 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 campo Usercountries type estiver definido como include, a modificação da taxa se aplica a usuários dos países listados.

Se o type de Userpaíses for exclude, a modificação da tarifa se aplica aos usuários fora dos países listados.

Se a propriedade type de Userpaíses não estiver definida, ela será tratada como include e a modificação da taxa é aplicável 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 da tarifa.
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 CLDR não é igual ao código ISO de duas letras código do país. Além disso, os códigos de região CLDR não são compatíveis.

Exemplos

Mensagem básica

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

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


Excluir uma modificação de tarifa

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

<?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 tarifas de uma :

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

O exemplo a seguir mostra como sobrepor <HotelRateModifications> para com uma ou mais modificações de tarifa novas. Quando action="overlay", todas as modificações de tarifas 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 por 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 tarifa para os países dos usuários

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

<Success> ou <Issues> são presentes em cada mensagem.

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

<Success> ou <Issues> são presentes em cada mensagem.

RateModificationsResponse / Issues / Issue 1..n Issue A descrição de um aviso, erro ou falha encontrado que processamos a mensagem RateModifiers. Detalhes sobre esses problemas podem ser encontrado em Erro de status do feed Mensagens.
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

A seguir, temos uma resposta a uma modificação de taxa processada com sucesso. mensagem.

<?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, temos uma resposta a uma mensagem de RateModifiers 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>