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>
      <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 "Transaction (Property Data)" tem os seguintes elementos e atributos:

Elemento / @Attribute Ocorrências Tipo Descrição
Transaction 1 Complex element Em uma implementação de 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 da mensagem.
Transaction / @id 1 string Um identificador exclusivo para essa mensagem de solicitação. Esse valor é retornado na mensagem de resposta. Os caracteres permitidos são a-z, A-Z, 0-9, _ (sublinhado) e - (traço).
Transaction / @partner 1 string A conta do parceiro para esta mensagem. Esse valor de string é o valor da "chave do parceiro" listado na página "Configurações da conta" da Central para Hotéis.

Observação:se você tiver um back-end que fornece feeds para várias contas, esse valor precisa 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 de uma única propriedade.
Transaction / PropertyDataSet / @action 0..1 enum

O tipo de atualização a ser aplicado à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 o <RoomData> e o <PackageData> na mensagem atual são válidos.
  • delta : Adiciona <RoomData> e <PackageData> undefineds anteriormente ou modifica os existentes.

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> no 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 uma das seguintes propriedades: <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 do ambiente 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 sala em um idioma.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string A descrição da categoria do 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> pai só poderá ser combinado com os planos de preços 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 tarifa que pode ser combinado com esse 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. Ele precisa ser maior ou igual a todos os valores de NumberOfGuests enviados com as tarifas.

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

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 definir <Capacity> se ExtraGuestCharges ou AdditionalGuestAmounts estiverem definidos para garantir que os preços não sejam exibidos 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. O valor precisa ser maior ou igual a qualquer valor de NumberOfGuests enviado com as tarifas.

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

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. Confira aqui um exemplo.

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 ele estiver definido como 2, esse 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.

  • <MinAge>: a idade mínima de todos os hóspedes que ficam em um quarto. Por exemplo, se essa configuração for definida como 18, o quarto só poderá ser reservado 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>

Nem todos os elementos filhos precisam ser incluídos.

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

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 do ambiente.
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 em estilo japonês com camas futon.
  • japanese_western: um quarto em estilo ocidental japonês com camas em estilo ocidental e futons japoneses.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object Contém o mesmo número de <Bed> que o espaço tem. 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 da cama. 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 espaço é compartilhado com outros ocupantes, como proprietários ou outros convidados. Os valores válidos são: shared e private.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum Inclua esse elemento quando o quarto for uma acomodação ao ar livre que não tem paredes fixas, encanamento e controle de temperatura. Por exemplo, os quartos de hotel não são hospedagens a céu aberto, enquanto os acampamentos com tendas e os estacionamentos para trailers dos próprios visitantes são hospedagens a céu aberto.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum Informe esse elemento quando o quarto for acessível a pessoas com mobilidade reduzida.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum Se o quarto é para fumantes ou não. 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 ambiente não tem banheiro e vaso sanitário.

Opcionalmente, o elemento usa 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 a sala tem um vaso sanitário.

    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 Inclua esse elemento quando o quarto tiver um banheiro privativo ao ar livre.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum Forneça 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 uma das seguintes propriedades: <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 <PackageData> pai só poderá ser combinado com os tipos de quarto definidos pelos elementos <AllowableRoomID>.

Se <AllowableRoomIDs> não for especificado, o plano de tarifa identificado pelo <PackageID> no elemento pai <PackageData> 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 esse plano de tarifa. Um tipo de quarto é definido em um elemento <RoomData>.
Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable Permite listar uma tarifa como totalmente reembolsável ou cancelável. Se não forem fornecidos, nenhuma informação sobre o 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 sã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 taxa não vai aparecer 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 tarifa 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 de antecedência ao 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 o horário mais recente, 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 for definido, o valor padrão será meia-noite.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 boolean Especifica se o tipo de quarto inclui café da manhã. Os valores válidos são 0 (ou false) e 1 (ou true).

É recomendável usar <Meals> em vez de <BreakfastIncluded>.

Transaction / PropertyDataSet / PackageData / CheckinTime 0..1 Time Horário de check-in mais cedo possível no horário local do hotel. O horário precisa ser menor que 24:00.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time Horário de check-out mais tarde 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 ou sem fio no quarto 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 deste 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 no 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ão usados apenas 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, em que o estacionamento seria um serviço pago nesse 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 O mesmo que <PhotoURL> em <RoomData>, mas para o pacote (por exemplo, fotos de refeições).

Exemplos

Dados do quarto e do pacote

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 algum dado já existir inesperadamente, todos os dados atuais 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>
      <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>:

<?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 a seguir um exemplo de como remover tipos de quartos e pacotes. Nesse cenário, se as mensagens em "Dados do pacote e do quarto" e "Adicionar um tipo de quarto" tivessem sido enviadas ao Google anteriormente, os tipos de quarto King e Double não existiriam mais quando o Google recebesse a mensagem mostrada. A remoção dos dados do pacote afeta o plano de tarifas geral, conforme definido nas mensagens Transaction (Property Data), OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ (ao referenciar o mesmo valor de PackageID). Portanto, as atualizações correspondentes que usam os outros tipos de mensagem podem ser necessárias para refletir que PackageID_2 e PackageID_3 não sã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 tarifas

Confira abaixo 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 identificado 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 da sala

Confira a seguir 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é 4 hóspedes no total. Além disso, ele pode ter até quatro adultos e até três crianças. Todos 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. A capacidade de crianças é menor 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 listagem não é mostrada 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 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 de estilo japonês sem cama. As informações sobre a cama não são necessárias para o estilo de quarto 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 estilo japanese_western com 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 informações sobre o número de camas nos quartos 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 os metadados do quarto e do 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 da 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 durante o processamento da 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 durante o processamento da mensagem de transação. Confira os detalhes sobre esses 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 para uma mensagem de transação processada.

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

Problemas

Confira a seguir 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>