Last updated

Retrieving promotion details

Business booker rates has been sunset

Booking.com has sunset Business booker rates since September 16, 2022 and is therefore no longer usable.

Use getpromotions endpoint to retrieve promotions by:

  • ID,
  • Promotion name, and/or,
  • Active status.

The endpoint returns the details of the most recent update for promotions with multiple updates. The response includes statistics like total revenue, number of nights reserved, total bookings, and total cancellations.

Promotion statistics available up to the last 12 months

Booking.com will start retaining promotion statistics for 12 months, effective on September 15, 2024. The getpromotions endpoint will thereby return promotion statistics up to 12 months.

For more information on how to create and manage promotions, see Managing promotions.

URL

POST 
https://supply-xml.booking.com/hotels/xml/getpromotions

Sample request

You can use the id value of the existing promotion in the id request parameter.

<request>
    <hotel_id>1234</hotel_id>
    <id>TB1596220037234</id>
    <active>1</active>
    <name>Summer Deal</name>
</request>

Request body

FieldDescriptionTypeOccurrencesNotes
requestRoot element.object1..1-
hotel_idThe ID of the property for which you want to retrieve promotions.integer1..1-
idSpecifies an (optional) promotion ID (id) by which to filter the response.string0..1-
activeSpecifies an (optional) promotion status (active/deactivated) by which to filter the response.boolean0..1Accepts: 1 (active), 0 (deactivated).
nameSpecifies an (optional) promotion name by which to filter the response.string0..1-

Sample response

This example contains all possible fields that can be included in the response.

<promotions>
  <promotion id="TB12345596220037" name="Summer Deal" type="basic" target_channel="public" min_stay_through="2" non_refundable="-1" min_booked_nights="2" no_cc_promotion="0" active="1">
    <last_minute unit="-1" value="-1"></last_minute>
    <early_booker value="-1"></early_booker>
    <book_date start="-1" end="-1"></book_date>
    <book_time start="-1" end="-1"></book_time>
    <stay_date start="2024-08-20" end="2024-08-30">
      <active_weekdays>
        <active_weekday>Mon</active_weekday>
        <active_weekday>Tue</active_weekday>
        <active_weekday>wed</active_weekday>
        <active_weekday>Thu</active_weekday>
        <active_weekday>Fri</active_weekday>
        <active_weekday>Sat</active_weekday>
        <active_weekday>Sun</active_weekday>
      </active_weekdays>
      <excluded_dates>
        <excluded_date>2024-08-22</excluded_date>
      </excluded_dates>
    </stay_date>
    <additional_dates>
      <additional_date>2023-09-01</additional_date>
      <additional_date>2023-08-31</additional_date>
    </additional_dates>
    <rooms>
      <room id="12223"></room>
      <room id="12345"></room>
    </rooms>
    <parent_rates>
      <parent_rate id="435345"></parent_rate>
    </parent_rates>
    <discount value="5"></discount>
  </promotion>
  <promotion id="TB34234596220037" name="Lastminute hurry" type="last_minute" target_channel="public" min_stay_through="0" non_refundable="-1" min_booked_nights="0" no_cc_promotion="0" active="1">
    <last_minute unit="hour" value="8"></last_minute>
    <early_booker value="-1"></early_booker>
    <book_date start="-1" end="-1"></book_date>
    <book_time start="-1" end="-1"></book_time>
    <stay_date start="2023-06-10" end="2023-06-10">
      <active_weekdays>
        <active_weekday>Fri</active_weekday>
      </active_weekdays>
      <excluded_dates></excluded_dates>
    </stay_date>
    <additional_dates></additional_dates>
    <rooms>
      <room id="1000419"></room>
    </rooms>
    <parent_rates>
      <parent_rate id="12345"></parent_rate>
      <parent_rate id="47568"></parent_rate>
    </parent_rates>
    <discount value="10"></discount>
    <stats>
      <total_revenue value="418.95" currency="EUR"></total_revenue>
      <nr_room_nights>1</nr_room_nights>
      <nr_bookings>1</nr_bookings>
      <nr_cancellations>0</nr_cancellations>
    </stats>
  </promotion>
</promotions>
<!-- RUID: [...] -->

Response body parameters

This table provides more details about some of the fields in the response.

Note

Not all fields are relevant for all response types. A value of -1 indicates that the current field is not relevant for the current response type.

ElementAttributeDescriptionTypeNotes
promotionsRoot element.array of promotion
> promotionPromotion details.object
idThe most recently generated promotion ID.string
nameName of the promotion.string
>> statsIncludes statistical detailsobject
target_channelName of the promotion channel.string
min_stay_throughSpecifies the minimum number of stay nights that the guests should book to qualify for the promotion.string
non_refundableSpecifies whether the stays booked through this promotion are refundable.boolean
min_booked_nightsSpecifies the minimum number of stay nights that the guests should book to qualify for the promotion.string
no_cc_promotionstring
activeSpecifies whether the promotion is active.boolean
total_revenueThe total revenue from all bookings with this promotion, in the property's default currency.integer-
nr_room_nightsThe total number of room nights booked with this promotion.integer-
nr_bookingsThe total number of bookings with this promotion.integer-
nr_cancellationsThe total number of cancellations with this promotion.integer-

Errors

Schema validation errors

HTTP/1.1 400 Bad Request

<?xml version='1.0' standalone='yes'?>
<getpromotions>
  <fault code="400">
    <string>code= 1824 level= 2 message= Element 'hotel_id': 'test hotel' is not a valid value of the atomic type 'xs:integer'.
</string>
  </fault>
</getpromotions>
<!-- RUID: [...] -->

Invalid ID errors

HTTP/1.1 403 Forbidden

<?xml version='1.0' standalone='yes'?>
<getpromotions>
  <fault code="1009">
    <string>Access denied for hotel '234324'</string>
  </fault>
</getpromotions>
<!-- RUID: [...] -->

HTTP/1.1 400 Bad Request

<?xml version='1.0' standalone='yes'?>
<getpromotions>
  <fault code="400">
    <string>Invalid promotion ID= 12559622003775278</string>
  </fault>
</getpromotions>
<!-- RUID: [...] -->