Step 1: Polling the reservations based on OTA_ReadRQ / OTA_ResRetrieveRS
This is part one of the asynchronuous method. The Hotel-Spider will poll the online booking system every minute to check if a reservation / modification / cancellation was made / modified / cancelled on the online booking system. When a reservation is available, the entire reservation should be returned to the Hotel-Spider system
Endpoints
Two distincts endpoints should be provided by the online booking system when starting the integration. One for the staging / testing and one for the production.
Example requests and response
<OTA_ReadRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13" /> </Source> </POS> <ReadRequests> <HotelReadRequest> <SelectionCriteria SelectionType="Undelivered" /> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
<OTA_ReadRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13" /> </Source> </POS> <ReadRequests> <HotelReadRequest> <SelectionCriteria SelectionType="PreviouslyDelivered" /> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
<OTA_ReadRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13" /> </Source> </POS> <ReadRequests> <HotelReadRequest> <SelectionCriteria DateType="ArrivalDate" Start="2015-12-08T12:00:0+01:00" End="2015-12-15T12:00:00+01:00" SelectionType="All" /> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
<OTA_ReadRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13" /> </Source> </POS> <ReadRequests> <HotelReadRequest> <SelectionCriteria DateType="CreateDate" Start="2015-12-08T12:00:0+01:00" End="2015-12-15T12:00:00+01:00" SelectionType="All" /> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
<OTA_ReadRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13" /> </Source> </POS> <ReadRequests> <HotelReadRequest> <SelectionCriteria DateType="DepartureDate" Start="2015-12-08T12:00:0+01:00" End="2015-12-15T12:00:00+01:00" SelectionType="All" /> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
<OTA_ReadRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13" /> </Source> </POS> <ReadRequests> <HotelReadRequest> <SelectionCriteria DateType="LastUpdateDate" Start="2015-12-08T12:00:0+01:00" End="2015-12-15T12:00:00+01:00" SelectionType="All" /> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
<OTA_ReadRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13" /> </Source> </POS> <ReadRequests> <HotelReadRequest> <SelectionCriteria ResStatus="Reserved" SelectionType="All" /> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
<OTA_ReadRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13" /> </Source> </POS> <ReadRequests> <HotelReadRequest> <SelectionCriteria ResStatus="Cancelled" SelectionType="All" /> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
<OTA_ReadRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13" /> </Source> </POS> <ReadRequests> <HotelReadRequest HotelCode="HOTELCODE"> <SelectionCriteria SelectionType="Undelivered" /> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
<OTA_ReadRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <POS> <Source> <RequestorID ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD" Type="13" /> </Source> </POS> <UniqueID Type="14" ID="ABCD-668591" /> <UniqueID Type="14" ID="DCBA-195866" /> </OTA_ReadRQ>
Combination of all the parameters
<OTA_ResRetrieveRS Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000"> <ReservationsList> <HotelReservation ResStatus="Reserved" OriginalDeliveryMethodCode="11" RoomStayReservation="1" WalkInIndicator="0" CreateDateTime="2015-11-12T18:06:39+01:00" LastModifyDateTime="2015-11-12T18:06:40+01:00"> <POS> <Source> <RequestorID ID="ONLINEBOOKINGSYSTEMIDENTIFIER" Type="22" /> <BookingChannel Type="7"> <CompanyName>ONLINEBOOKINGSYSTEMNAME</CompanyName> </BookingChannel> </Source> </POS> <RoomStays> <RoomStay IndexNumber="1" RoomStayStatus="Reserved"> <RoomTypes> <RoomType RoomID="00L55bf507c63634" IsRoom="1"> <RoomDescription Name="Double Room with lake view"/> </RoomType> </RoomTypes> <RoomRates> <RoomRate EffectiveDate="2015-11-20" ExpireDate="2015-11-20" RatePlanID="00L55cdbe855ce0b"> <Rates> <Rate> <Base CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="162.00"/> <Total CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="162.00"/> </Rate> </Rates> <RoomRateDescription> <Text>Best Available Rate</Text> </RoomRateDescription> </RoomRate> <RoomRate EffectiveDate="2015-11-21" ExpireDate="2015-11-21" RatePlanID="00L55cdbe855ce0b"> <Rates> <Rate> <Base CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="162.00"/> <Total CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="162.00"/> </Rate> </Rates> <RoomRateDescription> <Text>Best Available Rate</Text> </RoomRateDescription> </RoomRate> </RoomRates> <GuestCounts> <GuestCount AgeQualifyingCode="10" Count="1"/> </GuestCounts> <TimeSpan Start="2015-11-20" End="2015-11-22" Duration="P2D"/> <CancelPenalties> <CancelPenalty> <Deadline AbsoluteDeadline="2015-11-18T00:00:00+01:00"/> <AmountPercent FeesInclusive="1" Amount="162.00" CurrencyCode="CHF"/> <PenaltyDescription Name="free cancellation 48 hours"/> </CancelPenalty> </CancelPenalties> <Total CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="324.00"/> <BasicPropertyInfo HotelCode="HOTELCODE" HotelName="HOTELNAME" CurrencyCode="CHF"/> <ResGuestRPHs>1</ResGuestRPHs> </RoomStay> <RoomStay IndexNumber="2" RoomStayStatus="Reserved"> <RoomTypes> <RoomType RoomID="00L55bf507c63634" IsRoom="1"> <RoomDescription Name="Double Room with lake view"/> </RoomType> </RoomTypes> <RoomRates> <RoomRate EffectiveDate="2015-11-20" ExpireDate="2015-11-20" RatePlanID="00L55cdbe855ce0b"> <Rates> <Rate> <Base CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="143.00"/> <Total CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="143.00"/> </Rate> </Rates> <RoomRateDescription> <Text>Best Available Rate</Text> </RoomRateDescription> </RoomRate> <RoomRate EffectiveDate="2015-11-21" ExpireDate="2015-11-21" RatePlanID="00L55cdbe855ce0b"> <Rates> <Rate> <Base CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="143.00"/> <Total CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="143.00"/> </Rate> </Rates> <RoomRateDescription> <Text>Best Available Rate</Text> </RoomRateDescription> </RoomRate> </RoomRates> <GuestCounts> <GuestCount AgeQualifyingCode="10" Count="1"/> </GuestCounts> <TimeSpan Start="2015-11-20" End="2015-11-22" Duration="P2D"/> <CancelPenalties> <CancelPenalty> <Deadline AbsoluteDeadline="2015-11-18T00:00:00+01:00"/> <AmountPercent FeesInclusive="1" Amount="162.00" CurrencyCode="CHF"/> <PenaltyDescription Name="free cancellation 48 hours"/> </CancelPenalty> </CancelPenalties> <Total CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="286.00"/> <BasicPropertyInfo HotelCode="HOTELCODE" HotelName="HOTELNAME" CurrencyCode="CHF"/> <ResGuestRPHs>2</ResGuestRPHs> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="1"> <Profiles> <ProfileInfo> <Profile ProfileType="1"> <Customer MaritalStatus="Unknown" Gender="Unknown"> <PersonName> <GivenName>James</GivenName> <Surname>Bond</Surname> </PersonName> <Email>jamesbond@secretmail.ch</Email> <Address> <StreetNmbr>2</StreetNmbr> <AddressLine>Bahnhofstrasse</AddressLine> <CityName>Zurich</CityName> <PostalCode>1000</PostalCode> <County>Zurich</County> <StateProv>Zurich</StateProv> <CountryName Code="CH">Switzerland</CountryName> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> <ResGuest ResGuestRPH="2"> <Profiles> <ProfileInfo> <Profile ProfileType="1"> <Customer MaritalStatus="Unknown" Gender="Unknown"> <PersonName> <GivenName>Money</GivenName> <Surname>Penny</Surname> </PersonName> <Email>moneypenny@secretmail.ch</Email> <Address> <StreetNmbr>2</StreetNmbr> <AddressLine>Bahnhofstrasse</AddressLine> <CityName>Zurich</CityName> <PostalCode>1000</PostalCode> <County>Zurich</County> <StateProv>Zurich</StateProv> <CountryName Code="CH">Switzerland</CountryName> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <ResGlobalInfo> <GuestCounts> <GuestCount AgeQualifyingCode="10" Count="2"/> </GuestCounts> <TimeSpan Start="2015-11-20" End="2015-11-22" Duration="P2D"/> <Comments> <Comment> <Text>They are on a secret mission</Text> </Comment> </Comments> <Guarantee GuaranteeType="CC/DC/Voucher"> <GuaranteesAccepted> <GuaranteeAccepted> <PaymentCard CardCode="MC" ExpireDate="0717"> <CardHolderName>Gareth Mallory</CardHolderName> <CardNumber Mask="xxxxxxxxxxxx1111">4111111111111111</CardNumber> </PaymentCard> </GuaranteeAccepted> </GuaranteesAccepted> </Guarantee> <Total CurrencyCode="CHF" AmountBeforeTax="0.00" AmountAfterTax="324.00"/> <HotelReservationIDs> <HotelReservationID ResID_Source="ONLINEBOOKINGSYSTEMID" ResID_SourceContext="ONLINEBOOKINGSYSTEMNAME" ResID_Type="14" ResID_Value="ABCD-668591"/> </HotelReservationIDs> <Profiles> <ProfileInfo> <Profile ProfileType="1"> <Customer MaritalStatus="Unknown" Gender="Unknown"> <PersonName> <GivenName>Gareth</GivenName> <Surname>Mallory</Surname> </PersonName> <Email>garethmallory@secretmail.ch</Email> <Address> <StreetNmbr>2</StreetNmbr> <AddressLine>Bahnhofplatz</AddressLine> <CityName>Winterthur</CityName> <PostalCode>4104</PostalCode> <County>Winterthur</County> <StateProv>Winterthur</StateProv> <CountryName Code="CH">Switzerland</CountryName> </Address> </Customer> </Profile> </ProfileInfo> <ProfileInfo> <Profile ProfileType="4"> <CompanyInfo> <CompanyName>Her Majesty's secret services</CompanyName> <Email>quartermaster@secretmail.ch</Email> <AddressInfo> <StreetNmbr>2</StreetNmbr> <AddressLine>Bahnhofplatz</AddressLine> <CityName>Winterthur</CityName> <PostalCode>4104</PostalCode> <County>Winterthur</County> <StateProv>Winterthur</StateProv> <CountryName Code="CH">Switzerland</CountryName> </AddressInfo> </CompanyInfo> </Profile> </ProfileInfo> </Profiles> <BasicPropertyInfo HotelCode="00L55bf2f4e6c708" HotelName="Hôtel du Port" CurrencyCode="CHF"/> </ResGlobalInfo> </HotelReservation> </ReservationsList> </OTA_ResRetrieveRS>
Request structure
OTA_ReadRQ
Parent: None (Root element)
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
TimeStamp | Yes | The format should respect the ISO 8601 2015-11-16T22:23:48+00:00 |
Target | Yes | When sending updates to the staging environment "Test" must be used. When sending updates to the production environment "Production" must be used. |
Version | Yes | The default value should be "1.000" |
EchoToken | Yes | The value will be returned in the OTA_HotelResNotifRS response |
Child elements: POS, HotelReservations
UniqueID
Parent: OTA_ReadRQ
Mandatory: No
Attributes:
Name | Mandatory | Description |
---|---|---|
Type | Yes | Possible values are:
|
ID | Yes | The reservation number as assigned by the online booking system and communicated to the end customer/guest |
Child elements: None
ReadRequests
Parent: OTA_ReadRQ
Mandatory: no
Attributes: None
Child elements: HotelReadRequest
HotelReadRequest
Parent: ReadRequests
Mandatory: yes (when ReadRequests is used)
Attributes:
Name | Mandatory | Description |
---|---|---|
HotelCode | No | The ID of the hotel as defined on the online booking system |
Child elements: SelectionCriteria
SelectionCriteria
Parent: HotelReadRequest
Mandatory: yes (when ReadRequests is used)
Attributes:
Name | Mandatory | Description |
---|---|---|
DateType | No | Possible values are:
|
ResStatus | No | Possible values are:
|
SelectionType | No | Possible values are:
|
Start | No | The format will respect the ISO 8601 2015-11-16T22:23:48+00:00 |
End | No | The format will respect the ISO 8601 2015-11-16T22:23:48+00:00 |
Child elements: None
Response structure
OTA_ResRetrieveRS
Parent: None (Root element)
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
TimeStamp | Yes | The format should respect the ISO 8601 2015-11-16T22:23:48+00:00 |
Target | Yes | When sending updates to the staging environment "Test" must be used. When sending updates to the production environment "Production" must be used. |
Version | Yes | The default value should be "1.000" |
EchoToken | Yes | The value from the OTA_ReadRQ should be returned |
Child elements: POS, ReservationsList
ReservationsList
Parent: OTA_ResRetrieveRS
Mandatory: yes
Attributes: None
Child elements: HotelReservation
HotelReservation
Parent: ReservationsList
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
ResStatus | Yes | Possible values are:
|
OriginalDeliveryMethodCode | No | The default value should be "11" for . |
RoomStayReservation | No | The default value should be "1.000" |
WalkInIndicator | No | The value will be returned in the OTA_HotelResNotifRS response |
CreateDateTime | Yes | The format should respect the ISO 8601 2015-11-16T22:23:48+00:00 |
LastModifyDateTime | Yes | The format should respect the ISO 8601 2015-11-16T22:23:48+00:00 |
Child elements: RoomStays, ResGuests, Services, ResGlobalInfo
RoomStays
Parent: HotelReservation
Mandatory: yes
Attributes: None
Child elements: RoomStay
RoomStay
Parent: RoomStays
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
IndexNumber | Yes | Unique identifier of this specific room stay. |
RoomStayStatus | Yes | Possible values are:
|
Child elements: RoomTypes, RoomRates, GuestCounts, TimeSpan, CancelPenalties, Total, BasicPropertyInfo, ResGuestRPHs, ServiceRPHs
One RoomStay per booked room
RoomTypes
Parent: RoomStay
Mandatory: yes
Attributes: None
Child elements: RoomType
RoomType
Parent: RoomTypes
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
RoomID | Yes | The ID of the room as defined on the online booking system. This value should be retrievable via the methods described in Retrieving the room types and the rate plans |
IsRoom | No | The default value should be "1" |
Child elements: RoomDescription
RoomDescription
Parent: RoomType
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
Name | Yes | The name of the room as defined on the online booking system. This value should be retrievable via the methods described in Retrieving the room types and the rate plans |
Child elements: None
RoomRates
Parent: RoomStay
Mandatory: yes
Attributes: None
Child elements: RoomRate
RoomRate
Parent: RoomRate
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
EffectiveDate | Yes | The day on which this rate plan was applied for a reservation. The format should respect the ISO 8601 2015-11-16 |
ExpireDate | No | The day on which this rate plan was applied for a reservation. The format should respect the ISO 8601 2015-11-16 |
ExpireDateExclusiveInd | No | In the case of a date span, should the ExpireDate be included (ExpireDateExclusiveInd="0") or excluded (ExpireDateExclusiveInd="1") |
RatePlanID | Yes | The ID of the rate plan as defined on the online booking system.This value should be retrievable via the methods described in Retrieving the room types and the rate plans |
Child elements: Rates, RoomRateDescription
Extracting the day rates
In order to avoid any confusion about the exact day rate and for which days they have been applied, the Hotel-Spider can work with the following three scenarios:
- The values of the EffectiveDate and the ExpireDate attributes are equal. The day rate will apply only to the date specified
- The values of the EffectiveDate and the ExpireDate attributes are different and the ExpireDateExclusiveInd attribute is not set. The day rate will apply to all the days covered from the EffectiveDate until and including the ExpireDate.
- The values of the EffectiveDate and the ExpireDate attributes are different and the ExpireDateExclusiveInd attribute is set. The day rate will apply to all the days covered from the EffectiveDate until the day before the ExpireDate. Thus the ExpireDate is excluded from the day rates.
Rates
Parent: RoomRate
Mandatory: yes
Attributes: None
Child elements: Rate
Rate
Parent: Rates
Mandatory: yes
Attributes: None
Child elements: Base, Total
Base
Parent: Rate
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
CurrencyCode | Yes | The day on which this rate plan was applied for a reservation. The format should respect the ISO 8601 2015-11-16 |
AmountBeforeTax / AmountAfterTax | Yes | The day rate for this specific product (room type + rate plan) without any additional services |
Child elements: None
Provide a day rate
Total
Parent: Rate
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
CurrencyCode | Yes | The day on which this rate plan was applied for a reservation. The format should respect the ISO 8601 2015-11-16 |
AmountBeforeTax / AmountAfterTax | Yes | The day rate for this specific product (room type + rate plan) with additional services |
Child elements: None
Provide a day rate
RoomRateDescription
Parent: RoomRate
Mandatory: yes
Attributes: None
Child elements: Text
Text
Parent: RoomRateDescription
Mandatory: yes
Attributes: None
Child elements: None
The name of the rate plan
GuestCounts
Parent: RoomStay
Mandatory: yes
Attributes: None
Child elements: GuestCount
GuestCount
Parent: GuestCounts
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
AgeQualifyingCode | No | Possible values are:
|
Count | Yes | The number of guests for this specific room stay within a specific age category. |
Child elements: None
Default AgeQualifyingCode
GuestCount per RoomStay
TimeSpan
Parent: RoomStay
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
Start | Yes | The arrival day for this room stay. The format should respect the ISO 8601 2015-11-16 |
End | Yes | The departure day for this room stay. The format should respect the ISO 8601 2015-11-16 |
Duration | No | The number of nights for this room stay. The format should respects the ISO 8601 format PnYnMnDTnHnMnS |
Child elements: None
Total
Parent: RoomStay
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
CurrencyCode | Yes | The currency in which the price is transmitted. The format will be provided in ISO 4214 |
AmountBeforeTax | No | The price for this particular room stay without any taxes |
AmountAfterTax | No | The price for this particular room stay with taxes |
Child elements: None
Price for the room night + services
BasicPropertyInfo
Parent: RoomStay
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
HotelCode | Yes | The ID of the hotel as defined on the online booking system |
HotelName | Yes | The name of the hotel as defined on the online booking system |
CurrencyCode | No | The currency code that has been configured for the hotel on the online booking system. |
Child elements: None
BasicPropertyInfo per room stay vs BasicPropertyInfo per reservation
Comments
Parent: RoomStay
Mandatory: No
Attributes: None
Child elements: Comment
Comment
Parent: Comments
Mandatory: yes
Attributes:None
Child elements: Text
Text
Parent: Comment
Mandatory: yes
Attributes:None
Child elements: None
ResGuestRPHs
Parent: RoomStay
Mandatory: yes
Attributes: None
Child elements: None
The link to the Guest profile
ServiceRPHs
Parent: RoomStay
Mandatory: yes
Attributes: None
Child elements: ServiceRPH
ServiceRPH
Parent: ServiceRPHs
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
IsPerRoom | No | The default value should be "1" |
RPH | Yes | An integer that will uniquely link a service described in the Service element to a RoomStay |
Child elements: None
ResGuests
Parent: HotelReservation
Mandatory: yes
Attributes: None
Child elements: ResGuest
ResGuest
Parent: ResGuests
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
ResGuestRPH | Yes | An integer that will uniquely link the current guest profile to a RoomStay |
Child elements: Profiles
Profiles
Parent: ResGuest
Mandatory: yes
Attributes: None
Child elements: ProfileInfo
The identity of the guest
ProfileInfo
Parent: Profiles
Mandatory: yes
Attributes: None
Child elements: Profile
Profile
Parent: ProfileInfo
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
ProfileType | Yes | Possible values are:
|
Child elements: Customer, CompanyInfo
Customer
Parent: Profile
ProfileType: 1 (Customer)
Mandatory: yes
Attributes: None
Child elements: PersonName, Email, Telephone, Address
PersonName
Parent: Customer
ProfileType: 1 (Customer)
Mandatory: yes
Attributes: None
Child elements: NamePrefix, NameTitle, GivenName, MiddleName, SurnamePrefix, Surname, NameSuffix
NamePrefix
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
NamePrefix
NameTitle
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
NameTitle
GivenName
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
GivenName
MiddleName
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
MiddleName
SurnamePrefix
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
SurnamePrefix
Surname
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: yes
Attributes: None
Child elements: None
Surname
NameSuffix
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
NameSuffix
Telephone
Parent: Customer
ProfileType
Mandatory: No
Attributes:
Name | Mandatory | Description |
---|---|---|
PhoneTechType | Yes | Possible values are:
|
PhoneNumber | Yes | The numerical string representing the telephone number |
FormattedInd | no | Is the telephone number provided formatted or unformatted |
CountryAccessCode | no | Code assigned by telecommunications authorities for international country access identifier |
AreaCityCode | no | Code assigned for telephones in a specific region, city or area |
Child elements: None
FormattedInd attribute
Correct formatting
Email
Parent: Customer
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
Address
Parent: Customer
ProfileType: 1 (Customer)
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
FormattedInd | No | When the address is unformatted (FormattedInd="false") these lines will contain free form address details. When the address is formatted and street number and street name must be sent independently, the street number will be sent using StreetNmbr, and the street name will be sent in the first AddressLine occurrence. |
Child elements: StreetNmbr, AddressLine, PostalCode, CityName, County, StateProv, CountryName
StreetNmbr
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
StreetNmbr
AddressLine
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
AddressLine
PostalCode
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
PostalCode
CityName
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
CityName
County
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
County
StateProv
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
StateProv
CountryName
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
Code | Yes | ISO 3166 alpha 2 code for a county |
Child elements: None
CountryName
The CountryName can also be transmitted for readability.
Company or Travel Agency Profile
CompanyInfo
Parent: Profile
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: yes
Attributes: None
Child elements: CompanyName, Email, TelephoneInfo, AddressInfo
CompanyName
Parent: CompanyInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: No
Attributes: None
Child elements: none
TelephoneInfo
Parent: CompanyInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: No
Attributes:
Name | Mandatory | Description |
---|---|---|
PhoneTechType | Yes | Possible values are:
|
PhoneNumber | Yes | The numerical string representing the telephone number |
FormattedInd | no | Is the telephone number provided formatted or unformatted |
CountryAccessCode | no | Code assigned by telecommunications authorities for international country access identifier |
AreaCityCode | no | Code assigned for telephones in a specific region, city or area |
Child elements: None
FormattedInd attribute
Correct formatting
Email
Parent: CompanyInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
AddressInfo
Parent: CompanyInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
FormattedInd | No | When the address is unformatted (FormattedInd="false") these lines will contain free form address details. When the address is formatted and street number and street name must be sent independently, the street number will be sent using StreetNmbr, and the street name will be sent in the first AddressLine occurrence. |
Child elements: StreetNmbr, AddressLine, PostalCode, CityName, County, StateProv, CountryName
StreetNmbr
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
StreetNmbr
AddressLine
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
AddressLine
PostalCode
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
PostalCode
CityName
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
CityName
County
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
County
StateProv
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
StateProv
CountryName
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
Code | Yes | ISO 3166 alpha 2 code for a county |
Child elements: None
CountryName
The CountryName can also be transmitted for readability.
ResGlobalInfo
Parent: HotelReservation
Mandatory: Yes
Attributes: None
Child elements: GuestCounts, TimeSpan, Comments, Guarantee, Total, HotelReservationIDs, Profiles, BasicPropertyinfo
GuestCounts
Parent: HotelReservation
Mandatory: yes
Attributes: None
Child elements: GuestCount
GuestCount
Parent: GuestCounts
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
AgeQualifyingCode | No | Possible values are:
|
Count | Yes | The total number of guests for this specific reservation within a specific age category. |
Child elements: None
Default AgeQualifyingCode
TimeSpan
Parent: ResGlobalInfo
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
Start | Yes | The arrival day for this reservation. The format should respect the ISO 8601 2015-11-16 |
End | Yes | The departure day for this reservation. The format should respect the ISO 8601 2015-11-16 |
Duration | No | The number of nights for this reservation. The format should respects the ISO 8601 format PnYnMnDTnHnMnS |
Child elements: None
No TimeSpan with different stay dates
Comments
Parent: HotelReservation
Mandatory: No
Attributes: None
Child elements: Comment
Comment
Parent: Comments
Mandatory: yes
Attributes:None
Child elements: Text
Text
Parent: Comment
Mandatory: yes
Attributes:None
Child elements: None
Guarantee
Parent: ResGlobalInfo
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
GuaranteeType | Yes | Possible values are:
|
Child elements: GuaranteesAccepted
GuaranteesAccepted
Parent: Guarantee
Mandatory: yes
Attributes:None
Child elements: GuaranteeAccepted
GuaranteeAccepted
Parent: GuaranteesAccepted
Mandatory: yes
Attributes:None
Child elements: PaymentCard
PaymentCard
Parent: ResGlobalInfo
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
CardCode | Yes | Possible values are:
|
ExpireDate | Yes | The expire date of the payment card. The format provided should be mmYY |
Child elements: CardHoldername, CardNumber
CardHolderName
Parent: PaymentCard
Mandatory: Yes
Attributes: None
Child elements: None
CardNumber
Parent: PaymentCard
Mandatory: No
Attributes:
Name | Mandatory | Description |
---|---|---|
Mask | No | The masked version of the credit card number. Only the last 4 digits will be displayed. |
Child elements: None
Total
Parent: ResGlobalInfo
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
CurrencyCode | Yes | The currency in which the price is transmitted. The format will be provided in ISO 4214 |
AmountBeforeTax | No | The price for this particular day without any taxes |
AmountAfterTax | No | The price for this particular day with taxes |
Child elements: None
Price for the room nights + services
HotelReservationIDs
Parent: ResGlobalInfo
Mandatory: yes
Attributes: None
Child elements: HotelReservationID
HotelReservationID
Parent: HotelReservationIDs
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
ResID_Type | Yes | Possible values are:
|
ResID_Value | Yes | The reservation number as provided by the online booking system to the end customer/guest |
ResID_SourceContext | No | The name of the online booking system |
ResID_Source | Yes | The ID of the online booking system as defined on the Hotel-Spider system. |
Child elements: None
Profiles
Parent: ResGlobalInfo
Mandatory: yes
Attributes: None
Child elements: ProfileInfo
The identity of the booker
ProfileInfo
Parent: Profiles
Mandatory: yes
Attributes: None
Child elements: Profile
Profile
Parent: ProfileInfo
Mandatory: yes
Attributes:
Name | Mandatory | Description |
---|---|---|
ProfileType | Yes | Possible values are:
|
Child elements: Customer, CompanyInfo
Customer
Parent: Profile
ProfileType: 1 (Customer)
Mandatory: yes
Attributes: None
Child elements: PersonName, Email, Telephone, Address
PersonName
Parent: Customer
ProfileType: 1 (Customer)
Mandatory: yes
Attributes: None
Child elements: NamePrefix, NameTitle, GivenName, MiddleName, SurnamePrefix, Surname, NameSuffix
NamePrefix
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
NamePrefix
NameTitle
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
NameTitle
GivenName
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
GivenName
MiddleName
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
MiddleName
SurnamePrefix
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
SurnamePrefix
Surname
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: yes
Attributes: None
Child elements: None
Surname
NameSuffix
Parent: PersonName
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
NameSuffix
Telephone
Parent: Customer
ProfileType
Mandatory: No
Attributes:
Name | Mandatory | Description |
---|---|---|
PhoneTechType | Yes | Possible values are:
|
PhoneNumber | Yes | The numerical string representing the telephone number |
FormattedInd | no | Is the telephone number provided formatted or unformatted |
CountryAccessCode | no | Code assigned by telecommunications authorities for international country access identifier |
AreaCityCode | no | Code assigned for telephones in a specific region, city or area |
Child elements: None
FormattedInd attribute
Correct formatting
Email
Parent: Customer
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
Address
Parent: Customer
ProfileType: 1 (Customer)
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
FormattedInd | No | When the address is unformatted (FormattedInd="false") these lines will contain free form address details. When the address is formatted and street number and street name must be sent independently, the street number will be sent using StreetNmbr, and the street name will be sent in the first AddressLine occurrence. |
Child elements: StreetNmbr, AddressLine, PostalCode, CityName, County, StateProv, CountryName
StreetNmbr
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
StreetNmbr
AddressLine
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
AddressLine
PostalCode
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
PostalCode
CityName
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
CityName
County
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
County
StateProv
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes: None
Child elements: None
StateProv
CountryName
Parent: Address
ProfileType: 1 (Customer)
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
Code | Yes | ISO 3166 alpha 2 code for a county |
Child elements: None
CountryName
The CountryName can also be transmitted for readability.
Company or Travel Agency Profile
CompanyInfo
Parent: Profile
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: yes
Attributes: None
Child elements: CompanyName, Email, TelephoneInfo, AddressInfo
CompanyName
Parent: CompanyInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: No
Attributes: None
Child elements: none
TelephoneInfo
Parent: CompanyInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: No
Attributes:
Name | Mandatory | Description |
---|---|---|
PhoneTechType | Yes | Possible values are:
|
PhoneNumber | Yes | The numerical string representing the telephone number |
FormattedInd | no | Is the telephone number provided formatted or unformatted |
CountryAccessCode | no | Code assigned by telecommunications authorities for international country access identifier |
AreaCityCode | no | Code assigned for telephones in a specific region, city or area |
Child elements: None
FormattedInd attribute
Correct formatting
Email
Parent: CompanyInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
AddressInfo
Parent: CompanyInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
FormattedInd | No | When the address is unformatted (FormattedInd="false") these lines will contain free form address details. When the address is formatted and street number and street name must be sent independently, the street number will be sent using StreetNmbr, and the street name will be sent in the first AddressLine occurrence. |
Child elements: StreetNmbr, AddressLine, PostalCode, CityName, County, StateProv, CountryName
StreetNmbr
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
StreetNmbr
AddressLine
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
AddressLine
PostalCode
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
PostalCode
CityName
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
CityName
County
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
County
StateProv
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes: None
Child elements: None
StateProv
CountryName
Parent: AddressInfo
ProfileType: 3 (Company), 4 (Travel Agency)
Mandatory: no
Attributes:
Name | Mandatory | Description |
---|---|---|
Code | Yes | ISO 3166 alpha 2 code for a county |
Child elements: None
CountryName
The CountryName can also be transmitted for readability.
BasicPropertyInfo
Parent: ResGlobalInfo
Mandatory: No
Attributes:
Name | Mandatory | Description |
---|---|---|
HotelCode | Yes | The ID of the hotel as defined on the online booking system |
HotelName | Yes | The name of the hotel as defined on the online booking system |
CurrencyCode | No | The currency code that has been configured for the hotel on the online booking system. |
Child elements: None
No BasicPropertyInfo for room stays accross different properties