Last updated

Sell rates quick guide

This guide explains how to retrieve third-party accommodation with special sell rates through our API, so you can provide more competitive prices. Find here step-by-step instructions to integrate this feature, including setting up API requests, handling responses, and using Sell rates effectively in your platform.


Retrieving sell rates

To retrieve sell rates for accommodations from a third-party inventory, start making API calls to the accommodations/search endpoint.

The process for retrieving sell rates involves defining search parameters, filtering results, and checking for the appropriate fields in the response.

Step 1 - Making API calls with key parameters

When making an API call to retrieve sell rates, follow these guidelines:

Search request:
Single room: Ensure your search request includes only one room (with single or multiple occupancy).

Filter by properties that:

  • Offer the pay_online_now timing (Note: pay_online_later is not yet supported)
  • Accept credit cards (or virtual credit cards), as other payment methods are not compatible with Sell rates (payment. credit_card_required: true).

Refer to the filtering guide for examples and best practices.

Example search request:

To retrieve Sell rates, use the accommodations/search endpoint with the following parameters:

{
  "booker": {
    "country": "nl",
    "platform": "desktop"
  },
  "checkin": "2025-05-22",
  "checkout": "2025-05-25",
  "city": -2140479,
  "extras": [
    "products"
  ],
  "payment": {"timing": "pay_online", "credit_card_required": true },
  "guests": {
    "number_of_adults": 2,
    "number_of_rooms": 1
  }
}

Sell rates are currently only retrieved when searching for 1 room (with single or multiple occupancy).

Step 2 - Handling API responses

Once you send the search request, the response contains the third-party inventory accommodation and associated details.

Key response parameters

Look for the following key parameters in the response:

Inventory object:This indicates whether the accommodation comes from a third-party inventory and the type of rate:
  • inventory.third_party: true
  • inventory.type: sell
Payment object:
  • prepayment_required field set to true.
  • The pay_online_now timing.

Example search response

Here's an example of a search response with Sell rates:

{
  "id": 1004657,
  "currency": "EUR",
  "price": {
    "book": 913.06,
    "total": 913.06
  },
  "products": [
    {
      "id": "tpi-52d4d2944c2739bc83ebb8b57f734850",
      "payment": {
        "prepayment_required": true,
        "timings": ["pay_online_now"]
      },
      "price": {
        "book": 913.06,
        "total": 913.06
      },
      "third_party_inventory": true,
      "inventory": {
        "third_party": true,
        "type": "sell"
      }
    }
  ]
}

For detailed information on search parameters and behaviour, refer to the Accommodation Search Guide.

Making sell rates bookable

Depending on the sort of integration you are implementing, follow the dedicated processes to make sell rates bookable.

Search and look

Let your audience start their search on your website and redirect them to Booking.com to complete their booking. Use accommodations/search and availability endpoints.

Entire booking journey

Allow your audience to search, look and book their stays on your website. For this integration use the full set of accommodation endpoints.


Search and look

This sort of integration requires performing the Look and book part of the flow using whitelabel.

For the search part, follow the instructions provided in the first section of this guide.

In these cases, you receive the sell rates on the branded landing platforms of Booking.com tagged as “Partner Offer” in our user interface.

drawing

You can then market this using the whitelabel setup.

Example:

drawing

Entire booking experience

If you are implementing an end-to-end booking experience (Search, look and book integration), then you must cover the full accommodation API flow.

This includes handling responses at every step.

Prerequisites

To enjoy the benefits of sell rates, you must first meet these requirements:

Checklist
your partner agreement must authorise you to use online payments (pay_online_now).
you can use virtual credit cards and/or credit card payment methods.

Contact your account manager if you meet these requirements and would like to enable Sell rates.

Steps

In each step, identify whether a product comes from a third-party inventory and offers Sell rates by checking the inventory object and the third_party_inventory field.

Key steps
  1. Search for available properties using the accommodation/search endpoint.
  2. Look at availability and detailed information, including pricing and policies, to display the best options.
  3. Book the accommodation by calling the orders/preview endpoint first, and then the orders/create endpoint to complete the transaction.

Step 1- Search for third-party inventory properties

Search for available properties using the accommodation/search endpoint.

Follow the instructions provided in the Retrieving sell rates section.

Step 2 - Look at availability

→ Call the accommodation/availability endpoint with the desired accommodation ID and same details returned from the search request to provide real-time information about availability and rates.

The response returns a list of available products with the best price for your search criteria (one room, pay online now, etc.)

Example:

{
  "request_id": "01j6en0kkx6ve7eyd8nmh6knaz",
  "data": {
    "id": 2489623,
    "currency": "EUR",
    "deep_link_url": "booking://hotel/2489623?affiliate_id=1234567&checkin=2024-12-15&checkout=2024-12-18",
    "products": [
      {
        "id": "tpi-f621534d2037f346ff4b80c090072866",
        "deal": null,
        "inventory": {
          "third_party": true,
          "type": "sell"
        },
        "maximum_occupancy": {
          "adults": 3,
          "children": null,
          "total": 3
        },
        "number_available_at_this_price": 1,
        "policies": {
          "cancellation": {
            "free_cancellation_until": "2024-12-13T16:59:59+00:00",
            "type": "free_cancellation"
          },
          "meal_plan": {
            "meals": [],
            "plan": "no_plan"
          },
          "payment": {
            "prepayment_required": true,
            "timings": [
              "pay_online_now"
            ]
          }
        },
        "price": {
          "book": 58.03,
          "total": 58.03
        },
        "room": 248962301,
        "third_party_inventory": true
      },
      ...
    ],
    "recommendation": null,
    "url": "https://www.booking.com/hotel/th/kallapangha-resort.html?aid=1234567&checkin=2024-12-15&checkout=2024-12-18&no_rooms=1&group_adults=1&selected_currency=EUR"
  }
}

Refer to the Accommodations quick guide for more details on how to use this endpoint.

Step 3 - Preview the booking

For the booking, you need to use the order/preview endpoint first.

In the response you can see the order details, including price breakdown and available payment methods.

Example of orders/preview response

{
  "products": [
    {
      "id": "tpi-e4eb119953928affbd8f247d9b2ccb24",
      "deal": null,
      "policies": {...},
      "price": {...},
      "room": 0,
      "third_party_inventory": true,
      "inventory": {
        "third_party": true,
        "type": "sell"
      }
    }
  ]
}

Refer to the Orders guide for instructions on how to construct your requests and examples.

Step 4 - Create the booking

The final step in the full booking experience is to use the order/create endpoint, to finish the booking by proceeding the payment.

Refer to the Orders guide for more details about mandatory fields, examples and recommendations for your requests.

Successful order response

A successful order/create response returns the receipt URL, but also the following ids:

order:This is the booking number that you should use to cancel an order.
pincode:This is a shorter number that identifies your booking and is handy when contacting Customer Services. It is also included in the booking confirmation message.

In rare cases, the order may return a reservation ID. This is a legacy feature from Demand API V2 and is provided for backward compatibility. You should only use it if you need to access orders created with Demand API V2, after you have migrated your integration to V3.

As this is an accommodation provided by a third party inventory, the order response also includes the third_party_inventory object with:

checkin_number:This is the number required at the time of check-in. It allows guests to confirm their order at the accommodation.
confirmation_number:The confirmation number, when used in conjunction with the pincode, helps verify the traveller's order and facilitates efficient support during inquiries or troubleshooting.

Example:

{
  "request_id": "01j69mtd91x3pdcmqyj0spebt9",
  "data": {
    "payment": {
      "receipt_url": "https://secure.booking.com/payment_receipt.html?product_type=BookingBudget&aid=2373042&auth_key=8riKJJ0XuxDhk4ds&lang=en",
      "authorisation_form_url": null
    },
{
  "accommodation": {
    "order": "509430129718799",
    "pincode": "0000",
    "reservation": 12345678,
    "third_party_inventory": {
      "checkin_number": "123456789",
      "confirmation_number": "12345678912345678912"
    }
  }
}

Example of confirmation message for a third-party inventory booking (Partner offer), with confirmation id, checkin number and pin code:

pincode

Cancellation restrictions

Please be aware that if you need to cancel a booking for a third-party inventory accommodation, you must follow the same instructions and best practices as outlined for other accommodation types in the Handling cancellations guide.

However, there are some restrictions:

Cancellation policy
Flexible-freeIf the third-party rates product is subject to this policy you can cancel the order via the /orders/cancel endpoint.
Non-refundableIf the product is under this policy you are not allowed to cancel your order using the /orders/cancel endpoint.

If you attempt to do so, you will receive a 500 error code.
Parcially refundable (special conditions)This sort of policy is not supported.

Example of non-refundable policy

When you call the accommodation/availability endpoint, the response will include the cancellation policy associated to the third-party inventory block.

  • To identify the policy type, check under "policies" -> "cancellation" -> "type".

In this example, the policy is non-refundable, so the free_cancellation_untilfield appears as null.

{
  "id": "tpi-704220a9543ce3c4452180d1c227c20d",
  "deal": null,
  "inventory": {
    "third_party": true,
    "type": "sell"
  },
  "maximum_occupancy": { ... },
  "number_available_at_this_price": 1,
  "policies": {
    "cancellation": {
      "free_cancellation_until": null,
      "type": "non_refundable"
    },
    "meal_plan": {
      "meals": [],
      "plan": "no_plan"
    },
    "payment": {
      "prepayment_required": true,
      "timings": [
        "pay_online_now"
      ]
    }
  },
  "price": {
    "book": 9179.11,
    "total": 9179.11
  },
  "room": 277323201,
  "third_party_inventory": true
}

Important consideration

If the booked property is subject to the non-refundable policy, you will not be able to cancel the order using the orders/cancel endpoint.


Curious to know more?