Referência XML de preços e inventário do Room (transações)

Esta página fornece uma referência para as Mensagens de transação baseadas em XML.

<Transaction>

O elemento raiz de uma Mensagem de transação é <Transaction>. É um contêiner para informações descritivas sobre quartos e pacotes, além de preços e disponibilidade de quartos e pacotes.

O elemento <Transaction> aparece no seguinte local na Hierarquia XML de mensagens de transação:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

Mensagens que usam <Transaction> como elemento raiz exigem pelo menos um elemento filho. Mensagens de transação podem ter qualquer número de elementos filho, como desde que o tamanho total da mensagem não exceda 100 MB.

Sintaxe

O elemento <Transaction> usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp" id="transaction_ID">

  <!-- Defines data about a room or package (Room Bundle) -->
  <PropertyDataSet>
    ...
  </PropertyDataSet>

  <!-- Updates/sets prices and availability for rooms and Room Bundles -->
  <!-- (Also removes itineraries from inventory) -->
  <Result>
    ...
  </Result>

</Transaction>

Atributos

O elemento <Transaction> tem os seguintes atributos:

Atributo Obrigatório? Tipo Descrição
id Required string Um identificador exclusivo para cada Mensagem de transação.
partner Optional string A conta do parceiro para a qual a Mensagem de transação se destina. Você geralmente a usa se o back-end fornecer feeds de preço para vários contas de parceiros. O valor dessa string é a "Chave de parceiro" valor listado em o página de configurações da conta na Central para Hotéis.
timestamp Required DateTime

O momento em que a Mensagem de transação foi enviada.

Qualquer mensagem enviada com um carimbo de data/hora nas últimas 24 horas será processados e os que não foram descartados.

As mensagens são processadas em ordem de timestamp e não em a ordem de recebimento. Por exemplo, uma atualização de preço com um carimbo de data/hora de 2019-05-03 14:09:00 que é recebido após um mensagem com carimbo de data/hora de 2019-05-03 14:10:00 ainda serão processados em ordem, e o preço da mensagem com o o carimbo de data/hora de 2019-05-03 14:10:00 será usado.

Elementos filhos

O elemento <Transaction> tem os seguintes elementos filhos:

Elemento filho Obrigatório? Tipo Descrição
<PropertyDataSet> Optional* <PropertyDataSet>

Descreve um quarto e Categorias de quarto específicos. Você normalmente usa este em uma Mensagem de transação separada para definir valores compartilhados para Categorias de quarto e reduz o tamanho de suas Mensagens de transação.

<Result> Optional* <Result>

Dados de preço para o itinerário de um quarto ou <RoomBundle> que define Categorias de quarto e tipos adicionais de quarto para a propriedade. O O elemento <Result> também pode ser usado para remover itinerários do inventário.

* Pelo menos <PropertyDataSet> ou <Result> é obrigatório.

Exemplos

Dados do quarto

O exemplo a seguir define os dados do quarto em uma Mensagem de transação:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>5440OF</RoomID>
      <Name>
        <Text text="Single King Bed Room" language="en"/>
        <Text text="Simple Lit de Roi" language="fr"/>
      </Name>
      <Description>
        <Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
          and down comforters (bedspreads). City view. 300 square feet. Desk with
          rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
          complimentary HBO and pay movies." language="en"/>
        <Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Bathroom View" language="en"/>
          <Text text="La salle de baines" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Capacity>4</Capacity>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Dados dos preços

O exemplo a seguir define os dados de preço em uma Mensagem de transação:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>060773</Property>
    <RoomID>RoomType101</RoomID>
    <PackageID>Package101</PackageID>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">278.33</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <AllowablePointsOfSale>
      <PointOfSale id="site1"/>
    </AllowablePointsOfSale>
  </Result>
  <Result>
    <Property>052213</Property>
    <RoomID>RoomType101</RoomID>
    <PackageID>Package101</PackageID>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">299.98</Baserate>
    <Tax currency="USD">26.42</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <AllowablePointsOfSale>
      <PointOfSale id="otto"/>
      <PointOfSale id="simon"/>
    </AllowablePointsOfSale>
  </Result>
</Transaction>

Tarifas por noite

O exemplo a seguir define dados de preços para uma a sete noites com início 7 de junho de 2023:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-08-24T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>1</Nights>
    <Baserate currency="USD">209.99</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">419.98</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>3</Nights>
    <Baserate currency="USD">614.97</Baserate>
    <Tax currency="USD">21.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>4</Nights>
    <Baserate currency="USD">819.96</Baserate>
    <Tax currency="USD">21.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>5</Nights>
    <Baserate currency="USD">999.95</Baserate>
    <Tax currency="USD">21.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>6</Nights>
    <Baserate currency="USD">1193.94</Baserate>
    <Tax currency="USD">21.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-07</Checkin>
    <Nights>7</Nights>
    <Baserate currency="USD">1259.93</Baserate>
    <Tax currency="USD">21.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
  </Result>
</Transaction>


Base e tarifas condicionais

O exemplo a seguir mostra uma Mensagem de transação que contém uma e uma tarifa condicional:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>1</Nights>

    <Baserate currency="USD">200.00</Baserate>
    <Tax currency="USD">20.00</Tax>
    <OtherFees currency="USD">1.00</OtherFees>

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates -->
      <Rate rate_rule_id="mobile">
        <!-- Override base rate and taxes for conditional rates -->
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
        <!-- NOTE: OtherFees is inherited from the above setting -->
        <Custom1>ratecode123</Custom1>
      </Rate>
    </Rates>

  </Result>
</Transaction>

Remover inventário

O exemplo a seguir remove vários inventários (estadias de 1 noite para várias datas diferentes) para um hotel do inventário:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-05-23T16:20:00-04:00" id="42">
  <Result>
    <Property>1123581321</Property>
    <Checkin>2023-05-23</Checkin>
    <Nights>1</Nights>
    <Unavailable>
      <NoVacancy/>
    </Unavailable>
    <Tax currency="USD">0</Tax>
    <OtherFees currency="USD">0</OtherFees>
  </Result>
  <Result>
    <Property>1123581321</Property>
    <Checkin>2023-05-24</Checkin>
    <Nights>1</Nights>
    <Unavailable>
      <NoVacancy/>
    </Unavailable>
    <Tax currency="USD">0</Tax>
    <OtherFees currency="USD">0</OtherFees>
  </Result>
  <!---Sending <Baserate> is optional with <Unavailable> -->
  <Result>
    <Property>1123581321</Property>
    <Checkin>2023-05-25</Checkin>
    <Nights>1</Nights>
    <Baserate currency="USD">-1</Baserate>
    <Unavailable>
      <NoVacancy/>
    </Unavailable>
    <Tax currency="USD">0</Tax>
    <OtherFees currency="USD">0</OtherFees>
  </Result>
</Transaction>

<PropertyDataSet>

Um contêiner para informações de quartos e pacotes (ou Categoria de quarto) em um Mensagem <Transaction>. Os valores definidos para um hotel substituem os definidos para um parceiro. O Google armazena essas informações para que você não precise defini-las todas as vezes você envia atualizações de preço.

O elemento <PropertyDataSet> aparece no seguinte local na Hierarquia XML de mensagens de transação:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>  // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

Para mais informações, consulte Metadados de Categoria de quarto.

Sintaxe

O elemento <PropertyDataSet> usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <PropertyDataSet>
    <!-- (Required) ID that matches the Hotel List Feed -->
    <Property>hotel_ID</Property>

    <!-- (Optional) Defines metadata about a room -->
    <RoomData>
      ...
    </RoomData>

    <!-- (Optional) Defines package metadata to be paired with rooms (Room Bundles) -->
    <PackageData>
      ...
    </PackageData>
  </PropertyDataSet>
  ...
</Transaction>

Atributos

O elemento <PropertyDataSet> não tem atributos.

Elementos filhos

O elemento <PropertyDataSet> tem os seguintes elementos filhos:

Elemento filho Obrigatório? Tipo Descrição
<PackageData> Optional* <PackageData> Descreve uma Categoria de quarto. Esses dados são associados a um parceiro e de um hotel, mas não de um itinerário. Esse elemento é semelhante a <RoomData>, mas descreve comodidades e termos que não fazem parte da descrição física do quarto.

Você faz referência ao ID do pacote nas atualizações de preços.

Para mais informações, consulte Metadados de Categoria de quarto.

<Property> Required string O ID de um hotel a que os dados associados se aplicam. O o valor desse elemento precisa ser uma string que corresponda ao nome <id> no seu feed de lista de hotéis.
<RoomData> Optional* <RoomData> Descreve uma sala. Esses dados são associados a um parceiro e um hotel, mas não a um itinerário.

Você faz referência ao ID do quarto nas suas atualizações de preço.

* Pelo menos <PackageData> ou <RoomData> é obrigatório.

Exemplos

Dados de quartos e pacotes

O exemplo a seguir mostra os dados de quartos e pacotes em um <PropertyDataSet>:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>180054</Property>
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Bed Room" language="en"/>
        <Text text="Chambre single" language="fr"/>
      </Name>
      <Description>
        <Text text="Non-smoking" language="en"/>
        <Text text="Pas de fumiers" language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Living area" language="en"/>
          <Text text="Le chambre" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>P54321</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
        <Text text="Avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Includes a delightful array of jams and jellies." language="en"/>
        <Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
      </Description>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Ao enviar os preços e a disponibilidade para este quarto e Categoria de quarto, você faça referência aos IDs de quartos e pacotes nas mensagens de preço. O resultado é: você reduz significativamente o tamanho das suas mensagens e também quantidade de erros que você pode encontrar devido a dados duplicados. Para mais informações, consulte Metadados de Categoria de quarto.

<RoomData>

Define metadados independentes do itinerário sobre os quartos e, por extensão, o Room Categorias (já que Categorias de quarto são quartos mais comodidades adicionais). Usar <RoomData> para reduzir a repetição de dados descritivos no seu preço. Feed.

O elemento <RoomData> aparece no seguinte local na Hierarquia XML de mensagens de transação:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

Os elementos <RoomData> contêm informações associadas a um parceiro e hotel, mas não com um itinerário. O objetivo é que todos dados que não são de itinerário.

O elemento <RoomData> é semelhante a <PackageData>, mas descreve no quarto físico, em vez de comodidades e termos de um pacote. Você usa <RoomData> e <PackageData> em combinação para fornecer detalhes sobre Categorias de quarto. Para salas individuais que não fazem parte de um pacote, use apenas <RoomData>:

É possível definir os elementos <RoomData> e <PackageData> para o mesmo quarto ou Categoria de quarto. Quando o Google exibir esse quarto ou pacote na resultados da pesquisa, ele incluirá as descrições de ambos, separadas por um hífen.

Para mais informações, consulte Metadados de Categoria de quarto.

Sintaxe

O elemento <RoomData> usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <PropertyDataSet>
    ...
    <RoomData>
      <RoomID>room_ID</RoomID>

      <Name>
        <Text text="room_name" language="language_code"/>
        ...
      </Name>

      <Description>
        <Text text="room_description" language="language_code"/>
        ...
      </Description>

      <Capacity>max_number_of_occupants</Capacity>
      <Occupancy>max_number_of_intended_occupants</Occupancy>
      <OccupancyDetails> <!-- optional info about the types of guests,
      whether adults, children, or seniors --></OccupancyDetails>
      <OccupancySettings>
        <MinOccupancy>min_number_of_occupants</MinOccupancy>
        <MinAge>min_age_of_occupants</MinAge>
      </OccupancySettings>

      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
          ...
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      <RoomFeatures>
        ...
      </RoomFeatures>
    </RoomData>
    ...
  </PropertyDataSet>
</Transaction>

Atributos

O elemento <RoomData> não tem atributos.

Elementos filhos

O elemento <RoomData> tem os seguintes elementos filhos:

Elemento filho Obrigatório? Tipo Descrição
<Capacity> Optional integer O número máximo de hóspedes que um quarto pode fisicamente acomodar. A capacidade de uma sala é maior ou igual a ocupação.

