# Discounts and rates

**Find in this section an overview of the available discount types including deals, regular rates, third-party inventory (TPI) rates, and Closed User Group (CUG) rates, along with guidance on how to correctly retrieve them via the Demand API.**

Booking.com enables partners to offer a variety of discount mechanisms designed to improve visibility, drive bookings, and enhance the traveller experience. These incentives include:

* **Time-sensitive deals**, such as Black Friday and other seasonal promotions
* **Targeted rate offers**, based on user device or location.
* **Exclusive offers**, available to logged-in or authenticated users.
* **Third-party inventory (TPI) rates**, providing competitive pricing from external suppliers.


As an Affiliate Demand API partner, you can surface these rates dynamically, tailoring offers based on context to maximise conversion and user satisfaction.

To confirm eligibility or access specific discount types, please contact your Account Manager.

## Discount categories

Booking.com supports several discount mechanisms. Each type has a distinct business purpose and API behaviour:

![type of discounts](/assets/dealsandrates.4d40002ebf587ef2e87510e281407018a3388e1ac9da76c0052cb0b3e0e9058d.4302f616.png)

### Deals

Publicly visible discounts designed to generate urgency and increase visibility—no login or special membership required.

**Use cases:**

* Promote seasonal or limited-time campaigns (e.g., Black Friday).
* Highlight discounted properties during off-peak periods.
* Drive short-term booking spikes.


**Available deal types via Demand API:**

| 
| ![deal](/assets/deal.5ade805c2f654b7fe004c7be0f6614b186b271686a90fbb324c9d3a4cce5a3e6.4302f616.svg) | **Logged in deal** (formerly Secret deals)* Available only to users who meet specific criteria, such as being authenticated.

 | **Deal of the day*** A daily rotating promotion for selected properties.

 |
|  | **Last minute deals*** Offered for bookings close to the check-in date.

 | **Limited-time deals*** Offers valid for a short, predefined period, encouraging quick bookings.(e.g., Black Friday)

 |


### Regular (target) rates

Public rates tailored to specific customer segments, based on attributes like geography or booking platform.

**Use cases:**

* Encourage mobile bookings.
* Target specific countries or regions.
* Optimise pricing strategy across different markets.


**Target rate types:**

| 
| ![target rates](/assets/rates.9c7c0a56f6b55240b9b31d2cd70935f610b3e11326c45ffc9a37ca976d31946e.4302f616.svg) | **Mobile rates** - Special rates for bookings made via mobile apps or browsers. | **Geo/country rates** - Discounts based on the user's location or country of residence. |


### Closed user group (CUG) rates

Closed user group (CUG) rates are discounted rates offered exclusively to verified or loyalty-based user groups.

**Use cases:**

* Provide added value to *Genius* or loyalty programme members.
* Support private sales or corporate programmes.
* Offer consistent long-term pricing to authenticated users.


**Important considerations:**

* Access control is required (e.g., authentication or tokenisation)
* CUG rates may be combinable with other discounts.
* Prior approval from your Account Manager is required.


Contact your Account Manager for further details.

### Third-party inventory (TPI) rates

Third-party inventory (TPI) rates are sourced from external suppliers (e.g., wholesalers, bedbanks), providing broader inventory and competitive pricing.

**Key characteristics:**

* Available via Demand API v3.1 (or above)
* Depending on your configuration the TPI rates are:
  * Commissionable (Sell rates) which are part of the "Regular rates" group.
  * or non-commissionable (Net rates), which are CUG rates.
* Useful for supplementing property availability with competitive alternatives.


See the [TPI section](/demand/docs/accommodations/tpi/about-tpi) for integration details.

## Discounts in requests

To effectively use discounts via the Demand API, it's essential to understand how to implement them correctly, so travellers can receive the appropriate pricing based on their eligibility.

### Endpoints

Use the following accommodation endpoints to access deals and rates information:

