Pushing reservations based on OTA_HotelResNotifRQ / OTA_HotelResNotifRS

The preferred way for the Hotel-Spider system to receive reservations from an online booking system is via the OTA_HotelResNotifRQ / OTA_HotelResNotifRS message pair as it implies that the reservations/modifications/cancellations are pushed towards the Hotel-Spider system.

Every time a reservation / modification / cancellation is made on the online booking system, the entire reservation should be transfered to the Hotel-Spider system. As this is a "notif" message, it implies that the third party software client pushes the information to the Hotel-Spider servers.


Information about data types

Be aware that all transmitted data has to comply with the OTA standard definitions. A validation of input data is done prior to reservation integration on Hotel-Spider and a reservation will be rejected as soon as a value is not complying with what is defined in the OTA standard (version 2014A).

Endpoints


Reservation cancellations

In order to notify Hotel-Spider about reservation cancellations, the OTA_HotelResModifyNotif has to be used. More information can be found here: Pushing reservation cancellations based on OTA_HotelResModifyNotifRQ / OTA_HotelResModifyNotifRS

Example request and response

OTA_HotelResNotifRQ Request
<OTA_HotelResNotifRQ Target="Test" EchoToken="7571639933" TimeStamp="2015-11-12T18:05:39+01:00" Version="1.000">
  <POS>
    <Source>
      <RequestorID Type="5" ID="MASTERUSERNAME" MessagePassword="MASTERPASSWORD"></RequestorID>
    </Source>
  </POS>
  <HotelReservations>
    <HotelReservation ResStatus="Book" OriginalDeliveryMethodCode="11" RoomStayReservation="1" WalkInIndicator="0" CreateDateTime="2015-11-12T18:06:39+01:00" LastModifyDateTime="2016-12-09T18: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="Book">
          <RoomTypes>
            <RoomType RoomID="ROOMID" IsRoom="1">
              <RoomDescription Name="Double Room with lake view"/>
            </RoomType>
          </RoomTypes>
          <RoomRates>
            <RoomRate EffectiveDate="2015-11-20" ExpireDate="2015-11-22" RatePlanID="FIRSTRATEPLANID">
              <Rates>
                <Rate EffectiveDate="2015-11-20" ExpireDate="2015-11-20">
                  <Base CurrencyCode="CHF" AmountBeforeTax="150.00" AmountAfterTax="162.00"/>
                  <Total CurrencyCode="CHF" AmountBeforeTax="150.00" AmountAfterTax="162.00"/>
                </Rate>
                <Rate EffectiveDate="2015-11-21" ExpireDate="2015-11-21">
                  <Base CurrencyCode="CHF" AmountBeforeTax="150.00" AmountAfterTax="162.00"/>
                  <Total CurrencyCode="CHF" AmountBeforeTax="150.00" AmountAfterTax="162.00"/>
                </Rate>
              </Rates>
              <RoomRateDescription>
                <Text>Best Available Rate</Text>
              </RoomRateDescription>
            </RoomRate>
            <RoomRate EffectiveDate="2015-11-22" ExpireDate="2015-11-23" RatePlanID="OTHERRATEPLANID">
              <Rates>
                <Rate EffectiveDate="2015-11-22" ExpireDate="2015-11-22">
                  <Base CurrencyCode="CHF" AmountBeforeTax="155.00" AmountAfterTax="167.00"/>
                  <Total CurrencyCode="CHF" AmountBeforeTax="155.00" AmountAfterTax="167.00"/>
                </Rate>
              </Rates>
              <RoomRateDescription>
                <Text>Best Available Rate High</Text>
              </RoomRateDescription>
            </RoomRate>
            <RoomRate EffectiveDate="2015-11-23" ExpireDate="2015-11-24" RatePlanID="FIRSTRATEPLANID">
              <Rates>
                <Rate EffectiveDate="2015-11-23" ExpireDate="2015-11-23">
                  <Base CurrencyCode="CHF" AmountBeforeTax="150.00" AmountAfterTax="162.00"/>
                  <Total CurrencyCode="CHF" AmountBeforeTax="150.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-24" />
          <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="605.00" AmountAfterTax="653.00"/>
          <BasicPropertyInfo HotelCode="HOTELCODE" />
          <ResGuestRPHs>1</ResGuestRPHs>
        </RoomStay>
        <RoomStay IndexNumber="2" RoomStayStatus="Book">
          <RoomTypes>
            <RoomType RoomID="SECONDROOMID" IsRoom="1">
              <RoomDescription Name="Double Room"/>
            </RoomType>
          </RoomTypes>
          <RoomRates>
            <RoomRate EffectiveDate="2015-11-20" ExpireDate="2015-11-24" RatePlanID="FIRSTRATEPLANID">
              <Rates>
                <Rate EffectiveDate="2015-11-20" ExpireDate="2015-11-20">
                  <Base CurrencyCode="CHF" AmountBeforeTax="132.00" AmountAfterTax="143.00"/>
                  <Total CurrencyCode="CHF" AmountBeforeTax="132.00" AmountAfterTax="143.00"/>
                </Rate>
                <Rate EffectiveDate="2015-11-21" ExpireDate="2015-11-21">
                  <Base CurrencyCode="CHF" AmountBeforeTax="132.00" AmountAfterTax="143.00"/>
                  <Total CurrencyCode="CHF" AmountBeforeTax="132.00" AmountAfterTax="143.00"/>
                </Rate>
                <Rate EffectiveDate="2015-11-22" ExpireDate="2015-11-22">
                  <Base CurrencyCode="CHF" AmountBeforeTax="132.00" AmountAfterTax="143.00"/>
                  <Total CurrencyCode="CHF" AmountBeforeTax="132.00" AmountAfterTax="143.00"/>
                </Rate>
                <Rate EffectiveDate="2015-11-23" ExpireDate="2015-11-23">
                  <Base CurrencyCode="CHF" AmountBeforeTax="132.00" AmountAfterTax="143.00"/>
                  <Total CurrencyCode="CHF" AmountBeforeTax="132.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-24" />
          <CancelPenalties>
            <CancelPenalty>
              <Deadline AbsoluteDeadline="2015-11-18T00:00:00+01:00"/>
              <AmountPercent FeesInclusive="1" Amount="143.00" CurrencyCode="CHF"/>
              <PenaltyDescription Name="free cancellation 48 hours"/>
            </CancelPenalty>
          </CancelPenalties>
          <DepositPayments>
            <GuaranteePayment GuaranteeType="PrePay" Type="RequiredPayment" NonRefundableIndicator="False">
              <AcceptedPayments>
                <AcceptedPayment GuaranteeTypeCode="4" PaymentTransactionTypeCode="charge">
                  <PaymentCard CardCode="VI" ExpireDate="0917">
                    <CardHolderName>Dr WhoWho II</CardHolderName>
                    <CardNumber>
                      <PlainText>4970497049704971</PlainText>
                    </CardNumber>
                    <SeriesCode>
				      <PlainText>124</PlainText>
					</SeriesCode>
                  </PaymentCard>
                </AcceptedPayment>
              </AcceptedPayments>
              <AmountPercent Percent="10" CurrencyCode="EUR" Amount="5.90" DecimalPlaces="2" ApplyAs="FirstAndLastNightDeposit" />
              <Description>
                <Text>This is a test DepositPayment on the RoomStay level</Text>
              </Description>
            </GuaranteePayment>
          </DepositPayments>
          <Discount DiscountCode="PROMOCODE" Percent="5" AmountAfterTax="5.50" DecimalPlaces="2" CurrencyCode="EUR">
            <DiscountReason NAME="VACANCES2016">
              <Text>This guest has used the VACANCES2016 promotion code</Text>
            </DiscountReason>
          </Discount>
          <Total CurrencyCode="CHF" AmountBeforeTax="528.00" AmountAfterTax="572.00"/>
          <BasicPropertyInfo HotelCode="HOTELCODE" />
          <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-24" Duration="P4D"/>
        <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>
                    <PlainText>4111111111111111</PlainText>
                </CardNumber>
                <SeriesCode>
				    <PlainText>11</PlainText>
				</SeriesCode>
              </PaymentCard>
            </GuaranteeAccepted>
          </GuaranteesAccepted>
        </Guarantee>
        <DepositPayments>
          <GuaranteePayment GuaranteeType="PrePay" Type="RequiredPayment" NonRefundableIndicator="False">
            <AcceptedPayments>
              <AcceptedPayment GuaranteeTypeCode="4" PaymentTransactionTypeCode="charge">
                <PaymentCard CardCode="VI" ExpireDate="0917">
                  <CardHolderName>Dr WhoWho II</CardHolderName>
                  <CardNumber>
                    <PlainText>4970497049704971</PlainText>
                  </CardNumber>
                  <SeriesCode>
				    <PlainText>124</PlainText>
			      </SeriesCode>
                </PaymentCard>
              </AcceptedPayment>
            </AcceptedPayments>
            <AmountPercent Percent="10" CurrencyCode="EUR" Amount="5.90" DecimalPlaces="2" ApplyAs="FirstAndLastNightDeposit" />
            <Description>
              <Text>This is a test DepositPayment on the Reservation level</Text>
            </Description>
          </GuaranteePayment>
        </DepositPayments>
        <Discount DiscountCode="PROMOCODE" Percent="5" AmountAfterTax="5.50" DecimalPlaces="2" CurrencyCode="EUR">
          <DiscountReason NAME="VACANCES2016">
            <Text>This guest has used the VACANCES2016 promotion code</Text>
          </DiscountReason>
        </Discount>
        <Total CurrencyCode="CHF" AmountBeforeTax="1133.00" AmountAfterTax="1225.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="HOTELCODE" />
      </ResGlobalInfo>
    </HotelReservation>
  </HotelReservations>
