Transmission of the services as part of reservations
In some cases, additional items can be reserved together with the hotel stay such as breakfasts, massages, ski passes etc. In the OTA vocabulary, they are defined as services. Whatever the choosen method for sending reservations to the Hotel-Spider severs (push or pull), the services are defined using the same format in the XML message.
Format
Each service is decribed in one Service node under the Services node which is part of one HotelReservation. In order to link Services to RoomStays, an attribute "ServiceRPH" is added to each service and must be a unique positive integer. Then a ServiceRPHs/ServiceRPH node is added to the RoomRate node if one or several service(s) is to be attached with the corresponding room stay.
Here is an overview of the added nodes:
<?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> ... </POS> <HotelReservations> <HotelReservation> ... <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" Type="10"> <Price NumberOfUnits="2" EffectiveDate="2015-09-10"> <Base AmountAfterTax="3.00" CurrencyCode="CHF" /> <Total AmountAfterTax="6.00" CurrencyCode="CHF" /> </Price> <Price NumberOfUnits="1" EffectiveDate="2015-09-11"> <Base AmountAfterTax="3.00" CurrencyCode="CHF" /> <Total AmountAfterTax="3.00" CurrencyCode="CHF" /> </Price> <ServiceDetails> <SpecialRequests> <SpecialRequest Name="SR_1"> <Text>Special Request 1</Text> </SpecialRequest> <SpecialRequest Name="SR_2"> <Text>Special Request 2</Text> </SpecialRequest> </SpecialRequests> <TimeSpan Start="2015-09-10" End="2015-09-11"/> <ServiceDescription Name="Parking place"> <Text>Unattended parking lot for the whole stay</Text> </ServiceDescription> </ServiceDetails> </Service> </Services> <!----------------------------------------------------> </HotelReservation> </HotelReservations> </OTA_HotelResRQ>
Details
Node | Attribute | Description | Value type | Mandatory | 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. | yes | 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 | yes | ||
ServicePricingType | An enumerated type that defines how a service is priced. Refer to Service pricing type (ServicePricingType) | ServicePricingType | no | ||
ServiceRPH | A unique ID for a service that may be referenced elsewhere in the schema. | NonNegativeInteger | yes | ||
Type | A reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT). | OTA_CodeType | no | ||
Price | The selling price of this Service. Please note that one Price node is needed for each different day. | yes | no | ||
NumberOfUnits | Number of units reserved | NonNegativeInteger | yes | ||
EffectiveDate | Indicates the starting date. | Date | yes | ||
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) | |||
ServiceDetails | Service details that contains name and description information for the service. | no | |||
SpecialRequests | Special Requests node that contain Special Request items with content. | no | |||
SpecialRequest | Special Requests information | no | |||
Name | Contains Name/Code value for Special Request | ||||
Text | Child element of SpecialRequest, it contains description for the special request | no | |||
TimeSpan | Child element of ServiceDetails, it contains information for the date range service applied | no | |||
Start | Start date of the TimeSpan | ||||
End | End date of the TimeSpan | ||||
ServiceDescription | no | ||||
Name | Contains value for name of service | StringLength1to32 | no | ||
Text | Description text for the service. | no |