Transação (dados da propriedade)

Solicitações

Sintaxe

A mensagem Transaction (Property Data) usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
             id="message_ID"
             partner="partner_key">
  <PropertyDataSet action="[overlay|delta]">
    <!-- (Required) ID that matches the Hotel List Feed -->
    <Property>HotelID</Property>
    <RoomData>
      <!-- (Required) One room ID per RoomData element -->
      <RoomID>RoomID</RoomID>
      <Name>
        <Text text="room_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="room_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the rate plans allowed for this room type to
        those listed here. If specified, don't specify AllowableRoomIDs. -->
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID</AllowablePackageID>
      </AllowablePackageIDs>
      <Capacity>max_number_of_occupants</Capacity>
      <AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
      <ChildCapacity>max_number_of_child_occupants</ChildCapacity>
      <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>
        <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
        <Beds>
           <Bed size="[single|semi_double|double|queen|king]">
             <Width unit="cm" number="bed_width"/>
             <Length unit="cm" number="bed_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>
    <PackageData>
      <!-- (Required) One package ID per PackageData element -->
      <PackageID>PackageID</PackageID>
      <Name>
        <Text text="package_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="package_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the room types allowed for this rate plan to
        those listed here. If specified, don't specify AllowablePackageIDs. -->
      <AllowableRoomIDs>
        <AllowableRoomID>RoomID</AllowableRoomID>
      </AllowableRoomIDs>
      <!-- Add Loyalty point information -->
      <MilesIncluded>
        <LoyaltyCampaignID>campaign-ID</LoyaltyCampaignID>
        <!-- (Optional) Use <NumberOfMiles> if the rate plan earns fixed loyalty rewards-->
        <NumberOfMiles>integer</NumberOfMiles>
      </MilesIncluded>
      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <!-- 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>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Elementos e atributos

A mensagem "Transação (dados da propriedade)" tem os seguintes elementos e atributos:

Elemento / @Attribute Ocorrências Tipo Descrição
Transaction 1 Complex element Em uma implementação do ARI, esse é o elemento raiz de uma mensagem que define tipos de quarto e pacotes para uma única propriedade.
Transaction / @timestamp 1 DateTime A data e a hora de criação desta mensagem.
Transaction / @id 1 string Um identificador exclusivo para esta mensagem de solicitação. Esse valor é retornado na mensagem de resposta. Os caracteres permitidos são a-z, A-Z, 0-9, _ (sublinhado) e - (traço).
Transaction / @partner 1 string A conta do parceiro para esta mensagem. Esse valor de string é a "Chave do parceiro" listada na página "Configurações da conta" da Central para Hotéis.

Observação:se você tiver um back-end que forneça feeds para várias contas, esse valor precisará corresponder ao valor do atributo ID especificado no elemento <RequestorID> das mensagens <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ> da mesma conta.

Transaction / PropertyDataSet 1.. PropertyDataSet Um contêiner para definir tipos de quartos e pacotes para uma única propriedade.

Recomendamos que você envie <PropertyDataSet> apenas uma vez e que ele seja atualizado somente se forem necessárias modificações.

Transaction / PropertyDataSet / @action 0..1 enum

O tipo de atualização a ser aplicada às definições de tarifa do quarto.

Os valores válidos são:

  • overlay : substitui todos os <RoomData> e <PackageData> definidos anteriormente para a propriedade. Somente os <RoomData> e <PackageData> na mensagem atual são válidos.
  • delta : Adiciona <RoomData> e <PackageData> que não estavam definidos antes ou modifica os que já existem.

Esse atributo é opcional e o padrão é delta se não for especificado.

Transaction / PropertyDataSet / Property 1 string O identificador exclusivo da propriedade. Esse valor precisa corresponder ao ID do hotel especificado usando <id> no elemento <listing> do feed de lista de hotéis. O ID do hotel também está listado na Central para Hotéis.
Transaction / PropertyDataSet / RoomData 0..n RoomData

Descreve uma sala.

