Setting up children policies and child rates (pricing)

You can indicate whether a property accepts children and specify:

  • The price for each additional child per age or age range.
  • The max occupancy for a room type specifying both the max amount of adults and children.
  • From what age children are welcome.
  • Whether and how many cribs or extra beds (rollaways) are available.

Child rates are prices and not rate plans

The documentation uses rates and prices interchangeably, because both refer to the eventual rate or price a guest sees on Booking.com. A rate plan is a label to organise rates or prices. Therefore, pay attention to the difference between child rate and child rate plan. Child rate is pricing, while child rate plan (or derived rate plan) is a rate plan derived from a parent rate plan.

When will child pricing and occupancy get taken into account in the price of a reservation?

To understand more about when child pricing and occupancy get taken into account in the price of a reservation, take a look at this article.

Setting up children policies and child rates (pricing)

To set up children policies and child rates for a property, you must do the following:

  1. On the property level, use the HotelDescriptiveContentNotif endpoint to:

    • Indicate whether children are allowed.
    • Specify prices for each extra child per age or age range.
  2. On the room level, use the HotelInvNotif endpoint to:

    • Specify the max occupancy for a room type, including max number of adults and children.
    • Specify the number of additional guests, cribs, and beds (rollaways).

Using the HotelDescriptiveContentNotif endpoint

POST
https://supply-xml.booking.com/hotels/ota/OTA_HotelDescriptiveContentNotif

The HotelDescriptiveContentNotif endpoint enables you to indicate whether children are allowed and at what age. In addition, it also enables you to specify prices for each additional child per age or age range.

Body parameters

The following table only describes the body parameters that concern the children policies and pricing. Ensure that you include all the other existing policies for your property in the request body.