</OTA_HotelResNotifRQ>
OTA_HotelResNotifRS request
<OTA_HotelResNotifRS Version="1.000" Target="Production" TimeStamp="2011-08-01T16:14:00+01:00" EchoToken="7571639933">
  <Success />
  <HotelReservations>
    <HotelReservation>
      <ResGlobalInfo>
        <HotelReservationIDs>
          <HotelReservationID ResID_Value="HOTELSPIDERCONFIRMATIONNUMBER" ResID_Type="40" />
          <HotelReservationID ResID_Source="ONLINEBOOKINGSYSTEMID" ResID_SourceContext="ONLINEBOOKINGSYSTEMNAME" ResID_Value="ABCD-668591" ResID_Type="14" />
        </HotelReservationIDs>
      </ResGlobalInfo>
    </HotelReservation>
  </HotelReservations>
</OTA_HotelResNotifRS>


Request structure

OTA_HotelResNotifRQ

Parent: None (Root element)

Mandatory: yes

Attributes:

NameMandatoryDescription
TimeStampYesThe format should respect the ISO 8601 2015-11-16T22:23:48+00:00
TargetYes

When sending updates to the staging environment "Test" must be used.

When sending updates to the production environment "Production" must be used.

VersionYes

The default value should be "1.000"

EchoTokenYesThe value will be returned in the OTA_HotelResNotifRS response

