Service reservation

Request

<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResRQ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EchoToken="ECHOTOKEN" TimeStamp="2015-09-08T13:11:31.2567097+00:00" Target="Test" Version="1.0" TransactionIdentifier="TRANSACTIONIDENTIFIER" PrimaryLangID="en" AltLangID="en" ResStatus="Book" xmlns="http://www.opentravel.org/OTA/2003/05">
  <POS>
    <Source>
      <RequestorID ID="YOURUSERNAME" MessagePassword="YOURPASSWORD" Type="13"/>
    </Source>
  </POS>
  <HotelReservations>
    <HotelReservation>
      <POS>
		<Sources>
        	<BookingChannel Type="5">
          	<CompanyName>YOURCOMPANYNAME</CompanyName>
      	  </BookingChannel>
		</Sources>
      </POS>
      <RoomStays>
        <RoomStay>
        ...
          <RoomRates>
            <RoomRate>
<!---------------------------------------------------->
              <ServiceRPHs>
				<ServiceRPH RPH="1" />
			  </ServiceRPHs>
<!---------------------------------------------------->
            </RoomRate>
          </RoomRates>
        ...
        </RoomStay>
      </RoomStays>
<!---------------------------------------------------->
	  <Services>
		 <Service Inclusive="1|0" ServicePricingType="Per night|Per person|Per person per night|Per stay|Per use" ServiceRPH="1" ID="00L55df0d5f711a6"  Type="10">
			  <Price NumberOfUnits="2" EffectiveDate="2015-09-10" ExpireDate="2015-09-10">
			    <Base AmountAfterTax="3.00" CurrencyCode="CHF" />
		  		<Total AmountAfterTax="6.00" CurrencyCode="CHF" />
		      </Price>
			  <Price NumberOfUnits="1" EffectiveDate="2015-09-11" ExpireDate="2015-09-11">
			    <Base AmountAfterTax="3.00" CurrencyCode="CHF" />
				<Total AmountAfterTax="3.00" CurrencyCode="CHF" />
			  </Price>
			</Service>
		</Services>
<!---------------------------------------------------->
    </HotelReservation>
  </HotelReservations>






Details

NodeAttributeDescriptionValue typeAlways presentRepetitive

...






ServiceRPHs


A container for the unique references to the services for the room stay.A collection of unsigned integers that reference the RPH (Reference Place holder) attribute in the Service object. The ServiceRPH attribute in the Service object is an indexing attribute that identifies the services attached to a specific guest or to the reservation.
nono

ServiceRPH


This is a reference placeholder used as an index for a service to be associated with this stay
yesyes

RPH

Provides a unique reference to the service.NonNegativeInteger

...






Service


A Service object represents a non-room product provided to guests. Service products may have associated inventory and charges.A ServiceType class.


yes

no

Inclusive

Whether the price for this service is included in the room rate. Values: False (or No), and True (or Yes).Boolean


ServicePricingType

An enumerated type that defines how a service is priced. Refer to Service pricing type (ServicePricingType)ServicePricingType


ServiceRPH

A unique ID for a service that may be referenced elsewhere in the schema.NonNegativeInteger


ID

A unique identifying value assigned by the creating system. The ID attribute may be used to reference a primary-key value within a database or in a particular implementation.StringLength1to32


TypeA reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT).OTA_CodeType

Price


The selling price of this Service.
yesno

NumberOfUnits

Number of units reservedNonNegativeInteger


EffectiveDate

Indicates the starting date.Date


ExpireDate

Indicates the ending date.Date

Base


The base amount charged for the accommodation or service per unit of time (ex: Nightly, Weekly, etc). If TaxInclusive is set to True, then taxes are included in the base amount. Note that any additional charges should itemized in the other elements.The total amount charged for the service including additional amounts and fees.
yesno

AmountAfterTax

The total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).Money


CurrencyCode

An ISO 4217 (3) alpha character code that specifies a monetary unit.CurrencyCode_TypeCurrency Code Type (CurrencyCode_Type)

Response

The service response format is a combination of HotelAvailRS and HotelResRQ, containing the service details and the request datas

Response
...
<Services>
  <Service Inclusive="1|0" ReservationStatusType="Reserved" ServicePricingType="Per night|Per person|Per person per night|Per stay|Per use" ServiceRPH="1" ID="00L55df0d5f711a6">
    <Price NumberOfUnits="2" EffectiveDate="2015-09-10" ExpireDate="2015-09-10">
      <Base AmountAfterTax="3.00" CurrencyCode="CHF" />
      <Total AmountAfterTax="6.00" CurrencyCode="CHF" />
    </Price>
    <ServiceDetails>
      <ServiceDescription Name="SERVICENAME">
        <Text>SERVICEDESCRIPTION</Text>
        <Image>IMAGEURL1</Image>
        <Image>IMAGEURL2</Image>
      </ServiceDescription>
    </ServiceDetails>
  </Service>
</Services>
...

In additionnal, the attribute ReservationStatusType is added

NodeAttributeDescriptionValue typeAlways presentRepetitive

ReservationStatusType

An enumerated type that defines the status of the reservation for this service. Statuses that exist in a property management system (PMS). Refer to PMS Reservation Status Type (PMS_ResStatusType)PMS_ResStatusType

