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 XML. |
OTA_HotelRateAmountNotifRQ / @EchoToken | 1 | string | Um identificador exclusivo para esta mensagem de solicitação. Esse valor é retornado na mensagem de resposta. Os caracteres permitidos são a-z , A-Z , 0-9 , _ (underscore) e - (dash) . |
OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | A data e a hora de criação desta mensagem. |
OTA_HotelRateAmountNotifRQ / @Version | 1 | decimal | A versão da mensagem OpenTravel. |
OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | O tipo de notificação a ser aplicado a cada
Os valores válidos são: Para entender como esses atributos funcionam, confira os exemplos.
|
OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | enum | O escopo do Os valores válidos são:
|
OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | Um contêiner para especificar a conta de parceiro desta mensagem (normalmente usado se o back-end fornecer feeds de preços para várias contas de parceiro). |
OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Obrigatório se <POS> estiver presente. Um contêiner para o
<RequestorID> . |
OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Obrigatório se <POS> estiver presente. Define a conta de parceiro. |
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | A conta de parceiro desta mensagem. Esse valor de string é a "Chave do parceiro" listada na
página "Configurações da conta" da Central para Hotéis.
Observação:se você tiver um back-end que forneça feeds para várias contas, esse valor precisará corresponder ao valor do atributo |
OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | Uma coleção de elementos <RateAmountMessage> que definem taxas. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | O identificador exclusivo da propriedade. Esse valor precisa corresponder ao ID do hotel especificado usando <id> no elemento <listing> do feed de lista de hotéis. O ID do hotel também está listado na Central para Hotéis. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | Um contêiner para definir 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 |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | Defina como true ou 1 para incluir explicitamente
as terças-feiras.
Se definido como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | Defina como true ou 1 para incluir explicitamente
as quartas-feiras.
Se definido como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | Defina como true ou 1 para incluir explicitamente
as quintas-feiras.
Se definido como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | Defina como true ou 1 para incluir explicitamente
as sextas-feiras.
Se definido como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | Defina como true ou 1 para incluir explicitamente os sábados.
Se definido como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | Defina como true ou 1 para incluir explicitamente
os domingos.
Se definido como |
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 do plano de tarifas. Esse identificador é mapeado para o
<PackageID> em uma mensagem de transação (dados da propriedade). O plano de taxas é definido e referenciado 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 da ARI que se aplica a esta atualização de preços. Isso só deve ser especificado usando um valor de 26 ao usar o modelo de preços com base na duração da estadia. A exclusão desse atributo indica que esta é 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 o período de permanência será especificado em dias.
Para usar a preços com base na duração da estadia,
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | O número de RateTimeUnits que compõem a duração da estadia para essa tarifa.
Por exemplo, se o valor de As taxas de ocupação especificadas neste objeto Para usar a preços com base na duração da estadia,
|
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 em uma moeda específica. O preço pode ser
por ocupação usando vários elementos <BaseByGuestAmt>
com um valor diferente para NumberOfGuests .
Caso contrário, o preço será válido para 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 tarifa do quarto antes de tributos e taxas. É possível especificar Se você estiver usando promoções, o desconto será aplicado a |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | O preço diário da diária após incluir 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 taxas básicas e totais que podem ser mostradas aos usuários em
determinadas regiões.
Aviso:se você estiver usando promoções, recomendamos não usar valores de Observação:se |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | O código de caractere 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 essa tarifa.
O padrão é 2 hóspedes se não for informado.
Se |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | Contêiner para uma coleção de cobranças de hóspedes extras.
Essa sintaxe é útil se as tarifas adicionais para hóspedes ou crianças mudarem com base na data. Considere usar a mensagem mais eficiente
Por exemplo, suponha que as tarifas básicas sejam especificadas para 1 e 2 adultos.
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | Especifica preços com base no tipo de hóspede, especificado por
AgeQualifyingCode e, se aplicável, a idade do hóspede
especificada por MaxAge .
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | Define o tipo de hóspede extra, adulto ou criança. As opções válidas são:
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | MaxAge precisa ser especificado quando AgeQualifyingCode é 8 . Não pode ser especificado quando AgeQualifyingCode é 10 .
Especificar um valor de Valores maiores que É possível especificar várias faixas etárias de crianças usando elementos |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | Valor antes de tributos e taxas adicionado à tarifa básica para cada hóspede extra.
Os tributos e taxas que dependem da idade dos ocupantes precisam ser especificados pelo elemento |
Exemplos
Esta seção fornece exemplos de código que destacam como:
- Configurar as taxas base e totais
- Adicionar, sobrepor e remover taxas
- Adicionar, sobrepor e remover valores de convidados extras
- Configurar tarifas com base na duração da estadia
- Adicionar, sobrepor e remover taxas com base na duração da estadia
Ao definir os valores add
, overlay
ou remove
, os períodos podem ser iguais ou diferentes, dependendo das suas metas. Por exemplo, é possível usar overlay
para definir apenas algumas semanas para as festas de fim de ano 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 esse período.
Preços por data
Para um determinado quarto e plano de tarifa, pode haver no máximo 50 taxas de ocupação por propriedade. Se as tarifas forem iguais para todas as ocupações, envie apenas as ocupações máximas com o preço necessário. Ao fazer isso, o Google deduz que as ocupações menores também recebem a mesma tarifa básica.
Configurar tarifas base e totais
Exemplo 1
Tarifa básica (sem tributos ou taxas) para ocupação padrão (dupla). Nesse modelo, os tributos e taxas da propriedade precisam ser definidos usando uma mensagem <TaxFeeInfo>
. A taxa básica vai aparecer mais para 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
Tarifa básica e total para ocupação padrão (dupla). Nesse modelo, tributos e taxas não podem ser definidos separadamente usando mensagens <TaxFeeInfo>
. A taxa básica vai aparecer com mais destaque para 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
Preço 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
Tarifa básica e total para vários tipos de quarto e planos de preços 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
Há um limite de 5.000 produtos (combinações de tipo de quarto e pacote) por propriedade. Use os tipos de notificação Overlay
ou Remove
para remover produtos definidos anteriormente.
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. 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 2021-10-20 e 2021-12-31 e substitua-as pelas tarifas por ocupação recém-especificadas.
Por exemplo, se essa mensagem foi enviada depois da 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 menor (por exemplo, 2021-12-20 e 2021-12-31) para substituir apenas algumas das taxas 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 taxas
Defina NotifType
como Remove
para excluir todas as taxas por ocupação de RoomID_1 e PackageID_1 entre 20/10/2021 e 31/12/2021.
Por exemplo, se essa 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 de convidados extras
Adicionar valores
Defina NotifType
como Delta
para adicionar tarifas básicas para ocupação de 1 e 2 pessoas e valores adicionais de hóspedes para RoomID_1 e PackageID_1 entre 20/10/2021 e 31/12/2021.
Valores adicionais de hóspedes serão aplicados além de uma 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 de RoomID_1.
Neste exemplo, os valores extras para hóspedes serão aplicados da seguinte forma:
- US$ 5 para crianças de 0 a 10 anos (inclusive).
- US$ 10 para crianças 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 RoomID_1 e PackageID_1 entre 20/10/2021 e 31/12/2021 e substitua-os pelas tarifas por ocupação e valores adicionais recém-especificados.
Por exemplo, se essa mensagem foi enviada depois da mensagem "Adicionar tarifas", as tarifas de ocupação base 1 e 2 serão excluídas, e apenas a nova tarifa de ocupação base 1 será armazenada. O conjunto anterior de valores de hóspedes adicionais seria excluído, e apenas o novo conjunto de valores seria armazenado. Os valores adicionais de hóspedes agora usariam a nova tarifa de ocupação 1 como a tarifa básica. Após essa atualização, não haverá cobranças adicionais 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 2021-10-20 e 2021-12-31.
Por exemplo, se essa mensagem foi enviada depois de uma das outras mensagens de exemplo, nenhuma tarifa básica por ocupação ou valores adicionais 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 os valores de convidados extras
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, apenas os valores básicos 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 duração da estadia
Exemplo 1
Defina as taxas 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 taxas com base na duração da estadia
Adicionar durações da estadia
Com a precificação baseada na duração da estadia, uma operação Delta
permite que as tarifas sejam atualizadas de forma incremental para os períodos de datas de check-in indicados em <StatusApplicationControl>
e para todas as durações da estadia indicadas pelo UnitMultiplier
de cada elemento filho Rate
.
Para cada data de check-in e duração da estadia aplicáveis, todas as taxas 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ções de estadia
Com a precificação baseada em LOS, uma operação Overlay
substitui as tarifas de todas as durações de estadia do produto e o intervalo de datas de check-in indicado em <StatusApplicationControl>
.
Com essa mensagem, as taxas por ocupação para todas as durações de estadia nas datas de chegada especificadas serão removidas e substituídas por uma taxa de ocupação dupla definida apenas para duração de estadia 3.
<?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 durações da estadia
Com os preços baseados na duração da estadia, uma operação Remove
remove as tarifas
para todas as durações da estadia do produto e o período de datas de check-in indicado 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 desta 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.
|
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Um contêiner para um ou mais problemas encontrados ao processar a
mensagem OTA_HotelRateAmountNotifRQ .
|
OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | A descrição de um erro encontrado ao processar a mensagem
OTA_HotelRateAmountNotifRQ . Confira detalhes sobre esses erros em Mensagens de erro de status do feed. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | O EWT (tipo de erro/aviso) da OpenTravel Alliance associado ao erro. Somente 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.
Somente o valor 450 (Unable to process) é usado. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | O status da solicitação original. Somente o valor NotProcessed é usado. |
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText | 1 | string | O identificador do Google para o problema. Confira mais detalhes em Mensagens de erro de status do feed. |
Exemplos
Sucesso
Confira 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
A seguir, há 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>