Observação: é necessário incluir pelo menos um dos seguintes campos: <RoomData> ou <PackageData>.

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID Um identificador exclusivo de um tipo de quarto. Esse valor é referenciado usando o atributo InvTypeCode no elemento <StatusApplicationControl> nas mensagens <OTA_HotelAvailNotifRQ>, <OTA_HotelRateAmountNotifRQ> e <OTA_HotelInvCountNotifRQ>.
Transaction / PropertyDataSet / RoomData / Name 1 Name Contêiner para o nome da categoria de quarto em um ou mais idiomas.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text Especifica o nome da categoria de sala em um idioma.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string O nome da categoria de quarto no idioma especificado pelo atributo language.
Transaction / PropertyDataSet / RoomData / Description 1 Name Contêiner para a descrição da categoria de quarto em um ou mais idiomas.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text Especifica a descrição da categoria de quarto em um idioma.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string A descrição da categoria de quarto no idioma especificado pelo atributo language.
Transaction / PropertyDataSet / RoomData / Description / Text / @language 1..n string Um código de idioma de duas letras.
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs Um contêiner para elementos <AllowablePackageID>.

Se <AllowablePackageIDs> for especificado, o tipo de quarto identificado pelo <RoomID> no elemento <RoomData> principal só poderá ser combinado com os planos de tarifas definidos pelos elementos <AllowablePackageID>.

Se <AllowablePackageIDs> não for especificado, o tipo de quarto identificado pelo <RoomID> no elemento <RoomData> pai poderá ser combinado com qualquer plano de tarifas.

Use <AllowablePackageIDs> ou <AllowableRoomIDs>, mas não ambos.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID Especifica o PackageID de um plano de tarifas que pode ser combinado com este tipo de quarto. Um plano de tarifas é definido por uma combinação de pacote, tarifas e disponibilidade. O PackageID corresponde ao RatePlanCode nas mensagens OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer O número máximo de adultos e crianças que um quarto pode acomodar fisicamente. Esse valor precisa ser maior ou igual a qualquer valor de NumberOfGuests enviado com as taxas.

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

Observação:se <Capacity> não estiver definido, o número de ocupantes permitidos será considerado ilimitado. Se esse campo não for definido e ExtraGuestCharges ou AdditionalGuestAmounts forem definidos, os preços poderão ser gerados para qualquer número de ocupantes. Recomendamos que você defina o <Capacity> se ExtraGuestCharges ou AdditionalGuestAmounts estiverem definidos para garantir que os preços não sejam mostrados para opções de ocupação inválidas.

Transaction / PropertyDataSet / RoomData / AdultCapacity 0..1 integer O número máximo de adultos que um quarto pode acomodar fisicamente. Esse valor precisa ser maior ou igual a qualquer valor de NumberOfGuests enviado com as taxas.

O valor de <AdultCapacity> precisa ser um número inteiro positivo entre 1 e 99, inclusive. Confira um exemplo aqui.

Transaction / PropertyDataSet / RoomData / ChildCapacity 0..1 integer O número máximo de crianças que um quarto pode acomodar fisicamente.

O valor de <ChildCapacity> precisa ser um número inteiro positivo entre 1 e 99, inclusive. Confira um exemplo aqui.

Transaction / PropertyDataSet / RoomData / OccupancySettings 0..1 OccupancySettings Configurações que podem restringir ou modificar os requisitos de ocupação de uma sala.

O elemento <OccupancySettings> usa os seguintes elementos filhos:

  • <MinOccupancy>: o número mínimo de hóspedes que podem ficar em um quarto. Por exemplo, se essa opção estiver definida como 2, o quarto não poderá ser reservado para um único hóspede.

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

  • <MinAge>: a idade mínima para todos os hóspedes que ficam em um quarto. Por exemplo, se essa opção estiver definida como 18, a sala só poderá ser reservada para grupos em que todos os hóspedes tenham 18 anos ou mais.

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

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

Não é necessário incluir todos os elementos filhos.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL Um URL e uma legenda opcional para uma foto do quarto ou pacote de quarto. É possível especificar mais de um <PhotoURL> para uma sala ou um pacote de salas.