Quando especificado, esse valor precisa ser igual ou maior que o valor do elemento <Occupancy>, que é o valor pretendido número de hóspedes de um determinado quarto. Por exemplo, a casa de um grande <Capacity> pode ser 6, mas o <Occupancy> para ele é 4.

O valor de <Capacity> precisa ser um número inteiro positivo entre 1 e 20, inclusive.

<Description> Optional Object Uma descrição detalhada da sala. Esse elemento deve contêm informações não descritas por outros elementos ou pelos <Name>. Você não deve usar todas as letras maiúsculas letras ao especificar a descrição da sala.

O elemento <Description> toma um único filho <Text>, que tem os dois seguintes atributos obrigatórios:

  • text: uma descrição detalhada da sala.
  • language: um código de idioma de duas letras. por exemplo, fr.

Usar um elemento <Text> separado para cada idioma em que seu anúncio ou link sem custo financeiro para reserva pode aparecer (com valores diferentes para o language).

O exemplo a seguir mostra as versões da sala em francês e inglês descrição:

<Description>
  <Text text="Two queen-sized beds" language="en"/>
  <Text text="Deux lits de la reine" language="fr"/>
</Description>
<Name> Required string O nome da categoria do quarto. Esse valor deve corresponder ao que aparece na página de destino do hotel (antigo ponto de venda). Não definir o valor desse elemento em letras maiúsculas.

Esse elemento tem apenas um elemento filho, <Text>, que tem os dois atributos obrigatórios a seguir:

  • text: o nome da sala.
  • language: um código de idioma de duas letras. por exemplo, fr.

Usar um elemento <Text> separado para cada idioma em que seu anúncio ou link sem custo financeiro para reserva pode aparecer (com diferentes valores para os atributos language).

O exemplo a seguir mostra as versões da sala em francês e inglês nome:

<Name>
  <Text text="Standard Double Room" language="en"/>
  <Text text="Le chambre double" language="fr"/>
</Name>
<Occupancy> Optional integer O número máximo de hóspedes de uma sala. Por exemplo, uma suíte grande pode acomodar fisicamente seis pessoas convidados (capacidade = 6), mas destina-se apenas a até 4 convidados.

Este valor deve ser menor ou igual ao Elemento <Capacity>, que é o número de pessoas que o quarto pode acomodar fisicamente.

O valor de <Occupancy> precisa ser positivo número inteiro entre 1 e 99, inclusive.

<Occupancy> pode estar acompanhado por <OccupancyDetails>, que especifica o tipo convidados (adultos ou crianças). Consulte <OccupancyDetails> para sintaxe e a descrição dos elementos filhos.

<OccupancySettings> Optional Object Configurações que podem restringir ou modificar os requisitos de ocupação de um sala

O elemento <OccupancySettings> toma seguintes elementos-filho:

  • <MinOccupancy>: o número mínimo de convidados que podem ficar em um quarto. Por exemplo, se ele for definido como 2, esta sala não pode ser reservada para um único hóspede.

    O valor de <MinOccupancy> precisa ser positivo número inteiro entre 1 e 99, inclusive.

  • <MinAge>: a idade mínima de todos os convidados ficar em um quarto. Por exemplo, se ele for definido como 18, esta sala só pode ser reservada para grupos em que todos os convidados são maiores de 18 anos ou mais antigas.

    O valor de <MinAge> precisa ser um número inteiro positivo entre 0 e 99, inclusive.

<OccupancySettings>
  <MinOccupancy>2</MinOccupancy>
  <MinAge>16</MinAge>
</OccupancySettings>

Nem todos os elementos filhos precisam ser incluídos.

<PhotoURL> Optional Object Um URL e uma legenda opcional para uma foto de uma determinada sala ou Categoria de quarto. É possível especificar mais de um <PhotoURL> para um quarto ou Categoria de quarto. Cada URL de foto deve estar no próprio <PhotoURL>:

Esse elemento assume os seguintes elementos-filho:

  • <URL>: especifica o local da foto. O local deve ser público (não protegido por firewall) e deve incluir o protocolo (por exemplo, https://). Use apenas um <URL> por <PhotoURL>.
  • <Caption>: define a legenda da foto. Esse elemento tem apenas um elemento filho, <Text>, que tem dois atributos obrigatórios: text e language O atributo text é a legenda, e o atributo language especifica um bloco código de idioma, como en.

Exemplo:

<PhotoURL>
  <URL>https://www.example.com/static/bar/image1234.jpg</URL>
  <Caption>
    <Text text="A bright and breezy way to enjoy your mornin'
      cuppa tea." language="en"/>
    <Text text="Une façon lumineuse et aérée pour profiter
      de votre journée tasse de thé." language="fr"/>
  </Caption>
</PhotoURL>
<PhotoURL>
  <URL>https://www.foo.com/static/bar/image5678.jpg</URL>
  <Caption>
    <Text text="Or, perhaps you prefer coffee." language="en"/>
    <Text text="Ou peut-être préférez-vous le café." language="fr"/>
  </Caption>
</PhotoURL>
<RoomFeatures> Optional <RoomFeatures> Contém informações sobre as funcionalidades da sala.
<RoomID> Required string O código exclusivo do quarto. Use esse ID para fazer a correspondência com os dados do quarto com os blocos <Result> nas atualizações de preços. Para Para mais informações, consulte Metadados de Categoria de quarto. (Você também pode usar esse ID para fazer referência a uma definição comum de quarto em uma Mensagem de transação ao definir os dados inline do quarto.)

Exemplos

Dados do quarto

O exemplo a seguir define dados de quartos:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>5440OF</RoomID>
      <Name>
        <Text text="Single King Bed Room" language="en"/>
        <Text text="Simple Lit de Roi" language="fr"/>
      </Name>
      <Description>
        <Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
          and down comforters (bedspreads). City view. 300 square feet. Desk with
          rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
          complimentary HBO and pay movies." language="en"/>
        <Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Bathroom View" language="en"/>
          <Text text="La salle de baines" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Capacity>4</Capacity>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Sala e metadados do pacote

O exemplo a seguir define metadados de quartos e pacotes:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>180054</Property>
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Bed Room" language="en"/>
        <Text text="Chambre single" language="fr"/>
      </Name>
      <Description>
        <Text text="Non-smoking" language="en"/>
        <Text text="Pas de fumiers" language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Living area" language="en"/>
          <Text text="Le chambre" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>P54321</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
        <Text text="Avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Includes a delightful array of jams and jellies." language="en"/>
        <Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
      </Description>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Várias categorias de quarto

O exemplo a seguir define metadados de quartos e pacotes para vários Pacotes:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <!-- A transaction message with room types result. -->
  <PropertyDataSet>
    <Property>12345</Property>
    <RoomData>
      <RoomID>single</RoomID>
      <Name>
        <Text text="Single room" language="en"/>
        <Text text="Chambre simple" language="fr"/>
      </Name>
      <Description>
        <Text text="A single room" language="en"/>
        <Text text="Le chambre simple" language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Living area" language="en"/>
          <Text text="Le chambre" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image1235.jpg</URL>
      </PhotoURL>
      <Capacity>2</Capacity>
    </RoomData>
    <RoomData>
      <RoomID>double</RoomID>
      <Name>
        <Text text="Double room" language="en"/>
        <Text text="Chambre double" language="fr"/>
      </Name>
      <Occupancy>1</Occupancy>
    </RoomData>
    <PackageData>
      <PackageID>refundbreakfast</PackageID>
      <Name>
        <Text text="Refundable Room with Breakfast" language="en"/>
        <Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Continental Breakfast" language="en"/>
        <Text text="Petit déjeuner continental" language="fr"/>
      </Description>
      <ChargeCurrency>hotel</ChargeCurrency>
      <Refundable available="1" refundable_until_days="3"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>prepaid</PackageID>
      <Name>
        <Text text="Nonrefundable" language="en"/>
        <Text text="Non remboursable" language="fr"/>
      </Name>
      <Description>
        <Text text="Blah blah blad" language="en"/>
        <Text text="Le blah blah blad" language="fr"/>
      </Description>
      <Occupancy>2</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="0"/>
    </PackageData>
  </PropertyDataSet>
</Transaction>

<RoomFeatures>

Define os recursos encontrados na sala.

O elemento <RoomFeatures> aparece no seguinte local na Hierarquia XML de mensagens de transação:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
            + <RoomFeatures>

Sintaxe

O elemento <RoomFeatures> usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <PropertyDataSet ... >
    ...
    <RoomData>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
        <Beds>
           <Bed size="[single|semi_double|double|queen|king]">
             <Width unit="cm" number="width"/>
             <Length unit="cm" number="length"/>
           </Bed>
           <!-- Include with any additional beds. -->
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>[shared|private]</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>[smoking|non_smoking]</Smoking>
        <BathAndToilet relation="[together|separate]">
          <Bath bathtub="[false|true]" shower="[false|true]"/>
          <Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <!-- (Optional) Defines the type of views from the room. -->
          <!-- Example: <OceanView/> -->
        </Views>

      </RoomFeatures>
      ...
    </RoomData>
    ...
  </PropertyDataSet>
</Transactions>

Atributos

O elemento <RoomFeatures> não tem atributos.

Elementos filhos

O elemento <RoomFeatures> tem os seguintes elementos filhos:

Elemento filho Obrigatório? Tipo Descrição
<JapaneseHotelRoomStyle> Optional enum

Indica o estilo de um quarto de hotel japonês.

Os valores válidos são:

  • western: um quarto em estilo ocidental com camas.
  • japanese: um quarto em estilo japonês com camas futon.
  • japanese_western: sala em estilo ocidental japonês com camas em estilo ocidental e futons em estilo japonês.
<Beds> Optional Object Contém a mesma quantidade de <Bed> que a sala. Observação que os futons japoneses não devem ser contados aqui.

Cada <Bed> tem os seguintes atributos:

  • size (opcional): os valores válidos são single, semi_double, double e queen. e king.
. Cada <Bed> tem os seguintes elementos filhos:
  • <Width> (opcional): especifica a largura da cama. Deve têm o atributo unit com o valor cm e o atributo number com a largura da cama em número inteiro centímetros
  • <Length> (opcional): especifica o comprimento da cama. Precisa ter o atributo unit com o valor cm e o atributo number com o comprimento da cama em centímetros inteiros.
. Exemplo:
<Beds>
  <Bed size="double">
    <Width unit="cm" number="140"/>
    <Length unit="cm" number="195"/>
  </Bed>
  <Bed/> <!-- Size unknown -->
</Beds>
<Suite> Optional empty Forneça este elemento quando o quarto for uma suíte.
<Capsule> Optional empty Informe esse elemento quando o cômodo for uma sala-cápsula.
<Roomsharing> Optional enum Se a sala é compartilhada com outros ocupantes, como proprietários ou outras pessoas convidados. Os valores válidos são: shared e private.
<Outdoor> Optional empty Forneça este elemento quando esse quarto for uma acomodação ao ar livre que não têm paredes fixas, encanamento e controle de temperatura. Por exemplo, quartos de hotel não são hospedagem ao ar livre, enquanto acampamentos em que os hóspedes ficam em barracas e Áreas para trailers onde os hóspedes trazem seus próprios trailers são acomodações ao ar livre.
<MobilityAccessible> Optional empty Forneça este elemento quando o quarto tiver acessibilidade.
<Smoking> Optional enum Indica se o quarto é para não fumantes ou para fumantes. Valores válidos são non_smoking e smoking.
<BathAndToilet> Optional Object Inclui informações sobre uma banheira e um banheiro no quarto.

O atributo é:

  • relation (opcional): indica como o banheiro e o vaso sanitário são colocados uns contra os outros. Os valores válidos são: together (banheiro e vaso sanitário ficam juntos no mesmo cômodo (por exemplo, banheiro) lado a lado) e separate (banho e vaso sanitário têm espaços exclusivos). Esse atributo não pode ser definido quando o quarto não tem uma banheira e um banheiro.

Opcionalmente, o elemento pode ter os seguintes elementos filhos:

  • <Bath> (opcional): a existência do elemento. indica que o quarto tem uma banheira.

    Os atributos são:

    • bathtub (opcional): indica que o banho tem um na banheira do banheiro. Os valores válidos são: 0 (ou false) e 1 (ou true).
    • shower (opcional): indica que o banho tem um chuveiro Os valores válidos são 0 (ou false) e 1 (ou true).
  • <Toilet> (opcional): a existência do elemento. indica que a sala tem um banheiro.

    Os atributos são:

    • electronic_bidet (opcional): indica que o banheiro tem um bidê eletrônico. Os valores válidos são 0 (ou false) e 1 (ou true).
    • mobility_accessible (opcional): indica que o banheiro é acessível à mobilidade. Os valores válidos são: 0 (ou false) e 1 (ou true).

Exemplo:

<BathAndToilet relation="separate">
  <Bath bathtub="1" shower="1"/>
  <Toilet
    electronic_bidet="1"
    mobility_accessible="1"/>
</BathAndToilet>
<OpenAirBath> Optional empty Forneça esse elemento quando o quarto tiver uma banheira privativa ao ar livre.
<AirConditioning> Optional empty Informe este elemento quando este quarto tiver ar-condicionado.
<Balcony> Optional empty Forneça esse elemento quando este quarto tiver uma sacada ou varanda.
<Views> Optional Object As opções válidas incluem:

<AirportView/>
<BayView/>
<BeachView>/>
<CastleView/>
<CityView/>
<CountrysideView/>
<CourtyardView/>
<DuneView/>
<ForestView/>
<GardenView/>
<GolfCourseView/>
<HarborView/>
<LagoonView/>
<LakeView/>
<MarinaView/>
<MountainView/>
<NatureView/>
<OceanView/>
<ParkView/>
<PartialOceanView/>
<PisteView/>
<PoolView/>
<PyramidView/>
<RiverView/>
<StreetView/>

Exemplos

JapaneseHotelRoomStyle não tem um valor padrão. Omitindo um valor não resulta em um erro XML, mas sua listagem não é mostrada em os resultados da pesquisa, quando o usuário filtra por estilo de quarto ou camas.

Duas camas de solteiro

O exemplo abaixo mostra como usar <RoomFeatures>:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two single beds -->
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>private</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>non_smoking</Smoking>
        <BathAndToilet relation="separate">
          <Bath bathtub="1" shower="1"/>
          <Toilet electronic_bidet="1" mobility_accessible="1"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <LakeView/>
          <MarinaView/>
          <BeachView/>
          <ForestView/>
          <MountainView/>
          <NatureView/>
        </Views>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Duas camas de casal

Este é um exemplo de uma sala japonesa no estilo western com duas double camas.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two double beds-->
          <Bed size="double"></Bed>
          <Bed size="double"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>


Estilo japonês sem cama

Este é um exemplo de um quarto em estilo japonês sem cama. Dormir informações não são necessárias para a sala no estilo japanese.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Faroeste japonês com cama

Veja a seguir um exemplo de sala no estilo japanese_western com king. cama grande.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
        <Beds>
          <Bed size="king"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Se o parceiro não tiver a informação sobre o número de leitos em japanese_western salas, siga o exemplo:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

<PackageData>

Define metadados independentes do itinerário sobre Categorias de quarto de uma propriedade. Esse elemento contém informações associadas a um parceiro e a um hotel, mas não a um itinerário. O objetivo é definir todos os endereços uma vez e referenciá-los a partir dos dados de itinerário.

O elemento <PackageData> aparece no seguinte local na Hierarquia XML de mensagens de transação:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

O elemento <PackageData> é semelhante a <RoomData>, mas descreve as características e os termos das diárias que não fazem parte do quarto físico; descrição. Use <RoomData> e <PackageData> em combinação para fornecem detalhes sobre Categorias de quarto e recursos de tarifas. Para salas individuais que não fazem parte de um pacote, use apenas <RoomData>.

Você pode definir os elementos <RoomData> e <PackageData> para o mesmo quarto ou Categoria de quarto. Quando o Google exibir esse quarto ou pacote na resultados da pesquisa, ele incluirá as descrições de ambos, separadas por um hífen.

Se você atualizar um único elemento <PackageData> para uma propriedade, será necessário atualize todos os elementos <PackageData> e <RoomData> da propriedade. Cada <PropertyDataSet> é considerado todos os dados sobre a propriedade. substitui os dados existentes.

Para mais informações, consulte Metadados de Categoria de quarto.

Sintaxe

O elemento <PackageData> usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <PropertyDataSet ... >
    <PackageData>
      <PackageID>package_ID</PackageID>
      <Name>
        <Text text="package_name" language="language_code"/>
        ...
      </Name>
      <Description>
        <Text text="package_description" language="language_code"/>
        ...
      </Description>
      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
      <Occupancy>max_number_of_intended_occupants</Occupancy>
      <OccupancyDetails><!-- optional info about the types of guests,
      whether adults or children --></OccupancyDetails>
      <!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
      <BreakfastIncluded>boolean_value</BreakfastIncluded>
      <InternetIncluded>boolean_value</InternetIncluded>
      <ParkingIncluded>boolean_value</ParkingIncluded>
      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
          ...
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      ...
      <Meals>
        <Breakfast
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
        <Dinner
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
      </Meals>
      <CheckinTime>checkin_time</CheckinTime>
      <CheckoutTime>checkout_time</CheckoutTime>
      <MembershipBenefitsIncluded>
        <ProgramName>
          <Text language="en" text="Special Rewards">
        </ProgramName>
        <ProgramLevel>
          <Text language="en" text="Platinum">
        </ProgramLevel>
      </MembershipBenefitsIncluded>
      <OnPropertyCredit>
        <Amount currency="USD">123.45</Amount>
      </OnPropertyCredit>
    </PackageData>
    <!-- a PackageID with a MilesIncluded rate feature -->
    <PackageData>
      <PackageID>room_with_miles</PackageID>
      <Name>
       <Text text="Room with Bundled Miles" language="en">
      </Name>
      <ChargeCurrency>hotel </ChargeCurrency>
      <MilesIncluded>
        <NumberOfMiles>1000 </NumberOfMiles>
        <Provider>
          <Text language="en" text="United Airlines">
        </Provider>
      </MilesIncluded>
    </PackageData>
    ...
    ...
  </PropertyDataSet>
  ...
</Transaction>

Atributos

O elemento <PackageData> não tem atributos.

Elementos filhos

O elemento <PackageData> tem os seguintes elementos filhos:

Elemento filho Obrigatório? Tipo Descrição
<BreakfastIncluded> Optional boolean Especifica se este pacote inclui café da manhã com a tarifa. Os valores válidos são 0 (ou false) e 1 (ou true).

Recomendamos que você use <Meals> em vez de <BreakfastIncluded>.

<ChargeCurrency> Optional enum Quando e onde o usuário paga uma reserva. Esse elemento usa a mesma a sintaxe como <ChargeCurrency> em uma <Result>.

O valor padrão é web.

<CheckinTime> Optional Time Horário de check-in mais cedo possível. A hora precisa ser menor que 24h no horário local do hotel.
<CheckoutTime> Optional Time Horário mais recente possível de check-out no horário local do hotel.
<Description> Optional Object Uma descrição detalhada do pacote. Esse elemento deve contêm informações não descritas por outros elementos ou pelos <Name>. Você não deve usar todas as letras maiúsculas letras ao especificar a descrição da sala.

O elemento <Description> recebe uma única um elemento filho, <Text>, que tem dois atributos obrigatórios, text e language. O text é a descrição, e o atributo language especifica um código de idioma de duas letras, como no exemplo a seguir mostra:

<Description>
  <Text text="Two breakfast buffet certificates for
    each night of stay." language="en"/>
  <Text text="Deux certificats petit-déjeuner buffet
    pour chaque nuit de séjour." language="fr"/>
</Description>
<InternetIncluded> Optional boolean Se um pacote incluir acesso à Internet sem custos financeiros, enquanto outros pacotes não incluiriam essa comodidade. Não definir elemento para Categorias de quarto em um hotel que oferece Internet gratuita a todos salas Este elemento não se aplica à Internet com ou sem fio na sala Internet que não está disponível nos quartos de hóspedes. Os valores válidos são 0 (ou false) e 1 (ou true).
<Meals> Optional Object Contém informações sobre refeições neste pacote.

O elemento <Meals> usa dois filhos opcionais elementos, <Breakfast> e <Dinner>, que têm os seguintes atributos:

  • included (obrigatório): defina como 1 (ou true) se a tarifa inclui café da manhã/jantar; Caso contrário, será definido como 0 ou false.
  • in_room (opcional): defina como 1 (ou true) se os hóspedes têm a opção de tomar café da manhã/jantar no quarto em que ficarem in; caso contrário, defina como 0 (ou false).
  • in_private_space (opcional): defina como 1 (ou true) se os hóspedes tiverem a opção de tomar café da manhã/jantar no local um espaço (exceto a sala em que as pessoas ficam) no qual possam evitar contato com outros convidados; caso contrário, defina como 0 (ou false).
  • buffet (opcional): defina como 1 (ou true) se o café da manhã/jantar é servido como buffet; Caso contrário, será definido como 0 (ou false).

Os atributos opcionais são usados apenas quando included é verdade.

Para filtros de refeições (no meals, breakfast only, dinner only e breakfast and dinner) para o trabalho, <Breakfast> e <Dinner> precisam seja fornecido com o atributo included.

<Name> Required string O nome do pacote. Esse valor deve corresponder ao que aparece página de destino do hotel. Não defina o valor desse elemento com todas as letras maiúsculas letras

Esse elemento tem apenas um elemento filho, <Text>, que tem dois atributos, text e language. O atributo text é a descrição, e o O atributo language especifica um código de idioma de duas letras, como mostra o exemplo a seguir:

<Name>
  <Text text="Bed and Breakfast" language="en"/>
  <Text text="Lit et petit déjeuné" language="fr"/>
</Name>
<Occupancy> Optional integer O número máximo de hóspedes para o qual uma Categoria de quarto se destina. Por exemplo, uma suíte grande pode acomodar fisicamente seis pessoas convidados, mas destina-se apenas a até quatro pessoas.

Este valor deve ser menor ou igual ao Elemento <Capacity>, que é o número de pessoas que o quarto pode acomodar fisicamente.

O valor de <Occupancy> precisa ser positivo número inteiro entre 1 e 99, inclusive.

Se você especificar esse elemento em <RoomBundle> e <PackageData>, o valor em <RoomBundle> tem precedência.

Observação:

<Occupancy> pode estar acompanhado por <OccupancyDetails>,que especifica o tipo de convidado (adultos ou crianças). Consulte <OccupancyDetails> para sintaxe e descrição dos elementos filhos.
<PackageID> Required string

O ID exclusivo do pacote. Use esse ID para corresponder Dados de Categoria de quarto com os blocos <Result> na sua atualizações de preços. Para mais informações, consulte Sala Metadados do pacote.

Você também pode usar esse ID para fazer referência a uma definição comum de Categoria de quarto usado em uma única Mensagem de transação ao definir os dados de Categoria de quarto inline.)

<ParkingIncluded> Optional boolean Se uma Categoria de quarto inclui estacionamento gratuito, em que o estacionamento seria um serviço pago neste hotel. Não especificar um valor para este elemento para um hotel que oferece estacionamento gratuito.

Os valores válidos são 0 (ou false) e 1 (ou true). O valor padrão é false.

<PhotoURL> Optional Object (igual a <PhotoURL> em <RoomData>, mas para o pacote (por exemplo, fotos da refeição).)
<Refundable> Optional Object Permite listar uma tarifa como totalmente reembolsável ou oferecendo um cancelamento. Se não for fornecido, nenhuma informação sobre um reembolso será exibida. Uma política de reembolso no nível do <PackageData> substitui a política de reembolso no no nível da <Result>. Uma política de reembolso no nível do <Rates> substitui a política de reembolso no nível do <PackageData>. Os preços reembolsáveis podem também serão destacados para os usuários por meio de opções alternativas sem modificar seu esquema de mensagens de transação. Saiba mais sobre essas opções Política de tarifas reembolsáveis.

