Change some fields of a Booking.com promotion: discount, name, audience, minimum stay, non-refundable, stay dates and weekdays, additional dates, booking date and time windows, last-minute or early-booker window, rooms and rate plans. Only the fields you send change; everything else stays as it is on Booking.com, including the excluded dates (change them with POST /channel_accounts/booking/promotions/excluded_dates). rooms, parent_rates, additional_dates and stay_date.active_weekdays replace the whole list. book_date: null and book_time: null remove those limits; send a JSON body for that, since a form body cannot tell an empty value from null (400). The promotion type cannot be changed.
- Booking.com activates a promotion on every successful update, so an inactive promotion returns
409unless you sendactivate: true. - Some promotions, such as
new_property_deal, cannot be changed (409).geo_ratepromotions only acceptdiscount, andmobile_ratepromotions only acceptdiscount,target_channelandparent_rates, because Booking.com does not return their other fields; other fields return409. - Sending the same request again is safe.
- Returns
501while creating and editing promotions is not enabled for your account (it is enabled separately fromPOST /channel_accounts/booking/promotions/excluded_dates). - Limited to 10 promotion writes per minute per Booking.com property, shared with
POST /channel_accounts/booking/promotions/excluded_dates, in addition to the account rate limits;429responses includeRetry-After. - Values Booking.com rejects return
400with the Booking.com code inerror_msg(for exampleDISCOUNT_NOT_IN_RANGE,ROOMS_INVALID,TARGET_CHANNEL_NO_ACCESS). 502means Booking.com was unavailable or the result could not be confirmed; the change may still be applied within the next few minutes.
Requires a writable access token.