Use cases

We consider a stay of 2 guests in 1 room from 2015-09-10 to 2015-09-14.

Please pay attention to the fact that you need to put a price node for every desired day for Per night and Per person per night pricing type, as returned by OTA_HotelAvailRS.

Use case #1: breakfast included (MP)

The breakfast is included in room price, thus it comes at no additional cost. In this case the guest takes 2 breakfasts on 2015-09-11, 1 breakfast on 2015-09-12 and no breakfast on 2015-09-13 and 2015-09-14.

<Service Inclusive="1" ReservationStatusType="Reserved" ServicePricingType="Per person per night" ServiceRPH="1" ID="00L55df0d5f711a6" Type="10">
  <Price NumberOfUnits="2" EffectiveDate="2015-09-11" ExpireDate="2015-09-11" />
  <Price NumberOfUnits="1" EffectiveDate="2015-09-12" ExpireDate="2015-09-12" />
</Service>

Use case #2: breakfast not included (MP)

Idem but not included

<Service Inclusive="0" ReservationStatusType="Reserved" ServicePricingType="Per person per night" ServiceRPH="1" ID="00L55df0d5f711a6" Type="10">
  <Price NumberOfUnits="2" EffectiveDate="2015-09-11" ExpireDate="2015-09-11">
    <Base AmountAfterTax="3.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="6.00" CurrencyCode="CHF" />
  </Price>
  <Price NumberOfUnits="1" EffectiveDate="2015-09-12" ExpireDate="2015-09-12">
    <Base AmountAfterTax="3.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="3.00" CurrencyCode="CHF" />
  </Price>
</Service>

Use case #3: diner (MP)

Diner on first 2 nights for 2 persons, no diner on third night, diner for 3 persons on last night

<Service Inclusive="1" ReservationStatusType="Reserved" ServicePricingType="Per person" ServiceRPH="1" ID="00L55df0d5f711a6" Type="10">
  <Price NumberOfUnits="2" EffectiveDate="2015-09-11" ExpireDate="2015-09-11">
    <Base AmountAfterTax="30.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="60.00" CurrencyCode="CHF" />
  </Price>
  <Price NumberOfUnits="2" EffectiveDate="2015-09-12" ExpireDate="2015-09-12">
    <Base AmountAfterTax="30.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="60.00" CurrencyCode="CHF" />
  </Price>
  <Price NumberOfUnits="3" EffectiveDate="2015-09-14" ExpireDate="2015-09-14">
    <Base AmountAfterTax="30.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="90.00" CurrencyCode="CHF" />
  </Price>
</Service>

Use case #4: computer (BUS)

The guests want a computer for the whole stay length.

<Service Inclusive="0" ReservationStatusType="Reserved" ServicePricingType="Per night" ServiceRPH="1" ID="00L55df0d5f711a6" Type="10">
  <Price NumberOfUnits="1" EffectiveDate="2015-09-11" ExpireDate="2015-09-11">
    <Base AmountAfterTax="15.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="15.00" CurrencyCode="CHF" />
  </Price>
  <Price NumberOfUnits="1" EffectiveDate="2015-09-12" ExpireDate="2015-09-12">
    <Base AmountAfterTax="15.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="15.00" CurrencyCode="CHF" />
  </Price>
  <Price NumberOfUnits="1" EffectiveDate="2015-09-13" ExpireDate="2015-09-13">
    <Base AmountAfterTax="15.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="15.00" CurrencyCode="CHF" />
  </Price>
  <Price NumberOfUnits="1" EffectiveDate="2015-09-14" ExpireDate="2015-09-14">
    <Base AmountAfterTax="15.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="15.00" CurrencyCode="CHF" />
  </Price>
</Service>

Use case #5: spa (CUSTOM)

The guests want a 2 hours spa session on the 2015-09-12 night

<Service Inclusive="0" ReservationStatusType="Reserved" ServicePricingType="Per use" ServiceRPH="1" ID="00L55df0d5f711a6" Type="10">
  <Price NumberOfUnits="2" EffectiveDate="2015-09-12" ExpireDate="2015-09-12">
    <Base AmountAfterTax="13.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="26.00" CurrencyCode="CHF" />
  </Price>
</Service>

Use case #6: ski pass (CUSTOM)

The two guests want to ski during all their stay

<Service Inclusive="0" ReservationStatusType="Reserved" ServicePricingType="Per stay" ServiceRPH="1" ID="00L55df0d5f711a6" Type="10">
  <Price NumberOfUnits="2">
    <Base AmountAfterTax="111.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="222.00" CurrencyCode="CHF" />
  </Price>
</Service>

Use case #7: city guided tour (CUSTOM)

The two guests want to do some sightseeing on the second night

<Service Inclusive="0" ReservationStatusType="Reserved" ServicePricingType="Per use" ServiceRPH="1" ID="00L55df0d5f711a6" Type="10">
  <Price NumberOfUnits="2" EffectiveDate="2015-09-12" ExpireDate="2015-09-12">
    <Base AmountAfterTax="55.00" CurrencyCode="CHF" />
    <Total AmountAfterTax="55.00" CurrencyCode="CHF" />
  </Price>
</Service>