# 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.](https://partner.booking.com/en-us/help/policies-payments/policies/how-set-standard-children-rates-your-property#Adjusting+occupancy+to+include+children)

## 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](#using-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](#using-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

The `OTA_HotelDescriptiveContentNotif` (HDCN) endpoint is now under deprecation
The `OTA_HotelDescriptiveContentNotif` (HDCN) endpoint was deprecated in December 2024. We will fully sunset this endpoint on **December 31, 2026**. For more information on the deprecation and sunsetting timeline, see [OTA_HotelDescriptiveContentNotif (HDCN) endpoint in Content API](/connectivity/docs/deprecation-policy/deprecation-and-sunsetting#ota_hoteldescriptivecontentnotif-hdcn-endpoint-in-content-api).

We strongly encourage you to transition to our new modular APIs at your earliest convenience. These modern APIs are designed for straightforward integration and unlock a range of functionalities. To learn more, see our guide on [Making property onboarding easier](https://connectivity.booking.com/s/solution-article/content-api-modernisation-MCP2RH5PDI6VHN5HU3ECL2FER2TY?language=en_US).


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

The [`HotelDescriptiveContentNotif`](/connectivity/docs/ota-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](/connectivity/docs/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.](/connectivity/docs/codes-ftt)  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.](/connectivity/docs/codes-ftt)  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
<?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
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelDescriptiveContentNotifRS Target="Test">
<Success />
</OTA_HotelDescriptiveContentNotifRS>
```

### Using the HotelInvNotif endpoint


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

The [`HotelInvNotif`](/connectivity/docs/ota-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 | optional |
|  **>>>>** `TPA_Extensions`/`@MaxChildPayableOccupancy` | [This will be deprecated on 23 June 2026](/connectivity/docs/deprecation-policy/deprecation-and-sunsetting#deprecating-legacy-max-payable-child-field). Specifies the maximum number of children that are eligible for the children rate. | integer | 0..1 | optional |
| **>>>>** `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.


```xml
<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
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelInvNotifRS Target="Test">
    <InventoryCrossRefs>
        <InventoryCrossRef ResponseInvCode="1234512" />
    </InventoryCrossRefs>
    <Success />
</OTA_HotelInvNotifRS>
```

### Next steps

* [Modify room amenities](/connectivity/docs/content-api-modules/facilities-api/manage-room-facilities)