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
Node | Attribute | Description | Value type | Always present | Repetitive |
---|---|---|---|---|---|
... | |||||
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. | no | no | ||
ServiceRPH | This is a reference placeholder used as an index for a service to be associated with this stay | yes | yes | ||
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 | |||
Type | A 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. | yes | no | ||
NumberOfUnits | Number of units reserved | NonNegativeInteger | |||
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. | yes | no | ||
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
... <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
Node | Attribute | Description | Value type | Always present | Repetitive |
---|---|---|---|---|---|
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>