O exemplo abaixo mostra o <Refundable> com todos os seus atributos definidos:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

Observação:recomendamos configurar todos os atributos. Um feed de status é gerada quando um ou mais atributos não definido.

Se você não definir atributos, a taxa não será exibida como reembolsável. Os atributos são:

  • available: (obrigatório) definido como 1 ou true para indicar se a taxa permite uma refund; caso contrário, defina como 0 ou false.
  • refundable_until_days: 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.
  • refundable_until_time: altamente recomendado se available é true) Especifica na hora mais recente do dia, no horário local do hotel, em que um de reembolso será cumprida. 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.

    O valor desse atributo usa o formato de hora.

Ao definir os atributos, observe o seguinte:

  • Se available ou refundable_until_days não for 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.
<MembershipBenefits Included> Optional boolean A tarifa inclui os benefícios do status de elite para a duração da estadia. Inclui os seguintes parâmetros:
  • ProgramName: nome do programa de status de elite
  • ProgramLevel: nível do programa. Por exemplo: "Ouro".
  • NightlyValue (optional): valor noturno do benefícios.
<CarRentalIncluded> Optional boolean A diária inclui o aluguel sem custo financeiro de carros para o período da estadia.
<MilesIncluded>> Optional boolean A tarifa inclui milhas do programa de milhagem. Os parâmetros incluem:
  • NumberofMiles: número de milhas por itinerário.
  • Provider: indica as milhas do programa de milhagem.
<OnPropertyCredit> Optional boolean A tarifa inclui crédito na propriedade (F&B, resort, spa etc.). Parâmetro:
  • Amount: o valor do crédito por itinerário, em palavras moeda.
<AirportTransportationIncluded> Optional Object A diária inclui traslado sem custo financeiro de/para o aeroporto mais próximo. O parâmetro opcional O atributo direction especifica a direção do transporte. Os valores válidos incluem:
    from: o transporte do aeroporto até o . Esse é o valor padrão quando nenhuma direção é especificada. to: o transporte é oferecido para o aeroporto a partir do . round_trip: o transporte é oferecido de ida e volta aeroporto.

Exemplos

Pacote de quarto individual

O exemplo a seguir define uma Categoria de quarto única, com uma ocupação de 2 (um adulto e uma criança) e inclui café da manhã:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <Occupancy>2</Occupancy>
      <OccupancyDetails>
        <NumAdults>1</NumAdults>
        <Children>
          <Child age="17"/>
        </Children>
      </OccupancyDetails>
      <PackageID>P54321</PackageID>
      <Name>
         <Text text="Breakfast Included" language="en"/>
         <Text text="Avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Two certificates for continental
          breakfast will be provided." language="en"/>
        <Text text="Deux certificats pour le petit déjeuner
          continental seront fournis." language="fr"/>
      </Description>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Metadados de quartos e pacotes

O exemplo a seguir define metadados de quartos e pacotes:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>180054</Property>
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Bed Room" language="en"/>
        <Text text="Chambre single" language="fr"/>
      </Name>
      <Description>
        <Text text="Non-smoking" language="en"/>
        <Text text="Pas de fumiers" language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Living area" language="en"/>
          <Text text="Le chambre" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>P54321</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
        <Text text="Avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Includes a delightful array of jams and jellies." language="en"/>
        <Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
      </Description>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Várias categorias de quarto

O exemplo a seguir define metadados de quartos e pacotes para vários Pacotes:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <!-- A transaction message with room types result. -->
  <PropertyDataSet>
    <Property>12345</Property>
    <RoomData>
      <RoomID>single</RoomID>
      <Name>
        <Text text="Single room" language="en"/>
        <Text text="Chambre simple" language="fr"/>
      </Name>
      <Description>
        <Text text="A single room" language="en"/>
        <Text text="Le chambre simple" language="fr"/>
      </Description>
      <PhotoURL>
        <Caption>
          <Text text="Living area" language="en"/>
          <Text text="Le chambre" language="fr"/>
        </Caption>
        <URL>http://www.foo.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image1235.jpg</URL>
      </PhotoURL>
      <Capacity>2</Capacity>
    </RoomData>
    <RoomData>
      <RoomID>double</RoomID>
      <Name>
        <Text text="Double room" language="en"/>
        <Text text="Chambre double" language="fr"/>
      </Name>
      <Occupancy>1</Occupancy>
    </RoomData>
    <PackageData>
      <PackageID>refundbreakfast</PackageID>
      <Name>
        <Text text="Refundable Room with Breakfast" language="en"/>
        <Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
      </Name>
      <Description>
        <Text text="Continental Breakfast" language="en"/>
        <Text text="Petit déjeuner continental" language="fr"/>
      </Description>
      <ChargeCurrency>hotel</ChargeCurrency>
      <Refundable available="1" refundable_until_days="3"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>prepaid</PackageID>
      <Name>
        <Text text="Nonrefundable" language="en"/>
        <Text text="Non remboursable" language="fr"/>
      </Name>
      <Description>
        <Text text="Blah blah blad" language="en"/>
        <Text text="Le blah blah blad" language="fr"/>
      </Description>
      <Occupancy>2</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="0"/>
    </PackageData>
  </PropertyDataSet>
</Transaction>


Categoria de quarto com diárias

O exemplo a seguir define os metadados de quartos e pacotes para uma Categoria de quarto com recursos de tarifação:

<Transaction timestamp="2010-04-24T20:44:56-04:00" id="TXNID">
  <PropertyDataSet>
    <Property>12345</Property>
    <RoomData>
     ...
    </RoomData>
<!-- definitions of PackageData types including rate features -->
    <PackageData>
      <PackageID>room_with_addl_benefits</PackageID>
      <Name>
        <Text text="Acme Hotels 2017 Promotion Package" language="en"/>
      </Name>
      <ChargeCurrency>hotel</ChargeCurrency>
      <BreakfastIncluded>1</BreakfastIncluded>
      <MembershipBenefitsIncluded>
        <ProgramName>
          <Text language="en" text="Marriott Rewards"/>
        </ProgramName>
        <ProgramLevel>
          <Text language="en" text="Platinum"/>
        </ProgramLevel>
      </MembershipBenefitsIncluded>
      <OnPropertyCredit>
        <Amount currency="USD">123.45</Amount>
      </OnPropertyCredit>
    </PackageData>
    <PackageData>
      <PackageID>room_with_miles</PackageID>
      <Name>
        <Text text="Room with Bundled Miles" language="en"/>
      </Name>
      <ChargeCurrency>hotel</ChargeCurrency>
      <MilesIncluded>
        <NumberOfMiles>1000</NumberOfMiles>
        <Provider>
          <Text language="en" text="United Airlines"/>
        </Provider>
      </MilesIncluded>
      <AirportTransportationIncluded direction="from"/>
    </PackageData>
  </PropertyDataSet>

<!-- The actual list of prices -->
  <Result>
…
  </Result>
</Transaction>

Refeições e fotos

O exemplo a seguir define metadados de quartos e pacotes para refeições, fotos e horários de check-in e check-out:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Meals Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <!-- Guests can choose to have breakfast in their room or in another
        space to avoid contact with other guests. -->
        <Breakfast included="1" in_room="1" in_private_space="1"/>
        <Dinner included="1" buffet="1"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Café da manhã

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <Breakfast included="true"/>
        <!-- Dinner not included needs to be explicitly specified -->
        <Dinner included="false"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

<Result>

Um contêiner para atualizações de preços e disponibilidade em um <Transaction> mensagem.

O elemento <Result> aparece no seguinte local na Hierarquia XML de mensagens de transação:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

Use <Result> para definir ou atualizar os preços dos quartos e definir inventário disponível. Os itens definidos nesse elemento geralmente fazem referência metadados independentes do itinerário sobre um quarto ou pacote (como uma descrição ou conjunto de comodidades) definido em <PackageData> e <RoomData>.

Você geralmente envia Mensagens de transação com atualizações de preço com muita frequência. A maneira e a frequência com que você faz isso depende do seu modo de transferência.

Você pode usar <Result> em uma Mensagem de transação para remover itinerários, conforme descritos em Como remover inventário. Para mais informações sobre como usar Mensagens de transação para atualizar preços e disponibilidade, Como adicionar e atualizar inventário.

Uma única Mensagem de transação pode incluir qualquer número de elementos <Result>. desde que o tamanho da mensagem não exceda 100 MB.

Sintaxe

O elemento <Result> usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <Result>
    <!-- Required -->
    <Property>hotel_ID</Property>
    <!-- Required -->
    <Checkin>YYYY-MM-DD</Checkin>
    <!-- Required -->
    <Nights>number_of_nights</Nights>

    <Baserate currency="currency_code">price</Baserate>
    <!-- Only required when <Baserate> contains a real price -->
    <Tax currency="currency_code">tax_amount</Tax>
    <!-- Only required when <Baserate> contains a real price  -->
    <OtherFees currency="currency_code">fee_amount</OtherFees>
    <Refundable available="[false|true]" refundable_until_days="number_of_days"
      refundable_until_time="time"/>

    <RoomID>room_ID</RoomID>
    <PackageID>package_ID</PackageID>
    <ExpirationTime>expiration_time</ExpirationTime>
    <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>

    <Occupancy>max_number_of_intended_occupants</Occupancy>
    <!-- For Baserate, occupancy value must be greater than or equal to 2.
         If a value is not provided for occupancy, it defaults to 2. -->
    <OccupancyDetails>occupancy_info</OccupancyDetails>

    <Rates>...</Rates>

    <RoomBundle>...</RoomBundle>

    <AllowablePointsOfSale>
      <PointOfSale id="landing_page_identifier"/>
      ...
    </AllowablePointsOfSale>

    <Custom[1-5]>custom_value</Custom[1-5]>
  </Result>
  ...
  </Transaction>

Atributos

O elemento <Result> tem os seguintes atributos:

Atributo Obrigatório? Tipo Descrição
mergeable Optional boolean Por padrão, os novos preços de um par específico de hotel e itinerário substitui os preços anteriores (não expirados) presentes no cache do Google. O atributo que pode ser mesclado permite armazenar preços adicionais no cache do Google sem excluir as informações de preço anteriores. Consulta de preço em tempo real com As respostas de contexto sempre terão esse atributo definido como true (independentemente da resposta da mensagem de transação).

Elementos filhos

O elemento <Result> tem os seguintes elementos filhos:

Elemento filho Obrigatório? Tipo Descrição
<AllowablePointsOfSale> Optional Object Uma ou mais páginas de destino qualificadas para o hotel. Uma página de destino é um site que pode lidar com o processo de reserva do site para o usuário final. Para incluir explicitamente determinadas páginas de destino (e excluir outros), adicione um ou mais <AllowablePointsOfSale> que correspondem ao elemento <PointOfSale> id no arquivo de páginas de destino.

Se você não incluir esse elemento, todas as páginas de destino definidas no de páginas de destino do Google Analytics são consideradas qualificadas para serem usadas para reservar o sala Para mais informações, consulte Sintaxe de arquivos das páginas de destino.

<Baserate> Optional float

O preço do quarto para a estadia. O valor desse elemento deve refletir o seguinte:

  • Para um quarto privativo, defina a tarifa de ocupação dupla mais barata. que você oferece. Ocupações mais altas serão permitidas aqui se você não tiver uma tarifa de ocupação dupla e sua conta tiver um espaço não reservado para duas pessoas. sempre ativadas. Entre em contato para ativar as tarifas para ocupações além de dois hóspedes. As tarifas de ocupação única não são permitidas aqui. precisa ser definido em <Rates>.
  • Em uma sala compartilhada, deixe em branco e use <RoomBundle>:
  • Esse valor precisa ser o preço base total de todas as noites, não o valor médio por pernoite.

Quando o quarto não está disponível para o itinerário, <Baserate> precisa ser omitido ou definido como -1 e <Unavailable> precisam ser especificado, com todos os motivos conhecidos da indisponibilidade.