Esse elemento usa os seguintes elementos filhos:

  • <URL>: especifica o local da foto. O local precisa ser público (não protegido por um firewall) e incluir o protocolo (http://).
  • <Caption>: define a legenda da foto. Esse elemento usa um único elemento filho, <Text>, que tem dois atributos obrigatórios, Text e language. O atributo Text é a legenda, e o atributo language especifica um código de idioma de duas letras, como en.
<PhotoURL>
 <URL>http://www.example.com/image1.jpg</URL>
 <Caption>
  <Text text="A bright way to enjoy your
   mornin' cuppa tea." language="en"/>
  <Text text="Une façon lumineuse pour profiter
   de votre tasse de thé." language="fr"/>
 </Caption>
</PhotoURL>
Transaction / PropertyDataSet / RoomData / RoomFeatures 0..1 <RoomFeatures> Contém informações sobre os recursos da sala.
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle 0..1 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 de estilo japonês com camas futon.
  • japanese_western: um quarto em estilo japonês-ocidental com camas em estilo ocidental e futons em estilo japonês.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object Contém o mesmo número de <Bed> que o quarto. 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, queen e king.
Cada <Bed> tem os seguintes elementos filhos:
  • <Width> (opcional): especifica a largura do leito. Precisa ter o atributo unit com o valor cm e o atributo number com a largura da cama em centímetros inteiros.
  • <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>
Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite 0.. enum Forneça esse elemento quando o quarto for uma suíte.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule 0..1 enum Forneça esse elemento quando o quarto for uma cápsula.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing 0..1 enum Se o quarto é compartilhado com outros ocupantes, como proprietários ou outros hóspedes. Os valores válidos são: shared e private.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum Forneça esse elemento quando o quarto for um alojamento ao ar livre sem paredes fixas, encanamento e controle de temperatura. Por exemplo, quartos de hotel não são hospedagens a céu aberto, mas áreas de acampamento com tendas para os hóspedes e estacionamentos para trailers dos próprios visitantes são.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum Forneça esse elemento quando o quarto for acessível para pessoas com mobilidade reduzida.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum Se o quarto é para não fumantes ou para fumantes. Os valores válidos são non_smoking e smoking.
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object Contém informações sobre um banheiro e um vaso sanitário no quarto.

O atributo é:

  • relation (opcional): indica como o banheiro e o vaso sanitário estão posicionados em relação um ao outro. Os valores válidos são together, por exemplo, um banheiro em que o chuveiro e o vaso sanitário estão localizados juntos no mesmo ambiente, e separate, em que o chuveiro e o vaso sanitário têm espaços dedicados. Esse atributo não pode ser definido quando o quarto não tem banheira e banheiro.

O elemento pode receber os seguintes elementos filhos:

  • <Bath> (opcional): a existência desse elemento indica que o quarto tem um banheiro.

    Os atributos são:

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

    Os atributos são:

    • electronic_bidet (opcional): indica que o vaso sanitário tem um bidê eletrônico. Os valores válidos são 0 (ou false) e 1 (ou true).
    • mobility_accessible (opcional): indica que o vaso sanitário é acessível para pessoas com mobilidade reduzida. 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>
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath 0..1 enum Forneça esse elemento quando o quarto tiver uma banheira privativa ao ar livre.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum Informe esse elemento quando o quarto tiver ar-condicionado.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum Informe esse elemento quando o quarto tiver uma sacada ou varanda.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views 0..1 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/>

Transaction / PropertyDataSet / PackageData 0..n PackageData

Contêiner para elementos que descrevem recursos e termos de tarifas que não fazem parte da descrição física do quarto.

Observação: é necessário incluir pelo menos um dos seguintes campos: <RoomData> ou <PackageData>.

Transaction / PropertyDataSet / PackageData / PackageID 1 string PackageID nessas mensagens corresponde a RatePlanCode nas mensagens OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / PackageData / Name 1 Name Contêiner para o nome do pacote em um ou mais idiomas.
Transaction / PropertyDataSet / PackageData / Name / Text 1..n Text Especifica o nome do pacote em um idioma.
Transaction / PropertyDataSet / PackageData / Name / Text / @text 1..n string O nome do pacote no idioma especificado pelo atributo language.
Transaction / PropertyDataSet / PackageData / Description 1 Description Contêiner para a descrição do pacote em um ou mais idiomas.
Transaction / PropertyDataSet / PackageData / Description / Text 1..n Text Especifica a descrição do pacote em um idioma.
Transaction / PropertyDataSet / PackageData / Description / Text / @text 1..n string A descrição do pacote no idioma especificado pelo atributo language.
Transaction / PropertyDataSet / PackageData / Description / Text / @language 1..n string Um código de idioma de duas letras.
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs 0..1 AllowableRoomIDs Um contêiner para elementos <AllowableRoomID>.

Se <AllowableRoomIDs> for especificado, o plano de tarifas identificado pelo <PackageID> no elemento pai <PackageData> só poderá ser combinado com os tipos de quarto definidos pelos elementos <AllowableRoomID>.

Se <AllowableRoomIDs> não for especificado, o plano de tarifas identificado pelo <PackageID> no elemento <PackageData> principal poderá ser combinado com qualquer tipo de quarto.

Use <AllowablePackageIDs> ou <AllowableRoomIDs>, mas não ambos.

Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID Especifica o RoomID de um tipo de quarto que pode ser combinado com este plano de tarifa. Um tipo de sala é definido em um elemento <RoomData>.
Transaction / PropertyDataSet / PackageData / MilesIncluded 0..1 MilesIncluded Adicione informações sobre pontos de fidelidade aos pacotes com base na definição dos planos de tarifas ou pacotes. Especifique o elemento <MilesIncluded> no elemento <PackageData> que define o plano de tarifas. <MilesIncluded> tem o seguinte elemento filho:
  • LoyaltyCampaignID: um ID exclusivo que identifica a campanha de fidelidade específica configurada e atualizada com o Google. Ele adiciona pontos de fidelidade ao preço do hotel.

    Para incluir o elemento <MilesIncluded>, o ID da campanha precisa ser configurado na configuração da campanha de fidelidade. Os detalhes específicos sobre como o Google usa os pontos de fidelidade nos resultados são determinados pela configuração da campanha de fidelidade.

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
    </MilesIncluded>

    Observação:em casos raros, é possível incluir <NumberOfMiles> no elemento <MilesIncluded> para especificar que o plano sempre ganha um número fixo de pontos, independente do itinerário. Saiba mais sobre o <MilesIncluded> em <PackageData>.

Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable Permite listar uma tarifa como totalmente reembolsável ou cancelável. Se não for fornecido, nenhuma informação sobre um reembolso será exibida.

Observação:recomendamos definir todos os atributos. Uma mensagem de aviso de status do feed é gerada quando um ou mais atributos não estão definidos.

Se você não definir nenhum atributo, a tarifa não vai aparecer como reembolsável.

Ao definir os atributos, observe o seguinte:

  • Se available ou refundable_until_days não estiver definido, a tarifa não será mostrada como reembolsável.
  • Se available for 0 ou false, os outros atributos serão ignorados. A tarifa não aparece como reembolsável, mesmo que um ou ambos os outros atributos estejam definidos.
Transaction / PropertyDataSet / PackageData / Refundable / @available 1 boolean (Obrigatório) Defina como 1 ou true para indicar se a taxa permite um reembolso total. Caso contrário, defina como 0 ou false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Obrigatório se available for true) Especifica o número de dias antes do check-in em que um reembolso total pode ser solicitado. O valor de refundable_until_days precisa ser um número inteiro entre 0 e 330.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0.. Time (Altamente recomendado se available for true) Especifica a hora mais recente do dia, no horário local do hotel, em que uma solicitação de reembolso total será atendida. Isso pode ser combinado com refundable_until_days para especificar, por exemplo, que "os reembolsos estão disponíveis até as 16h dois dias antes do check-in". Se refundable_until_time não estiver definido, o valor padrão será meia-noite.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 boolean Especifica se este tipo de quarto inclui café da manhã. Os valores válidos são 0 (ou false) e 1 (ou true).

