# Managing room types

Room types are labels or categories used to organise physical rooms in a property.

## How does Booking.com define a room type?

In its most basic form, each room type is defined by:

* A room type code: This can be a name ("Double") or a code (9), both referring to a double room.
* The max occupancies of the room type: You should also include max occupancies for adults and children.
* A more descriptive name to refer to the room type: For example, Deluxe Double Room with Mountain View.'


## What falls under managing room types?

Managing room types involves the following actions:

* [Creating](#creating-a-room-type) and [updating room types.](#updating-a-room-type)
* [Creating](#creating-a-multi-bedroom-room-type) and [updating room types](#updating-a-multi-bedroom-room-type) with multi-bedroom setup.
* [Deactivating](#deactivating-a-room-type) and [activating](#activating-a-room-type) room types.
* [Retrieving the active room types of a property.](#retrieving-active-room-types)


### What does not fall under managing room types, but could still be relevant?

The following two actions could be relevant for your user flow, but are not technically part of the room type and rate plan management API:

* To add content, such as [room type amenities and bed types](/connectivity/docs/codes-rma), to existing room types, see [modifying room type content.](/connectivity/docs/content-api-modules/facilities-api/manage-room-facilities)
* To add photos for your property's room types, see [managing photos.](/connectivity/docs/photo-api/managing-photos)


To retrieve all the relevant room type information and retrieve both deactivated and active room types, you must also implement [the retrieving property details endpoint.](/connectivity/docs/tsk-retrieve-property)

## What is the maximum number of room types the API supports?

You can create a maximum of 100 room types for a property, including both active and inactive room types.

## Creating a room type


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

The `POST /ota/OTA_HotelInvNotif` request enables you to create one or more room types for your property.

### Creating or updating

To create a room type, you must set `InvNotifType` to `New`. If you want to update a room type, you must set `InvNotifType` to `Overlay` and add the `InvCode` (Booking.com ID referring to a room type).

→ To learn more on how to update room types, see [updating room types.](#updating-a-room-type)

### Requirements for creating a room type

To create a room type on Booking.com, the following elements are required:

* Property ID
* Room type code: To see a list of all the possible Booking.com room type codes, see [room type codes](/connectivity/docs/codes-bcrt).
* Max occupancy 
💡 You must include the maximum number of total guests, adults and children that are physically able to stay in the room type. As an addition, you can include the maximum number of children that can stay for a children rate.
* Room type name: To see which room type names Booking.com allows per language, see [retrieving room type names.](/connectivity/docs/b_xml-roomname) 
💡 This helps to avoid duplicates, which could cause confusion when you are mapping and sending inventory.


### Body parameters

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

| Element | Attribute | Description | Type | Migration strategy |
|  --- | --- | --- | --- | --- |
| `OTA_HotelInvNotifRQ` |  | [Required] Contains the `SellableProducts` array. | object |  |
| **>** `SellableProducts` |  | [Required] Contains the `SellableProduct` object. | array |  |
|  | `HotelCode` | [Required] Specifies the unique ID of the property you update room amenities for. | integer | Use Rooms API. Specify as part of the URL. |
| **>>** `SellableProduct` |  | [Required] Contains a `GuestRoom` object. | object |  |
|  | `InvNotifType` | [Required] Indicates whether the request is to add room amenities when you create a room type (`New`) or to modify room amenities of an existing room type (`Overlay`). Possible values are `New` and `Overlay`. | enum | Use Rooms API. Use the relevant HTTP method. |
|  | `InvCode` | [Required if  `InvNotifType="Overlay"`] Specifies the ID generated by Booking.com when you created the room type. Not applicable when creating a new room type. Use the value in the `ResponseInvCode` found in the response body to modify a specific room type. | integer | Use Rooms API. Specify as part of the URL. |
| **>>>** `GuestRoom` |  | [Required] Contains a `GuestRoom` object. | object |  |
| **>>>>** `Description` |  | [Optional] Contains the room type name object. | object |  |
| **>>>>>** `Text` |  | [Optional] Specifies the name of the room type. To see a list of the available room type names, see [retrieving room type names.](/connectivity/docs/b_xml-roomname) | string | Use Rooms API's [`configuration.unit_name_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=unit_name_id) To get the list of available room type names in supported languages (to support translations), use the [Rooms meta endpoint.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/meta/getroommeta) |
| **>>>>** `Occupancy` |  | [Optional] Specifies the occupancies of the room type. | object |  |
|  | `MaxOccupancy` | [Optional] Specifies the maximum number of guests allowed to stay in the room type. The value for `MaxOccupancy` cannot be higher than the sum of the values for `MaxAdultOccupancy` and `MaxChildOccupancy`. | integer | Use Rooms API's [`occupancy_details.​max_guests` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_guests) |
|  | `MaxAdultOccupancy` | [Optional] Specifies the maximum number of adult guests allowed to stay in the room type. | integer | Use Rooms API's [`occupancy_details.​max_adults` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_adults) |
|  | `MaxChildOccupancy` | [Optional] Specifies the maximum number of children physically allowed to stay in the room type. The value for `MaxChildOccupancy` must always be lower than that for `MaxOccupancy`, because you cannot have a room with only children. If this value is set to `0` for all room types, then the `AcceptedGuestType` element is set to `AdultOnly` and all children policy rules are deleted. | integer | Use Rooms API's [`occupancy_details.​max_children` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_children)  Rooms API also introduces the [`occupancy_details.​max_infants` parameter](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_infants) and [`occupancy_details.​max_infants_on_top` parameters.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_infants_on_top) |
| **>>>>** `TPA_Extensions` |  | [Optional] Contains the room type's additional child occupancy details. | object |  |
| **>>>>>** `Occupancy` |  | [Optional] Specifies the children rate eligibility. | object |  |
|  | `MaxChildPayableOccupancy` | [Optional] [This field 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.  The value for `MaxChildPayableOccupancy` cannot be higher than the value of `MaxChildOccupancy`. Booking.com system sees any additional children under the adult rate. | integer | Use Rooms API's [`max_children_that_pay_children_rate` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=max_children_that_pay_children_rate) |
| **>>>>>** `SubRooms` |  | [Optional] Specifies the subroom details.  You can create subrooms only for rooms with the following room types (`RoomType`):  - `Apartment`  - `Suite`  - `Chalet`  - `Bungalow`  - `Holiday home`  - `Villa`  - `Mobile home`  Or, `apartment_room_capacity` is > 0. | object |  |
| **>>>>>>** `SubRoom` |  | [Optional] Specifies individual subroom details. | object | - |
|  | `MaxGuests` | [Optional] Specifies the maximum number of guests allowed. | integer | - |
|  | `Number` | [Optional] Specifies the number of subrooms of the specified type. Only available for `Bathroom` or `Living room` | integer | Use [`configuration.​rooms[].​type`](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/type) specification as many times you need a specific subroom. |
|  | `PrivateBathroom` | [Optional] Specifies whether the subroom has a private bathroom (`1`) or not (`0`). Accepts: `0`, `1` | boolean | - |
|  | `RoomType` | [Required] Specifies the type of subroom. Accepts: `Bedroom`, `Living room`, `Bathroom` | enumerated string | Use Rooms API's [`configuration.​rooms[].​type` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/type) |
| **>>>>>>>** `Amenities` |  | [Optional] Specifies the subroom amenities. | array of Amenity | Amenities in subrooms can only be beds. |
| **>>>>>>>>** `Amenity` |  | [Optional] Specifies individual subroom amenity details. | object | - |
|  | `RoomAmenityCode` | [Optional] Specifies the bed type code. Optional if  `AmenityCode` is specified. For rooms that support multiple bedrooms (such as `Apartment`, `Suite`), you must add bed types using this attribute. For a list of supported bed type codes, see [OTA bed types.](/connectivity/docs/codes-rma/#ota-bed-types) | enumerated string | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_type_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_type_id) |
|  | `AmenityCode` | [Optional]  Optional if  `RoomAmenityCode` is specified.  Specifies the bed type code. Same as `RoomAmenityCode`. Amenities in subrooms can only be beds.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) For a list of supported bed type codes, see [OTA bed types.](/connectivity/docs/codes-rma/#ota-bed-types) | object | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_type_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_type_id) |
|  | `Value` | [Required for  some amenities] Specifies the number of bed-type room amenities in the room. This attribute is required for some room amenities and is case sensitive.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) | integer | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_count` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_count) |
|  | `Quantity` | [Optional] Specifies the available number of amenities of this type. Same as `Value`. | integer | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_count` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_count) |
|  | `Configuration` | [Optional] Specifies whether the amenity is available in the standard or alternative room arrangement. Accepted only when `RoomAmenityCode` is a [bed type.](/connectivity/docs/codes-rma/#ota-bed-types)  Possible values are: `1` (standard arrangement),  `2` (alternative arrangement).  This option is not available for [multi-room rooms](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types/#creating-a-multi-bedroom-room-type).  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) | enumerated string | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​is_default_configuration` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/is_default_configuration) |
| **>>>>** `Room` |  | Specifies the basic room type information. Required if  `InvNotifType="New"` | object |  |
|  | `RoomID` | [Optional] Specifies the room type ID you use in your system. You can use this field to map room types across interfaces. | integer | Not supported. |
|  | `RoomType` | Specifies the room type. When specifying a room type that supports multiple bedrooms (such as `Apartment`, `Suite`), make sure to add bed types using `TPA_Extensions > Subrooms > Amenities`. See also [creating a multi-bedroom roomtype](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types/#creating-a-multi-bedroom-room-type). Required if  `InvNotifType="New"`  To see a list of all available room types, see [room type codes.](/connectivity/docs/codes-bcrt)  Apartment (PCT code 3) , Aparthotel (PCT code 5000) and Condominium (PCT code 8) require a kitchen or kitchenette in the room types to become open and bookable. For Holiday home (PCT code 5006), Holiday park (PCT code 5009), Lodge (PCT code 22) and Villa (PCT code 35) a kitchen or kitchenette is highly recommended. For more information, see [Property Class Type Codes.](/connectivity/docs/codes-pct)  | string or integer | Use Rooms API's [`unit_name_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=unit_name_id) |
|  | `SizeMeasurement` | [Optional] Specifies the numeric size of the room type. | integer | Use Rooms API's [`size.​value` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=size/value) |
|  | `SizeMeasurementUnit` | [Optional] Specifies the system of measurement.  Possible values are `sqm` (metric) and `sqft` (imperial). The default value is `sqm`. | string | Use Rooms API's [`size.​unit` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=size/unit) |
|  | `NonSmoking` | [Optional] Indicates whether smoking is allowed in the room type. `1` indicates non-smoking,  `0` indicates smoking is allowed,  `2` indicates both smoking and non-smoking are allowed. If you do not add this attribute, the default value is set to `unknown`. | boolean | Use Rooms API's [`smoking_policy` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=smoking_policy) |
|  | `Quantity` | [Optional] Specifies the number of units of a room type. | integer | Use Rooms API's [`number_of_units` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=number_of_units) |
| **>>>>** `Quantities` |  | [Optional] Contains the crib and extra bed details. | object |  |
|  | `MaximumAdditionalGuests` | [Optional] Specifies the maximum number of additional guests allowed to stay in the room in cribs or extra beds (rollaways). | integer | Use Rooms API's [`extra_beds_configuration.​is_crib_and_extra_bed_allowed` parameter](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/is_crib_and_extra_bed_allowed) to specify whether both extra cribs and extra beds are allowed or just one of them. |
|  | `MaxCribs` | [Optional] Specifies the maximum number of cribs in the room. | integer | Use Rooms API's [`extra_beds_configuration.​cribs` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/cribs) |
|  | `MaxRollaways` | [Optional] Specifies the maximum number of extra beds in the room. | integer | Use Rooms API's [`extra_beds_configuration.​extra_beds` parameter.](//connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/extra_beds) |
| **>>>>** `Amenities` |  | [Optional] Specifies the property-level amenity details. | object |  |
| **>>>>>** `Amenity` |  | [Optional] Specifies the room amenities and bed type details of the room type. For rooms with multi-bedroom support, you must add bed types under `SubRooms` > `Amenities` and not here. | object |  |
|  | `RoomAmenityCode` | [Optional if  `AmenityCode` is specified] Specifies the Room Amenity Type Code.  For a list of supported amenity codes, see [RMA](/connectivity/docs/codes-rma). | enumerated string | Use Facilities API and specify an appropriate [room_facility_id](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_id) to create a room facility. Use [Facilities API's meta](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/meta-data-endpoint/meta) endpoint to get the list of supported room amenity codes. |
|  | `AmenityCode` | [Optional if  `RoomAmenityCode` is specified ] Specifies the room amenities and bed type.  Same as `RoomAmenityCode`. Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) For a list of supported amenity codes, see [RMA](/connectivity/docs/codes-rma). | enumerated string | Use Facilities API and specify an appropriate [room_facility_id](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_id) to create a room facility. Use [Facilities API's meta](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/meta-data-endpoint/meta) endpoint to get the list of supported room amenity codes. |
|  | `Value` | Specifies the available number of amenities of this type. Required for  some amenities.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) This attribute is required for some of the room amenities and is case sensitive. | enumerated string | For specific facilities that support [multiple instances](/connectivity/docs/content-api-modules/facilities-api/introduction-to-facilities-api#adding-multi-instance-facilities), speciy as many [`room_facility_instances` parameters.](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_instances) |
|  | `Quantity` | [Optional] Specifies the available number of amenities of this type. Same as `Value`. This attribute is required for some room amenities and is case sensitive. | integer | For specific facilities that support [multiple instances](/connectivity/docs/content-api-modules/facilities-api/introduction-to-facilities-api#adding-multi-instance-facilities), speciy as many [`room_facility_instances` parameters.](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_instances) |
|  | `Configuration` | [Optional] Indicates whether the amenity is available in the standard or alternative room arrangement. Accepted only for bed types.  Possible values are:  1 (standard arrangement)  2 (alternative arrangement) | enumerated string | - |


### Request body example

The following is a request body example:


```xml
<OTA_HotelInvNotifRQ>
	<SellableProducts HotelCode="6314570">
		<SellableProduct InvNotifType="New">
			<GuestRoom>
				<Occupancy MaxOccupancy="2" MaxAdultOccupancy="2" MaxChildOccupancy="1"/>
				<Room RoomID="12345" RoomType="Double"/>
				<Description>
					<Text>Deluxe Double Room with Mountain View</Text>
				</Description>
				<TPA_Extensions>  
                	<Occupancy MaxChildPayableOccupancy="1" />  
                </TPA_Extensions>  
			</GuestRoom>
		</SellableProduct>
	</SellableProducts>
</OTA_HotelInvNotifRQ>
```

### Response body example

The following is a successful response body example:


```xml
<OTA_HotelInvNotifRS >
    <InventoryCrossRefs>
        <InventoryCrossRef  RequestInvCode="12345" ResponseInvCode="631457019" />
    </InventoryCrossRefs>
    <Success />
</OTA_HotelInvNotifRS>
<!-- RUID: [UmFuZG9tSVYkc2RlIyh9YU4iplNAF3/GEVjlG+mTXmB9OwspcIW0/uhiPmwiL6pcbMzyiykpi6Yx5oKzRKEMxDhfrI] -->
```

The following is a response body example when the limit of 100 room types is reached:


```xml
<OTA_HotelInvNotifRS >
    <Errors>
        <Error Type="10" Code="378" Status="NotProcessed" ShortText="The limit of 100 number of Rooms has been reached."/>
    </Errors>
</OTA_HotelInvNotifRS>
<!-- RUID: [UmFuZG9tSVYkc2RlIyh9YU4iplNAF3/GEVjlG+mTXmB9OwspcIW0/uhiPmwiL6pcbMzyiykpi6Yx5oKzRKEMxDhfrY] -->
```

### Response body parameters

The following table describes the response elements:

| Element | Attribute | Description | Type | Notes |
|  --- | --- | --- | --- | --- |
| `OTA_HotelInvNotifRS` |  | Contains the response data. | object |  |
| **>** `InventoryCrossRefs` |  | Contains the `InventoryCrossRef` objects. | array |  |
| **>>** `InventoryCrossRef` |  | Contains the mapping details in terms of your room type ID and Booking.com room type ID. | object |  |
|  | `RequestInvCode` | Specifies your room type ID. | integer | To see this, you must have specified the `RoomID` attribute in the `Guestroom` object. |
|  | `ResponseInvCode` | Specifies the unique Booking.com ID of the created room type. | integer |  |
| **>**  `warnings` |  | Contains potential warnings. These can help you improve your requests. | array |  |
| **>**  `errors` |  | Contains potential errors. These can help you understand what went wrong with your request. | array |  |
| **>** `success` |  | Indicates the success of the request. | object |  |
| `ruid` |  | Specifies the unique ID of the request. | string | You can send this ID to Booking.com customer support if you run into an issue. This can help to understand what went wrong. |


## Updating a room type


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

The `POST /ota/OTA_HotelInvNotif` request enables you to update one or more room types for your property.

When updating a room type, it is very important to do the following:

* Set `InvNotifType` to `Overlay`.
* Include `InvCode`, which is the Booking.com ID referring to an existing room type. You do not need to add the `RoomType` again.
* Include all the other existing room type information and change the elements you want to update.
→ To retrieve information on your property's active room types (excluding max adults and children occupancies), see [retrieving active room types.](#retrieving-active-room-types)
→ To retrieve all the possible information for your property's room types (including max occupancies and whether room types are active or deactivated), see [retrieving property details.](/connectivity/docs/tsk-retrieve-property)


### Requirements for updating a room type

To update a room type on Booking.com, the following elements are required:

* Property ID
* Booking.com room type ID
* Max occupancy 
💡 You should also include the maximum number of adults and children, which are allowed to stay in the room type.
* Room type name: To see which room type names Booking.com allows per language, see [retrieving room type names.](/connectivity/docs/b_xml-roomname) 
💡 This helps to avoid duplicates, which can cause confusion when you are mapping and sending inventory.


### Body parameters

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

| Element | Attribute | Description | Type | Migration strategy |
|  --- | --- | --- | --- | --- |
| `OTA_HotelInvNotifRQ` |  | [Required] Contains the `SellableProducts` array. | object |  |
| **>** `SellableProducts` |  | [Required] Contains the `SellableProduct` object. | array |  |
|  | `HotelCode` | [Required] Specifies the unique ID of the property you update room amenities for. | integer | Use Rooms API. Specify as part of the URL. |
| **>>** `SellableProduct` |  | [Required] Contains a `GuestRoom` object. | object |  |
|  | `InvNotifType` | [Required] Indicates whether the request is to add room amenities when you create a room type (`New`) or to modify room amenities of an existing room type (`Overlay`). Possible values are `New` and `Overlay`. | enum | Use Rooms API. Use the relevant HTTP method. |
|  | `InvCode` | [Required if  `InvNotifType="Overlay"`] Specifies the ID generated by Booking.com when you created the room type. Not applicable when creating a new room type. Use the value in the `ResponseInvCode` found in the response body to modify a specific room type. | integer | Use Rooms API. Specify as part of the URL. |
| **>>>** `GuestRoom` |  | [Required] Contains a `GuestRoom` object. | object |  |
| **>>>>** `Description` |  | [Optional] Contains the room type name object. | object |  |
| **>>>>>** `Text` |  | [Optional] Specifies the name of the room type. To see a list of the available room type names, see [retrieving room type names.](/connectivity/docs/b_xml-roomname) | string | Use Rooms API's [`configuration.unit_name_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=unit_name_id) To get the list of available room type names in supported languages (to support translations), use the [Rooms meta endpoint.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/meta/getroommeta) |
| **>>>>** `Occupancy` |  | [Optional] Specifies the occupancies of the room type. | object |  |
|  | `MaxOccupancy` | [Optional] Specifies the maximum number of guests allowed to stay in the room type. The value for `MaxOccupancy` cannot be higher than the sum of the values for `MaxAdultOccupancy` and `MaxChildOccupancy`. | integer | Use Rooms API's [`occupancy_details.​max_guests` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_guests) |
|  | `MaxAdultOccupancy` | [Optional] Specifies the maximum number of adult guests allowed to stay in the room type. | integer | Use Rooms API's [`occupancy_details.​max_adults` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_adults) |
|  | `MaxChildOccupancy` | [Optional] Specifies the maximum number of children physically allowed to stay in the room type. The value for `MaxChildOccupancy` must always be lower than that for `MaxOccupancy`, because you cannot have a room with only children. If this value is set to `0` for all room types, then the `AcceptedGuestType` element is set to `AdultOnly` and all children policy rules are deleted. | integer | Use Rooms API's [`occupancy_details.​max_children` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_children)  Rooms API also introduces the [`occupancy_details.​max_infants` parameter](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_infants) and [`occupancy_details.​max_infants_on_top` parameters.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_infants_on_top) |
| **>>>>** `TPA_Extensions` |  | [Optional] Contains the room type's additional child occupancy details. | object |  |
| **>>>>>** `Occupancy` |  | [Optional] Specifies the children rate eligibility. | object |  |
|  | `MaxChildPayableOccupancy` | [Optional] [This field 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.  The value for `MaxChildPayableOccupancy` cannot be higher than the value of `MaxChildOccupancy`. Booking.com system sees any additional children under the adult rate. | integer | Use Rooms API's [`max_children_that_pay_children_rate` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=max_children_that_pay_children_rate) |
| **>>>>>** `SubRooms` |  | [Optional] Specifies the subroom details.  You can create subrooms only for rooms with the following room types (`RoomType`):  - `Apartment`  - `Suite`  - `Chalet`  - `Bungalow`  - `Holiday home`  - `Villa`  - `Mobile home`  Or, `apartment_room_capacity` is > 0. | object |  |
| **>>>>>>** `SubRoom` |  | [Optional] Specifies individual subroom details. | object | - |
|  | `MaxGuests` | [Optional] Specifies the maximum number of guests allowed. | integer | - |
|  | `Number` | [Optional] Specifies the number of subrooms of the specified type. Only available for `Bathroom` or `Living room` | integer | Use [`configuration.​rooms[].​type`](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/type) specification as many times you need a specific subroom. |
|  | `PrivateBathroom` | [Optional] Specifies whether the subroom has a private bathroom (`1`) or not (`0`). Accepts: `0`, `1` | boolean | - |
|  | `RoomType` | [Required] Specifies the type of subroom. Accepts: `Bedroom`, `Living room`, `Bathroom` | enumerated string | Use Rooms API's [`configuration.​rooms[].​type` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/type) |
| **>>>>>>>** `Amenities` |  | [Optional] Specifies the subroom amenities. | array of Amenity | Amenities in subrooms can only be beds. |
| **>>>>>>>>** `Amenity` |  | [Optional] Specifies individual subroom amenity details. | object | - |
|  | `RoomAmenityCode` | [Optional] Specifies the bed type code. Optional if  `AmenityCode` is specified. For rooms that support multiple bedrooms (such as `Apartment`, `Suite`), you must add bed types using this attribute. For a list of supported bed type codes, see [OTA bed types.](/connectivity/docs/codes-rma/#ota-bed-types) | enumerated string | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_type_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_type_id) |
|  | `AmenityCode` | [Optional]  Optional if  `RoomAmenityCode` is specified.  Specifies the bed type code. Same as `RoomAmenityCode`. Amenities in subrooms can only be beds.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) For a list of supported bed type codes, see [OTA bed types.](/connectivity/docs/codes-rma/#ota-bed-types) | object | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_type_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_type_id) |
|  | `Value` | [Required for  some amenities] Specifies the number of bed-type room amenities in the room. This attribute is required for some room amenities and is case sensitive.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) | integer | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_count` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_count) |
|  | `Quantity` | [Optional] Specifies the available number of amenities of this type. Same as `Value`. | integer | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_count` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_count) |
|  | `Configuration` | [Optional] Specifies whether the amenity is available in the standard or alternative room arrangement. Accepted only when `RoomAmenityCode` is a [bed type.](/connectivity/docs/codes-rma/#ota-bed-types)  Possible values are: `1` (standard arrangement),  `2` (alternative arrangement).  This option is not available for [multi-room rooms](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types/#creating-a-multi-bedroom-room-type).  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) | enumerated string | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​is_default_configuration` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/is_default_configuration) |
| **>>>>** `Room` |  | Specifies the basic room type information. Required if  `InvNotifType="New"` | object |  |
|  | `RoomID` | [Optional] Specifies the room type ID you use in your system. You can use this field to map room types across interfaces. | integer | Not supported. |
|  | `RoomType` | Specifies the room type. When specifying a room type that supports multiple bedrooms (such as `Apartment`, `Suite`), make sure to add bed types using `TPA_Extensions > Subrooms > Amenities`. See also [creating a multi-bedroom roomtype](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types/#creating-a-multi-bedroom-room-type). Required if  `InvNotifType="New"`  To see a list of all available room types, see [room type codes.](/connectivity/docs/codes-bcrt)  Apartment (PCT code 3) , Aparthotel (PCT code 5000) and Condominium (PCT code 8) require a kitchen or kitchenette in the room types to become open and bookable. For Holiday home (PCT code 5006), Holiday park (PCT code 5009), Lodge (PCT code 22) and Villa (PCT code 35) a kitchen or kitchenette is highly recommended. For more information, see [Property Class Type Codes.](/connectivity/docs/codes-pct)  | string or integer | Use Rooms API's [`unit_name_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=unit_name_id) |
|  | `SizeMeasurement` | [Optional] Specifies the numeric size of the room type. | integer | Use Rooms API's [`size.​value` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=size/value) |
|  | `SizeMeasurementUnit` | [Optional] Specifies the system of measurement.  Possible values are `sqm` (metric) and `sqft` (imperial). The default value is `sqm`. | string | Use Rooms API's [`size.​unit` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=size/unit) |
|  | `NonSmoking` | [Optional] Indicates whether smoking is allowed in the room type. `1` indicates non-smoking,  `0` indicates smoking is allowed,  `2` indicates both smoking and non-smoking are allowed. If you do not add this attribute, the default value is set to `unknown`. | boolean | Use Rooms API's [`smoking_policy` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=smoking_policy) |
|  | `Quantity` | [Optional] Specifies the number of units of a room type. | integer | Use Rooms API's [`number_of_units` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=number_of_units) |
| **>>>>** `Quantities` |  | [Optional] Contains the crib and extra bed details. | object |  |
|  | `MaximumAdditionalGuests` | [Optional] Specifies the maximum number of additional guests allowed to stay in the room in cribs or extra beds (rollaways). | integer | Use Rooms API's [`extra_beds_configuration.​is_crib_and_extra_bed_allowed` parameter](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/is_crib_and_extra_bed_allowed) to specify whether both extra cribs and extra beds are allowed or just one of them. |
|  | `MaxCribs` | [Optional] Specifies the maximum number of cribs in the room. | integer | Use Rooms API's [`extra_beds_configuration.​cribs` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/cribs) |
|  | `MaxRollaways` | [Optional] Specifies the maximum number of extra beds in the room. | integer | Use Rooms API's [`extra_beds_configuration.​extra_beds` parameter.](//connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/extra_beds) |
| **>>>>** `Amenities` |  | [Optional] Specifies the property-level amenity details. | object |  |
| **>>>>>** `Amenity` |  | [Optional] Specifies the room amenities and bed type details of the room type. For rooms with multi-bedroom support, you must add bed types under `SubRooms` > `Amenities` and not here. | object |  |
|  | `RoomAmenityCode` | [Optional if  `AmenityCode` is specified] Specifies the Room Amenity Type Code.  For a list of supported amenity codes, see [RMA](/connectivity/docs/codes-rma). | enumerated string | Use Facilities API and specify an appropriate [room_facility_id](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_id) to create a room facility. Use [Facilities API's meta](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/meta-data-endpoint/meta) endpoint to get the list of supported room amenity codes. |
|  | `AmenityCode` | [Optional if  `RoomAmenityCode` is specified ] Specifies the room amenities and bed type.  Same as `RoomAmenityCode`. Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) For a list of supported amenity codes, see [RMA](/connectivity/docs/codes-rma). | enumerated string | Use Facilities API and specify an appropriate [room_facility_id](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_id) to create a room facility. Use [Facilities API's meta](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/meta-data-endpoint/meta) endpoint to get the list of supported room amenity codes. |
|  | `Value` | Specifies the available number of amenities of this type. Required for  some amenities.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) This attribute is required for some of the room amenities and is case sensitive. | enumerated string | For specific facilities that support [multiple instances](/connectivity/docs/content-api-modules/facilities-api/introduction-to-facilities-api#adding-multi-instance-facilities), speciy as many [`room_facility_instances` parameters.](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_instances) |
|  | `Quantity` | [Optional] Specifies the available number of amenities of this type. Same as `Value`. This attribute is required for some room amenities and is case sensitive. | integer | For specific facilities that support [multiple instances](/connectivity/docs/content-api-modules/facilities-api/introduction-to-facilities-api#adding-multi-instance-facilities), speciy as many [`room_facility_instances` parameters.](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_instances) |
|  | `Configuration` | [Optional] Indicates whether the amenity is available in the standard or alternative room arrangement. Accepted only for bed types.  Possible values are:  1 (standard arrangement)  2 (alternative arrangement) | enumerated string | - |


### Request body example

The following is a request body example:


```xml
<OTA_HotelInvNotifRQ>
	<SellableProducts HotelCode="6314570">
		<SellableProduct InvNotifType="Overlay" InvCode="631457019">
			<GuestRoom>
				<Occupancy MaxOccupancy="3" MaxAdultOccupancy="2" MaxChildOccupancy="1"/>
				<Room RoomID="12345" />
				<Description>
					<Text>Deluxe Double Room with Mountain View</Text>
				</Description>
				<TPA_Extensions>  
                	<Occupancy MaxChildPayableOccupancy="1" />  
                </TPA_Extensions>  
			</GuestRoom>
		</SellableProduct>
	</SellableProducts>
</OTA_HotelInvNotifRQ>
```

### Response body example

The following is a successful response body example:


```xml
<OTA_HotelInvNotifRS >
    <Success />
</OTA_HotelInvNotifRS>
<!-- RUID: [UmFuZG9tSVYkc2RlIyh9YU4iplNAF3/GEVjlG+mTXmB9OwspcIGa+KqcbMzyiykpi6Yx5oKzRKEMxDhfrI] -->
```

### Response body parameters

The following table describes the response elements:

| Element | Description | Type | Notes |
|  --- | --- | --- | --- |
| `OTA_HotelInvNotifRS` | Contains the response data. | object |  |
| **>**  `warnings` | Contains potential warnings. These can help you improve your requests. | array |  |
| **>**  `errors` | Contains potential errors. These can help you understand what went wrong with your request. | array |  |
| **>** `success` | Indicates the success of the request. | object |  |
| `ruid` | Specifies the unique ID of the request. | string | You can send this ID to Booking.com customer support if you run into an issue. This can help to understand what went wrong. |


## Creating a multi-bedroom room type


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

The `POST /ota/OTA_HotelInvNotif` request enables you to create a room type with a multi-bedroom (includes bathroom or living room) setup for your property.

### Creating or updating

To create a room type, you must set `InvNotifType` to `New`. If you want to update a room type, you must set `InvNotifType` to `Overlay` and add the `InvCode` (Booking.com ID referring to a room type).

→ To learn more on how to update room types with multiple bedrooms, see [updating multi-bedroom room types.](#updating-a-multi-bedroom-room-type)

### Which room types can have a multi-bedroom setup?

You can set a multi-bedroom for the following room types:

* Apartment
* Suite
* Chalet
* Bungalow
* Holiday home
* Villa
* Mobile home


### Requirements for creating a room type with multi-bedroom setup

To create a room type with multiple bedrooms on Booking.com, the following elements are required:

* Property ID
* Room type code of the entire unit: To see a list of all the possible Booking.com room type codes, see [room type codes](/connectivity/docs/codes-bcrt).
* Room types of each (bed)room: Possible subroom types are `Bedroom`, `Living room`, and `Bathroom`.
* Max occupancy


💡 You should also include the maximum number of adults and children, which are allowed to stay in the room type.

#### Adding bed types for rooms that support multiple bedrooms

To add bed types for rooms that support multiple bedrooms (such as `Apartment` or `Suite`), you must use the `Amenities` element under `SubRooms`.

For example, see [room amenities and bed types in a multi-bedroom room type.](/connectivity/docs/tsk-modify-room-amenities/#request-body-example-room-amenities-and-bed-types-in-a-multi-bedroom-room-type)

### Body parameters

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

| Element | Attribute | Description | Type | Migration strategy |
|  --- | --- | --- | --- | --- |
| `OTA_HotelInvNotifRQ` |  | [Required] Contains the `SellableProducts` array. | object |  |
| **>** `SellableProducts` |  | [Required] Contains the `SellableProduct` object. | array |  |
|  | `HotelCode` | [Required] Specifies the unique ID of the property you update room amenities for. | integer | Use Rooms API. Specify as part of the URL. |
| **>>** `SellableProduct` |  | [Required] Contains a `GuestRoom` object. | object |  |
|  | `InvNotifType` | [Required] Indicates whether the request is to add room amenities when you create a room type (`New`) or to modify room amenities of an existing room type (`Overlay`). Possible values are `New` and `Overlay`. | enum | Use Rooms API. Use the relevant HTTP method. |
|  | `InvCode` | [Required if  `InvNotifType="Overlay"`] Specifies the ID generated by Booking.com when you created the room type. Not applicable when creating a new room type. Use the value in the `ResponseInvCode` found in the response body to modify a specific room type. | integer | Use Rooms API. Specify as part of the URL. |
| **>>>** `GuestRoom` |  | [Required] Contains a `GuestRoom` object. | object |  |
| **>>>>** `Description` |  | [Optional] Contains the room type name object. | object |  |
| **>>>>>** `Text` |  | [Optional] Specifies the name of the room type. To see a list of the available room type names, see [retrieving room type names.](/connectivity/docs/b_xml-roomname) | string | Use Rooms API's [`configuration.unit_name_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=unit_name_id) To get the list of available room type names in supported languages (to support translations), use the [Rooms meta endpoint.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/meta/getroommeta) |
| **>>>>** `Occupancy` |  | [Optional] Specifies the occupancies of the room type. | object |  |
|  | `MaxOccupancy` | [Optional] Specifies the maximum number of guests allowed to stay in the room type. The value for `MaxOccupancy` cannot be higher than the sum of the values for `MaxAdultOccupancy` and `MaxChildOccupancy`. | integer | Use Rooms API's [`occupancy_details.​max_guests` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_guests) |
|  | `MaxAdultOccupancy` | [Optional] Specifies the maximum number of adult guests allowed to stay in the room type. | integer | Use Rooms API's [`occupancy_details.​max_adults` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_adults) |
|  | `MaxChildOccupancy` | [Optional] Specifies the maximum number of children physically allowed to stay in the room type. The value for `MaxChildOccupancy` must always be lower than that for `MaxOccupancy`, because you cannot have a room with only children. If this value is set to `0` for all room types, then the `AcceptedGuestType` element is set to `AdultOnly` and all children policy rules are deleted. | integer | Use Rooms API's [`occupancy_details.​max_children` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_children)  Rooms API also introduces the [`occupancy_details.​max_infants` parameter](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_infants) and [`occupancy_details.​max_infants_on_top` parameters.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_infants_on_top) |
| **>>>>** `TPA_Extensions` |  | [Optional] Contains the room type's additional child occupancy details. | object |  |
| **>>>>>** `Occupancy` |  | [Optional] Specifies the children rate eligibility. | object |  |
|  | `MaxChildPayableOccupancy` | [Optional] [This field 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.  The value for `MaxChildPayableOccupancy` cannot be higher than the value of `MaxChildOccupancy`. Booking.com system sees any additional children under the adult rate. | integer | Use Rooms API's [`max_children_that_pay_children_rate` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=max_children_that_pay_children_rate) |
| **>>>>>** `SubRooms` |  | [Optional] Specifies the subroom details.  You can create subrooms only for rooms with the following room types (`RoomType`):  - `Apartment`  - `Suite`  - `Chalet`  - `Bungalow`  - `Holiday home`  - `Villa`  - `Mobile home`  Or, `apartment_room_capacity` is > 0. | object |  |
| **>>>>>>** `SubRoom` |  | [Optional] Specifies individual subroom details. | object | - |
|  | `MaxGuests` | [Optional] Specifies the maximum number of guests allowed. | integer | - |
|  | `Number` | [Optional] Specifies the number of subrooms of the specified type. Only available for `Bathroom` or `Living room` | integer | Use [`configuration.​rooms[].​type`](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/type) specification as many times you need a specific subroom. |
|  | `PrivateBathroom` | [Optional] Specifies whether the subroom has a private bathroom (`1`) or not (`0`). Accepts: `0`, `1` | boolean | - |
|  | `RoomType` | [Required] Specifies the type of subroom. Accepts: `Bedroom`, `Living room`, `Bathroom` | enumerated string | Use Rooms API's [`configuration.​rooms[].​type` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/type) |
| **>>>>>>>** `Amenities` |  | [Optional] Specifies the subroom amenities. | array of Amenity | Amenities in subrooms can only be beds. |
| **>>>>>>>>** `Amenity` |  | [Optional] Specifies individual subroom amenity details. | object | - |
|  | `RoomAmenityCode` | [Optional] Specifies the bed type code. Optional if  `AmenityCode` is specified. For rooms that support multiple bedrooms (such as `Apartment`, `Suite`), you must add bed types using this attribute. For a list of supported bed type codes, see [OTA bed types.](/connectivity/docs/codes-rma/#ota-bed-types) | enumerated string | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_type_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_type_id) |
|  | `AmenityCode` | [Optional]  Optional if  `RoomAmenityCode` is specified.  Specifies the bed type code. Same as `RoomAmenityCode`. Amenities in subrooms can only be beds.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) For a list of supported bed type codes, see [OTA bed types.](/connectivity/docs/codes-rma/#ota-bed-types) | object | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_type_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_type_id) |
|  | `Value` | [Required for  some amenities] Specifies the number of bed-type room amenities in the room. This attribute is required for some room amenities and is case sensitive.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) | integer | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_count` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_count) |
|  | `Quantity` | [Optional] Specifies the available number of amenities of this type. Same as `Value`. | integer | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_count` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_count) |
|  | `Configuration` | [Optional] Specifies whether the amenity is available in the standard or alternative room arrangement. Accepted only when `RoomAmenityCode` is a [bed type.](/connectivity/docs/codes-rma/#ota-bed-types)  Possible values are: `1` (standard arrangement),  `2` (alternative arrangement).  This option is not available for [multi-room rooms](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types/#creating-a-multi-bedroom-room-type).  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) | enumerated string | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​is_default_configuration` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/is_default_configuration) |
| **>>>>** `Room` |  | Specifies the basic room type information. Required if  `InvNotifType="New"` | object |  |
|  | `RoomID` | [Optional] Specifies the room type ID you use in your system. You can use this field to map room types across interfaces. | integer | Not supported. |
|  | `RoomType` | Specifies the room type. When specifying a room type that supports multiple bedrooms (such as `Apartment`, `Suite`), make sure to add bed types using `TPA_Extensions > Subrooms > Amenities`. See also [creating a multi-bedroom roomtype](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types/#creating-a-multi-bedroom-room-type). Required if  `InvNotifType="New"`  To see a list of all available room types, see [room type codes.](/connectivity/docs/codes-bcrt)  Apartment (PCT code 3) , Aparthotel (PCT code 5000) and Condominium (PCT code 8) require a kitchen or kitchenette in the room types to become open and bookable. For Holiday home (PCT code 5006), Holiday park (PCT code 5009), Lodge (PCT code 22) and Villa (PCT code 35) a kitchen or kitchenette is highly recommended. For more information, see [Property Class Type Codes.](/connectivity/docs/codes-pct)  | string or integer | Use Rooms API's [`unit_name_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=unit_name_id) |
|  | `SizeMeasurement` | [Optional] Specifies the numeric size of the room type. | integer | Use Rooms API's [`size.​value` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=size/value) |
|  | `SizeMeasurementUnit` | [Optional] Specifies the system of measurement.  Possible values are `sqm` (metric) and `sqft` (imperial). The default value is `sqm`. | string | Use Rooms API's [`size.​unit` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=size/unit) |
|  | `NonSmoking` | [Optional] Indicates whether smoking is allowed in the room type. `1` indicates non-smoking,  `0` indicates smoking is allowed,  `2` indicates both smoking and non-smoking are allowed. If you do not add this attribute, the default value is set to `unknown`. | boolean | Use Rooms API's [`smoking_policy` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=smoking_policy) |
|  | `Quantity` | [Optional] Specifies the number of units of a room type. | integer | Use Rooms API's [`number_of_units` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=number_of_units) |
| **>>>>** `Quantities` |  | [Optional] Contains the crib and extra bed details. | object |  |
|  | `MaximumAdditionalGuests` | [Optional] Specifies the maximum number of additional guests allowed to stay in the room in cribs or extra beds (rollaways). | integer | Use Rooms API's [`extra_beds_configuration.​is_crib_and_extra_bed_allowed` parameter](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/is_crib_and_extra_bed_allowed) to specify whether both extra cribs and extra beds are allowed or just one of them. |
|  | `MaxCribs` | [Optional] Specifies the maximum number of cribs in the room. | integer | Use Rooms API's [`extra_beds_configuration.​cribs` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/cribs) |
|  | `MaxRollaways` | [Optional] Specifies the maximum number of extra beds in the room. | integer | Use Rooms API's [`extra_beds_configuration.​extra_beds` parameter.](//connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/extra_beds) |
| **>>>>** `Amenities` |  | [Optional] Specifies the property-level amenity details. | object |  |
| **>>>>>** `Amenity` |  | [Optional] Specifies the room amenities and bed type details of the room type. For rooms with multi-bedroom support, you must add bed types under `SubRooms` > `Amenities` and not here. | object |  |
|  | `RoomAmenityCode` | [Optional if  `AmenityCode` is specified] Specifies the Room Amenity Type Code.  For a list of supported amenity codes, see [RMA](/connectivity/docs/codes-rma). | enumerated string | Use Facilities API and specify an appropriate [room_facility_id](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_id) to create a room facility. Use [Facilities API's meta](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/meta-data-endpoint/meta) endpoint to get the list of supported room amenity codes. |
|  | `AmenityCode` | [Optional if  `RoomAmenityCode` is specified ] Specifies the room amenities and bed type.  Same as `RoomAmenityCode`. Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) For a list of supported amenity codes, see [RMA](/connectivity/docs/codes-rma). | enumerated string | Use Facilities API and specify an appropriate [room_facility_id](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_id) to create a room facility. Use [Facilities API's meta](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/meta-data-endpoint/meta) endpoint to get the list of supported room amenity codes. |
|  | `Value` | Specifies the available number of amenities of this type. Required for  some amenities.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) This attribute is required for some of the room amenities and is case sensitive. | enumerated string | For specific facilities that support [multiple instances](/connectivity/docs/content-api-modules/facilities-api/introduction-to-facilities-api#adding-multi-instance-facilities), speciy as many [`room_facility_instances` parameters.](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_instances) |
|  | `Quantity` | [Optional] Specifies the available number of amenities of this type. Same as `Value`. This attribute is required for some room amenities and is case sensitive. | integer | For specific facilities that support [multiple instances](/connectivity/docs/content-api-modules/facilities-api/introduction-to-facilities-api#adding-multi-instance-facilities), speciy as many [`room_facility_instances` parameters.](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_instances) |
|  | `Configuration` | [Optional] Indicates whether the amenity is available in the standard or alternative room arrangement. Accepted only for bed types.  Possible values are:  1 (standard arrangement)  2 (alternative arrangement) | enumerated string | - |


### Request body example

The following request body creates an apartment with two bedrooms, one living room and two bathrooms:


```xml
<OTA_HotelInvNotifRQ>
    <SellableProducts HotelCode="6314570">
        <SellableProduct InvNotifType="New">
            <GuestRoom>
                <Occupancy MaxOccupancy="4" MaxAdultOccupancy="4" MaxChildOccupancy="1"/>
                <Room RoomID="12345" RoomType="Apartment"/>
                <TPA_Extensions>
                  <SubRooms>
                      <SubRoom RoomType='Bedroom' PrivateBathroom="1">
                      </SubRoom>
                      <SubRoom RoomType='Bedroom' PrivateBathroom="0">
                      </SubRoom>
                      <SubRoom RoomType="Living room">
                      </SubRoom>
                      <SubRoom RoomType="Bathroom" Number="2" />
                  </SubRooms>
                  <Occupancy MaxChildPayableOccupancy="1" />
              </TPA_Extensions>
            </GuestRoom>
        </SellableProduct>
    </SellableProducts>
</OTA_HotelInvNotifRQ>
```

### Response body example

The following is a successful response body example:


```xml
<OTA_HotelInvNotifRS >
    <InventoryCrossRefs>
        <InventoryCrossRef  RequestInvCode="12346" ResponseInvCode="631457020" />
    </InventoryCrossRefs>
    <Success />
</OTA_HotelInvNotifRS>
<!-- RUID: [UmFuZG9tSVYkc2RlIyh9YU4iplNAF3/GEVjlG+mTXmB9OwuhiPmwiL6pcbMzyiykpi6Yx5oKzRKEMxDhfrI] -->
```

### Response body parameters

The following table describes the response elements:

| Element | Attribute | Description | Type | Notes |
|  --- | --- | --- | --- | --- |
| `OTA_HotelInvNotifRS` |  | Contains the response data. | object |  |
| **>** `InventoryCrossRefs` |  | Contains the `InventoryCrossRef` objects. | array |  |
| **>>** `InventoryCrossRef` |  | Contains the mapping details in terms of your room type ID and Booking.com room type ID. | object |  |
|  | `RequestInvCode` | Specifies your room type ID. |  | To see this, you must have specified the `RoomID` attribute in the `Guestroom` object. |
|  | `ResponseInvCode` | Specifies the unique Booking.com ID of the created room type. | integer |  |
| **>**  `warnings` |  | Contains potential warnings. These can help you improve your requests. | array |  |
| **>**  `errors` |  | Contains potential errors. These can help you understand what went wrong with your request. | array |  |
| **>** `success` |  | Indicates the success of the request. | object |  |
| `ruid` |  | Specifies the unique ID of the request. | string | You can send this ID to Booking.com customer support if you run into an issue. This can help to understand what went wrong. |


## Updating a multi-bedroom room type


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

The `POST /ota/OTA_HotelInvNotif` request enables you to update a room type with a multi-bedroom (includes bathroom or living room) setup for your property.

When updating a multi-bedroom room type, it is very important to do the following:

* Set `InvNotifType` to `Overlay`.
* Include `InvCode`, which is the Booking.com ID referring to an existing room type. You do not need to add the `RoomType` for the main unit again.
* Include all the other existing room type information and change the elements you want to update.
→ To retrieve information on your property's active room types (excluding max adults and children occupancies), see [retrieving active room types.](#retrieving-active-room-types)
→ To retrieve all the possible information for your property's room types (including max occupancies and whether room types are active or deactivated), see [retrieving property details.](/connectivity/docs/tsk-retrieve-property)


### Body parameters

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

| Element | Attribute | Description | Type | Migration strategy |
|  --- | --- | --- | --- | --- |
| `OTA_HotelInvNotifRQ` |  | [Required] Contains the `SellableProducts` array. | object |  |
| **>** `SellableProducts` |  | [Required] Contains the `SellableProduct` object. | array |  |
|  | `HotelCode` | [Required] Specifies the unique ID of the property you update room amenities for. | integer | Use Rooms API. Specify as part of the URL. |
| **>>** `SellableProduct` |  | [Required] Contains a `GuestRoom` object. | object |  |
|  | `InvNotifType` | [Required] Indicates whether the request is to add room amenities when you create a room type (`New`) or to modify room amenities of an existing room type (`Overlay`). Possible values are `New` and `Overlay`. | enum | Use Rooms API. Use the relevant HTTP method. |
|  | `InvCode` | [Required if  `InvNotifType="Overlay"`] Specifies the ID generated by Booking.com when you created the room type. Not applicable when creating a new room type. Use the value in the `ResponseInvCode` found in the response body to modify a specific room type. | integer | Use Rooms API. Specify as part of the URL. |
| **>>>** `GuestRoom` |  | [Required] Contains a `GuestRoom` object. | object |  |
| **>>>>** `Description` |  | [Optional] Contains the room type name object. | object |  |
| **>>>>>** `Text` |  | [Optional] Specifies the name of the room type. To see a list of the available room type names, see [retrieving room type names.](/connectivity/docs/b_xml-roomname) | string | Use Rooms API's [`configuration.unit_name_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=unit_name_id) To get the list of available room type names in supported languages (to support translations), use the [Rooms meta endpoint.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/meta/getroommeta) |
| **>>>>** `Occupancy` |  | [Optional] Specifies the occupancies of the room type. | object |  |
|  | `MaxOccupancy` | [Optional] Specifies the maximum number of guests allowed to stay in the room type. The value for `MaxOccupancy` cannot be higher than the sum of the values for `MaxAdultOccupancy` and `MaxChildOccupancy`. | integer | Use Rooms API's [`occupancy_details.​max_guests` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_guests) |
|  | `MaxAdultOccupancy` | [Optional] Specifies the maximum number of adult guests allowed to stay in the room type. | integer | Use Rooms API's [`occupancy_details.​max_adults` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_adults) |
|  | `MaxChildOccupancy` | [Optional] Specifies the maximum number of children physically allowed to stay in the room type. The value for `MaxChildOccupancy` must always be lower than that for `MaxOccupancy`, because you cannot have a room with only children. If this value is set to `0` for all room types, then the `AcceptedGuestType` element is set to `AdultOnly` and all children policy rules are deleted. | integer | Use Rooms API's [`occupancy_details.​max_children` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_children)  Rooms API also introduces the [`occupancy_details.​max_infants` parameter](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_infants) and [`occupancy_details.​max_infants_on_top` parameters.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=occupancy_details/max_infants_on_top) |
| **>>>>** `TPA_Extensions` |  | [Optional] Contains the room type's additional child occupancy details. | object |  |
| **>>>>>** `Occupancy` |  | [Optional] Specifies the children rate eligibility. | object |  |
|  | `MaxChildPayableOccupancy` | [Optional] [This field 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.  The value for `MaxChildPayableOccupancy` cannot be higher than the value of `MaxChildOccupancy`. Booking.com system sees any additional children under the adult rate. | integer | Use Rooms API's [`max_children_that_pay_children_rate` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=max_children_that_pay_children_rate) |
| **>>>>>** `SubRooms` |  | [Optional] Specifies the subroom details.  You can create subrooms only for rooms with the following room types (`RoomType`):  - `Apartment`  - `Suite`  - `Chalet`  - `Bungalow`  - `Holiday home`  - `Villa`  - `Mobile home`  Or, `apartment_room_capacity` is > 0. | object |  |
| **>>>>>>** `SubRoom` |  | [Optional] Specifies individual subroom details. | object | - |
|  | `MaxGuests` | [Optional] Specifies the maximum number of guests allowed. | integer | - |
|  | `Number` | [Optional] Specifies the number of subrooms of the specified type. Only available for `Bathroom` or `Living room` | integer | Use [`configuration.​rooms[].​type`](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/type) specification as many times you need a specific subroom. |
|  | `PrivateBathroom` | [Optional] Specifies whether the subroom has a private bathroom (`1`) or not (`0`). Accepts: `0`, `1` | boolean | - |
|  | `RoomType` | [Required] Specifies the type of subroom. Accepts: `Bedroom`, `Living room`, `Bathroom` | enumerated string | Use Rooms API's [`configuration.​rooms[].​type` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/type) |
| **>>>>>>>** `Amenities` |  | [Optional] Specifies the subroom amenities. | array of Amenity | Amenities in subrooms can only be beds. |
| **>>>>>>>>** `Amenity` |  | [Optional] Specifies individual subroom amenity details. | object | - |
|  | `RoomAmenityCode` | [Optional] Specifies the bed type code. Optional if  `AmenityCode` is specified. For rooms that support multiple bedrooms (such as `Apartment`, `Suite`), you must add bed types using this attribute. For a list of supported bed type codes, see [OTA bed types.](/connectivity/docs/codes-rma/#ota-bed-types) | enumerated string | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_type_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_type_id) |
|  | `AmenityCode` | [Optional]  Optional if  `RoomAmenityCode` is specified.  Specifies the bed type code. Same as `RoomAmenityCode`. Amenities in subrooms can only be beds.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) For a list of supported bed type codes, see [OTA bed types.](/connectivity/docs/codes-rma/#ota-bed-types) | object | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_type_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_type_id) |
|  | `Value` | [Required for  some amenities] Specifies the number of bed-type room amenities in the room. This attribute is required for some room amenities and is case sensitive.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) | integer | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_count` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_count) |
|  | `Quantity` | [Optional] Specifies the available number of amenities of this type. Same as `Value`. | integer | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​beds[].​bed_count` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/beds/bed_count) |
|  | `Configuration` | [Optional] Specifies whether the amenity is available in the standard or alternative room arrangement. Accepted only when `RoomAmenityCode` is a [bed type.](/connectivity/docs/codes-rma/#ota-bed-types)  Possible values are: `1` (standard arrangement),  `2` (alternative arrangement).  This option is not available for [multi-room rooms](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types/#creating-a-multi-bedroom-room-type).  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) | enumerated string | Use Rooms API's [`configuration.​rooms[].​bed_configurations[].​is_default_configuration` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=configuration/rooms/bed_configurations/is_default_configuration) |
| **>>>>** `Room` |  | Specifies the basic room type information. Required if  `InvNotifType="New"` | object |  |
|  | `RoomID` | [Optional] Specifies the room type ID you use in your system. You can use this field to map room types across interfaces. | integer | Not supported. |
|  | `RoomType` | Specifies the room type. When specifying a room type that supports multiple bedrooms (such as `Apartment`, `Suite`), make sure to add bed types using `TPA_Extensions > Subrooms > Amenities`. See also [creating a multi-bedroom roomtype](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types/#creating-a-multi-bedroom-room-type). Required if  `InvNotifType="New"`  To see a list of all available room types, see [room type codes.](/connectivity/docs/codes-bcrt)  Apartment (PCT code 3) , Aparthotel (PCT code 5000) and Condominium (PCT code 8) require a kitchen or kitchenette in the room types to become open and bookable. For Holiday home (PCT code 5006), Holiday park (PCT code 5009), Lodge (PCT code 22) and Villa (PCT code 35) a kitchen or kitchenette is highly recommended. For more information, see [Property Class Type Codes.](/connectivity/docs/codes-pct)  | string or integer | Use Rooms API's [`unit_name_id` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=unit_name_id) |
|  | `SizeMeasurement` | [Optional] Specifies the numeric size of the room type. | integer | Use Rooms API's [`size.​value` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=size/value) |
|  | `SizeMeasurementUnit` | [Optional] Specifies the system of measurement.  Possible values are `sqm` (metric) and `sqft` (imperial). The default value is `sqm`. | string | Use Rooms API's [`size.​unit` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=size/unit) |
|  | `NonSmoking` | [Optional] Indicates whether smoking is allowed in the room type. `1` indicates non-smoking,  `0` indicates smoking is allowed,  `2` indicates both smoking and non-smoking are allowed. If you do not add this attribute, the default value is set to `unknown`. | boolean | Use Rooms API's [`smoking_policy` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=smoking_policy) |
|  | `Quantity` | [Optional] Specifies the number of units of a room type. | integer | Use Rooms API's [`number_of_units` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=number_of_units) |
| **>>>>** `Quantities` |  | [Optional] Contains the crib and extra bed details. | object |  |
|  | `MaximumAdditionalGuests` | [Optional] Specifies the maximum number of additional guests allowed to stay in the room in cribs or extra beds (rollaways). | integer | Use Rooms API's [`extra_beds_configuration.​is_crib_and_extra_bed_allowed` parameter](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/is_crib_and_extra_bed_allowed) to specify whether both extra cribs and extra beds are allowed or just one of them. |
|  | `MaxCribs` | [Optional] Specifies the maximum number of cribs in the room. | integer | Use Rooms API's [`extra_beds_configuration.​cribs` parameter.](/connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/cribs) |
|  | `MaxRollaways` | [Optional] Specifies the maximum number of extra beds in the room. | integer | Use Rooms API's [`extra_beds_configuration.​extra_beds` parameter.](//connectivity/docs/openapispecs/rooms-api/rooms-api-specification/rooms-api/createunit#rooms-api/createunit/t=request&path=extra_beds_configuration/extra_beds) |
| **>>>>** `Amenities` |  | [Optional] Specifies the property-level amenity details. | object |  |
| **>>>>>** `Amenity` |  | [Optional] Specifies the room amenities and bed type details of the room type. For rooms with multi-bedroom support, you must add bed types under `SubRooms` > `Amenities` and not here. | object |  |
|  | `RoomAmenityCode` | [Optional if  `AmenityCode` is specified] Specifies the Room Amenity Type Code.  For a list of supported amenity codes, see [RMA](/connectivity/docs/codes-rma). | enumerated string | Use Facilities API and specify an appropriate [room_facility_id](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_id) to create a room facility. Use [Facilities API's meta](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/meta-data-endpoint/meta) endpoint to get the list of supported room amenity codes. |
|  | `AmenityCode` | [Optional if  `RoomAmenityCode` is specified ] Specifies the room amenities and bed type.  Same as `RoomAmenityCode`. Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) For a list of supported amenity codes, see [RMA](/connectivity/docs/codes-rma). | enumerated string | Use Facilities API and specify an appropriate [room_facility_id](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_id) to create a room facility. Use [Facilities API's meta](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/meta-data-endpoint/meta) endpoint to get the list of supported room amenity codes. |
|  | `Value` | Specifies the available number of amenities of this type. Required for  some amenities.  Introduced for compatibility with [OTA_HotelInvNotifRQ.](#ota_hotelinvnotifrq) This attribute is required for some of the room amenities and is case sensitive. | enumerated string | For specific facilities that support [multiple instances](/connectivity/docs/content-api-modules/facilities-api/introduction-to-facilities-api#adding-multi-instance-facilities), speciy as many [`room_facility_instances` parameters.](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_instances) |
|  | `Quantity` | [Optional] Specifies the available number of amenities of this type. Same as `Value`. This attribute is required for some room amenities and is case sensitive. | integer | For specific facilities that support [multiple instances](/connectivity/docs/content-api-modules/facilities-api/introduction-to-facilities-api#adding-multi-instance-facilities), speciy as many [`room_facility_instances` parameters.](/connectivity/docs/openapispecs/facilities-api/facilities-api-specification/manage-room-facilities/setroomfacilities#manage-room-facilities/setroomfacilities/t=request&path=room_facility_instances) |
|  | `Configuration` | [Optional] Indicates whether the amenity is available in the standard or alternative room arrangement. Accepted only for bed types.  Possible values are:  1 (standard arrangement)  2 (alternative arrangement) | enumerated string | - |


### Request body example

The following request body sets two bedrooms, one living room and two bathrooms in an apartment:


```xml
<OTA_HotelInvNotifRQ>
	<SellableProducts HotelCode="6314570">
		<SellableProduct InvNotifType="Overlay" InvCode="631457019">
			<GuestRoom>
				<Occupancy MaxOccupancy="4" MaxAdultOccupancy="4" MaxChildOccupancy="2"/>
				<Room RoomID="12345" RoomType="Apartment"/>
                <TPA_Extensions>
                  <SubRooms>
                      <SubRoom RoomType='Bedroom' PrivateBathroom="1">
                      </SubRoom>
                      <SubRoom RoomType='Bedroom' PrivateBathroom="0">
                      </SubRoom>
                      <SubRoom RoomType="Living room">
                      </SubRoom>
                      <SubRoom RoomType="Bathroom" Number="2" />
                  </SubRooms>
                  <Occupancy MaxChildPayableOccupancy="2" />  
              </TPA_Extensions>
			</GuestRoom>
		</SellableProduct>
	</SellableProducts>
</OTA_HotelInvNotifRQ>
```

### Response body example

The following is a successful response body example:


```xml
<OTA_HotelInvNotifRS >
    <Success />
</OTA_HotelInvNotifRS>
<!-- RUID: [UmFuZG9tSVYkc2RlIyh9YU4iplNAF3/GEVjlG+mTXmB9OwspcIGa+Kqv/KBuW6ki6Yx5oKzRKEMxDhfrI] -->
```

### Response body parameters

The following table describes the response elements:

| Element | Description | Type | Notes |
|  --- | --- | --- | --- |
| `OTA_HotelInvNotifRS` | Contains the response data. | object |  |
| **>**  `warnings` | Contains potential warnings. These can help you improve your requests. | array |  |
| **>**  `errors` | Contains potential errors. These can help you understand what went wrong with your request. | array |  |
| **>** `success` | Indicates the success of the request. | object |  |
| `ruid` | Specifies the unique ID of the request. | string | You can send this ID to Booking.com customer support if you run into an issue. This can help to understand what went wrong. |


## Retrieving active room types


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

The `POST /xml/rooms` request enables you to retrieve all the active room types of a property.

→ To retrieve both deactivated and active room types, you must [retrieve the property details and filter on `GuestRooms`.](/connectivity/docs/tsk-retrieve-property)

### Body parameters

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

| Element | Attribute | Description | Type | Required/Optional | Notes |
|  --- | --- | --- | --- | --- | --- |
| `request` |  | Contains the request information. | object | required |  |
| **>** `hotel_id` |  | Specifies the unique ID of the property you want to retrieve the active room types for. | integer | required |  |


### Request body example

The following is a request body example:


```xml
<request>
  <hotel_id>6314570</hotel_id>
</request>
```

### Response body example

The following is a successful response body example:


```xml
<rooms>
    <room id="631457004" hotel_id="6314570" hotel_name="The Tech W" max_children="1">Double Room</room>
    <room id="631457005" hotel_id="6314570" hotel_name="The Tech W" max_children="1">Deluxe Double Room with Sea View</room>
    <room id="631457006" hotel_id="6314570" hotel_name="The Tech W" max_children="3">Apartment</room>
</rooms>
<!-- RUID: [UmFuZG9tSVYkc2RlIyh9YZvDaUET+NMaXKN+9zcX6t7ygxdUDjvU4TNDD8JwtXxnIZuaEi] -->
```

### Response body parameters

The following table describes the response elements:

| Element | Attribute | Description | Type | Notes |
|  --- | --- | --- | --- | --- |
| `rooms` |  | Contains the room objects. | object |  |
| **>**  `room` |  | Contains the room type information. | object |  |
|  | `id` | Specifies the unique Booking.com ID of the active room type. | integer |  |
|  | `hotel_id` | Specifies the unique ID of the property you retrieved the active room types for. | integer |  |
|  | `hotel_name` | Specifies the name of the property you retrieved the active room types for. | string |  |
|  | `max_children` | Specifies the maximum number of children allowed to stay in the room type. | integer |  |
| `ruid` |  | Specifies the unique ID of the request. | string | You can send this ID to Booking.com customer support if you run into an issue. This can help to understand what went wrong. |


## Deactivating a room type


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

The `POST /ota/OTA_HotelInvNotif` request also enables you to deactivate an active room type. To do so, you must:

* Set `InvNotifType` to `Overlay`.
* Add the `InvStatusType` attribute within `SellableProduct` and set it to `Deactivated`.
* Include the `InvCode`, which refers to the Booking.com ID of the room type you want to deactivate.


### Deactivating causes roomrates to be deactivated

If you deactivate a room type, all roomrates (products) you have created for a property with this room type become deactivated as well. This also means any inventory or availability is removed.

If you decide to activate a deactivated room type, you must both [create roomrates](/connectivity/docs/room-type-and-rate-plan-management/managing-roomrates/#creating-a-roomrate) and [push inventory (availability)](/connectivity/docs/ari) again.

### Body parameters

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

| Element | Attribute | Description | Type | Required/Optional | Notes |
|  --- | --- | --- | --- | --- | --- |
| `OTA_HotelInvNotifRQ` |  | Contains the `SellableProducts` array. | object | required |  |
| **>** `SellableProducts` |  | Contains the `SellableProduct` objects. | array | required |  |
|  | `HotelCode` | Specifies the unique ID of the property. | integer | required |  |
| **>>** `SellableProduct` |  | Contains a `GuestRoom` object. | object | required |  |
|  | `InvNotifType` | Specifies whether the request is to create a room type (`New`) or modify an existing one (`Overlay`). | enum | required | Possible values are `New` and `Overlay`. You must set it to `Overlay` to deactivate the room type. |
|  | `InvStatusType` | Specifies whether the request is to activate or deactivate a room type. | enum | required | Possible values are `Active` and `Deactivated`. You must set it to `Deactivated` to deactivate the room type. |
|  | `InvCode` | Specifies the unique Booking.com ID of the room type you want to deactivate. | integer |  |  |
| **>>>** `GuestRoom` |  | Contains a `GuestRoom` object. | object | required |  |
|  | `RoomID` | Specifies the room type ID you use in your system. |  |  |  |


### Request body example

The following is a request body example:


```xml
<OTA_HotelInvNotifRQ>
  <SellableProducts HotelCode="6314570">
    <SellableProduct InvNotifType="Overlay" InvStatusType="Deactivated" InvCode="631457023">
      <GuestRoom RoomID="12345" />
    </SellableProduct>
  </SellableProducts>
</OTA_HotelInvNotifRQ>
```

### Response body example

The following is a successful response body example:


```xml
<OTA_HotelInvNotifRS>
    <Success />
</OTA_HotelInvNotifRS>
<!-- RUID: [UmFuZG9tSVYkc2RlIyh9YZvDaUET+NMawINLs5rR3NaajLtEH/70GwD6OurpnDg0kGlNgNTpVkuAxZhiiu] -->
```

### Response body parameters

The following table describes the response elements:

| Element | Description | Type | Notes |
|  --- | --- | --- | --- |
| `OTA_HotelInvNotifRS` | Contains the response data. | object |  |
| **>**  `warnings` | Contains potential warnings. These can help you improve your requests. | array |  |
| **>**  `errors` | Contains potential errors. These can help you understand what went wrong with your request. | array |  |
| **>** `success` | Indicates the success of the request. | object |  |
| `ruid` | Specifies the unique ID of the request. | string | You can send this ID to Booking.com customer support if you run into an issue. This can help to understand what went wrong. |


## Activating a room type


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

The `POST /ota/OTA_HotelInvNotif` request also enables you to reactivate a previously deactivated room type. To do so, you must:

* Retrieve deactivated room types by [retrieving the property details and filtering on `GuestRoom` objects which have the `Active` attribute set to 0.](/connectivity/docs/tsk-retrieve-property)
* Set `InvNotifType` to `Overlay`.
* Add the `InvStatusType` attribute within `SellableProduct` and set it to `Activate`.
* Include the `InvCode`, which refers to the Booking.com ID of the room type you want to activate.


### Body parameters

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

| Element | Attribute | Description | Type | Required/Optional | Notes |
|  --- | --- | --- | --- | --- | --- |
| `OTA_HotelInvNotifRQ` |  | Contains the `SellableProducts` array. | object | required |  |
| **>** `SellableProducts` |  | Contains the `SellableProduct` objects. | array | required |  |
|  | `HotelCode` | Specifies the unique ID of the property. | integer | required |  |
| **>>** `SellableProduct` |  | Contains a `GuestRoom` object. | object | required |  |
|  | `InvNotifType` | Specifies whether the request is to create a room type (`New`) or modify an existing one (`Overlay`). | enum | required | Possible values are `New` and `Overlay`. You must set it to `Overlay` to activate the room type. |
|  | `InvStatusType` | Specifies whether the request is to activate or deactivate a room type. | enum | required | Possible values are `Active` and `Deactivated`. You must set it to `Active` to activate the room type. |
|  | `InvCode` | Specifies the unique Booking.com ID of the room type you want to activate. | integer |  |  |
| **>>>** `GuestRoom` |  | Contains a `GuestRoom` object. | object | required |  |
|  | `RoomID` | Specifies the room type ID you use in your system. |  |  |  |


### Request body example

The following is a request body example:


```xml
<OTA_HotelInvNotifRQ>
  <SellableProducts HotelCode="6314570">
    <SellableProduct InvNotifType="Overlay" InvStatusType="Active" InvCode="631457023">
      <GuestRoom RoomID="12345" />
    </SellableProduct>
  </SellableProducts>
</OTA_HotelInvNotifRQ>
```

### Response body example

The following is a successful response body example:


```xml
<OTA_HotelInvNotifRS>
    <Success />
</OTA_HotelInvNotifRS>
<!-- RUID: [UmFuZG9tSVYkc2RlIyh9YZvDaUET+NMawINLs5rR3NaajLtEH/70GwD6OurpnDg0kGlNgNTpVkuAxZhiiu] -->
```

### Response body parameters

The following table describes the response elements:

| Element | Description | Type | Notes |
|  --- | --- | --- | --- |
| `OTA_HotelInvNotifRS` | Contains the response data. | object |  |
| **>**  `warnings` | Contains potential warnings. These can help you improve your requests. | array |  |
| **>**  `errors` | Contains potential errors. These can help you understand what went wrong with your request. | array |  |
| **>** `success` | Indicates the success of the request. | object |  |
| `ruid` | Specifies the unique ID of the request. | string | You can send this ID to Booking.com customer support if you run into an issue. This can help to understand what went wrong. |