Price Searches and Bookings For Children

When performing price searches and placing bookings for children it is important to advise the correct ages of the children at the time they travel. This will ensure that the best possible child reduction is applied for them and will also avoid problems for the passengers when checking into a hotel or joining a sightseeing tour or transfer.

PAX ID information

Children between 0 and 2 years old are considered as infants and there is no need to add them to the <PaxNames> parameters of the <AddBookingRequest>. Children above the age of 2 years should be clearly defined as children via the ‘PaxType’ attribute and contain the age at the time of travel:

<AddBookingRequest>
<BookingReference>2011/QWERTY123</BookingReference>
<PaxNames>
<PaxName PaxId="1"><![CDATA[Mr A Smith]]></PaxName>
<PaxName PaxId="2"><![CDATA[Mrs B Smith]]></PaxName>
<PaxName PaxId="3" PaxType="child" ChildAge="9"><![CDATA[Ms C Smith]]></PaxName>
<PaxName PaxId="4" PaxType="child" ChildAge="3"><![CDATA[Mr D Smith]]></PaxName>
</PaxNames>

It is important that each passenger is being assigned a ‘PaxId’. It is not possible to assign a child to PaxId=”1”; PaxId=”1” MUST always be an adult.

Requesting baby cots for infants

Children between 0 and 2 years old are considered as infants and there is no need to add them to the <PaxNames> parameters of the <AddBookingRequest>. In order to request a cot for an infant below 3 years old the “NumberOfCots” attribute needs to be used in both, the <SearchHotelPriceRequest> and the <AddBookingRequest>. The value can be set to ‘0’, ‘1’ or ‘2’ for all room types apart from a single room for which it is currently not possible to request an infant cot. 

The same guidelines apply when using the <SearchHotelPricePaxRequest> with the difference that with the occupancy-based searches it is possible to send requests for one adult with cots.

Cots will be requested at the hotel, but they are not guaranteed and are subject to availability at check-in. We suggest that you alert your customers to this fact in a similar way we do on our own sites:

Example of <SearchHotelPriceRequest> with one infant cot:

<SearchHotelPriceRequest>
    <ItemDestination DestinationType = "city" DestinationCode = "LON"/>
    <PeriodOfStay>
        <CheckInDate>2011-10-10</CheckInDate>
        <Duration>1</Duration>
    </PeriodOfStay>
    <Rooms>
        <Room
            Code = "TB"
            NumberOfRooms = "1"
            NumberOfCots = "1">
        </Room>
    </Rooms>
</SearchHotelPriceRequest>   

Example of <SearchHotelPricePaxRequest> for one adult with one infant cot:

<SearchHotelPricePaxRequest>
   <ItemDestination DestinationCode = "lon" DestinationType = "city"/>
      <ImmediateConfirmationOnly/>
         <PeriodOfStay>
            <CheckInDate>2015-03-01</CheckInDate>
            <Duration>1</Duration>
         </PeriodOfStay>
         <IncludePriceBreakdown/>
         <IncludeChargeConditions/>
         <PaxRooms>
             <PaxRoom
                 Adults = "1"
                 Cots = "1"
                 RoomIndex = "1"
          </PaxRoom>
        </PaxRooms>
</SearchHotelPricePaxRequest>

Example of <AddBookingRequest> using room type structure with two infant cots:

<AddBookingRequest>
    <BookingReference>2011/QWERTY123</BookingReference>
    <PaxNames>
        <PaxName PaxId = "1"><![CDATA[Mr A Smith]]></PaxName>
        <PaxName PaxId = "2"><![CDATA[Mrs B Smith]]></PaxName>
    </PaxNames>
    <BookingItems>
        <BookingItem ItemType = "hotel">
            <ItemReference>1</ItemReference>
            <ItemCity Code = "LON"/>
            <Item Code = "ABC"/>
            <HotelItem>
                <PeriodOfStay>
                    <CheckInDate>2011-10-21</CheckInDate>
                    <Duration>1</Duration>
                </PeriodOfStay>
                <HotelRooms>
                    <HotelRoom
                        Code = "DB"
                        NumberOfCots = "2">
                        <PaxIds>
                            <PaxId>1</PaxId>
                            <PaxId>2</PaxId>
                        </PaxIds>
                    </HotelRoom>
                </HotelRooms>
            </HotelItem>
        </BookingItem>
    </BookingItems>
</AddBookingRequest>

Example of <AddBookingRequest> using occupancy structure with one infant cot:

<AddBookingRequest Currency = "GBP">
    <BookingName/>
    <BookingReference>XXXXXX</BookingReference>
    <BookingDepartureDate>2015-03-01</BookingDepartureDate>
    <PaxNames>
        <PaxName PaxId = "1" PaxType = "adult">JAMES BOND</PaxName>
    </PaxNames>
    <BookingItems>
        <BookingItem ItemType = "hotel">
            <ItemReference>1</ItemReference>
            <ItemCity Code = "BER"/>
            <Item Code = "LOU"/>
            <ItemRemarks/>
            <HotelItem>
                <AlternativesAllowed>false</AlternativesAllowed>
                <PeriodOfStay>
                    <CheckInDate>2015-03-01</CheckInDate>
                    <Duration><![CDATA[1]]></Duration>
                </PeriodOfStay>
                <HotelPaxRoom
                    Adults = "1"
                    Children = "0"
                    Cots = "1"
                    Id = "001:XXX:13081:M79200:102462:XXXXXX">
                    <PaxIds>
                        <PaxId>1</PaxId>
                    </PaxIds>
                </HotelPaxRoom>
            </HotelItem>
        </BookingItem>
    </BookingItems>
</AddBookingRequest>

Children being accomocated in extra beds or having to share existing bedding

Children sharing a room with adults can either be accommodated in extra beds or have to share the existing bedding in the room. The customer cannot specify a preference; this is a decision made by the properties. If the ‘SharingBedding’ attribute is added to the XML request GTA systems will ignore it.

GTA uses the following parameters to handle this:

Element Description

ExtraBed

If “true” a child will be accommodate in the room. Even though the name of the parameter refers to an extra bed, this does not mean that a physical extra bed will be provided.

NumberOfExtraBeds

Specifies the number of children requested.

SharingBedding

Specifies if the child shares existing bedding. If “true” the child will be sharing existing bedding. If “false” the child will be provided with an extra bed.

It is therefore possible to receive the following combination of these three parameters in a <SearchHotelPriceResponse> and in a <BookingResponse>:

ExtraBed="true"                  

NumberOfExtraBeds = "1"

SharingBedding = "false" or <SharingBedding>false</SharingBedding> depending on participation level

This needs to be interpreted as follows: 1 child will be accommodated in the requested room and it will receive an extra bed.

ExtraBed="true"                  

NumberOfExtraBeds = "2"

SharingBedding = "true" or <SharingBedding>true</SharingBedding> depending on participation level

This needs to be interpreted as follows: 2 children will be accommodated in the requested room and they will have to share the existing bedding, no additional extra beds will be provided.

It is important that you parse and read all three parameters and display them clearly on your web site and the vouchers you are producing.

In the <SearchHotelPricePaxResponse> only the ‘SharingBedding’ parameter is returned:

Element Description

SharingBedding

Specifies if the child shares existing bedding. If “true” the child will be sharing existing bedding. If “false” the child will be provided with an extra bed.

This is how we display this information on our own vouchers for both scenarios:

Allocating children correctly within the ROOMS

<SearchHotelPriceRequest>

Within the rooming list for hotel and apartment items, the child MUST occupy the position assigned to the extra bed; e.g.: if booking a double room with an extra bed the child must be the third PaxId within the rooming list. If the passengers are assigned their PaxId in the following way:

<AddBookingRequest>
<BookingReference>2011/QWERTY123</BookingReference>
<PaxNames>
            <PaxName PaxId="1"><![CDATA[Mr A Smith]]></PaxName>
            <PaxName PaxId="2" PaxType="child" ChildAge="9"><![CDATA[Ms C Smith]]></PaxName>
            <PaxName PaxId="3"><![CDATA[Mrs B Smith]]></PaxName>
</PaxNames>

Then the PaxIds need to be listed under the <HotelRoom> parameter in the <AddBookingRequest> in the following way to ensure any possible child reductions are applied:

HotelRoom Code = "DB" ExtraBed = "true">
    <PaxIds>
        <PaxId>1</PaxId>
        <PaxId>3</PaxId>
        <PaxId>2</PaxId>
    </PaxIds>
</HotelRoom>

If placing a booking for 1 adult + 2 children in a TB or DB room with extra bed, one of the children will be considered as an adult and in order to get the most competitive price it is recommended to list the PaxId for the adult first, followed by the PaxId for the oldest child and then the PaxId for the youngest child. Therefore If the passengers are assigned their PaxId in the following way:

<AddBookingRequest>
<BookingReference>2011/QWERTY123</BookingReference>
<PaxNames>
            <PaxName PaxId="1"><![CDATA[Mr A Smith]]></PaxName>
            <PaxName PaxId="2" PaxType="child" ChildAge="9"><![CDATA[Ms C S mith]]></PaxName>
<PaxName PaxId="3" PaxType="child" ChildAge="3"><![CDATA[Mr D Smith]]></PaxName>
</PaxNames>

Then the PaxIds need to be listed under the <HotelRoom> parameter in the <AddBookingRequest> in the following way to ensure any possible child reductions are applied:

HotelRoom Code = "TB" ExtraBed = "true">
    <PaxIds>
        <PaxId>1</PaxId>
        <PaxId>2</PaxId>
        <PaxId>3</PaxId>
    </PaxIds>
</HotelRoom>

<SearchHotelPricePaxRequest>

Currently our hotels and pricing platform can only support a maximum of two child discounts for a room. A maximum of two <Age> parameters can be added to the <ChildAges> element in the <SearchHotelPricePaxRequest>. For occupancy purposes, any further children must be treated as adults.

            <PaxRooms>
                <PaxRoom
                    Adults = "2"
                    Cots = "0"
                    RoomIndex = "1"
                    Id="001:HAM:2972:S2782:3092:192954">
                    <ChildAges>
                        <Age>6</Age>
                        <Age>5</Age>
                    </ChildAges>
                </PaxRoom>
            </PaxRooms>

This is in line with the current API Complex Types Schema:

            <xsd:complexType name="t_RequestDetails">
                        <xsd:choice minOccurs="1" maxOccurs="unbounded">
                                    <xsd:element name="SearchHotelPricePaxRequest" type="t_SearchHotelPricePaxRequest"/>

            <xsd:complexType name="t_SearchHotelPricePaxRequest">

<xsd:element name="PaxRooms" type="t_PaxRooms"/>
            […]
            <xsd:complexType name="t_PaxRooms">
                        <xsd:sequence>                                   
                                    <xsd:element name="PaxRoom" type="t_PaxRoom" minOccurs="1" maxOccurs="9"/>
                        </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="t_PaxRoom">
                        <xsd:sequence>                       
                                    <xsd:element name="ChildAges" type="t_ChildAges" minOccurs="0" maxOccurs="1"/>
                        </xsd:sequence>
                        <xsd:attributeGroup ref="a_PaxRoom"/>
            </xsd:complexType>    
            <xsd:complexType name="t_ChildAges">
                        <xsd:sequence>
                                    <xsd:element name="Age" type="t_PaxChildAge" minOccurs="0" maxOccurs="2"/>
                        </xsd:sequence>
            </xsd:complexType>

A request with more than two <Age> parameters will return the following error:

<Response>
   <Errors>
      <Error>
         <ErrorId>XML0012</ErrorId>
         <ErrorText>cvc-complex-type.2.4.d: Invalid content was found starting with element 'Age'. No child element is expected at this point.</ErrorText>
      </Error>
   </Errors>
</Response>

Clients using this functionality will notice that our websites allow price searches with more than two children. This is because our websites were designed to convert such searches to work with a maximum of two child concessions. When a user includes more than two children in their search all but the youngest two children will be priced as adults in the results and a warning message is displayed when the search is submitted.

Such conversion is not feasible for the XML API.

At booking stage, due to the nature of the occupancy-based method, children do not necessarily need to occupy the positions corresponding to the extra beds in the <PaxIds> list. E.g.: if booking a room for two adults and one child, <PaxId>2</PaxId> may be the child.

    <RequestDetails>
        <AddBookingRequest Currency = "GBP">
            <BookingName/>
            <BookingReference>XXXXX</BookingReference>
            <BookingDepartureDate>2015-03-01</BookingDepartureDate>
            <PaxNames>
                <PaxName PaxId = "1" PaxType = "adult">ADULT ONE</PaxName>
          <PaxName PaxId = "2" PaxType = "child" ChildAge = "6">CHILD ONE</PaxName>
                     <PaxName PaxId = "3" PaxType = "adult">ADULT TWO</PaxName>
            </PaxNames>
            <BookingItems>
                <BookingItem ItemType = "hotel">
                    <ItemReference>1</ItemReference>
                    <ItemCity Code = "LON"/>
                    <Item Code = "HILY"/>
                    <ItemRemarks/>
                    <HotelItem>
                        <AlternativesAllowed>false</AlternativesAllowed>
                        <PeriodOfStay>
                            <CheckInDate>2015-03-01</CheckInDate>
                            <Duration><![CDATA[1]]></Duration>
                        </PeriodOfStay>
                        <HotelPaxRoom
                            Adults = "2"
                            Children = "1"
                            Cots = "0"
                            Id = "001:HILY:9737:S9467:10864:45077">
                            <PaxIds>
                                <PaxId>1</PaxId>
                                <PaxId>3</PaxId>
                                <PaxId>2</PaxId>
                            </PaxIds>
                        </HotelPaxRoom>
                    </HotelItem>
                </BookingItem>
            </BookingItems>
        </AddBookingRequest>
    </RequestDetails>