É preferível usar <Meals> em vez de <BreakfastIncluded>.

Transaction / PropertyDataSet / PackageData / CheckinTime 0..1 Time O horário de check-in mais cedo possível no horário local do hotel. O horário precisa ser anterior a 24:00.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time O horário de check-out mais tardio possível no horário local do hotel.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 boolean Especifica se o quarto inclui acesso à Internet sem custo financeiro, enquanto outros quartos não incluem essa comodidade. Não defina esse elemento em um hotel que oferece Internet gratuita em todos os quartos. Esse elemento não se aplica à Internet com fio no quarto ou à Internet sem fio que não está disponível nos quartos. Os valores válidos são 0 (ou false) e 1 (ou true).
Transaction / PropertyDataSet / PackageData / Meals 0..1 Object Contém informações sobre as refeições neste pacote.

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

  • included (obrigatório): defina como 1 (ou true) se a tarifa incluir café da manhã/jantar. Caso contrário, defina como 0 ou false.
  • in_room (opcional): defina como 1 (ou true) se os hóspedes tiverem a opção de tomar café da manhã/jantar no quarto em que estão hospedados. 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 em um espaço (exceto o quarto em que estão hospedados) onde possam evitar o contato com outros hóspedes. Caso contrário, defina como 0 (ou false).
  • buffet (opcional): defina como 1 (ou true) se o café da manhã/jantar for servido como buffet; caso contrário, defina como 0 (ou false).