Para remover uma Categoria de quarto, use as instruções em Como remover uma Categoria de quarto.

O campo <Baserate> não pode conter nenhum agrupamento de dígitos símbolos, como vírgula (,) ou ponto (.). Sempre separar frações usando um ponto (.) como separador decimal. Por exemplo: representar US $1.200,40 como:

<Baserate currency="USD">1200.40</Baserate>

O elemento <Baserate> usa o seguinte atributos opcionais:

  • all_inclusive: um booleano que indica se essa taxa inclui tributos e taxas. Em geral, defina esse valor como false para usuários finais e valores de fornecimento dos EUA e Canadá para <Tax> e <OtherFees> os elementos. Se você usar preços all-inclusive, talvez não se qualifique aparecer nas listagens se os preços não separarem os impostos e tarifas para usuários canadenses.

    Os preços all-inclusive agora são exibidos para usuários dos EUA.

    Para todos os outros usuários finais, normalmente você inclui impostos e taxas na taxa básica e defina o valor do all_inclusive para true. Para mais informações, consulte Política de tributos e taxas.

    O valor padrão é false.

  • currency: o código da moeda com três letras. Para por exemplo, USD para dólares americanos.
<ChargeCurrency> Optional enum Quando e onde o usuário paga uma reserva. Esse elemento pode ser usado em uma Mensagem de transação no <Result> para o Preço de hotel ou bloco <PackageData> para uma Categoria de quarto.

Os valores válidos são:

  • web: o usuário é cobrado on-line no momento de reserva. Esse é o valor padrão. A página de destino real é definido pelo arquivo da página de destino e podem ser afetadas pela moeda do usuário, local, idioma ou outros fatores.
  • hotel: o usuário é cobrado ao fazer check-in no hotel. Se o pagamento sempre precisar ser feito na moeda do hotel, defina o valor de <ChargeCurrency> para hotel. A página de destino real não é afetada pelo na moeda do usuário.
  • deposit: parte da cobrança é feita imediatamente e o restante é cobrado posteriormente, normalmente quando o usuário faz check-out no hotel.
  • installments: uma fração inicial é cobrada do usuário do total devido e deve pagar rotineiramente um saldo definido ao longo de um período fixo.

O valor padrão é web.

<Checkin> Required Date A data de check-in de um itinerário usando o parâmetro Date . A combinação do elemento <Nights> e do <Checkin> formam um itinerário.
<Custom[1‑5]> Optional string Define um campo personalizado que você pode usar para transmitir dados adicionais. associados a um hotel. Você pode passar até cinco valores personalizados com o seguintes nomes de elementos:
  • <Custom1>
  • <Custom2>
  • <Custom3>
  • <Custom4>
  • <Custom5>

Os elementos <Custom> permitem que você transmita dados arbitrários. Por exemplo, você pode especificar um valor neste campo que será usado pelo arquivo de páginas de destino para criar um URL personalizado para uma página página. Há um limite de 200 caracteres por campo personalizado. Para mais informações, consulte arquivos da página de destino

&lt;Custom&gt; elementos fornecidos no objeto <Rate> não são herdados pelo elemento <RoomBundle>. Você deve defina <Custom> separadamente em cada <RoomBundle>.

<ExpirationTime> Optional DateTime Data e hora em que o preço é considerado expirado (três horas) mínimo).

Recomendamos que você não forneça carimbos de data/hora de expiração se não é essencial para sua estrutura de preços.

O Google não mostra preços expirados nem itinerários. com preço expirado estará qualificado para Consultas de preços em tempo real.

<Nights> Required integer O número de noites de um itinerário. O valor do parâmetro O elemento <Nights> precisa ser um número inteiro positivo. A combinação de <Nights> e <Checkin> formam um itinerário.
<OtherFees> Optional float Taxas diferentes da taxa básica e dos tributos que influenciam o o preço final de um quarto. O elemento <OtherFees> toma um único atributo obrigatório, currency, que define o código da moeda de três letras referente às taxas. Por exemplo, USD.

O elemento <OtherFees> será obrigatório se <Baserate> é maior do que zero.

<Occupancy> Optional integer Especifica o número máximo de ocupantes permitidos para essa taxa. Quando <Occupancy> aparecer diretamente abaixo de <Result>, é necessário especificar 2 ou mais. <Occupancy> pode acompanhado de <OccupancyDetails>, que especifica o tipo de hóspedes (adultos ou crianças). Se os tipos de convidado não forem especificados, eles são considerados adultos. Consulte <OccupancyDetails> para e a descrição dos elementos filhos. Se o O elemento <Occupancy> não foi fornecido, a ocupação é definido como 2.

Observação: entre em contato com a equipe de suporte para ativar o recurso para enviar preços para ocupações além de dois hóspedes.

<PackageID> Optional string O ID exclusivo do pacote para fazer o mapeamento para dados predefinidos. Também usado para preencher a variável da página de destino PACKAGE-ID. Para mais informações, consulte Sala Metadados do pacote.
<Property> Required string O ID de um hotel afetado pelos dados associados (preço, itinerário, Categoria de quarto ou metadados). O valor desse elemento deve ser uma string. O valor desse elemento precisa corresponder à página de detalhes <id> que você definiu no seu feed de lista de hotéis.
<Rates> Optional <Rates> Um contêiner para um ou mais blocos <Rate>. Cada <Rate> pol <Rates> define um preço diferente para o quarto/itinerário combinação.

Use o elemento <Rates> quando houver várias taxas para a mesma combinação de quarto/itinerário ou quando uma tarifa não tem permissão para ser especificado no nível do <Result>. Por exemplo, você define vários taxas para tarifas condicionais, tarifas exclusivas, tarifas condicionais em Categorias de quarto ou em outras ocupações.

Observação: em <Result>, as tarifas de ocupação única podem ser especificado apenas em <Rates>. Entre em contato para permitir valores para ocupações além de dois hóspedes.

<Refundable> Optional Object Permite listar uma tarifa como totalmente reembolsável ou oferecendo um cancelamento. Se não for fornecido, nenhuma informação sobre um reembolso será exibida. Uma política de reembolso no nível do <PackageData> substitui a política de reembolso no no nível da <Result>. Uma política de reembolso no nível do <Rates> substitui a política de reembolso no nível do <PackageData>. Os preços reembolsáveis podem também serão destacados para os usuários por meio de opções alternativas sem modificar seu esquema de mensagens de transação. Saiba mais sobre Política de tarifas reembolsáveis.

O exemplo abaixo mostra o <Refundable> com todos os seus atributos definidos:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

Observação:recomendamos configurar todos os atributos. Um feed de status é gerada quando um ou mais atributos não definido.

Se você não definir atributos, a taxa não será exibida como reembolsável. Os atributos são:

  • available: (obrigatório) definido como 1 (ou true) para indicar se a taxa permite uma refund; caso contrário, defina como 0 (ou false).
  • refundable_until_days: 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.
  • refundable_until_time: altamente recomendado se available é true) Especifica na hora mais recente do dia, no horário local do hotel, em que um de reembolso será cumprida. 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.

    O valor desse atributo usa o formato de hora.

Ao definir os atributos, observe o seguinte:

  • Se available ou refundable_until_days não for 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.
<RoomBundle> Optional <RoomBundle> um contêiner para informações sobre descrições físicas de preços de um quarto, o pacote de comodidades e alguns detalhes da política de compra do itinerário e hotel específicos.

Em geral, use este elemento para definir o preço do quarto base e tipos diferentes de quarto na mesma propriedade. Embora seja possível para definir as descrições de Categoria de quarto in-line, você deverá usar um Mensagem de transação para definir essa informação. O Google vai armazenar metadados para que você possa referenciá-los, em vez de repeti-los, em todo futuras atualizações de preço.

<RoomID> Optional string O código exclusivo do quarto para fazer o mapeamento aos dados predefinidos. Além disso, usada para preencher a variável da página de destino PARTNER-Room-ID. Para mais informações, consulte Sala Metadados do pacote.
<Tax> Optional float Os impostos calculados no preço final de um quarto. O elemento <Tax> recebe um único atributo obrigatório, currency, que define o código da moeda de três letras. para os impostos. Por exemplo, USD. O O elemento <Tax> será obrigatório se <Baserate> é maior do que zero.

Se o atributo <Baserate> "tudo_inclusivo" atributo é definido explicitamente como verdadeiro, definir este é opcional.

<Unavailable> Optional Object Indica que o itinerário não está disponível para reserva. Serve como contêiner para motivos mais detalhados pelos quais o itinerário estava indisponível. Um ou mais dos seguintes motivos de indisponibilidade podem estar aninhados abaixo do Tag <Unavailable>:
  • <NoVacancy/>: não há mais quartos disponíveis para venda para uma ou mais noites.
  • <MinNightStay value=N/>: o itinerário estava abaixo do estadia mínima de N para as datas da estadia.
  • <MaxNightStay value=N/>: o itinerário estava acima do estadia máxima de N para as datas da estadia.
  • <MinAdvancePurchase value=N/>: o itinerário era abaixo da janela mínima de reserva antecipada de N para a estadia datas
  • <MaxAdvancePurchase value=N/>: o itinerário era acima da janela máxima de reserva antecipada de N para a estadia datas
  • <ClosedToArrival/>: a propriedade não permite na data de chegada do itinerário.
  • <ClosedToDeparture/>: a propriedade não permite check-out na data de partida do itinerário.
  • <PropertyClosed first_open="YYYY-MM-DD" first_closed="YYYY-MM-DD"/>: a propriedade está fechada por algumas ou toda a estadia. Atributos recomendados first_open e first_closed especificam as primeiras datas maiores ou iguais a a data de chegada em que a propriedade está aberta ou fechada, respectivamente. Para uma propriedade que fecha após a data de chegada, first_open deve ser igual à data de chegada, e first_closed deve ser igual à data de chegada ser a data em que a propriedade fecha. Para uma propriedade que está fechada em a data de chegada, first_closed precisa ser igual à data de chegada data, e first_opened deve ser a próxima data em que o está aberta.
  • <NotFetched/>: o preço do itinerário não foi fornecidas por fontes de dados downstream.
  • <InvalidProperty/>: o identificador de propriedade solicitado não foi reconhecido.
  • <InvalidOccupancy/>: a ocupação solicitada não é suportado pela propriedade.
  • <PriceIssue/>: um problema com o preço fez com que não enviada.
  • <InternalError reason=""/>: algum erro não numerado o incidente. O atributo de motivo opcional pode informar o erro como texto.
  • <OtherRestriction restriction=""/>: o itinerário era indisponível devido a alguma restrição de reserva não numerada. Opcional atributo de restrição permite informar a restrição como texto.

Exemplos

Exemplo com várias propriedades

O exemplo a seguir define um itinerário e o preço de dois propriedades:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>060773</Property>
    <RoomID>RoomType101</RoomID>
    <PackageID>Package101</PackageID>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">278.33</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <AllowablePointsOfSale>
      <PointOfSale id="site1"/>
    </AllowablePointsOfSale>
  </Result>
  <Result>
    <Property>052213</Property>
    <RoomID>RoomType101</RoomID>
    <PackageID>Package101</PackageID>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">299.98</Baserate>
    <Tax currency="USD">26.42</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <AllowablePointsOfSale>
      <PointOfSale id="otto"/>
      <PointOfSale id="simon"/>
    </AllowablePointsOfSale>
  </Result>
</Transaction>

Os detalhes do quarto não mostrados neste exemplo, como descrição, imagem e legenda, o nome e a capacidade do cômodo.

É possível definir essas informações uma vez em uma transação separada. que o Google armazena. Você pode se referir a ela em todas atualizações subsequentes de preços e inventário. Para mais informações, consulte Metadados de Categoria de quarto.

Exemplo de várias taxas

