Transação (dados de propriedades)

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 de 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 de ARI, esse é o elemento raiz de uma mensagem que define tipos de quartos 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. O valor da string é o valor da "Chave do parceiro" listado na página "Configurações da conta" da Central para Hotéis.

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

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

O tipo de atualização a ser aplicado às definições das diárias.

Os valores válidos são:

  • overlay : substitui todos os <RoomData> e <PackageData> definidos anteriormente para a propriedade. Apenas o <RoomData> e o <PackageData> na mensagem atual são válidos.
  • delta : Adiciona <RoomData> e <PackageData> anteriormente indefinidos ou modifica os existentes.

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

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

Descreve uma sala.

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

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID Um identificador exclusivo para um tipo de quarto. Esse valor é referenciado usando o atributo InvTypeCode no elemento <StatusApplicationControl> nas mensagens <OTA_HotelAvailNotifRQ> e <OTA_HotelRateAmountNotifRQ>.
Transaction / PropertyDataSet / RoomData / Name 1 Name Contêiner do nome da categoria do quarto em um ou mais idiomas.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text Especifica o nome da categoria do quarto em um idioma.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string O nome da categoria do quarto no idioma especificado pelo atributo language.
Transaction / PropertyDataSet / RoomData / Description 1 Name Contêiner da descrição da categoria do quarto em um ou mais idiomas.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text Especifica a descrição da categoria do quarto 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 por <RoomID> no elemento pai <RoomData> só poderá ser combinado com os planos de tarifas definidos pelos elementos <AllowablePackageID>.

Se <AllowablePackageIDs> não for especificado, o tipo de quarto identificado por <RoomID> no elemento <RoomData> pai pode ser combinado com qualquer plano de tarifa.

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 este tipo de quarto. Um plano de tarifa é definido por uma combinação de pacote, taxas 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 aos valores NumberOfGuests enviados com as tarifas.

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

Observação:se <Capacity> não for definido, o número de ocupantes permitidos será considerado ilimitado. Se esse campo não for definido e ExtraGuestCharges ou AdditionalGuestAmounts estiverem definidos, os preços poderão ser gerados para qualquer número de ocupantes. Recomendamos que você defina <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. Ele precisa ser maior ou igual aos valores NumberOfGuests enviados com as tarifas.

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

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

O valor de <ChildCapacity> precisa ser um número inteiro positivo entre 1 e 99. Clique aqui para ver 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 uma sala. Por exemplo, se estiver definido como 2, esta sala não poderá ser reservada 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 em um quarto. Por exemplo, se ela for definida como 18, a sala só poderá ser reservada para grupos em que todos os convidados 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 de um determinado quarto ou Categoria de quarto. Você pode especificar mais de um <PhotoURL> para um quarto ou Categoria de quarto.