Os atributos opcionais só são usados quando included é verdadeiro.

Para que os filtros de refeição (no meals, breakfast only, dinner only e breakfast and dinner) funcionem, <Breakfast> e <Dinner> precisam ser fornecidos com o atributo included.

Transaction / PropertyDataSet / PackageData / ParkingIncluded 0..1 boolean Se um quarto inclui estacionamento sem custo financeiro, quando o estacionamento seria um serviço pago neste hotel. Não especifique um valor para esse elemento em um hotel que oferece estacionamento gratuito. Os valores válidos são 0 (ou false) e 1 (ou true). O valor padrão é false.
Transaction / PropertyDataSet / PackageData / PhotoURL 0..1 Object (Igual a <PhotoURL> em <RoomData>, mas para o pacote, por exemplo, fotos de refeições.)

Exemplos

Dados de quartos e pacotes

Confira a seguir um exemplo básico de como definir os dados de quarto e pacote de uma propriedade em uma mensagem de transação (dados da propriedade). O atributo overlay é usado para garantir que, se houver dados inesperados, todos os dados existentes sejam excluídos e substituídos pelos dados desta mensagem:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Description>
        <Text text="Room with a king bed" language="en"/>
      </Description>
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a king bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <MilesIncluded>
        <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      </MilesIncluded>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <Description>
        <Text text="Free breakfast rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Adicionar um tipo de sala

Confira a seguir um exemplo de como adicionar um tipo de quarto e um pacote aos dados <Transaction> atuais:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_3</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_3</PackageID>
      <Name>
        <Text text="Non-Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="false"/>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Remover tipos de sala

Confira um exemplo de como remover tipos de quartos e pacotes atuais. Nesse cenário, se as mensagens em "Dados de quarto e pacote" e "Adicionar um tipo de quarto" tivessem sido enviadas ao Google antes, os tipos de quarto King e Double não existiriam mais quando o Google recebesse a mensagem mostrada. A remoção de dados de pacotes afeta o plano de tarifas geral, conforme definido em Transaction (Dados da propriedade), OTA_HotelRateAmountNotifRQ e mensagens OTA_HotelAvailNotifRQ (ao fazer referência ao mesmo valor PackageID). Assim, as atualizações correspondentes usando os outros tipos de mensagens podem ser necessárias para refletir que PackageID_2 e PackageID_3 não estão mais definidos aqui.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a queen bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>