Child elements: POS, HotelReservations


POS

Parent: OTA_HotelResNotifRQ

Mandatory: yes

Attributes: None

Child elements: Source


Source

Parent: POS

Mandatory: yes

Attributes: None

Child elements: RequestorID


RequestorID

Parent: Source

Mandatory: yes

Attributes: 

NameMandatoryDescription
IDYesYour username
MessagePasswordYesYour password

Child elements: None


HotelReservations

Parent: OTA_HotelResNotifRQ

Mandatory: yes

Attributes: None

Child elements: HotelReservation


HotelReservation

Parent: HotelReservations

Mandatory: yes

Attributes:

NameMandatoryDescription
ResStatusYes

Possible values are:

  • Book
  • Modify
OriginalDeliveryMethodCodeNoThe default value should be "11" for

.

RoomStayReservationNo

The default value should be "1.000"

WalkInIndicatorNoThe value will be returned in the OTA_HotelResNotifRS response
CreateDateTimeYesThe format should respect the ISO 8601 2015-11-16T22:23:48+00:00
LastModifyDateTimeYesThe format should respect the ISO 8601 2015-11-16T22:23:48+00:00

Child elements: POS, RoomStays, ResGuests, Services, ResGlobalInfo


POS

Parent: HotelReservation

Mandatory: yes

Attributes: None

Child elements: Source


Source

Parent: POS

Mandatory: yes

Attributes: None

Child elements: RequestorID, BookingChannel


RequestorID

Parent: Source

Mandatory: yes

Attributes: 