O exemplo a seguir define um único itinerário e propriedade com várias tarifas para vários ocupações. O elemento <Rates> pode ser usado para fornecer preços com várias taxas para uma propriedade específica. O exemplo a seguir é também é útil para propriedades de aluguel por temporada (VR):

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2021-01-13</Checkin>
    <Nights>9</Nights>
    <Baserate currency="USD">3196.1</Baserate>
    <Tax currency="USD">559.49</Tax>
    <OtherFees currency="USD">543.34</OtherFees>
    <Occupancy>2</Occupancy>
    <Rates>
      <Rate>
        <Baserate currency="USD">3196.1</Baserate>
        <Tax currency="USD">559.49</Tax>
        <OtherFees currency="USD">543.34</OtherFees>
        <Occupancy>1</Occupancy>
      </Rate>
      <Rate>
        <Baserate currency="USD">3196.1</Baserate>
        <Tax currency="USD">559.49</Tax>
        <OtherFees currency="USD">543.34</OtherFees>
        <Occupancy>3</Occupancy>
      </Rate>
      <Rate>
        <Baserate currency="USD">3196.1</Baserate>
        <Tax currency="USD">559.49</Tax>
        <OtherFees currency="USD">543.34</OtherFees>
        <Occupancy>4</Occupancy>
      </Rate>
      <Rate>
        <Baserate currency="USD">3196.1</Baserate>
        <Tax currency="USD">559.49</Tax>
        <OtherFees currency="USD">543.34</OtherFees>
        <Occupancy>5</Occupancy>
      </Rate>
      <Rate>
        <Baserate currency="USD">3196.1</Baserate>
        <Tax currency="USD">559.49</Tax>
        <OtherFees currency="USD">543.34</OtherFees>
        <Occupancy>6</Occupancy>
      </Rate>
    </Rates>
  </Result>
</Transaction>

Exemplo indisponível

O exemplo a seguir define um itinerário cuja disponibilidade não pôde ser recuperados de canais downstream, um segundo que esteja abaixo do valor e já estiver reservada para as datas especificadas, e uma terceira cuja está fechada na data de chegada, mas ela abre durante a estadia:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>060773</Property>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Unavailable>
      <NotFetched/>
    </Unavailable>
  </Result>
  <Result>
    <Property>073313</Property>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Unavailable>
      <NoVacancy/>
      <MinNightStay value=3/>
    </Unavailable>
  </Result>
  <Result>
    <Property>052213</Property>
    <Checkin>2018-06-10</Checkin>
    <Nights>10</Nights>
    <Unavailable>
      <PropertyClosed first_open="2018-06-15" first_closed="2018-06-10"/>
    </Unavailable>
  </Result>
</Transaction>

<Rates>

Um contêiner para um ou mais blocos <Rate>. Cada <Rate> pol O <Rates> define um preço diferente para a combinação de quarto ou itinerário.

Use o elemento <Rates> somente quando houver várias taxas para a mesma combinação de quarto ou itinerário. Por exemplo, você define vários tarifas para tarifas condicionais, tarifas exclusivas, ou Tarifas condicionais em Categorias de quarto.

O elemento <Rates> aparece no seguinte local na Hierarquia XML de mensagens de transação:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>         // Pricing and availability
        + <Rates>
        + <RoomBundle> (Can also contain <Rates>)
        + ...

Os valores definidos em um <Rate> substituem os valores relacionados ao preço no elemento pai <Result> ou <RoomBundle>. Se eles não estiverem definidos no <Rate>, eles herdam o valor do elemento pai. Somente &lt;AllowablePointsofSale&gt; é herdado para o elemento <RoomBundle>.

Sintaxe

O elemento <Rates> usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <Result>
    <Rates>
      <Rate rate_rule_id="rate_rule_id">
        <Baserate currency="currency_code">price</Baserate>
        <Tax currency="currency_code">tax_amount</Tax>
        <OtherFees currency="currency_code">fee_amount</OtherFees>
        <ExpirationTime>expiration_time</ExpirationTime>
        <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
        <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
        <AllowablePointsOfSale>
          <PointOfSale id="landing_page_identifier"/>
        </AllowablePointsOfSale>
        <Occupancy>max_number_of_intended_occupants</Occupancy>
        <OccupancyDetails> <!-- optional info about the types of guests,
      whether adults or children --></OccupancyDetails>
          ...
        <Custom[1-5]>custom_value</Custom[1-5]>
      </Rate>
      ...
    </Rates>
  </Result>
  ...
</Transaction>

Atributos

O elemento <Rates> tem os seguintes atributos:

Atributo Obrigatório? Descrição
rate_rule_id Optional Para tarifas condicionais, esse ID faz a correspondência entre uma tarifa e uma definição na sua Arquivo de definição de regra de tarifação. O limite de caracteres deste campo é de 40 caracteres.

Elementos filhos

O elemento <Rates> tem os seguintes elementos filhos:

Elemento filho Obrigatório? Tipo Descrição
<AllowablePointsOfSale> Optional Object Uma ou mais páginas de destino qualificadas para o hotel. Esse elemento usa a mesma sintaxe que o <AllowablePointsOfSale> no <Result>.
<Baserate> Required float O preço do quarto para a estadia. Esse elemento usa a mesma Sintaxe como a <Baserate> em <Result>.

Observação:o elemento filho <Baserate> em Não é possível definir <Rate> como indisponível.

<ChargeCurrency> Optional enum Quando e onde o usuário paga uma reserva. Esse elemento usa o mesma sintaxe que uma <ChargeCurrency> em um <Result>.
<Custom[1‑5]> Optional string Campos personalizados que você pode usar para transmitir dados adicionais associados a de um hotel a uma página de destino. Esse elemento usa a mesma sintaxe de um <Custom[1‑5]> em um <Result>. Há um limite de 200 caracteres por campo personalizado. Para mais informações, consulte arquivos da página de destino.

Se <Custom> elementos são fornecidos no <Result>, eles não serão herdados na elemento <RoomBundle> e devem ser definidos separadamente para cada <RoomBundle> ou pode ser incluído em <PackageData> se necessários.

<ExpirationTime> Optional DateTime A data e a hora em que a taxa é considerada expirada. Isso usa a mesma sintaxe de um <ExpirationTime> em um <Result>.
<Occupancy> Optional integer

Especifica o número máximo de ocupantes permitidos para essa taxa. Caso contrário especificada, presume-se que seja igual à taxa pai. <Occupancy> pode estar acompanhado por <OccupancyDetails>, que especifica o tipo de hóspedes (adultos ou filhos). Consulte <OccupancyDetails> para conferir a sintaxe e a descrição de elementos filhos.

<OtherFees> Required float Taxas diferentes da taxa básica e dos tributos que influenciam o preço final de uma sala. Esse elemento usa a mesma sintaxe que <OtherFees> em um <Result>.

Se o atributo <Baserate> "tudo_inclusivo" atributo é definido explicitamente como verdadeiro, definir este é opcional.

<Refundable> Optional Object Permite listar uma tarifa como totalmente reembolsável ou oferecendo um cancelamento. Se não for fornecido, nenhuma informação sobre um reembolso será exibida. Uma política de reembolso no nível do <PackageData> substitui a política de reembolso no nível do <Result>. Uma política de reembolso no nível do <Rates> substitui a política de reembolso no nível do <PackageData>. Os preços reembolsáveis podem também serão destacados para os usuários por meio de opções alternativas sem modificar seu esquema de mensagens de transação. Saiba mais sobre essas opções Política de tarifas reembolsáveis.

O exemplo abaixo mostra o <Refundable> com todos os seus atributos definidos:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

Observação:recomendamos configurar todos os atributos. Um feed de status é gerada quando um ou mais atributos não definido.

Se você não definir atributos, a taxa não será exibida como reembolsável. Os atributos são:

  • available: (obrigatório) definido como 1 (ou true) para indicar se a taxa permite uma refund; caso contrário, defina como 0 (ou false).
  • refundable_until_days: 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.
  • refundable_until_time: altamente recomendado se available é true) Especifica na hora mais recente do dia, no horário local do hotel, em que um de reembolso será cumprida. 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.

    O valor desse atributo usa o formato de hora.

Ao definir os atributos, observe o seguinte:

  • Se available ou refundable_until_days não for 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.
<Tax> Required float Os impostos calculados no preço final de um quarto. Isso usa a mesma sintaxe de um <Tax> em um <Result>.

Exemplos

Taxa básica e condicional

O exemplo a seguir mostra uma Mensagem de transação que contém uma taxa básica e uma tarifa condicional:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>1</Nights>

    <Baserate currency="USD">200.00</Baserate>
    <Tax currency="USD">20.00</Tax>
    <OtherFees currency="USD">1.00</OtherFees>

    <Rates>
      <!-- The rate_rule_id is required when using conditional rates -->
      <Rate rate_rule_id="mobile">
        <!-- Override base rate and taxes for conditional rates -->
        <Baserate currency="USD">180.00</Baserate>
        <Tax currency="USD">18.00</Tax>
        <!-- NOTE: OtherFees is inherited from the above setting -->
        <Custom1>ratecode123</Custom1>
      </Rate>
    </Rates>

  </Result>
</Transaction>

Várias tarifas condicionais

O exemplo a seguir define uma tarifa básica e várias tarifas condicionais em um <RoomBundle>:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>2</Nights>
    <!-- When Google receives new room bundle information for an itinerary, all
    previous room bundle pricing is dropped from Google's cache. Thus, if you
    want to delete a specific room bundle from Google's cache, you may do so
    by simply not providing that specific room bundle in subsequent transaction
    messages. -->
    <RoomBundle>
     ...
      <!-- RoomID is required, PackageID is recommended. -->
      <RoomID>5</RoomID>
      <PackageID>ABC</PackageID>
      <!-- Baserate is required. -->
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</Tax>
      <OtherFees currency="USD">2.00</OtherFees>

      <!-- RatePlanID is optional and represents the unique identifier for a
      room and package data combination. We strongly recommend using RatePlanID
      as a variable to build your dynamic landing page (formerly Point of Sale)
      URL. For details, see Using Variables and Conditions. -->
      <RatePlanID>5-ABC</RatePlanID>

      <!-- Occupancy is mandatory for RoomBundle elements. -->
      <!-- Elements below will get inherited to nested rate elements. -->
      <Occupancy>2</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
      </OccupancyDetails>
      <InternetIncluded>1</InternetIncluded>


      <!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
      <ChargeCurrency>web</ChargeCurrency>
      <Custom1>ratebasic</Custom1>
      <!-- Neither rate overrides Custom2. -->
      <Custom2>ratebasic</Custom2>

      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">258.33</Baserate>
          <Tax currency="USD">25.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <!-- The value below overrides ChargeCurrency from roombundle. -->
          <ChargeCurrency>hotel</ChargeCurrency>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode321</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </Rate>
        <Rate rate_rule_id="us_or_gb">
          <Baserate currency="USD">268.33</Baserate>
          <Tax currency="USD">26.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode432</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

<RoomBundle>

Define o preço e a disponibilidade para Categorias de quarto como um filho de <Result> em uma mensagem <Transaction>. Defina um elemento separado para cada pacote ou itinerário. Para definir o pacote e os termos do Categorias de quarto, use <RoomData>.

O elemento <RoomBundle> aparece no seguinte local na Hierarquia XML de mensagens de transação:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

Para mais informações, consulte Como usar Categorias de quarto.

Sintaxe

O elemento <RoomBundle> usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <Result>
    ...
    <RoomBundle>
      <!-- Required unless specified inline under <RoomData> -->
      <RoomID>room_ID</RoomID>
      <!-- Required  <PackageData> -->
      <PackageID>package_ID</PackageID>

      <!-- Required -->
      <Baserate currency="currency_code">price</Baserate>
      <!-- Required -->
      <Tax currency="currency_code">taxes</Tax>
      <!-- Required -->
      <OtherFees currency="currency_code">other_fees</OtherFees>

      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <!-- Required -->
      <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
      <Occupancy>max_number_of_intended_occupants</Occupancy>
      <OccupancyDetails> <!-- optional info about the types of guests,
      whether adults or children --></OccupancyDetails>

      <BreakfastIncluded>boolean_value</BreakfastIncluded>
      <InternetIncluded>boolean_value</InternetIncluded>
      <ParkingIncluded>boolean_value</ParkingIncluded>

      <RatePlanID>rate_plan_ID</RatePlanID>

      <Rates>...</Rates>

      <Custom1>custom_value_1</Custom1>
      <Custom2>custom_value_2</Custom2>
      <Custom3>custom_value_3</Custom3>
      <Custom4>custom_value_4</Custom4>
      <Custom5>custom_value_5</Custom5>
    </RoomBundle>
    ...
  </Result>