Restringir planos de taxas

Confira um exemplo de como usar o elemento <AllowablePackageIDs> para restringir os planos de tarifas permitidos para um tipo de quarto. Neste exemplo, o tipo de quarto Queen (RoomID_2) só pode ser combinado com o pacote e o plano de tarifas identificados como PackageID_1.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID_1</AllowablePackageID>
      </AllowablePackageIDs>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Restringir a capacidade do quarto

Confira um exemplo de como usar os elementos <Capacity>, <AdultCapacity> e <ChildCapacity> para definir restrições nas capacidades dos quartos.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <Capacity>4</Capacity>
      <AdultCapacity>4</AdultCapacity>
      <ChildCapacity>3</ChildCapacity>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
  </PropertyDataSet>
</Transaction>

O tipo de quarto duplo (RoomID_1) pode ter até quatro hóspedes no total. Além disso, ele pode ter até quatro adultos e três crianças. Os três requisitos de capacidade precisam ser atendidos para que a sala possa ser reservada. Essa configuração é representativa de um quarto típico com duas camas para duas pessoas cada. A capacidade de crianças é uma pessoa a menos do que a capacidade total, porque o quarto precisa ter pelo menos um adulto.

Exemplos estendidos com <RoomFeatures> e refeições

JapaneseHotelRoomStyle não tem um valor padrão. Omitir um valor não resulta em um erro de XML, mas sua página não aparece nos resultados da pesquisa quando o usuário filtra por estilo de quarto ou camas.

Duas camas de solteiro

O exemplo a seguir 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

Confira a seguir um exemplo de quarto no estilo western com duas camas double.

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

Confira a seguir um exemplo de quarto no estilo japonês sem cama. As informações sobre camas não são necessárias para quartos 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>

Quarto japonês-ocidental com cama

Confira a seguir um exemplo de quarto no estilo japanese_western com uma cama de tamanho king.

<?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 as informações sobre o número de camas nos quartos de japanese_western, consulte o exemplo a seguir:

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


Refeições

O exemplo a seguir define metadados de quarto e pacote 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>

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

Respostas

Sintaxe

A mensagem TransactionResponse (Property Data) usa a seguinte sintaxe:

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
                     id="message_ID"
                     partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</TransactionResponse>

Elementos e atributos

A mensagem TransactionResponse (Property Data) tem os seguintes elementos e atributos:

Elemento / @Attribute Ocorrências Tipo Descrição
TransactionResponse 1 Complex element O elemento raiz que indica o sucesso ou os problemas de uma mensagem de solicitação de transação recebida.
TransactionResponse / @timestamp 1 DateTime A data e a hora de criação desta mensagem.
TransactionResponse / @id 1 string O identificador exclusivo da mensagem de transação associada.
TransactionResponse / @partner 1 string A conta do parceiro para esta mensagem.
TransactionResponse / Success 0..1 Success Indica que a mensagem de transação foi processada sem avisos, erros ou falhas.

<Success> ou <Issues> está presente em cada mensagem.

TransactionResponse / Issues 0..1 Issues Um contêiner para um ou mais problemas encontrados ao processar a mensagem de transação.

<Success> ou <Issues> está presente em cada mensagem.

TransactionResponse / Issues / Issue 1..n Issue A descrição de um aviso, erro ou falha encontrada ao processar a mensagem de transação. Confira os detalhes desses problemas em Mensagens de erro de status do feed.
TransactionResponse / Issues / Issue / @code 1 integer O identificador do problema.
TransactionResponse / Issues / Issue / @status 1 enum

O tipo de problema encontrado.

Os valores válidos são warning, error e failure.

Exemplos

Sucesso

Confira a seguir uma resposta a uma mensagem de transação processada com sucesso.

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
                     id="12345678"
                     partner="partner_key">
  <Success/>
</TransactionResponse>

Problemas

A seguir, há uma resposta a uma mensagem de transação não processada devido a erros.

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
                     id="12345678"
                     partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</TransactionResponse>