NameMandatoryDescription
TypeYesMust have the value "22"
IDYesYour channel ID (contact us if you don't know it)

Child elements: None


BookingChannel

Parent: Source

Mandatory: yes

Attributes: None

Child elements: CompanyName


CompanyName

Parent: Source

Mandatory: yes

Attributes: None

Value: The name of your booking channel

Child elements: None


RoomStays

Parent: HotelReservation

Mandatory: yes

Attributes: None

Child elements: RoomStay


RoomStay

Parent: RoomStays

Mandatory: yes

Attributes:

NameMandatoryDescription
IndexNumberYesUnique identifier of this specific room stay.
RoomStayStatusYes

Possible values are:

  • Book 
  • Cancel

Child elements: RoomTypes, RoomRates, GuestCounts, TimeSpan, CancelPenalties, Total, BasicPropertyInfo, ResGuestRPHs, ServiceRPHs

One RoomStay per booked room

Each RoomStay should contain one room. Should the same room type have been booked multiple times, then there should be as many RoomStay elements as booked rooms.


RoomTypes

Parent: RoomStay

Mandatory: yes

Attributes: None

Child elements: RoomType


RoomType

Parent: RoomTypes

Mandatory: yes

Attributes:

NameMandatoryDescription
RoomIDYes

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

IsRoomNoThe default value should be "1"

Child elements: RoomDescription


RoomDescription

Parent: RoomType

Mandatory: yes

Attributes:

NameMandatoryDescription
NameYes

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:

NameMandatoryDescription
EffectiveDateYes

The day on which this rate plan was applied for a reservation. The format should respect the ISO 8601 2015-11-16

ExpireDateYesThe day on which this rate plan was applied for a reservation. The format should respect the ISO 8601 2015-11-16
ExpireDateExclusiveIndNoIn the case of a date span, should the ExpireDate be included (ExpireDateExclusiveInd="0") or excluded (ExpireDateExclusiveInd="1")
RatePlanIDYesThe 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:

NameMandatoryDescription
EffectiveDateYes

The day on which this rate was applied for a reservation. The format should respect the ISO 8601 2015-11-16

ExpireDateYesThe day on which this rate was applied for a reservation. The format should respect the ISO 8601 2015-11-16

Child elements: Base, Total

Note on RoomRate and Rate elements

In order to prevent any interpretation issue, exactly one Rate element must be present for each night of the stay while RoomRate elements are used to differentiate rate plans.

In the example message above, both room stays are for 4 nights but

  • the first one has a different rate plan for the third night, resulting in the presence of 3 different RoomRate elements
  • the second one is made with the same rate plan for all nights, thus only one RoomRate element is needed


Base

Parent: Rate

Mandatory: yes

Attributes:

NameMandatoryDescription
CurrencyCodeYes

The day on which this rate plan was applied for a reservation. The format should respect the ISO 8601 2015-11-16

AmountBeforeTax / AmountAfterTaxYesThe day rate for this specific product (room type + rate plan) without any additional services

Child elements: None

Provide a day rate

The price provided should be applicable per day and only for one room stay.


Total

Parent: Rate

Mandatory: yes

Attributes:

NameMandatoryDescription
CurrencyCodeYes

The day on which this rate plan was applied for a reservation. The format should respect the ISO 8601 2015-11-16

AmountBeforeTax / AmountAfterTaxYesThe day rate for this specific product (room type + rate plan) with additional services

Child elements: None

Provide a day rate

The price provided should be applicable per day and only for one room stay.


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

The Text element should contain the name 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


GuestCounts

Parent: RoomStay

Mandatory: yes

Attributes: None

Child elements: GuestCount


GuestCount

Parent: GuestCounts

Mandatory: yes

Attributes:

NameMandatoryDescription
AgeQualifyingCodeNo

Possible values are:

  • 7 (Infant) 
  • 8 (Child)
  • 9 (Teenager)
  • 10 (Adult) 
  • 11 (Senior)
CountYes

The number of guests for this specific room stay within a specific age category.

Child elements: None

Default AgeQualifyingCode

Should no AgeQualifyingCode attribute be provided, the Hotel-Spider system will assume that the guest count applies for adults (10).

GuestCount per RoomStay

The guest count should apply per Room Stay


TimeSpan

Parent: RoomStay

Mandatory: yes

Attributes:

NameMandatoryDescription
StartYes

The arrival day for this room stay. The format should respect the ISO 8601 2015-11-16

EndYes

The departure day for this room stay. The format should respect the ISO 8601 2015-11-16

DurationNoThe 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
CurrencyCodeYesThe currency in which the price is transmitted. The format will be provided in ISO 4214
AmountBeforeTaxNoThe price for this particular room stay without any taxes
AmountAfterTaxNoThe price for this particular room stay with taxes

Child elements: None

Price for the room night + services

 
The value in the Total element will reflect the price of the room stay with any additional services.


Discount

Parent: RoomStay

Mandatory: no

Attributes:

Name
Mandatory
Description
AmountAfterTaxYes

The discount total amount including all associated taxes

AmountBeforeTaxNoThe discount total amount not including any associated tax
CurrencyCodeYes

An ISO 4217 (3) alpha character code that specifies a monetary unit.

DiscountCodeNo

Specifies the type of discount (max 16 chars)

PercentNoSpecifies the percentage of discount

DiscountReason

Parent: Discount

Mandatory: no

Attributes:

Name
Mandatory
Description
NameNo

Can be used to transfer a promotion code (max 64 chars)

Text

Parent: DiscountReason

Mandatory: no

Value: A textual description of the discount


BasicPropertyInfo

Parent: RoomStay

Mandatory: yes

Attributes:

NameMandatoryDescription
HotelCodeYes

The ID of the hotel as defined on the online booking system

HotelNameYes

The name of the hotel as defined on the online booking system

CurrencyCodeNoThe 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

Although the vast majority of the reservations transmitted to the Hotel-Spider system will only contain room stays for one single hotel, technically, in accordance with the OTA protocol, it is possible to book multiple room stays across multiple properties. For this reason, the BasicPropertyInfo must always be provided on room stay level.


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


DepositPayments

Parent: RoomStay

Details: see here


ResGuestRPHs

Parent: RoomStay

Mandatory: yes

Attributes: None

Child elements: None

The link to the Guest profile

The ResGuestRPHs element should contain a comma separated string of integers that each link uniquely to a guest profile as described in the ResGuest elements.


ServiceRPHs

Parent: RoomStay

Mandatory: yes

Attributes: None

Child elements: ServiceRPH


ServiceRPH

Parent: ServiceRPHs

Mandatory: yes

Attributes:

NameMandatoryDescription
IsPerRoomNo

The default value should be "1"

RPHYes

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:

NameMandatoryDescription
ResGuestRPHYes

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

When the Profiles element is in the ResGuest container, it should contain the identity/profile of the person whom will sleep in the hotel.


ProfileInfo

Parent: Profiles

Mandatory: yes

Attributes: None

Child elements: Profile


Profile

Parent: ProfileInfo

Mandatory: yes

Attributes:

NameMandatoryDescription
ProfileTypeYes

Possible values are:

  • 1 (Customer) 
  • 4 (Company)
  • 5 (Travel Agency)

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

Salutation of honorific. Example: Mr, Mrs, Ms, Miss, Dr


NameTitle

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

NameTitle

Degree or honors. Example: Ph. D., M.D.


GivenName

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

GivenName

Given name, first name or names. Example: John, James, Martin


MiddleName

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

MiddleName

The middle name of the person name. Example: Johny, James, Martin


SurnamePrefix

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

SurnamePrefix

The surname prefix. Example: "van der", "von", "de"


Surname

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: yes

Attributes: None

Child elements: None

Surname

Family name, last name. Even though this is not recommended, it may also be used for full name if the online booking system does have the ability to separate a full name into its parts.


NameSuffix

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

NameSuffix

Can contain various name suffixes and letters. Example: "Jr.", "Sr.", "III"


Telephone

Parent: Customer

ProfileType

Mandatory: No

Attributes:

NameMandatoryDescription
PhoneTechTypeYes

Possible values are:

  • 1 (Voice) 
  • 3 (Fax)
  • 5 (Mobile)
PhoneNumberYesThe numerical string representing the telephone number
FormattedIndnoIs the telephone number provided formatted or unformatted
CountryAccessCodenoCode assigned by telecommunications authorities for international country access identifier
AreaCityCodenoCode assigned for telephones in a specific region, city or area

Child elements: None

FormattedInd attribute

When the FormattedInd attribute is set, the CountryAccessCode, the AreaCityCode and the PhoneNumber attributes should contain the appropriate information.

Correct formatting

When the telephone is transmitted formatted, the PhoneNumber attribute should not contain the CountryAccessCode nor the AreaCityCode values.


Email

Parent: Customer

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None


Address

Parent: Customer

ProfileType: 1 (Customer)

Mandatory: no

Attributes:

NameMandatoryDescription
FormattedIndNoWhen 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

Contains the street number.


AddressLine

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

AddressLine

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.


PostalCode

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

PostalCode

Postal Office Code number


CityName

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

CityName

City, town or postal station (i.e., a postal service territory, often used in a military address)


County

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

County

County or Region Name


StateProv

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

StateProv

State or Province name


CountryName

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes:

NameMandatoryDescription
CodeYesISO 3166 alpha 2 code for a county

Child elements: None

CountryName

The CountryName can also be transmitted for readability.



Company or Travel Agency Profile

Description of the ProfileType="3" and ProfileType="4"



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:

NameMandatoryDescription
PhoneTechTypeYes

Possible values are:

  • 1 (Voice) 
  • 3 (Fax)
  • 5 (Mobile)
PhoneNumberYesThe numerical string representing the telephone number
FormattedIndnoIs the telephone number provided formatted or unformatted
CountryAccessCodenoCode assigned by telecommunications authorities for international country access identifier
AreaCityCodenoCode assigned for telephones in a specific region, city or area

Child elements: None

FormattedInd attribute

When the FormattedInd attribute is set, the CountryAccessCode, the AreaCityCode and the PhoneNumber attributes should contain the appropriate information.

Correct formatting

When the telephone is transmitted formatted, the PhoneNumber attribute should not contain the CountryAccessCode nor the AreaCityCode values.


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:

NameMandatoryDescription
FormattedIndNoWhen 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

Contains the street number.


AddressLine

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes: None

Child elements: None

AddressLine

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.


PostalCode

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes: None

Child elements: None

PostalCode

Postal Office Code number


CityName

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes: None

Child elements: None

CityName

City, town or postal station (i.e., a postal service territory, often used in a military address)


County

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes: None

Child elements: None

County

County or Region Name


StateProv

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes: None

Child elements: None

StateProv

State or Province name


CountryName

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes:

NameMandatoryDescription
CodeYesISO 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:

NameMandatoryDescription
AgeQualifyingCodeNo

Possible values are:

  • 7 (Infant) 
  • 8 (Child)
  • 9 (Teenager)
  • 10 (Adult) 
  • 11 (Senior)
CountYes

The total number of guests for this specific reservation within a specific age category.

Child elements: None

Default AgeQualifyingCode

Should no AgeQualifyingCode attribute be provided, the Hotel-Spider system will assume that the guest count applies for adults (10).


TimeSpan

Parent: ResGlobalInfo

Mandatory: no

Attributes:

NameMandatoryDescription
StartYes

The arrival day for this reservation. The format should respect the ISO 8601 2015-11-16

EndYes

The departure day for this reservation. The format should respect the ISO 8601 2015-11-16

DurationNoThe number of nights for this reservation. The format should respects the ISO 8601 format PnYnMnDTnHnMnS

Child elements: None

No TimeSpan with different stay dates

Should the arrival and departure dates be different accross the different room stays, then the TimeSpan attribute must not be provided in the ResGlobalInfo container.


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:

NameMandatoryDescription
GuaranteeTypeYes

Possible values are:

  • CC/DC/Voucher
  • Deposit
  • Profile

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:

NameMandatoryDescription
CardCodeYes

Possible values are:

  • AX (American Express)
  • BC (Bank Card)
  • BL (Carte Bleu)
  • CB (Carte Blance)
  • DN (Diners Club)
  • DS (Discover Card)
  • EC (Eurocard)
  • JC (Japanese Credit Bureau Credit Card)
  • MA (Maestro / Switch)
  • MC (Mastercard)
  • TP (Universal Air Travel Card)
  • VI (Visa)
ExpireDateYesThe expire date of the payment card. The format provided should be mmYY

Child elements: CardHoldername, CardNumber, SeriesCode


CardHolderName

Parent: PaymentCard

Mandatory: Yes

Attributes: None

Child elements: None


CardNumber

Parent: PaymentCard

Mandatory: No

Attributes:

Name
Mandatory
Description
MaskNo

The masked version of the credit card number. Only the last 4 digits will be displayed.

Child elements: PlainText


PlainText

Parent: CardNumber

Mandatory: No

Attributes: None

Child elements: None


SeriesCode

Parent: PaymentCard

Mandatory: No

Attributes: None

Child elements: PlainText


PlainText

Parent: SeriesCode

Mandatory: No

Attributes: None

Child elements: None



DepositPayments

Parent: ResGlobalInfo

Mandatory: No

Attributes: None

Child elements: GuaranteePayment


GuaranteePayment

Parent: DepositPayments

Mandatory: No

Attributes: 

Name

Mandatory

Description

AddressIndNoIf true, the credit cardholder address is required for guarantee/deposit.
AddressRetainIndNoIf true, the card holder's address is retained.
AgencyNameAddrReqIndNoIf true, the agency name and address are required for guarantee/deposit.
CompanyNameAddrReqIndNoIf true, the company name and address are required for guarantee/deposit.
GuaranteeCodeNoGuarantee code (max length: 32 char)
GuaranteeTypeNoAn enumerated type defining the guarantee to be applied to this reservation. Accepted values: 'CC/DC/Voucher', 'Deposit', 'GuaranteeRequired', 'None', 'PrePay', 'Profile'
HoldTimeNoThe room will held up until this time without a guarantee.
InfoSourceNoTo specify the source of the rate of exchange for a currency code. Used to specify the source of the data being exchanged.
InterbankNbrIndNoIf true, the Interbank Card Association number is required for guarantee/deposit.
NameIndNoIf true, the credit cardholder name is required for guarantee/deposit.
NameRetainIndNoIf true, the card holder's name is retained.
NoCardHolderInfoReqIndNoIf true, no credit cardholder information is required for guarantee/deposit.
NoCardHolderInfoRetainIndNoIf true, no card holder information is retained.
NonRefundableIndicatorNoWhen true, indicates that any prepayment for the reservation is non refundable, therefore a 100% penalty on the prepayment is applied, irrespective of deadline.
PaymentCodeNoThis defines the form of payment. Value is of type Payment Type (PMT)
PhoneIndNoIf true, the credit cardholder phone number is required for guarantee/deposit.
PhoneRetainIndNoIf true, the card holder's phone number is retained.
PolicyCodeNoUsed to specify the type of payment policy. (max length: 16 char)
RetributionTypeNoAn enumerated type defining the type of action taken when the deadline has been exceeded. Valid values: 'ResAutoCancelled', 'ResNotGuaranteed'
RoomTypeCodeNoA system specific room type to which this guarantee payment information applies.
TypeNoUsed to specify the type of information being sent. Accepted values: 'AcceptedPaymentForms', 'GuaranteePolicy', 'RequiredPayment'
DurationNoThe duration of this reservation's guarantee.
EndNoThe end day for this reservation's guarantee.
The format should respect the ISO 8601 eg. 2015-11-16
StartNo

The start day for this reservation's guarantee.
The format should respect the ISO 8601 eg. 2015-11-16

MonNoWhen true, apply to Monday
TueNoWhen true, apply to Tuesday
WedsNoWhen true, apply to Wednesday
ThurNoWhen true, apply to Thursday
FriNoWhen true, apply to Friday
SatNoWhen true, apply to Saturday
SunNoWhen true, apply to Sunday

Child elements: AcceptedPayments


AcceptedPayments

Parent: GuaranteePayment

Mandatory: No

Attributes: None

Child elements: AcceptedPayment


AcceptedPayment

Parent: AcceptedPayments

Mandatory: No

Attributes:

Name

Mandatory

Description

CostCenterIDNoA reference to identify the billing department for allocating cost of travel to company account.
GuaranteeIDNoProvides the identifier as specified by the GuaranteeTypeCode (e.g., Corporate ID or IATA number).
GuaranteeIndicatorNo

When true, indicates this represents a guarantee rather than a payment form.

GuaranteeTypeCodeNoUsed to specify the method of guarantee. Value is of type Payment Type (PMT)
PaymentTransactionTypeCodeNoThis is used to indicate either a charge, reserve (deposit) or refund. Accepted values: 'charge', 'refund', 'reserve'
RemarkNoA remark associated with the payment form. Max length: 128 char
RPHNoProvides a reference to a specific form of payment.

Child elements: PaymentCard


PaymentCard

Parent: AcceptedPayment

Details: see here


AmountPercent

Parent: AcceptedPayments

Details: see here


Description

Parent: GuaranteePayment

Mandatory: No

Attributes: None

Child elements: Text


Text

Parent: Description

Mandatory: No

Attributes: None

Child elements: None


Total

Parent: ResGlobalInfo

Mandatory: yes

Attributes:

Name
Mandatory
Description
CurrencyCodeYesThe currency in which the price is transmitted. The format will be provided in ISO 4214
AmountBeforeTaxNoThe price for this particular day without any taxes
AmountAfterTaxNoThe price for this particular day with taxes

Child elements: None

Price for the room nights + services

 
The value in the Total element will reflect the sum of the room nights with any additional services.


Discount

Parent: ResGlobalInfo

Mandatory: no

For the description of this element, please see here.


HotelReservationIDs

Parent: ResGlobalInfo

Mandatory: yes

Attributes: None

Child elements: HotelReservationID


HotelReservationID

Parent: HotelReservationIDs

Mandatory: yes

Attributes:

NameMandatoryDescription
ResID_TypeYes

Possible values are:

  • 14 (Reservation)
  • 15 (Cancellation)
ResID_ValueYes

The reservation number as provided by the online booking system to the end customer/guest

ResID_SourceContextNoThe name of the online booking system
ResID_SourceYesThe ID of the online booking system as defined on the Hotel-Spider system.
ResID_DateNoThe date and time of generation of the given ID

Child elements: None


Profiles

Parent: ResGlobalInfo

Mandatory: yes

Attributes: None

Child elements: ProfileInfo

The identity of the booker

When the Profiles element is in the ResGlobalInfo container, it should contain the identity/profile of the person / company / travel agency that booked.


ProfileInfo

Parent: Profiles

Mandatory: yes

Attributes: None

Child elements: Profile


Profile

Parent: ProfileInfo

Mandatory: yes

Attributes:

NameMandatoryDescription
ProfileTypeYes

Possible values are:

  • 1 (Customer) 
  • 4 (Company)
  • 5 (Travel Agency)

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

Salutation of honorific. Example: Mr, Mrs, Ms, Miss, Dr


NameTitle

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

NameTitle

Degree or honors. Example: Ph. D., M.D.


GivenName

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

GivenName

Given name, first name or names. Example: John, James, Martin


MiddleName

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

MiddleName

The middle name of the person name. Example: Johny, James, Martin


SurnamePrefix

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

SurnamePrefix

The surname prefix. Example: "van der", "von", "de"


Surname

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: yes

Attributes: None

Child elements: None

Surname

Family name, last name. Even though this is not recommended, it may also be used for full name if the online booking system does have the ability to separate a full name into its parts.


NameSuffix

Parent: PersonName

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

NameSuffix

Can contain various name suffixes and letters. Example: "Jr.", "Sr.", "III"


Telephone

Parent: Customer

ProfileType

Mandatory: No

Attributes:

NameMandatoryDescription
PhoneTechTypeYes

Possible values are:

  • 1 (Voice) 
  • 3 (Fax)
  • 5 (Mobile)
PhoneNumberYesThe numerical string representing the telephone number
FormattedIndnoIs the telephone number provided formatted or unformatted
CountryAccessCodenoCode assigned by telecommunications authorities for international country access identifier
AreaCityCodenoCode assigned for telephones in a specific region, city or area

Child elements: None

FormattedInd attribute

When the FormattedInd attribute is set, the CountryAccessCode, the AreaCityCode and the PhoneNumber attributes should contain the appropriate information.

Correct formatting

When the telephone is transmitted formatted, the PhoneNumber attribute should not contain the CountryAccessCode nor the AreaCityCode values.


Email

Parent: Customer

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None


Address

Parent: Customer

ProfileType: 1 (Customer)

Mandatory: no

Attributes:

NameMandatoryDescription
FormattedIndNoWhen 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

Contains the street number.


AddressLine

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

AddressLine

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.


PostalCode

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

PostalCode

Postal Office Code number


CityName

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

CityName

City, town or postal station (i.e., a postal service territory, often used in a military address)


County

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

County

County or Region Name


StateProv

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes: None

Child elements: None

StateProv

State or Province name


CountryName

Parent: Address

ProfileType: 1 (Customer)

Mandatory: no

Attributes:

NameMandatoryDescription
CodeYesISO 3166 alpha 2 code for a county

Child elements: None

CountryName

The CountryName can also be transmitted for readability.



Company or Travel Agency Profile

Description of the ProfileType="3" and ProfileType="4"



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:

NameMandatoryDescription
PhoneTechTypeYes

Possible values are:

  • 1 (Voice) 
  • 3 (Fax)
  • 5 (Mobile)
PhoneNumberYesThe numerical string representing the telephone number
FormattedIndnoIs the telephone number provided formatted or unformatted
CountryAccessCodenoCode assigned by telecommunications authorities for international country access identifier
AreaCityCodenoCode assigned for telephones in a specific region, city or area

Child elements: None

FormattedInd attribute

When the FormattedInd attribute is set, the CountryAccessCode, the AreaCityCode and the PhoneNumber attributes should contain the appropriate information.

Correct formatting

When the telephone is transmitted formatted, the PhoneNumber attribute should not contain the CountryAccessCode nor the AreaCityCode values.


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:

NameMandatoryDescription
FormattedIndNoWhen 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

Contains the street number.


AddressLine

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes: None

Child elements: None

AddressLine

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.


PostalCode

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes: None

Child elements: None

PostalCode

Postal Office Code number


CityName

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes: None

Child elements: None

CityName

City, town or postal station (i.e., a postal service territory, often used in a military address)


County

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes: None

Child elements: None

County

County or Region Name


StateProv

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes: None

Child elements: None

StateProv

State or Province name


CountryName

Parent: AddressInfo

ProfileType: 3 (Company), 4 (Travel Agency)

Mandatory: no

Attributes:

NameMandatoryDescription
CodeYesISO 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:

NameMandatoryDescription
HotelCodeYes

The ID of the hotel as defined on the online booking system

HotelNameYes

The name of the hotel as defined on the online booking system

CurrencyCodeNoThe 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

Should the reservation have been made for more than one hotel, in order words not all the room stays are for the same hotel, then the BasicPropertyInfo should not be used in the ResGlobalInfo container.


Response structure

OTA_HotelResNotifRS

Parent: None (Root element)

Mandatory: yes

Attributes:

NameMandatoryDescription
TimeStampYesThe format will respect the ISO 8601 2015-11-16T22:23:48+00:00
TargetYes

When sending updates to the staging environment "Test" must be used.

When sending updates to the production environment "Production" must be used.

VersionYes

The default value should be "1.000"

EchoTokenYesThe value will be returned in the OTA_HotelResNotifRS response

Child elements: HotelReservations, Success, Warnings, Errors


HotelReservations

Parent: OTA_HotelResNotifRS

Mandatory: yes

Attributes: None

Child elements: HotelReservation


HotelReservation

Parent: HotelReservations

Mandatory: yes

Attributes: None

Child elements: ResGlobalInfo


ResGlobalInfo

Parent: HotelReservation

Mandatory: yes

Attributes: None

Child elements: HotelReservationIDs


HotelReservationIDs

Parent: ResGlobalInfo

Mandatory: yes

Attributes: None

Child elements: HotelReservationID


HotelReservationID

Parent: HotelReservationIDs

Mandatory: yes

Attributes:

NameMandatoryDescription
ResID_TypeYes

Possible values are:

  • 14 (Reservation transmitted by the online booking system) 
  •   15 (Cancellation transmitted by the online booking system)
  • 40 (Confirmation number returned by the Hotel-Spider system in case of a successfull import)
ResID_ValueYes

For ResID_Type="14" or ResID_Type="15" the reservation number that was provided by the online booking system to the end customer/guest.

For ResID_Type="40" the reservation number that the Hotel-Spider system assigned to the successfully imported reservation

ResID_SourceContextNo

For ResID_Type="14" or ResID_Type="15" the name of the online booking system

For ResID_Type="40" the default value will be "Hotel-Spider"

ResID_SourceYes

For ResID_Type="14" or ResID_Type="15"  the ID of the online booking system as defined on the Hotel-Spider system

For ResID_Type="40" this attribute will not be provided.

Child elements: None

Success

Parent: OTA Response root element

Mandatory: No

Attributes: None

Child elements: None


Warnings

Parent: OTA Response root element

Mandatory: No

Attributes: None

Child elements: None


Warning

Parent: Warnings

Mandatory: yes (If Warnings is provided)

Attributes:

NameMandatoryDescription
TypeYesOTA EWT type code

Code

YesOTA ERR error code
StatusYesPossible values: NotProcessed | Incomplete | Complete | Unknown
ShortTextYesTextual explanation of the error.

Child elements: None


Errors

Parent: OTA Response root element

Mandatory: No

Attributes: None

Child elements: Error


Error

Parent: Error

Mandatory: yes (If Errors is provided)

Attributes:

NameMandatoryDescription
TypeYesOTA EWT type code

Code

YesOTA ERR error code
StatusYesPossible values: NotProcessed | Incomplete | Complete | Unknown
ShortTextYesTextual explanation of the error.

Child elements: None