</Transaction>

Atributos

O elemento <RoomBundle> não tem atributos.

Elementos filhos

O elemento <RoomBundle> tem os seguintes elementos filhos:

Elemento filho Obrigatório? Tipo Descrição
<Baserate> Required float Define o preço da Categoria de quarto para a estadia. Esse elemento usa a mesma sintaxe que <Baserate> em <Result>, com o a seguir:
  • Quando o quarto não estiver disponível para o itinerário, remova o Elemento <RoomBundle> para indicar que uma sala não está por mais tempo no inventário. Para mais informações, consulte Como remover uma Categoria de quarto.
<BreakfastIncluded> Optional boolean Especifica se esta Categoria de quarto inclui café da manhã com a tarifa.
<ChargeCurrency> Optional enum Quando e onde o usuário paga uma reserva. Esse elemento usa a mesma a sintaxe como <ChargeCurrency> em uma <Result>.

O valor padrão é web.

<Custom[1‑5]> Optional string Campos personalizados para transmitir dados adicionais às páginas de destino para a Categoria de quarto. Esses elementos usam a mesma sintaxe que <Custom[1-5]> em <Result>. Há um limite de 200 caracteres por campo personalizado. Para mais informações, consulte arquivos da página de destino.

Se <Custom> elementos são fornecidos no <Result>, eles não serão herdados na elemento <RoomBundle> e devem ser definidos separadamente para cada <RoomBundle> ou pode ser incluído em <PackageData> se necessários.

<InternetIncluded> Optional boolean Se uma Categoria de quarto incluir acesso à Internet sem custo: enquanto outros pacotes não incluem essa comodidade. Não definir elemento para Categorias de quarto em um hotel que oferece Internet gratuita a todos salas Este elemento não se aplica à Internet com ou sem fio na sala Internet que não está disponível nos quartos de hóspedes.
<Occupancy> Required integer Especifica o número máximo de ocupantes permitidos para essa taxa. Por exemplo, suíte grande pode acomodar fisicamente seis hóspedes, mas "Pacote lua de mel" permite apenas 2 hóspedes.

Este valor deve ser menor ou igual ao <Capacity>, que é o número de pessoas que que o quarto pode acomodar fisicamente.

Ao definir a ocupação no URL da sua página de destino, use o variáveis NUM-ADULTS e NUM-CHILDREN, conforme descritas em Usar Variáveis e condições. O valor padrão é 2. adultos e 0 crianças.

O valor de <Occupancy> precisa ser positivo número inteiro entre 1 e 99, inclusive.

Observações:

  • <Occupancy> para <RoomBundle> é altamente recomendado, portanto, sinalizado como obrigatório e, se omitido, gerar um erro 1097.
  • A <Occupancy> vem do objeto de dados neste pedido: <RoomBundle>, <PackageData> e depois = <RoomData>. Se nenhum valor estiver presente, o valor padrão será 2.
  • <Occupancy> pode estar acompanhado por <OccupancyDetails>, que especifica o tipo de hóspedes (adultos ou crianças). Se o convidado digitar não forem especificados, eles serão considerados adultos. Consultoria <OccupancyDetails> para sintaxe e descrição dos elementos filhos.
  • Quando você define <Occupancy> em ambos <RoomBundle> e <PackageData>, o valor em <RoomBundle> tem prioridade.
<OtherFees> Required float Taxas diferentes da taxa básica e dos tributos que influenciam o o preço final de um quarto. O elemento <OtherFees> toma um único atributo obrigatório, currency, que define o código da moeda de três letras referente às taxas. Por exemplo, use USD para dólares americanos.
<PackageID> Optional (recommended) string O ID exclusivo dos dados do pacote. Use esse ID para corresponder Dados de Categoria de quarto com o que foi enviado em <PackageData>. Para mais informações, consulte Sala Metadados do pacote. (Você também pode usar esse ID para fazer referência a uma definição comum de Categoria de quarto usada em uma única Mensagem de transação ao definir os dados de Categoria de quarto inline.)
<ParkingIncluded> Optional boolean Se uma Categoria de quarto inclui estacionamento gratuito, em que o estacionamento seria um serviço pago neste hotel. Não especificar um valor para este elemento para um hotel que oferece estacionamento gratuito.

Os valores válidos são 0 (ou false) e 1 (ou true). O valor padrão é false.

<RatePlanID> Optional string O ID do plano de tarifação representa o identificador exclusivo de um combinação de quarto e pacote. Por exemplo, considerando <RoomID> com o valor 5 e a <PackageID> de ABC, você poderia usar um valor de 5-ABC para <RatePlanID>. É altamente recomendável usar RatePlanID como uma variável para criar sua página de destino dinâmica (antigo Ponto de venda).

Para mais informações, consulte O uso de variáveis e Condições.

<Rates> Optional <Rates> Tarifas que substituem os padrões para esta Categoria de quarto. Isso usa a mesma sintaxe de <Rates> em <Result>.
<Refundable> Optional Object Permite listar uma tarifa como totalmente reembolsável ou oferecendo um cancelamento. Se não for fornecido, nenhuma informação sobre um reembolso será exibida. Uma política de reembolso no nível do <PackageData> substitui a política de reembolso no no nível da <Result>. Uma política de reembolso no nível do <Rates> substitui a política de reembolso no nível do <PackageData>. Os preços reembolsáveis podem também serão destacados para os usuários por meio de opções alternativas sem modificar seu esquema de mensagens de transação. Saiba mais sobre essas opções Política de tarifas reembolsáveis.

O exemplo abaixo mostra o <Refundable> com todos os seus atributos definidos:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

Observação:recomendamos configurar todos os atributos. Um feed de status é gerada quando um ou mais atributos não definido.

Se você não definir atributos, a taxa não será exibida como reembolsável. Os atributos são:

  • available: (obrigatório) definido como 1 (ou true) para indicar se a taxa permite uma refund; caso contrário, defina como 0 (ou false).
  • refundable_until_days: 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.
  • refundable_until_time: altamente recomendado se available é true) Especifica na hora mais recente do dia, no horário local do hotel, em que um de reembolso será cumprida. 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.

    O valor desse atributo usa o formato de hora.

Ao definir os atributos, observe o seguinte:

  • Se available ou refundable_until_days 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.
<RoomID> Required string O código exclusivo dos dados do quarto. Use esse ID para corresponder Dados de Categoria de quarto com o que você enviou em <RoomData>. Para mais informações, consulte Metadados de Categoria de quarto. Você também pode usar esse ID para se referir a uma definição de sala comum em uma única Mensagem de transação ao definir dados do quarto inline.
<Tax> Required float Os impostos calculados no preço final de um quarto. O elemento <Tax> recebe um único atributo obrigatório, currency, que define o código da moeda de três letras. para os impostos. Por exemplo, use USD para dólares americanos.

Exemplos

Pacote para ocupação única

O exemplo a seguir define uma resposta com um único pacote de ocupação. Quando um usuário seleciona 1 no seletor de ocupação, o Google mostra a menor preço válido, independentemente da ocupação.

Se um preço de ocupação única não estiver disponível, o Google vai mostrar o menor preço para dois hóspedes. Os preços para ocupação única não são consultado em tempo real se uma ocupação dupla ou mais preços forem armazenados em cache por um itinerário.

Este exemplo faz referência a metadados predefinidos de quartos e pacotes com o Elementos <RoomID> e <PackageID>. Use as APIs <RoomData> e <PackageData> para definir essas informações.

<!-- Efficient method of defining Room Bundles-->
<!----- Occupancy of 1 example ----->

<Transaction timestamp="2017-07-18T16:20:00-04:00" id="12345678">
  <!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
  <!-- Note:  Once defined it does not have to be repeated for future
              Transaction Messages.
              PropertyDataSets can also be defined and sent in their own
              Transaction Message separately from pricing. Google can be
              configured to pull just PropertyDataSets once per day
              (or on a predefined frequency). -->
  <PropertyDataSet>
    <Property>180054</Property>
    <!-- Can be reused by multiple Room Bundles -->
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Queen Room - Non-Smoking" language="en"/>
        <Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate up to 4, but package data specifies occupancy
           between 1 to 4 -->
      <Capacity>4</Capacity>
    </RoomData>
    <RoomData>
      <RoomID>436233</RoomID>
      <Name>
        <Text text="Premium King Room - Non-Smoking" language="en"/>
        <Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <Capacity>4</Capacity>
    </RoomData>
    <!-- Can be reused by multiple Room Bundles -->
    <PackageData>
      <PackageID>P11111</PackageID>
      <Occupancy>1</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="7"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
    <PackageData>
      <PackageID>P54321</PackageID>
      <Occupancy>2</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="7"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
    <PackageData>
      <PackageID>P12345</PackageID>
      <Occupancy>4</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="1"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
  </PropertyDataSet>

    <!-- Efficient method of defining Room Bundles -->
    <!-- Part 2: Reference RoomData and PackageData through ID -->
  <Result>
    <!-- Single occupancy pricing will be specified in a room bundle below -->
    <Property>180054</Property>
    <Checkin>2017-10-07</Checkin>
    <Nights>2</Nights>
    <!-- Base Room Bundle -->
    <RoomBundle>
      <RoomID>060773</RoomID>
      <PackageID>P54321</PackageID>
      <Baserate currency="USD">199.99</Baserate>
      <Tax currency="USD">25.12</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <RatePlanID>060773-P54321</RatePlanID>
    </RoomBundle>
    <RoomBundle>
      <RoomID>060773</RoomID>
      <PackageID>P11111</PackageID>
      <!-- Price for 1 ("occupancy") is the lowest price and will be
           displayed -->
      <Baserate currency="USD">174.99</Baserate>
      <Tax currency="USD">22.08</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <RatePlanID>060773-P11111</RatePlanID>
    </RoomBundle>
    <!-- Premium Room Bundle -->
    <RoomBundle>
      <RoomID>436233</RoomID>
      <PackageID>P12345</PackageID>
      <!-- Price for 4 ("occupancy"), any eligible room bundle with 1 or more
           occupancy will be displayed-->
      <Baserate currency="USD">298.88</Baserate>
      <Tax currency="USD">42.12</Tax>
      <OtherFees currency="USD">10.00</OtherFees>
      <RatePlanID>436233-P12345</RatePlanID>
    </RoomBundle>
    <!-- ..Continue providing all available RoomBundle rates under matched
         property for 1 or more occupancies..-->
  </Result>
</Transaction>


Duas ou mais ocupações

O exemplo a seguir define uma resposta que contém duas ou mais ocupações.

Este exemplo faz referência a metadados predefinidos de quartos e pacotes com o Elementos <RoomID> e <PackageID>. Use as APIs <RoomData> e <PackageData> para definir essas informações.

<!-- Efficient method of defining Room Bundles-->
<!----- Occupancy of 3 example ----->