<BookingResponse>
         <BookingReferences>
            <BookingReference ReferenceSource="client"> XXXXX </BookingReference>
            <BookingReference ReferenceSource="api"> XXXXX </BookingReference>
         </BookingReferences>
         <BookingCreationDate>2015-01-29</BookingCreationDate>
         <BookingDepartureDate>2015-03-01</BookingDepartureDate>
         <BookingName>ADULT ONE</BookingName>
         <BookingPrice Commission="0.00" Currency="GBP" Gross="88.00" Nett="88.00"/>
         <BookingStatus Code="C ">Confirmed</BookingStatus>
         <PaxNames>
            <PaxName PaxId="1">ADULT ONE</PaxName>
            <PaxName PaxId="3">ADULT TWO</PaxName>
            <PaxName ChildAge="6" PaxId="2" PaxType="child">CHILD ONE</PaxName>
         </PaxNames>
         <BookingItems>
            <BookingItem ItemType="hotel">
               <ItemReference>1</ItemReference>
               <ItemCity Code="LON">London</ItemCity>
               <Item Code="HILY">Hilton London Canary Wharf</Item>
               <ItemPrice Commission="0.00" Currency="GBP" Gross="88.00" Nett="88.00"/>
               <ItemStatus Code="C ">Confirmed</ItemStatus>
               <ItemConfirmationReference>LL7F452062 - 028/710136</ItemConfirmationReference>
               <HotelItem>
                  <PeriodOfStay>
                     <CheckInDate>2015-03-01</CheckInDate>
                     <CheckOutDate>2015-03-02</CheckOutDate>
                  </PeriodOfStay>
                  <HotelPaxRoom Adults="2" Children="1" Cots="0" Id="001:HILY:9737:S9467:10864:45077" SharingBedding="false">
                     <Description>Standard Twin</Description>
                     <PaxIds>
                        <PaxId>1</PaxId>
                        <PaxId>3</PaxId>
                        <PaxId>2</PaxId>
                     </PaxIds>
                  </HotelPaxRoom>
                  <Meals>
                     <Basis Code="B">Breakfast</Basis>
                     <Breakfast Code="F">Full</Breakfast>
                  </Meals>
               </HotelItem>
               <ChargeConditions>
                  <ChargeCondition Type="cancellation">
                     <Condition Charge="true" ChargeAmount="88.00" Currency="GBP" FromDate="2015-03-01" ToDate="2015-02-28"/>
                     <Condition Charge="true" ChargeAmount="44.00" Currency="GBP" FromDate="2015-02-27" ToDate="2015-01-10"/>
                     <Condition Charge="false" FromDate="2015-01-09"/>
                  </ChargeCondition>
                  <ChargeCondition Allowable="false" Type="amendment"/>
                  <PassengerNameChange Allowable="true"/>
               </ChargeConditions>
            </BookingItem>
         </BookingItems>
      </BookingResponse>

Sightseeing tours for children

It is important to parse and display the service conditions, especially for bookings with children. Some common conditions in regards to children are:

<AdditionalInformation>
            <Information><![CDATA[Not suitable for children under the age of 6.]]></Information>
</AdditionalInformation>
 
<AdditionalInformation>
            <Information><![CDATA[Children under the age of 18 are not allowed to join this  tour.]]></Information>
</AdditionalInformation>
 
<PleaseNote><![CDATA[You must be 21 years of age to go on this tour. You also must have a government issued photo ID with you.]]></PleaseNote>

The <AdditionalInformation> parameter is returned with the <SearchItemInformationResponse> and the <SearchSightseeingPriceResponse>.

The <PleaseNote> parameter is returned with the <SearchItemInformationResponse> and the <BookingResponse>.

Unfortunately these restrictions are currently handled by our systems as free-format text and we are unable to filter our inventory by these conditions. This means, that you could be performing a <SearchSightseeingPriceRequest> for 2 adults and a 4-year old child and we may return tours which will not permit children of this age. Therefore it is extremely important to display these conditions clearly to your customers to avoid any complaints at a later stage.

Note that requests for infant passengers for sightseeing bookings (ChildAge <2) will not be accepted. You will need to send the child age as 2 years old. 

Transfer for children

In the transfer module, infants are counted as passengers as that space is needed in the vehicle to fit their baby seat. 

Therefore, if a transfer is required for 2 adults + 1 infant (e.g.: 1 year old), 3 passengers should be requested in the <SearchTransferPriceRequest> and <AddBookingRequest>.

It is important to parse and display the transfer conditions which are returned with the <SearchItemInformationResponse>, especially for transfer bookings which include small children. One common condition is:

<TransferConditions>
            <TransferCondition><![CDATA[If travelling with babies/infants, you are responsible for bringing with  you, and fitting, the correct baby/infant seat for use in your vehicle. Failure to do this could result in your service not taking place with no refund possible.]]></TransferCondition>
</TransferConditions>

 

 


Docs Navigation