Esse elemento assume os seguintes elementos-filho:

  • <URL>: especifica o local da foto. O local precisa ser público (não protegido por firewall) e incluir o protocolo (http://).
  • <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 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 as funcionalidades 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 em estilo japonês com camas futon.
  • japanese_western: quarto em estilo ocidental japonês com camas em estilo ocidental e futons em estilo japonês.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object Contém a mesma quantidade de <Bed> que a sala. 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 este elemento quando o quarto for uma suíte.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule 0..1 enum Informe esse elemento quando o cômodo for uma sala-cápsula.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing 0..1 enum Se esta sala é compartilhada 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 Forneça esse elemento quando o quarto for um ambiente externo sem paredes fixas, encanamento e controle de temperatura. Por exemplo, os quartos de hotel não são hospedagem ao ar livre, enquanto os acampamentos em que os hóspedes ficam em barracas e parques de trailers onde os hóspedes trazem os próprios trailers são acomodações ao ar livre.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum Forneça este elemento quando o quarto tiver acessibilidade.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum Indica 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 Inclui informações sobre uma banheira e um banheiro no quarto.

O atributo é:

  • relation (opcional): indica como a banheira e o vaso sanitário são colocados em relação um ao outro. Os valores válidos são together, por exemplo, um banheiro em que o banheiro e o vaso sanitário estão localizados juntos no mesmo ambiente; e separate, em que o banheiro e o banheiro têm espaços dedicados. 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 desse elemento indica que o quarto tem uma banheira.

    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 banho 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 cômodo tem um banheiro.

    Os atributos são:

    • electronic_bidet (opcional): indica que o banheiro tem um lance eletrônico. Os valores válidos são 0 (ou false) e 1 (ou true).
    • mobility_accessible (opcional): indica que o banheiro tem acessibilidade. 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 este elemento quando este quarto tiver ar-condicionado.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum Forneça esse elemento quando este 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 as características e os termos da tarifa que não fazem parte da descrição física do quarto.

Observação: é necessário incluir pelo menos <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 uma ou mais linguagens.
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 tarifação identificado por <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 por <PackageID> no elemento <PackageData> pai pode 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 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 for fornecido, nenhuma informação sobre um reembolso será exibida.

Observação:recomendamos configurar 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 atributos, a taxa não aparecerá como reembolsável.

Ao definir os atributos, observe o seguinte:

  • Se available ou refundable_until_days não estiverem definidos, a tarifa não vai aparecer como reembolsável.
  • Se available for 0 ou false, os outros atributos serão ignorados. A taxa não aparece como reembolsável, mesmo que um ou ambos os 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 de antecedência do check-in para solicitar um reembolso total. 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, no horário local do hotel, em que uma solicitação de reembolso total será atendida. 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 será definido como meia-noite por padrão.
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 Horário de check-in mais próximo possível no horário local do hotel. A hora precisa ser menor que 24h.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time Horário mais recente possível de check-out no horário local do hotel.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 boolean Especifica se o quarto inclui acesso sem custo financeiro à Internet, enquanto outros quartos não incluem esta comodidade. Não defina este elemento em um hotel que oferece Internet gratuita para todos os quartos. Esse elemento não se aplica à Internet com fio no quarto ou à Internet sem fio que não esteja disponível nos quartos de hóspedes. 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 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 ficarem. Caso contrário, defina como 0 (ou false).
  • in_private_space (opcional): defina como 1 (ou true) se os convidados tiverem a opção de tomar café da manhã/ jantar em um espaço (exceto no quarto em que eles ficam) onde possam evitar 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 somente quando included é verdadeiro.

Para que os filtros de refeições (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 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.
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 de quartos e pacotes

Confira a seguir um exemplo básico de como definir os dados de quartos e pacotes de uma propriedade em uma mensagem de transação (dados da propriedade). O atributo overlay é usado para garantir que, caso algum dado já exista inesperadamente, todos os dados atuais serão 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>

Adicione um tipo de quarto

Confira abaixo um exemplo de como adicionar um tipo de quarto e um pacote aos dados do <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 quarto

Confira abaixo um exemplo de como remover pacotes e tipos de quarto. Nesse cenário, se as mensagens em "Dados de quartos e pacotes" e "Adicionar um tipo de quarto" já tivessem sido enviadas ao Google, os tipos de quarto King e Double não existirão mais quando o Google receber a mensagem mostrada. A remoção de dados de pacote afeta o plano de tarifas geral, conforme definido nas mensagens de transação (dados da propriedade), OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ (fazendo referência ao mesmo valor 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 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 tarifas

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

Confira a seguir um exemplo de como usar os elementos <Capacity>, <AdultCapacity> e <ChildCapacity> para definir restrições às capacidades de 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 de casal (RoomID_1) pode ter até quatro hóspedes. Além disso, pode ter até 4 adultos e 3 crianças. Os três requisitos de capacidade precisam ser atendidos para que essa sala possa ser reservada. Essa configuração representa um quarto típico com duas camas, que cabem duas pessoas em cada uma. A capacidade das crianças é um a menos que a capacidade total porque a sala precisa ter pelo menos um adulto presente.

Exemplos estendidos com <RoomFeatures> e refeições

JapaneseHotelRoomStyle não tem um valor padrão. A omissão de um valor não resulta em um erro XML, mas sua listagem não é exibida nos 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

Veja 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

Este é um exemplo de um quarto em estilo japonês sem cama. As informações da cama não são obrigatórias no quarto com 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>

Oeste japonês com cama

Veja a seguir um exemplo de quarto no estilo japanese_western com cama 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 em japanese_western quartos, 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 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>

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 com sucesso sem avisos, erros ou falhas.

Cada mensagem tem <Success> ou <Issues>.

TransactionResponse / Issues 0..1 Issues Um contêiner para um ou mais problemas encontrados durante o processamento da Mensagem de transação.

Cada mensagem tem <Success> ou <Issues>.

TransactionResponse / Issues / Issue 1..n Issue A descrição de um aviso, erro ou falha encontrada ao processar a Mensagem de transação. Os detalhes sobre esses problemas podem ser encontrados nas 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

Concluído

Veja 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

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