OTA_HotelRateAmountNotifRQ

Solicitações

Sintaxe

A mensagem OTA_HotelRateAmountNotifRQ usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="message_ID"
                            TimeStamp="timestamp"
                            Version="3.0"
                            NotifType="[Overlay|Delta|Remove]"
                            NotifScopeType="[ProductRate]">
  <POS>
    <Source>
      <RequestorID ID="partner_key"/>
    </Source>
  </POS>
  <RateAmountMessages HotelCode="HotelID">
    <RateAmountMessage>
      <StatusApplicationControl Start="YYYY-MM-DD"
                                End="YYYY-MM-DD"
                                Mon="boolean_value"
                                Tue="boolean_value"
                                Weds="boolean_value"
                                Thur="boolean_value"
                                Fri="boolean_value"
                                Sat="boolean_value"
                                Sun="boolean_value"
                                InvTypeCode="RoomID"
                                RatePlanCode="PackageID"
                                RatePlanType="[26]" />
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="float"
                            AmountAfterTax="float"
                            CurrencyCode="currency"
                            NumberOfGuests="integer"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="float"
                                   AgeQualifyingCode="[10|8]"
                                   MaxAge="integer"/>
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Elementos e atributos

A mensagem OTA_HotelRateAmountNotifRQ tem os seguintes elementos e atributos:

Elemento / @Attribute Ocorrências Tipo Descrição
OTA_HotelRateAmountNotifRQ 1 Complex element O elemento raiz de uma mensagem de tarifas.
OTA_HotelRateAmountNotifRQ / @xmlns 0..1 string (URI) O namespace do XML.
OTA_HotelRateAmountNotifRQ / @EchoToken 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, _ (underscore) e - (dash).
OTA_HotelRateAmountNotifRQ / @TimeStamp 1 DateTime A data e a hora de criação da mensagem.
OTA_HotelRateAmountNotifRQ / @Version 1 decimal A versão da mensagem do OpenTravel.
OTA_HotelRateAmountNotifRQ / @NotifType 0..1 enum

O tipo de notificação a ser aplicado a cada <RateAmountMessage>.

Os valores válidos são:

Para entender como esses atributos funcionam, confira estes exemplos.

  • Overlay: Exclua todas as tarifas por ocupação para o tipo de quarto, o plano de tarifa e as datas especificadas em <StatusApplicationControl> e as substitua pelas novas tarifas.
  • Remove: Exclua todas as tarifas por ocupação para o tipo de quarto, o plano de tarifa e as datas especificadas em <StatusApplicationControl>.
  • Delta: (o padrão se NotifType não for especificado) Adicione ou atualize as tarifas por ocupação para o tipo de quarto, o plano de tarifa e as datas especificadas em <StatusApplicationControl>.
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

O escopo da NotifType a ser aplicado a cada <RateAmountMessage>.

Os valores válidos são:

  • ProductRate: (o padrão se NotifScopeType não for especificado) O NotifType se aplica a produtos: combinações de tipo de quarto (InvTypeCode) e plano de tarifa (RatePlanCode).
OTA_HotelRateAmountNotifRQ / POS 0..1 POS É um contêiner para especificar a conta do parceiro para essa mensagem. Geralmente, é usado se o back-end fornece feeds de preço para várias contas de parceiros.
OTA_HotelRateAmountNotifRQ / POS / Source 1 Source Obrigatório se <POS> estiver presente. Um contêiner para <RequestorID>.
OTA_HotelRateAmountNotifRQ / POS / RequestorID 1 RequestorID Obrigatório se <POS> estiver presente. Define a conta do parceiro.
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID 1 string A conta do parceiro para esta mensagem. O valor da string é o valor da "Chave do parceiro" listado na página "Configurações da conta" da 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 partner da mensagem da transação (dados da propriedade) e do atributo ID no elemento <RequestorID> da mensagem <OTA_HotelAvailNotifRQ> para a mesma conta.

