# Understanding pricing types

This section provides information on additional resources you need before you can implement the Rates & Availability API.

It covers:

- [The endpoints that support implementing](#endpoints-to-implement-pricing-types) a specific pricing type.
- [Identifying a suitable pricing type.](#identifying-a-suitable-pricing-type)
- [Prerequisites for creating inventory.](#before-creating-inventory)
- [Availability restrictions.](#availability-restrictions)


## Endpoints to implement pricing types

The following table outlines the endpoints you can use to support a pricing type.

| Pricing type | Action | B.XML | OTA | CSV |
|  --- | --- | --- | --- | --- |
| Standard | Create available  inventory and restrictions | `availability` | `OTA_HotelAvailNotif` | - |
|  | Create pricing | `availability` | `OTA_HotelRateAmountNotif` | - |
| Derived | Create available  inventory, restrictions  and  base price | `availability` | - | - |
|  | Create pricing offsets | `derivedprices` | `OTA_HotelRateAmountNotif`  (Set base price only) | - |
| Occupancy based | Create available  inventory and restrictions | `availability` | `OTA_HotelAvailNotif` | - |
|  | Create pricing | `availability` | `OTA_HotelRateAmountNotif` | - |
| Length of stay | Create inventory and pricing.  Does not support  adding restrictions | - | `OTA_HotelRateAmountNotif` | `los_pricing` |


## Identifying a suitable pricing type

Figure 1 provides a decision tree which can help you identify the right pricing type suitable for your business based on the room inventory.
The step assumes that you are certified to use any of the supported pricing types.

![Deciding to select a pricing type](/assets/pricing-type-decision.c80724798121156bb59c3287cd6748b2988ac3269fa0b75b779fc44ba6dce86e.0b401e44.png)

**Figure 1.** Shows a decision tree to help select a pricing type.

## Before creating inventory

Make sure to create the following resources in Booking.com before creating an inventory:

- Room type: Define the room type (such as single/double room, suite, dormitory and so on), room size, maximum adult/child occupancy, number of units available in the property. Optionally, you can also set room amenities. For more information, see [Managing room types.](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types)
- Rate plan: Create rate plans. For more information, see [Managing rate plans.](/connectivity/docs/room-type-and-rate-plan-management/managing-rate-plans)
- Roomrate: Define a combination of room type and rate plan, cancellation policy, meal plans and booking rules such as minimum/maximum time to book. You can also set the maximum occupancy for the room type. For more information, see [Managing roomrates.](/connectivity/docs/room-type-and-rate-plan-management/managing-roomrates)
- PricingType at the property level: You can either set the pricing type at the property level or change the pricing type from Standard to RLO while creating a roomrate by specifying maximum occupancy. For more information on configuring pricing types, see [configuring-pricing-types](/connectivity/docs/configuring-retrieving-pricing-types).


For more information on these resources and how to create them, see the [Room type and rate plan management API.](/connectivity/docs/room-type-and-rate-plan-management/understanding-room-types-and-rate-plans/#basic-definitions)

Inventory is set based on room type and roomrate
You create an inventory by specifying the [room type](/connectivity/docs/room-type-and-rate-plan-management/managing-room-types) and [roomrate](/connectivity/docs/room-type-and-rate-plan-management/managing-roomrates). Therefore, when you create inventory for a room type, all units belonging to the room type are included in the inventory.

For a simplified view of all the steps, see figure 2.

![Steps to create resources](/assets/creating-resources.1ddad0a0e0441e6e402cf8dac3b409170c33e631cc93b29ec61c7f58f4b38acf.0b401e44.png)

**Figure 2.** Steps to create room type, rate plan, roomrate and inventory.

## Availability restrictions

Exercise caution when specifying restrictions
You can inadvertently make a room unavailable by
setting multiple, overlapping restrictions. The API doesn't validate
this. It does not return errors or warnings on conflicting
or overlapping restrictions.

You can restrict the availability of a room in the following ways:

- Specify a **minimum** and/or **maximum** number of days a guest must book in advance.
- Specify a **minimum** and/or **maximum** length-of-stay if a reservation **includes** a certain date.
- Specify a **minimum**, **maximum**, or **exact** length-of-stay if a guest **checks in** on a certain date.
- Make a roomrate **unavailable to book** if the guest **checks in** and/or **checks out** on a certain date.
- Make a roomrate **unavailable to book** on a certain date.


To create these restrictions, you must include certain fields in your request. These fields are different for the [OTA](/connectivity/docs/ota-hotelavailnotif) and [B.XML](/connectivity/docs/b_xml-availability) endpoints.

You can apply restrictions to individual dates and to date ranges. Restrictions can also overlap.