Parameter Description Type Required/Optional Notes
>>>>> PolicyInfo Contains the PolicyInfo details. object 0..* -
>>>>> PolicyInfo/
@AcceptedGuestType
Specifies whether the property admits adults and children, or only adults. enum 0..1 Accepts AdultOnly and ChildrenAllowed. Default: AdultOnly
>>>>> PolicyInfo/
@MinGuestAge
Specifies the minimum age that children are allowed (in case ChildrenAllowed) to stay at the property. integer 0..1
>>>>> FeePolicy Contains the FeePolicy details. object
>>>>> FeePolicy/
@ChargeFrequency
Specifies the unit of time on which the charge is calculated. integer 0..1 Accepts 20 (per person per stay) and 21 (per person per night). Default: 21.
>>>>> FeePolicy/
@Amount
Specifies the amount charged in the [country's local currency][b_xml-countrycurrencies]. integer 0..1
>>>>> FeePolicy/
@DecimalPlaces
The number of decimal places to apply to @Amount. int 0..1 Default: 0
>>>>> FeePolicy/
@MinAge
Specifies the minimum age for the children policy to apply. In combination with @MaxAge it becomes an age range. integer 0..1 You can use this attribute with Fee Tax Type (FTT) code 37, 38, or 44.
If you want to specify different prices per age range, you must create multiple FeePolicy elements (of 37, 38, or 44) within the same request. See example.
>>>>> FeePolicy/
@MaxAge
Specifies the maximum age for the children policy to apply. The max value is 255 (adult). integer 0..1 You can use this attribute with Fee Tax Type (FTT) code 37, 38, or 44.
If you want to specify different prices per age range, you must create multiple FeePolicy elements (of 37, 38, or 44) within the same request. See example.

Body request example

The following policies request example includes existing property policies so that you do not remove them via overlay.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelDescriptiveContentNotifRQ Target="Test">
  <HotelDescriptiveContents>
    <HotelDescriptiveContent HotelName="Fake Hotel" ID="101010" LanguageCode="en" PropertyLicenseNumber="AB-CD-1234" HotelDescriptiveContentNotifType="New">
      <Policies>
        <Policy>
          <PolicyInfo CheckInTime="17:00-20:00" CheckOutTime="12:00" AcceptedGuestType="ChildrenAllowed" MinGuestAge="0"/>
          <PetsPolicies PetsAllowedCode="Pets By Arrangements">
            <PetsPolicy NonRefundableFee="charges_may_apply"/>
          </PetsPolicies>
          <CancelPolicy>
            <CancelPenalty PolicyCode="1">
              <TPA_Extensions>
                <NoShowPolicy Penalty="default"/>
              </TPA_Extensions>
            </CancelPenalty>
            <CancelPenalty PolicyCode="29">
              <TPA_Extensions>
                <NoShowPolicy Penalty="total_price"/>
              </TPA_Extensions>
            </CancelPenalty>
          </CancelPolicy>
          <GuaranteePaymentPolicy>
            <GuaranteePayment PolicyCode="1">
              <TPA_Extensions>
                <PrepaymentPolicy EffectiveFrom="after_reservation_is_made"/>
              </TPA_Extensions>
            </GuaranteePayment>
            <GuaranteePayment PolicyCode="29">
              <TPA_Extensions>
                <PrepaymentPolicy EffectiveFrom="after_cancellation_fee_begins"/>
              </TPA_Extensions>
            </GuaranteePayment>
          </GuaranteePaymentPolicy>
          <TaxPolicies>
            <TaxPolicy Code="36" Percent="1200" DecimalPlaces="2" Type="Exclusive"/>
            <TaxPolicy Code="3" Amount="800" DecimalPlaces="2" Type="Inclusive" ChargeFrequency="20"/>
          </TaxPolicies>
          <FeePolicies>
            <FeePolicy Code="5009" Amount="1500" DecimalPlaces="2" Type="Conditional" ChargeFrequency="12">
              <TPA_Extensions>
                <Conditions>
                  <Condition Type="guest_doesnt_clean_before_checkout"/>
                </Conditions>
              </TPA_Extensions>
            </FeePolicy>
            <FeePolicy Code="44" ChargeFrequency="21" Amount="0" DecimalPlaces="2" MinAge="0" MaxAge="3" />
            <FeePolicy Code="44" ChargeFrequency="21" Amount="6000" DecimalPlaces="2"   MinAge="4"  MaxAge="12" />
            <FeePolicy Code="37" ChargeFrequency="20" Amount="2000" DecimalPlaces="2" MinAge="0" MaxAge="3" />
            <FeePolicy Code="38" ChargeFrequency="21" Amount="7000" DecimalPlaces="2"   MinAge="4"  MaxAge="255" />
            <FeePolicy Code="5036" Amount="10000" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="2">
              <TPA_Extensions>
                <ParkingFeePolicy ParkingType="location_nearby" ParkingReservation="needed" ParkingProperty="private"/>
              </TPA_Extensions>
            </FeePolicy>
          </FeePolicies>
        </Policy>
      </Policies>
    </HotelDescriptiveContent>
  </HotelDescriptiveContents>
</OTA_HotelDescriptiveContentNotifRQ>

Response body example

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelDescriptiveContentNotifRS Target="Test">
<Success />
</OTA_HotelDescriptiveContentNotifRS>

Using the HotelInvNotif endpoint

POST
https://supply-xml.booking.com/hotels/ota/OTA_HotelInvNotif

The HotelInvNotif endpoint enables you to specify how many guests can stay in a room type and whether it supports additional guests, cribs, or extra beds (rollaways).

Body parameters

The following table only describes the body parameters that concern the children policies. Ensure that you include all the other existing SellableProduct elements in the request body.

Parameter Description Type Min/max Notes
>>>> Occupancy Contains the room type occupancy details. object 1..1 You cannot specify Occupancy in subrooms.
>>>> Occupancy/
@MaxOccupancy
Specifies the maximum number of guests allowed to stay in the room type. int 0..1
>>>> Occupancy/
@MaxAdultOccupancy
Specifies the maximum number of adult guests allowed to stay in the room type. int 0..1
>>>> Occupancy/
@MaxChildOccupancy
Specifies the maximum number of children allowed to physically stay in the room type. integer 0..1 required
>>>> TPA_Extensions Contains the room type's additional child occupancy details. object 1..1 required
>>>> TPA_Extensions/
@MaxChildPayableOccupancy
Specifies the maximum number of children that are eligible for the children rate. integer 0..1 required
>>>> Quantities Contains the crib and extra bed details. object 1..1 -
>>>> Quantities/
@MaximumAdditionalGuests
Specifies the maximum number of additional guests allowed to stay in the room in cribs or extra beds (rollaways). int 0..1
>>>> Quantities/
@MaxCribs
Specifies the maximum number of cribs in the room. int 0..1 In case you want to specify that a room with one additional guest can hold a crib OR an extra bed (but not both), you specify 1 for both.
>>>> Quantities/
@MaxRollaways
Specifies the maximum number of extra beds in the room. int 0..1 If you want to specify that a room with one additional guest can hold a crib OR an extra bed (but not both), you must specify 1 for both.

Body request example

The following policies request example includes existing SellableProduct elements so that you do not remove them via overlay.

<OTA_HotelInvNotifRQ Target="Test">
    <SellableProducts HotelCode="12345">
        <SellableProduct InvStatusType="Initial">
            <GuestRoom>
                <Occupancy MaxOccupancy="2" MaxAdultOccupancy="2" MaxChildOccupancy="1"/>
                <Quantities MaximumAdditionalGuests="1" MaxCribs="1" MaxRollaways="0">
                <Room NonSmoking="1" RoomType="Double" SizeMeasurement="16" />
                <Amenities>
                      <Amenity AmenityCode="61"/>
                      <Amenity AmenityCode="69" Value="1"/>
                      <Amenity AmenityCode="33" Value="2"/>
                </Amenities>
                <RoomLocation RoomLocationCode="2">
                      <Floors>
                            <Floor Number="4" />
                            <Floor Number="7" />
                            <Floor Number="9" />
                      </Floors>
                </RoomLocation>
                        <TPA_Extensions>  
                  <Occupancy MaxChildPayableOccupancy="1" />  
                </TPA_Extensions>  
            </GuestRoom>
        </SellableProduct>
    </SellableProducts>
</OTA_HotelInvNotifRQ>

Response body example

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelInvNotifRS Target="Test">
    <InventoryCrossRefs>
        <InventoryCrossRef ResponseInvCode="1234512" />
    </InventoryCrossRefs>
    <Success />
</OTA_HotelInvNotifRS>

Next steps