# Displaying discounts

**Use the following guidelines to display discounts and deals correctly in your application.**

When querying accommodation availability or search results, discount information is returned in the `products.deal` object of the API response.

Use this information to clearly and accurately show travellers that a product includes a discount.

## Best practices

### Show the discount percentage

If the response includes a `discount_percentage`, always display the original `public_price` alongside the discounted price. The original price should be visually de-emphasised (e.g. with a strikethrough) to highlight the savings.

Only show discounts to eligible travellers. For example:

* `mobile_rate` discounts should only be visible to users on mobile devices.
* `logged_in_deals` should be shown only to authenticated users who meet the eligibility requirements.


### Respect localisation

Always display prices in the correct local format:

* Use the appropriate currency symbol and code (e.g. **€** for Euros).
* Format prices according to local conventions, including decimal and thousand separators.
* Consider both the user’s location and the property's location when displaying geo-specific rates.


#### Example API response


```json
{
  "currency": "EUR",
  "products": [
    {
      "deal": {
        "discount_percentage": 20,
        "public_price": 150.00,
        "tags": ["limited_time_deal"]
      },
      "price": {
        "book": 120.00
      }
    }
  ]
}
```

## Display examples

If the response from the [/accommodations/search endpoint](/demand/docs/open-api/demand-api/accommodations/accommodations/search) includes the following deal:


```json
{
  "currency": "EUR",
  "products": [
    {
      "id": "xxxxxxxx_x_xxxxxxxxx_x_x_x",
      "deal": {
        "discount_percentage": 45,
        "public_price": 1005.00,
        "tags": ["limited_time_deal"]
      },
      "price": {
        "book": 553.00
      }
    }
  ]
}
```

You could display the offer like this on the search results page:

![Limited Time Deal Search](/assets/deals-1.c6692b3c74708cfd188373726770791a6f20b51985972f91253564d14e4e2110.4302f616.png)

If the same data is returned from the[/accommodations/availability endpoint](/demand/docs/open-api/demand-api/accommodations/accommodations/availability), you can display it on the property page like this:

![Limited Time Deal Availability](/assets/deals-2.ce917907b9b71ecb4d4aa5ec11d031e3d8f16e47b256ad93b10ed470c6831e3d.4302f616.png)

## Displaying logged_in deals

You may display `logged_in_deals` (closed-user-group discounts) only to users who meet Booking.com’s eligibility criteria. These deals are not available to anonymous users or unauthenticated users.

### Eligibility requirements

To be eligible for `logged_in_deals`, travellers must:

* Be signed in with a valid account.
* Meet any additional deal-specific requirements, such as:
  * Genius membership.
  * Participation in a targeted campaign.


### Implementation guidelines

To correctly display`logged_in_deals`:

* **Require authentication** -
Only display `logged_in_deals` to users who are authenticated on your platform and/or linked to a Booking.com account.
* **Display deals clearly** -
Highlight these deals in your user interface with clear labelling (for example, “Special deal” or “Logged-in discount”) so travellers understand why the offer is available to them.
* **Never expose to unauthenticated users** -
Never expose `logged_in_deals` to users who are not signed in. These deals are exclusive and must not be shown in public-facing or anonymous environments.
* **Comply with Booking.com’s policies** -
Ensure you follow all technical and contractual requirements provided by Booking.com regarding deal visibility, rate confidentiality, and user targeting.


## Handling products with no deals

If no discount applies to a product, the `products.deal` object will be set to `null`.

Your application should handle this scenario gracefully. Do not display any discount indicators or strike-through pricing.

### Example API response with no deal


```json
{
  "currency": "EUR",
  "products": [
    {
      "id": "xxxxxxxx_x_xxxxxxxxx_x_x_x",
      "deal": null,
      "price": {
        "book": 100.00
      }
    }
  ]
}
```

> ![genius-bulb](/assets/genius-bulb.3e13976eeeabd0526f1d76bfb7de5967932211a5ef4afe526a3b0a71a7b02fb0.5e2a7131.png) Avoid showing any discount-related visuals or text if no deal is present. This prevents user confusion and maintains a clean UI.


Curious to know more?
- For further details on deals and rates refer to [our dedicated guide](/demand/docs/accommodations/discounts).
- Refer to the [Search for accommodation guide](/demand/docs/accommodations/search-for-available-properties) for instructions on constructing requests.
- Explore the [Search use cases section](/demand/docs/accommodations/search-examples) for practical examples.