| 
| **Endpoint** | **Best practice** |
| [/accommodations/search](/demand/docs/open-api/demand-api/accommodations/accommodations/search)
[/accommodations/availability](/demand/docs/open-api/demand-api/accommodations/accommodations/availability)
 | ✓ When querying availability or searching for accommodations, make sure to include the correct [key parameters](/demand/docs/accommodations/discounts#key-parameters) in your requests.
✓ This ensures the API returns the appropriate rates/deals based on the user's eligibility.
 |
| [/orders/preview](/demand/docs/open-api/demand-api/orders/orders/preview) | ✓ Before finalising the booking, review the applied rates and deals to ensure they are correct. |


### Key parameters

The following parameters determine which deals and rates are available:

✅ [API authentication](/demand/docs/development-guide/authentication/)

* The API token and `affiliate ID` must be included in the `Authorization: Bearer` header, in every API request.
* These identify your partner account and determine which deals and rates are accessible to them.


✅ The `booker` object - Specifies the conditions under which users can access particular rates.

| "booker" parameters  | Description |
|  --- | --- |
| `platform` | Defines whether the user is making the booking through mobile, desktop, etc. |
| `country` (and `state`) | Restricts rates to users from a specific country (or `state` in the US) |
| `user_groups`
 | It identifies whether the booker is part of a membership tier, ensuring the correct CUG rates are retrieved.
* The `authenticated` value is **mandatory to get access to closed user discounts**. By adding this parameter, users get access to rates as if they were logged in at booking.com.

 |
| `checkin`/ `checkout` | Include deals valid for the specified period. |


Use the key parameters in your requests to retrieve discounts on accommodations triggered by the search results.

### Retrieving target rates

To retrieve rates offered to specific targets located in a strategic market and/or using a specific platform for bookings:

Include the following information in the  `booker` object:

1. Identify the booker `platform`. In this case, for mobile rates: `"platform": "mobile"`
2. Set the booker `country`, so the right rates are retrieved (for example, `"country": "us"` for the USA).
(Use the [common/locations/countries endpoint](/demand/docs/open-api/demand-api/commonlocations/common/locations/countries) to return the country codes if needed.)
3. If discounts are attached to a specific time-window, ensure you set the correct `checkin` and `checkout` dates.


Example:


```json
{
...
  "booker": {
    "platform": "mobile", 
    "country": "us",
  },
  "checkin": "2025-09-05",
  "checkout": "2025-09-14",
  "extras": ["products"],
...
}
```

Refer to the [Search accommodation guide](/demand/docs/accommodations/search-for-available-properties), for instructions and recommendations on defining your search requests.

### Accessing CUG rates

To access exclusive deals such as `logged_in_deal` (previously known `secret_deals`) in v3, specifying `"user_groups": ["genius2"]` alone is no longer sufficient, even if a `logged_in_deal` is available for this group.

**You should always include the "authenticated" field** in the `user_groups` parameter in your availability and orders/preview requests:

1. Include `authenticated`  to ensure only registered and logged-in travellers get CUG rates.
2. Add the membership tier to apply the discounts (e.g., genius or genius2).


Example:


```json

"booker": {
  "platform": "desktop",
  "country": "us",
  "user_groups": [
      "authenticated",
      "genius2"]
  },
```

Important
* If the booker account does not have access to certain rate tiers (e.g., genius2), passing this value will not return applicable rates.
* Always confirm available rate tiers with your Account Manager before making requests.


### Combining discounts

In this example, a combination of deals and CUG rates is applied:

- Target discounts are applied to mobile users located in Spain, during the selected period.
- For the exclusive **Genius closed group**, the user must be `authenticated` to receive special rates.



```json
{
...
  "booker": {
    "platform": "mobile",
    "country": "es",
    "user_groups": ["authenticated", "genius"]
  },
  "checkin": "2025-09-05",
  "checkout": "2025-09-14",
  "extras": ["products"],
...
}
```

Note we do not automatically combine deals/rates with each other, unless rate stacking is activated in your account. Contact your Account Manager for more details.

## Discounts in responses

When you call any of the [previously mentioned endpoints](/demand/docs/accommodations/discounts#endpoints), the response will contain the `products.deal` object, which provides summary information on available discounts.

### Example - Search response with discounts

The following example shows a product eligible for a **28% discount**, applicable when booking via a mobile device or during a specific promotional period.

The original price is **€100**, resulting in a discounted price of **€72.00**.


```json
{
  ...
  "currency": "EUR",
  ...
  "products": [
    ...
    "id": "xxxxxxxx_x_xxxxxxxxx_x_x_x",
    "deal": {
      "discount_percentage": 28,
      "public_price": 100.00,
      "tags": [
        "mobile_rate",
        "limited_time_deal"
      ]
    },
    ...
    "price": {
      "book": 72.00,
    },
```

### "Deal" object parameters

|  |
|  --- |
| `discount_percentage` | The total discount percentage applied to the product's `public_price`. |
| `public_price` | This is the original price of the product, before any discounts. This is the price to which the `discount_percentage` is applied. |
| `price.book` | The discounted price (`public_price` minus the `discount_percentage`). |
| `tags` | These tags help platforms categorise discounts and make it easier for users to identify promotions. (See next section for details). |


Note that the `products.deal` object may not provide a detailed breakdown of how the `discount_percentage` is calculated.

#### Tags

Each discount is tagged to identify its type.

|  Tag | Description |
|  --- | --- |
| `black_friday` | Deals part of the Black Friday promotion, a major shopping event with significant discounts or limited-time offers, usually held in late November. |
| `limited_time_deal` | Deals that expire after a certain period, often flash sales or promotions with a deadline. |
| `logged_in_deal` (previously named "Secret deals") | Deals available only to logged-in users (`authenticated`), often exclusive or part of a loyalty program like Genius. |
| `mobile_rate` | Special discounted rates offered to target users booking through mobile apps. |
| `seasonal_deal` | Deals tied to specific seasons or holiday periods, offering discounts aligned with travel trends (such as Summer, Getaway deals, Easter, etc.). |


### Important

* Multiple deals may be applied sequentially.
* If deals cannot be combined, only the highest discount is applied.


What's next?
* **Learn how to display discounts** in your application with [our dedicated guide](/demand/docs/accommodations/display-discounts).
* Refer to the [TPI section](/demand/docs/accommodations/tpi/about-tpi) for detailed instructions on retrieving and booking Third-party inventory rates.