<Transaction timestamp="2017-07-18T16:20:00-04:00" id="12345678">
  <!-- Efficient method of defining Room Bundles-->
  <!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
  <PropertyDataSet>
    <Property>180054</Property>
    <!-- Can be reused by multiple Room Bundles -->
    <RoomData>
      <RoomID>060773</RoomID>
      <Name>
        <Text text="Single Queen Room - Non-Smoking" language="en"/>
        <Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <!-- Room can accommodate up to 4, but package data specifies occupancy
           between 1 to 4 -->
      <Capacity>4</Capacity>
    </RoomData>
    <RoomData>
      <RoomID>436233</RoomID>
      <Name>
        <Text text="Premium King Room - Non-Smoking" language="en"/>
        <Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
      </Name>
      <Capacity>4</Capacity>
    </RoomData>
    <!-- Can be reused by multiple Room Bundles -->
    <PackageData>
      <PackageID>P33333</PackageID>
      <Occupancy>3</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="7"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
    <PackageData>
      <PackageID>P12345</PackageID>
      <Occupancy>4</Occupancy>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="1" refundable_until_days="1"
           refundable_until_time="18:00:00"/>
      <ParkingIncluded>1</ParkingIncluded>
      <InternetIncluded>1</InternetIncluded>
    </PackageData>
  </PropertyDataSet>

  <Result>
    <Property>180054</Property>
    <Checkin>2017-10-07</Checkin>
    <Nights>2</Nights>
    <!-- Efficient method of defining Room Bundles -->
    <!-- Part 2: Reference RoomData and PackageData through ID -->
    <!-- Base Room Bundle -->
    <RoomBundle>
      <!-- Baserate above and attributes must match atleast one room bundle
           below -->
      <RoomID>060773</RoomID>
      <PackageID>P33333</PackageID>
      <Baserate currency="USD">499.99</Baserate>
      <Tax currency="USD">55.12</Tax>
      <OtherFees currency="USD">22.00</OtherFees>
    </RoomBundle>
    <!-- Premium Room Bundle -->
    <RoomBundle>
      <RoomID>436233</RoomID>
      <PackageID>P12345</PackageID>
      <!-- Lowest price for 3 ("occupancy"), shown below, will be displayed -->
      <Baserate currency="USD">598.88</Baserate>
      <Tax currency="USD">62.12</Tax>
      <OtherFees currency="USD">30.00</OtherFees>
    </RoomBundle>
    <!-- ..Continue providing all available RoomBundle rates under matched
         property for 2 or more occupancies..-->
  </Result>
</Transaction>


Várias categorias de quarto

O exemplo a seguir define a ocupação em várias categorias de quarto para demonstrar possíveis preços de quartos de hostels.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <Result>
    ...
    <!-- Suite Room Bundle -->
    <RoomBundle>
      <RoomID>suite1</RoomID>
      <PackageID>standard</PackageID>
      <Occupancy>2</Occupancy>
      <!-- Price for room -->
      <Baserate currency="USD">80.00</Baserate>
      <Tax currency="USD">5.12</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <RoomData>
        <Name>
          <Text text="Suite for 2" language="en"/>
        </Name>
      </RoomData>
    </RoomBundle>

    <!-- Small Dorm Room Bundle -->
    <RoomBundle>
      <RoomID>small_dorm</RoomID>
      <PackageID>economy</PackageID>
      <Occupancy>1</Occupancy>
      <!-- Price per bed -->
      <Baserate currency="USD">35.00</Baserate>
      <Tax currency="USD">3.50</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <RoomData>
        <Name>
          <Text text="1 bed in small dorm" language="en"/>
        </Name>
      </RoomData>
    </RoomBundle>

    <!-- Large Dorm Room Bundle -->
    <RoomBundle>
      <RoomID>large_dorm</RoomID>
      <PackageID>economy</PackageID>
      <Occupancy>1</Occupancy>
      <!-- Price per bed -->
      <Baserate currency="USD">20.00</Baserate>
      <Tax currency="USD">2.50</Tax>
      <OtherFees currency="USD">2.00</OtherFees>
      <RoomData>
        <Name>
          <Text text="1 bed in large dorm" language="en"/>
        </Name>
      </RoomData>
    </RoomBundle>
    ...
  </Result>
</Transaction>

Várias tarifas condicionais

O exemplo a seguir define uma tarifa básica e várias tarifas condicionais em um <RoomBundle>:

<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2023-04-10</Checkin>
    <Nights>2</Nights>
    <!-- When Google receives new room bundle information for an itinerary, all
    previous room bundle pricing is dropped from Google's cache. Thus, if you
    want to delete a specific room bundle from Google's cache, you may do so
    by simply not providing that specific room bundle in subsequent transaction
    messages. -->
    <RoomBundle>
     ...
      <!-- RoomID is required, PackageID is recommended. -->
      <RoomID>5</RoomID>
      <PackageID>ABC</PackageID>
      <!-- Baserate is required. -->
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</Tax>
      <OtherFees currency="USD">2.00</OtherFees>

      <!-- RatePlanID is optional and represents the unique identifier for a
      room and package data combination. We strongly recommend using RatePlanID
      as a variable to build your dynamic landing page (formerly Point of Sale)
      URL. For details, see Using Variables and Conditions. -->
      <RatePlanID>5-ABC</RatePlanID>

      <!-- Occupancy is mandatory for RoomBundle elements. -->
      <!-- Elements below will get inherited to nested rate elements. -->
      <Occupancy>2</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
      </OccupancyDetails>
      <InternetIncluded>1</InternetIncluded>


      <!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
      <ChargeCurrency>web</ChargeCurrency>
      <Custom1>ratebasic</Custom1>
      <!-- Neither rate overrides Custom2. -->
      <Custom2>ratebasic</Custom2>

      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">258.33</Baserate>
          <Tax currency="USD">25.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <!-- The value below overrides ChargeCurrency from roombundle. -->
          <ChargeCurrency>hotel</ChargeCurrency>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode321</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </Rate>
        <Rate rate_rule_id="us_or_gb">
          <Baserate currency="USD">268.33</Baserate>
          <Tax currency="USD">26.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <!-- The value below overrides Custom1 from roombundle. -->
          <Custom1>ratecode432</Custom1>
          <!-- Custom2 is inherited from roombundle. -->
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>

<OccupancyDetails>

<Occupancy> em uma mensagem de transação especifica o número máximo de convidados. para um quarto ou pacote. <OccupancyDetails> pode conter informações adicionais como o número e o tipo de hóspedes (adultos ou crianças).

Quando <Occupancy> e <OccupancyDetails> aparecem no elemento <Rates> de <Result> ou <RoomBundle>, isso significa que a taxa está limitada os detalhes da ocupação.

Sintaxe

Quando <OccupancyDetails> aparece, é sempre precedido por <Occupancy>. Observe a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
  <Result>
  ...
    <Occupancy>max_number_of_intended_occupants</Occupancy>
    <OccupancyDetails>
      <NumAdults>number_of_adults</NumAdults>
      <Children>
        <Child age=age_of_one_child_guest/>
        <Child age=age_of_one_child_guest/>
      </Children>
    </OccupancyDetails>
  </Result>
</Transaction>

Elementos filhos

O elemento <OccupancyDetails> tem os seguintes elementos filhos:

Elemento filho Obrigatório? Tipo Descrição
<NumAdults> Required integer O número de hóspedes adultos. Mín.: 1, Máx.: 20.
<Children> Optional Object Um contêiner para um ou mais elementos <Child>.
<Child age> Optional integer A idade máxima da criança. Por exemplo, <Child age="17">.

Exemplos

Os exemplos a seguir mostram como <OccupancyDetails> pode aparecer em <Results>, <RoomBundle> ou o elemento filho <Rates>.

Resposta do resultado

O exemplo a seguir define um itinerário e os preços dele para um propriedade em resposta a uma consulta de preço em tempo real em que o usuário especificou número e tipos de hóspedes. Aqui, a <OccupancyDetails>: 2 adultos e um filho são retornadas em <Result>.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>060773</Property>
    <RoomID>RoomType101</RoomID>
    <PackageID>Package101</PackageID>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">278.33</Baserate>
    <Tax currency="USD">25.12</Tax>
    <OtherFees currency="USD">2.00</OtherFees>
    <AllowablePointsOfSale>
      <PointOfSale id="site1"/>
    </AllowablePointsOfSale>
    <Occupancy>3</Occupancy>
    <OccupancyDetails>
      <NumAdults>2</NumAdults>
      <Children>
        <Child age="17"/>
      </Children>
    </OccupancyDetails>
  </Result>
</Transaction>

Avaliações de resposta

O exemplo a seguir define um itinerário e os preços dele para 1 adulto e 1 criança. Aqui, as <OccupancyDetails> são retornadas no <Rates>. de <Result>.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Transaction id="Wtdj8QoQIWcAAbaTGlIAAAC4" timestamp="2018-04-18T11:27:45-04:00">
  <Result>
    <Property>8251</Property>
    <Checkin>2018-06-20</Checkin>
    <Nights>1</Nights>
    <Baserate currency="USD">62.18</Baserate>
    <Tax currency="USD">2.45</Tax>
    <OtherFees currency="USD">0.00</OtherFees>
    <Rates>
      <Rate rate_rule_id="rule-951">
        <Occupancy>2</Occupancy>
        <OccupancyDetails>
          <NumAdults>1</NumAdults>
          <Children>
            <Child age="17"/>
          </Children>
        </OccupancyDetails>
        <Baserate currency="USD">42.61</Baserate>
        <Tax currency="USD">5.70</Tax>
        <OtherFees currency="USD">0.00</OtherFees>
        <Custom1>abc4</Custom1>
        <AllowablePointsOfSale>
          <PointOfSale id="yourhotelpartnersite.com"/>
        </AllowablePointsOfSale>
      </Rate>
    </Rates>
  </Result>
</Transaction>

Categoria de quarto

O exemplo a seguir define uma ocupação de 2 adultos e 1 criança para duas noites, com uma tarifa reembolsável. Aqui, os <OccupancyDetails> aparecem dentro de <RoomBundle>

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
  <Result>
    <Property>6781291</Property>
    <Checkin>2017-08-05</Checkin>
    <Nights>2</Nights>
    ...
    <RoomBundle>
      <RoomID>10291</RoomID>
      <RatePlanID>564739</RatePlanID>
      <PackageID>564739</PackageID>
      <Occupancy>3</Occupancy>
      <OccupancyDetails>
        <NumAdults>2</NumAdults>
        <Children>
          <Child age="17"/>
        </Children>
      </OccupancyDetails>
      <ChargeCurrency>web</ChargeCurrency>
      <Refundable available="true" refundable_until_days="1" refundable_until_time="23:59:00" />
      <Baserate currency="USD">185.34</Baserate>
      <Tax currency="USD">37.06</Tax>
      <OtherFees currency="USD">2.22</OtherFees>
    </RoomBundle>
  </Result>
</Transaction>

Várias categorias de quarto

O exemplo a seguir define várias tarifas de <RoomBundle> que estão é restrito a uma ocupação de 2 adultos e 2 crianças. Aqui, <OccupancyDetails> aparecem no elemento <Rates> de <RoomBundle>.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <Result>
    <Property>1234</Property>
    <Checkin>2018-06-10</Checkin>
    <Nights>2</Nights>
    <Baserate currency="USD">275.00</Baserate>
    <Tax currency="USD">27.50</Tax>
    <OtherFees currency="USD">0</OtherFees>
    <RoomBundle>
      <RoomID>5</RoomID>
      <PackageID>STD</PackageID>
      <Baserate currency="USD">275.00</Baserate>
      <Tax currency="USD">27.50</Tax>
      <OtherFees currency="USD">0</OtherFees>
      <InternetIncluded>1</InternetIncluded>
      <ChargeCurrency>web</ChargeCurrency>
      <Custom1>ratebasic</Custom1>
      <Custom2>ratebasic</Custom2>
      <Occupancy>4</Occupancy>
      <OccupancyDetails>
          <NumAdults>2</NumAdults>
          <Children>
              <Child age="17"/>
              <Child age="17"/>
          </Children>
      </OccupancyDetails>
      <Rates>
        <Rate rate_rule_id="mobile">
          <Baserate currency="USD">258.33</Baserate>
          <Tax currency="USD">25.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <ChargeCurrency>hotel</ChargeCurrency>
          <Custom1>ratecode321</Custom1>
        </Rate>
        <Rate rate_rule_id="us_or_gb">
          <Baserate currency="USD">268.33</Baserate>
          <Tax currency="USD">26.83</Tax>
          <OtherFees currency="USD">1.00</OtherFees>
          <Custom1>ratecode432</Custom1>
        </Rate>
      </Rates>
    </RoomBundle>
  </Result>
</Transaction>