OTA_HotelRateAmountNotifRQ / RateAmountMessages 1 RateAmountMessages Um conjunto de elementos <RateAmountMessage> que definem tarifas.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode 1 string O identificador exclusivo da propriedade. Esse valor precisa corresponder ao ID do hotel especificado com <id> no elemento <listing> no Feed de lista de hotéis. O ID do hotel também aparece na Central para Hotéis.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage 1..n RateAmountMessage Um contêiner para definir os preços de uma diária (uma combinação de tipo de quarto e plano de tarifa em um período).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl 1 StatusApplicationControl Define o período, bem como os identificadores do tipo de quarto (InvTypeCode) e do plano de tarifa (RatePlanCode).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start 1 Date A data de início (com base no fuso horário da propriedade), inclusive, do período.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End 1 Date A data de término (com base no fuso horário da propriedade), inclusive, do período. Precisa ser igual ou maior que o valor de start. Se start e end forem iguais, a atualização será aplicada a essa data. O Google oferece suporte a até três anos de dados.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon 0..1 boolean Defina como true ou 1 para incluir explicitamente as segundas-feiras.

Se definido como true, os outros dias da semana que não estiverem explicitamente definidos como true serão excluídos (na verdade, eles serão filtrados das datas em Start e End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 boolean Defina como true ou 1 para incluir explicitamente as terças-feiras.

Se definido como true, os outros dias da semana que não estiverem explicitamente definidos como true serão excluídos (na verdade, eles serão filtrados das datas em Start e End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds 0..1 boolean Defina como true ou 1 para incluir explicitamente as quartas-feiras.

Se definido como true, os outros dias da semana que não estiverem explicitamente definidos como true serão excluídos (na verdade, eles serão filtrados das datas em Start e End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 boolean Defina como true ou 1 para incluir explicitamente as quintas-feiras.

Se definido como true, os outros dias da semana que não estiverem explicitamente definidos como true serão excluídos (na verdade, eles serão filtrados das datas em Start e End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri 0..1 boolean Defina como true ou 1 para incluir explicitamente as sextas-feiras.

Se definido como true, os outros dias da semana que não estiverem explicitamente definidos como true serão excluídos (na verdade, eles serão filtrados das datas em Start e End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat 0..1 boolean Defina como true ou 1 para incluir explicitamente os sábados.

Se definido como true, os outros dias da semana que não estiverem explicitamente definidos como true serão excluídos (na verdade, eles serão filtrados das datas em Start e End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun 0..1 boolean Defina como true ou 1 para incluir explicitamente os domingos.

Se definido como true, os outros dias da semana que não estiverem explicitamente definidos como true serão excluídos (na verdade, eles serão filtrados das datas em Start e End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode 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).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode 1 string Um identificador exclusivo para o plano de tarifação. Esse identificador é mapeado para <PackageID> em uma mensagem de transação (dados da propriedade). O plano de tarifas é definido e mencionado em <StatusApplicationControl> nas mensagens <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType 0..1 string Um identificador que indica o tipo de modelo de preços ARI aplicável a essa atualização de preços. Só é necessário especificar isso usando um valor de 26 ao usar o modelo de preços com base em LOS. A exclusão desse atributo indica que essa é uma atualização de preços por data.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates 0..1 Rates Contêiner para uma coleção de elementos <Rate>. Se NotifType for "Remove", esse elemento não poderá ser especificado. Caso contrário, esse elemento precisa ser especificado exatamente uma vez.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate 1 Rate Contêiner para uma coleção de elementos <BaseByGuestAmts>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit 0..1 String A unidade pela qual a duração da estadia é especificada. O único valor aceito é "Day", o que significa que a duração da estadia será especificada em dias.

Para usar preços baseados em estadia, RateTimeUnit e UnitMultiplier precisam ser especificados. Caso contrário, nenhum deles deve ser especificado.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier 0..1 Integer O número de RateTimeUnits que compõem a duração da estadia dessa taxa.

Por exemplo, se o valor de RateTimeUnits for "Day", um UnitMultiplier de 5 indica que as tarifas especificadas neste objeto Rate se aplicam a cada noite de uma estadia de cinco noites.

As taxas de ocupação especificadas neste objeto Rate serão multiplicadas pela UnitMultiplier (duração da estadia) para chegar ao preço total da estadia.

Para usar preços baseados em estadia, RateTimeUnit e UnitMultiplier precisam ser especificados. Caso contrário, nenhum deles deve ser especificado.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts 1 BaseByGuestAmts Contêiner para uma coleção de cobranças básicas.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt 1..n BaseByGuestAmt Especifica os preços dos quartos na moeda especificada. O preço pode ser por ocupação usando vários elementos <BaseByGuestAmt>, cada um com um valor diferente para NumberOfGuests. Caso contrário, o preço é aplicável a um número máximo de ocupantes definido por NumberOfGuests.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax 0..1 float

O preço diário da diária sem tributos e taxas.

Tanto AmountBeforeTax quanto AmountAfterTax podem ser especificados. Se AmountBeforeTax não for especificado, AmountAfterTax precisará ser. Se AmountBeforeTax e AmountAfterTax não forem especificados, os tributos e as taxas precisarão ser especificados em uma mensagem <TaxFeeInfo>.

Se você estiver usando promoções, o desconto será aplicado a AmountBeforeTax. Os descontos percentuais também serão aplicados a AmountAfterTax. Como isso não funciona com algumas estruturas fiscais, recomendamos especificar apenas AmountBeforeTax aqui e usar <TaxFeeInfo> para especificar tributos e taxas.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax 0..1 float O preço diário da diária após a inclusão de tributos e taxas aplicáveis. Se AmountAfterTax for especificado, não será necessário enviar mensagens <TaxFeeInfo> separadas por propriedade. Esse atributo pode ser usado em combinação com AmountBeforeTax para fornecer as tarifas básicas e totais que podem ser exibidas aos usuários em determinadas regiões.

Aviso: se você estiver usando promoções, recomendamos não usar valores de AmountAfterTax. Se você quiser usar descontos, especifique tributos e taxas usando a mensagem <TaxFeeInfo>. Seus descontos serão aplicados a AmountBeforeTax valores.

Observação:se AmountBeforeTax não for especificado, AmountAfterTax precisará ser especificado.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode 1 enum O código de caracteres alfa ISO 4217 (3) para uma unidade monetária específica.

Consulte a lista de moedas aceitas.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests 0..1 integer Número máximo de hóspedes que podem ser acomodados por esta tarifa. Se não for informado, o padrão será dois hóspedes.

Se <AdditionalGuestAmounts> tiver cobranças para crianças, NumberOfGuests vai se referir apenas a adultos. Se <AdditionalGuestAmounts> não for especificado ou não tiver cobranças para crianças, NumberOfGuests será o número total de ocupantes, incluindo adultos e crianças.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts 0..1 AdditionalGuestAmounts Contêiner para uma coleção de cobranças de convidados adicionais.

Essa sintaxe é útil se as tarifas adicionais de hóspedes ou crianças mudam com base na data. Considere usar a mensagem ExtraGuestCharges mais eficiente se esses valores puderem ser definidos estaticamente no nível da propriedade.

Valores adicionais para hóspedes são aplicados da seguinte forma:
  • Elas são aplicadas sobre a tarifa de ocupação básica. A taxa de ocupação básica é a maior taxa de ocupação, especificada em <BaseByGuestAmts>, que é menor ou igual ao número de adultos em uma pesquisa do usuário.
  • Elas serão aplicadas desde que a ocupação em uma pesquisa de usuário esteja dentro da capacidade da sala.
  • <AdditionalGuestAmounts> sempre substitui valores adicionais especificados anteriormente por novos quando NotifType é Delta ou Sobreposição.
  • O <AdditionalGuestAmounts> só pode ser enviado independentemente das taxas básicas quando NotifType é Delta. <BaseByGuestAmts> precisa ser especificado quando NotifType é Overlay.
  • Um elemento <AdditionalGuestAmounts> vazio com NotifType definido como Delta remove os valores adicionais existentes sem afetar as taxas básicas.
  • Elas são aplicadas usando a moeda especificada em <BaseByGuestAmt>.

Por exemplo, suponha que as tarifas básicas sejam especificadas para 1 e 2 adultos.

  • Se um usuário pesquisar três adultos, a tarifa de ocupação dupla será selecionada como a tarifa básica, e um valor extra para 1 adulto será aplicado sobre ela.
  • Se o usuário pesquisar por um adulto e duas crianças, a tarifa de ocupação única será selecionada como a tarifa básica, e os valores adicionais serão aplicados sobre ela para as duas crianças.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount 0..n AdditionalGuestAmount Especifica preços com base no tipo de hóspede, especificado em AgeQualifyingCode e, se aplicável, na idade do hóspede especificada em MaxAge.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode 1 enum Define o tipo de convidado adicional, adulto ou criança. As opções válidas são:
  • 10: adulto.
  • 8: Filho.

AgeQualifyingCode pode ser definido como 10 para no máximo um elemento AdditionalGuestAmount.

Será necessário especificar MaxAge quando AgeQualifyingCode for 8.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge 0..1 integer Será necessário especificar MaxAge quando AgeQualifyingCode for 8. Ele não precisa ser especificado quando AgeQualifyingCode é 10.

MaxAge precisa ser um número inteiro entre 0 e 17.

Especificar um valor de 0 desativa os ocupantes filhos.

Valores superiores a 17 serão tratados como o valor máximo aceito de 17.

Várias faixas etárias podem ser especificadas por elementos AdditionalGuestAmount separados. As faixas etárias precisam ser contíguas e não se sobrepor.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount 1 float Valor antes dos tributos e taxas adicionados à tarifa básica de cada hóspede adicional.

Os tributos e as taxas que dependem da idade dos ocupantes precisam ser especificados pelo elemento <AgeBrackets> em uma mensagem <TaxFeeInfo>.

Exemplos

Esta seção fornece exemplos de código que destacam como:

Quando você define os valores add, overlay ou remove, os períodos podem ser iguais ou diferentes, dependendo das metas. Por exemplo, você pode usar overlay para definir apenas algumas semanas para os feriados de dezembro, em vez de todo o período definido para a mensagem "Taxa de adição". Isso vai substituir as taxas de ocupação apenas para este período.

Preços por data

Configurar taxas básicas e totais

Exemplo 1

Taxa básica (sem tributos ou taxas) para ocupação padrão (duplo). Nesse modelo, os tributos e as taxas da propriedade precisam ser definidos usando uma mensagem <TaxFeeInfo>. A taxa básica terá mais destaque para os usuários que pesquisam em determinadas regiões.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Exemplo 2

Taxa básica e total para ocupação padrão (duplo). Nesse modelo, os tributos e as taxas não podem ser definidos separadamente usando mensagens <TaxFeeInfo>. A taxa básica terá mais destaque para os usuários que pesquisam em determinadas regiões.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Exemplo 3

Taxa total (com tributos e taxas) para várias ocupações. Nesse modelo, os tributos e as taxas não podem ser definidos separadamente usando mensagens <TaxFeeInfo>.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Exemplo 4

Diária básica e total para vários tipos de quarto e planos de tarifa em diferentes períodos.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-01"
                                End="2020-05-31"
                                InvTypeCode="RoomID_2"
                                RatePlanCode="PackageID_2"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            AmountAfterTax="220.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Adicionar, sobrepor e remover taxas

Adicionar diárias

Defina NotifType como Delta para adicionar tarifas por ocupação para RoomID_1 e PackageID_1 entre 20/10/2021 e 31/12/2021. Observe que o Google oferece suporte a até três anos de dados.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountBeforeTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Taxas de sobreposição

Defina NotifType como Overlay para excluir todas as tarifas por ocupação de RoomID_1 e PackageID_1 entre 20/10/2021 e 31/12/2021 e as substitua pelas tarifas por ocupação recém-especificadas.

Por exemplo, se esta mensagem foi enviada após a mensagem "Adicionar tarifas", as tarifas de ocupação 1, 2 e 3 serão excluídas, e apenas a nova tarifa de ocupação 1 será armazenada. Você também pode definir um período mais curto (por exemplo, 20/12/2021 e 31/12/2021) para substituir apenas algumas das tarifas de ocupação em determinadas datas, como feriados.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Remover tarifas

Defina NotifType como Remove para excluir todas as tarifas por ocupação de RoomID_1 e PackageID_1 entre 20/10/2021 e 31/12/2021.

Por exemplo, se esta mensagem foi enviada depois de uma das outras mensagens de exemplo, nenhuma taxa por ocupação será armazenada.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Adicionar, sobrepor e remover valores adicionais de convidados

Adicionar valores

Defina NotifType como Delta para adicionar tarifas básicas para a ocupação 1 e 2 e valores adicionais de hóspedes para RoomID_1 e PackageID_1 entre 20/10/2021 e 31/12/2021.

Valores extras de hóspedes serão aplicados sobre a tarifa básica, que será determinada pela ocupação em uma pesquisa do usuário. A ocupação especificada pelo usuário precisa estar dentro da capacidade do RoomID_1.

Neste exemplo, os valores adicionais de hóspedes serão aplicados como:

  • US$ 5 para crianças na faixa etária de 0 a 10 anos (inclusive).
  • US$ 10 para crianças na faixa etária de 11 a 17 anos (inclusive).
  • US$ 20 para adultos.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" />
            <AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" />
            <AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Valores de sobreposição

Defina NotifType como Overlay para excluir todas as tarifas por ocupação e todos os valores adicionais de hóspedes para o RoomID_1 e o PackageID_1 entre 20/10/2021 e 31/12/2021. Substitua-as pelas tarifas por ocupação e valores adicionais recém-especificados.

Por exemplo, se essa mensagem foi enviada após a mensagem "Adicionar tarifas", as tarifas de ocupação básica 1 e 2 serão excluídas, e apenas a nova taxa de ocupação básica 1 será armazenada. O conjunto anterior de valores de convidados adicionais seria excluído, e apenas o novo conjunto de valores seria armazenado. Os valores adicionais de hóspedes agora usarão a nova tarifa de ocupação 1 como a tarifa básica. Após essa atualização, não há outras cobranças de hóspedes definidas para crianças.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Remover valores

Defina NotifType como Delete para excluir todas as tarifas básicas por ocupação e todos os valores adicionais de hóspedes para RoomID_1 e PackageID_1 entre 20/10/2021 e 31/12/2021.

Por exemplo, se essa mensagem tiver sido enviada depois de uma das outras mensagens de exemplo, nenhuma tarifa básica por ocupação ou valores extras de hóspedes serão armazenados.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Remover apenas valores adicionais de hóspedes

Defina NotifType como Delta com um elemento <AdditionalGuestAmounts> vazio para excluir todos os valores adicionais de hóspedes para RoomID_1 e PackageID_1 sem afetar as tarifas básicas entre 20/10/2021 e 31/12/2021.

Por exemplo, se essa mensagem foi enviada depois de qualquer uma das outras mensagens de exemplo, somente os valores de base seriam armazenados.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <AdditionalGuestAmounts/>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Preços com base na estadia

Configurar tarifas com base na estadia

Exemplo 1

Defina tarifas para estadias de 1, 2 e 3 noites a partir de 18/05/2020. A taxa total para estadias de 1, 2 e 3 noites neste exemplo seria de US $100, US$ 180 e US $240, respectivamente.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="1" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="2" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="90.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2" />
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Adicionar, sobrepor e remover tarifas com base na estadia

Adicionar duração(s) da estadia

Com preços baseados na estadia, uma operação de Delta permite que as tarifas sejam atualizadas de forma incremental para os períodos de check-in indicados em <StatusApplicationControl> e para todas as durações de estadia indicadas pelo UnitMultiplier de cada elemento Rate filho.

Para cada data de check-in e duração da estadia aplicável, todas as tarifas de ocupação precisam ser especificadas.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Sobrepor duração(s) da estadia

Com preços baseados na estadia, uma operação Overlay substitui as tarifas de todas as durações de estadia do produto e do período de check-in indicados em <StatusApplicationControl>.

Com esta mensagem, as tarifas por ocupação para todas as durações da estadia nas datas de chegada especificadas serão removidas e substituídas por uma tarifa de ocupação dupla definida apenas para a duração da estadia de 3 dias.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Remover períodos de permanência

Com preços baseados na estadia, uma operação Remove remove as taxas de todas as durações da estadia do produto e do período de check-in indicados em <StatusApplicationControl>.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Respostas

Sintaxe

A mensagem OTA_HotelRateAmountNotifRS usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                            TimeStamp="timestamp"
                            EchoToken="echo_token"
                            Version="3.0">
  <!-- Either Success or Errors will be populated. -->
  <Success/>
  <Errors>
    <Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>

Elementos e atributos

A mensagem OTA_HotelRateAmountNotifRS tem os seguintes elementos e atributos:

Elemento / @Attribute Ocorrências Tipo Descrição
OTA_HotelRateAmountNotifRS 1 Complex element O elemento raiz de uma resposta a uma mensagem de disponibilidade.
OTA_HotelRateAmountNotifRS / @TimeStamp 1 DateTime A data e a hora de criação da mensagem.
OTA_HotelRateAmountNotifRS / @EchoToken 1 string O identificador exclusivo da mensagem OTA_HotelRateAmountNotifRQ associada.
OTA_HotelRateAmountNotifRS / Success 0..1 Success Indica que a mensagem OTA_HotelRateAmountNotifRQ foi processada com sucesso.

Cada mensagem tem <Success> ou <Errors>.

OTA_HotelRateAmountNotifRS / Errors 0..1 Errors Um contêiner para um ou mais problemas encontrados durante o processamento da mensagem OTA_HotelRateAmountNotifRQ.

Cada mensagem tem <Success> ou <Errors>.

OTA_HotelRateAmountNotifRS / Errors / Error 1..n Error A descrição de um erro encontrado ao processar a mensagem OTA_HotelRateAmountNotifRQ. Os detalhes sobre esses erros podem ser encontrados em Mensagens de erro de status do feed.
OTA_HotelRateAmountNotifRS / Errors / Error / @Type 1 integer O tipo de aviso de erro (EWT, na sigla em inglês) da OpenTravel Alliance associado ao erro. Apenas o valor 12 (Processing exception) é usado.
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 integer O ERR (código de erro) da OpenTravel Alliance associado ao erro. Apenas o valor 450 (Unable to process) é usado.
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 enum O status da solicitação original. Apenas o valor NotProcessed é usado.
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText 1 string É o identificador do Google para o problema. Os detalhes sobre esses erros podem ser encontrados em Mensagens de erro de status do feed.

Exemplos

Concluído

Veja a seguir uma resposta a uma mensagem OTA_HotelRateAmountNotifRQ processada com sucesso.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Success/>
</OTA_HotelRateAmountNotifRS>

Erros

Veja a seguir uma resposta a uma mensagem OTA_HotelRateAmountNotifRQ que não foi processada devido a erros.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Errors>
    <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>