# Step 12 - Add roomrate

A roomrate is a unique combination of room type, rate plan and conditions.

Use the `OTA_HotelProductNotif` endpoint to create a roomrate. Make sure to specify the pricing type to `LOS`.

## Prerequisites

You must have completed the following steps:

- Step 2 and have the property ID
- Step 3 and have the unit ID
- Step 5 and have a rate plan ID
- Step 6 and have a cancellation policy ID


## Adding a roomrate


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

### Request body parameters

The following table describes the elements you can add in the request body:

All parameters are required unless otherwise noted.

| Element | Attribute | Description |
|  --- | --- | --- |
| `OTA_HotelProductNotifRQ` | Contains the `HotelProducts` array. |  |
| **>** `HotelProducts` |  | Contains the `HotelProduct` objects. |
|  | `HotelCode` | Specifies the unique ID of the property you create roomrates for. |
| **>>** `HotelProduct` | Contains the roomrate information. |  |
|  | `ProductNotifType` | Specifies whether the request is to create a roomrate (`New`) or modify an existing one (`Overlay`). Possible values are `New` and `Overlay`. You must use `New` to create a roomrate. |
| **>>>** `RoomTypes` |  | Contains a `RoomType` object. |
| **>>>>** `RoomType` |  | Contains the room type information. |
|  | `RoomTypeCode` | Specifies the room type ID. |
|  | `MaxOccupancy` | [Optional] Specifies the maximum occupancy of the roomtype. Note that specifying this value overrides the value set at the time of [creating or updating the roomtype.](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types/#creating-a-room-type) Also, the pricing type of the roomrate is changed to RLO. |
| **>>>** `RatePlans` |  | Contains a `RatePlan` object. |
| **>>>>** `RatePlan` |  | Contains the rate plan information. |
|  | `RatePlanCode` | Specifies the rate plan ID. |
| **>>>** `PolicyInfo` |  | [Optional] Contains the cancellation and booking policy objects. |
| **>>>>** `CancelPolicy` |  | [Optional] Contains the `CancelPenalty` objects. |
| **>>>>>** `CancelPenalty` |  | [Optional]Contains the policy information. |
|  | `PolicyId` | [Optional] Specifies the policy ID to assign to the roomrate. Use the ID of the policies that we created in step 5. |
| **>>>>>** `TPA_Extensions` |  | [Optional] Contains the no show information. |
| **>>>>>>** `NoShowPolicy` |  | [Optional] Contains the no show penalty details. |
|  | `Penalty` | [Optional] Specifies the penalty charged in case the guest does not turn up for the reservation. Possible values are:  - `default`: Use if you want the no show penalty to follow the cancellation fee.  - `total_price`: Use if you want the no show penalty to equal the total reservation price. |
| **>>>>**  `GuaranteePaymentPolicy` |  | [Optional] Contains the guarantee payment details. |
| **>>>>>**  `GuaranteePayment` |  | [Optional] Contains the guarantee payment details. |
|  | `EffectiveFrom` | [Optional] Specifies when the guarantee payment is charged.  Possible values are:  - `after_reservation_is_made` - Enforces guests to make a payment immediately after reservation.  - `after_cancellation_fee_begins`: Enforces guests to make a payment after the free cancellation window has closed. |
|  | `PrePaymentRequired` | [Optional] Specifies whether a guarantee payment is mandatory.  Possible values are:  - `true`: Guarantee payment required  - `false`: Guarantee payment is not required. |
| **>>>** `TPA_Extensions` |  | Contains Pricing type information. |
| **>>>>** `PricingType` |  | Contains the pricing type of the roomrate. Note that to create LOS or OBP type roomrates, the [property's pricing type](/connectivity/docs/content-api-modules/property-details-api/implementing-property-api-settings#request-body-elements) should be set accordingly. |
|  | `Value` | Specifies the pricing type. Possible values are: - Standard (default) - LOS - OBP |


### Request body example

The following is a request body example:


```xml
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelProductNotifRQ>
    <HotelProducts HotelCode="14795361">
        <HotelProduct ProductNotifType="New">
            <RoomTypes>
                <RoomType RoomTypeCode="1479536101"/>
            </RoomTypes>
            <RatePlans>
                <RatePlan RatePlanCode="57656696"/>
            </RatePlans>
            <PolicyInfo>
              <CancelPolicy>
                   <CancelPenalty PolicyId="419417191">
                     <TPA_Extensions>
                        <NoShowPolicy Penalty = "total_price"/>
                     </TPA_Extensions>  
                   </CancelPenalty>   
             </CancelPolicy>
             <GuaranteePaymentPolicy>
                    <GuaranteePayment EffectiveFrom="after_cancellation_fee_begins" PrePaymentRequired="true"/>
             </GuaranteePaymentPolicy>
         </PolicyInfo>
         <TPA_Extensions>
            <PricingType Value="LOS"/>
         </TPA_Extensions>
        </HotelProduct>
    </HotelProducts>
</OTA_HotelProductNotifRQ>
```

### Response body example

The following is a successful response body example:


```xml
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelProductNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelProductNotifRS.xsd" TimeStamp="2025-06-11T04:58:26+00:00" Target="Production" Version="3.000">
    <Success />
</OTA_HotelProductNotifRS>
<!-- RUID: [XXXXXXXXXXXXXXXXXX] -->
```