Managing mobile rates

Mobile rates enable your properties to target mobile users by setting mobile prices for roomrates of their choice. To create mobile rates, you first need to set up a mobile rate plan, which are rate plans for which you specify a mobile channel on the roomrate level. You can choose between the following mobile channels:

  • app_only: Mobile app only
  • mobile_app: Both mobile web and app

After specifying a mobile channel for a roomrate, you can create mobile rates when sending inventory (or availability).

Use cases

You can do either of the following:

→ For more information on how to create rate plans, see the rate plan management documentation.

Using a specific mobile rate plan

To create mobile rates, you must:

  1. Create a rate plan to use for mobile rates.
    💡 TIP: Follow the same steps, but give the rate plan a name that indicates it is a rate plan for mobile rates.
  2. Set up a mobile rate plan.
  3. Push inventory.

Using an existing rate plan

To create mobile rates, you must:

  1. Retrieve existing roomrates and select those roomrates you want to create mobile rates for.
  2. Set up a mobile rate plan.
  3. Push inventory.

Setting up a mobile rate plan

POST https://supply-xml.booking.com/hotels/ota/OTA_HotelProductNotif

The POST /ota/OTA_HotelProductNotif request enables you to set up a mobile rate plan by specifying a mobile channel when creating or updating roomrates. After you set up a mobile rate plan, you can then push inventory to create mobile rates.

→ To learn more about rates and availability, see pushing inventory (or availability). → To learn more about creating or updating roomrates, see the roomrates management documentation.

Setting up or updating

To set up a mobile rate plan, you must set ProductNotifType to New. If you want to update a mobile rate plan, you must set ProductNotifType to Overlay.

Requirements for creating a mobile rate plan

To create a mobile rate plan on Booking.com, the following elements are required:

  • Property id
  • Room type id
  • Rate plan id
  • Target (mobile) channel

Body parameters

The following table describes what elements you must add in the request body:

Element Attribute Description Type Required/Optional Notes
OTA_HotelProductNotifRQ Contains the Products array. object required
> HotelProducts Contains the HotelProduct objects, which refer to roomrates. array required
HotelCode Specifies the unique ID of the property you create rate plans for. integer required
>> HotelProduct Contains the roomrate information. object required
ProductNotifType Specifies whether the request is to create a roomrate (New) or modify an existing one (Overlay). enum required Possible values are New and Overlay. You must use New to create a mobile rate plan.
>>> RoomTypes Contains a RoomType object. object required
>>>> RoomType Contains the room type information. object required
RoomTypeCode Specifies the room type id. integer required
>>> RatePlans Contains a RatePlan object. object required
>>>> RatePlan Contains the rate plan information. object required
RatePlanCode Specifies the rate plan id. integer required
>>> TPA_Extensions Contains the TargetChannel object. object required
>>>> TargetChannel Contains the type of the mobile channel you want to target. object required
Value Specifies the mobile channel. string required Possible values: app_only, mobile_app, or public.

Request body example

The following is a request body example:

<OTA_HotelProductNotifRQ>
    <HotelProducts HotelCode="6342570">
        <HotelProduct ProductNotifType="New">
            <RoomTypes>
                <RoomType RoomTypeCode="634257005"/>
            </RoomTypes>
            <RatePlans>
                <RatePlan RatePlanCode="342432565"/>
            </RatePlans>
            <TPA_Extensions>
                <TargetChannel Value="app_only"/>
            </TPA_Extensions>
        </HotelProduct>
    </HotelProducts>
</OTA_HotelProductNotifRQ>

Response body example

The following is a successful response body example:

<OTA_HotelProductNotifRS>
    <Success />
</OTA_HotelProductNotifRS>

Response body parameters

The following table describes the response elements:

Element Attribute Description Type Notes
OTA_HotelProductNotifRS Contains the response data. object
> success Indicates the success of the request. object
> warnings Contains potential warnings. These can help you improve your requests. array
> errors Contains potential errors. These can help you understand what went wrong with your request. array
ruid Specifies the unique ID of the request. string You can send this ID to Booking.com customer support if you run into an issue. This can help to understand what went wrong.

Updating mobile rate plans

POST https://supply-xml.booking.com/hotels/ota/OTA_HotelProductNotif

The POST /ota/OTA_HotelProductNotif request enables you to update mobile rate plans for your property. To update a mobile rate plan, you must set ProductNotifType to Overlay .

→ After you updated a mobile rate plan, you can use the roomrate to push inventory (or availability) again.

Requirements for updating a mobile rate plan

To update a mobile rate on Booking.com, the following elements are required:

  • Property id
  • Room type id
  • Rate plan id
  • Target (mobile) channel

Body parameters

The following table describes what elements you must add in the request body:

Element Attribute Description Type Required/Optional Notes
OTA_HotelProductNotifRQ Contains the Products array. object required
> HotelProducts Contains the HotelProduct objects, which refer to roomrates. array required
HotelCode Specifies the unique ID of the property you create rate plans for. integer required
>> HotelProduct Contains the roomrate information. object required
ProductNotifType Specifies whether the request is to create a roomrate (New) or modify an existing one (Overlay). enum required Possible values are New and Overlay. You must use Overlay to update a mobile rate plan.
>>> RoomTypes Contains a RoomType object. object required
>>>> RoomType Contains the room type information. object required
RoomTypeCode Specifies the room type id. integer required
>>> RatePlans Contains a RatePlan object. object required
>>>> RatePlan Contains the rate plan information. object required
RatePlanCode Specifies the rate plan id. integer required
>>> TPA_Extensions Contains the TargetChannel object. object required
>>>> TargetChannel Contains the type of the mobile channel you want to target. object required
value Specifies the mobile channel. string required Possible values: app_only, mobile_app, or public.

Request body example

The following is a request body example:

<OTA_HotelProductNotifRQ>
    <HotelProducts HotelCode="6342570">
        <HotelProduct ProductNotifType="Overlay">
            <RoomTypes>
                <RoomType RoomTypeCode="634257005"/>
            </RoomTypes>
            <RatePlans>
                <RatePlan RatePlanCode="342432565"/>
            </RatePlans>
            <TPA_Extensions>
                <TargetChannel value="mobile_app"/>
            </TPA_Extensions>
        </HotelProduct>
    </HotelProducts>
</OTA_HotelProductNotifRQ>

Response body example

The following is a successful response body example:

<OTA_HotelProductNotifRS>
    <Success />
</OTA_HotelProductNotifRS>

Response body parameters

The following table describes the response elements:

Element Attribute Description Type Notes
OTA_HotelProductNotifRS Contains the response data. object
> success Indicates the success of the request. object
> warnings Contains potential warnings. These can help you improve your requests. array
> errors Contains potential errors. These can help you understand what went wrong with your request. array
ruid Specifies the unique ID of the request. string You can send this ID to Booking.com customer support if you run into an issue. This can help to understand what went wrong.

Retrieving roomrates with mobile rate plans

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

The POST /xml/roomrates request enables you to retrieve roomrates with mobile rate plans per property.

Body parameters

The following table describes what elements you must add in the request body:

Element Description Type Required/Optional Notes
request Contains the request information. object required
> hotel_id Specifies the unique ID of the property you want to retrieve the mobile rates for. integer required

Request body example

The following is a request body example:

<request>
   <hotel_id>63145007</hotel_id>
</request>

Response body example

The following is a successful response body example:

<rooms>
    <room id="631457025" hotel_id="6314570" hotel_name="The Tech W" max_children="0" room_name="Double Room">
        <rates>
            <rate id="20275653" fixed_occupancy="2" max_persons="4" policy="Special conditions" policy_id="278832781" rate_name="standard rate">
                <meal_plan meal_plan_code="0"/>
                <policies>
                    <booking_rules/>
                    <cancel_policy>
                        <cancel_penalty policy_code="12"/>
                        <policy_overrides>
                            <policy_override start_date="2021-05-20" end_date="2021-05-29" policy_code="12"/>
                        </policy_overrides>
                    </cancel_policy>
                    <guarantee_payment_policy>
                        <guarantee_payment policy_code="1" effective_from="after_reservation_is_made" required="1"/>
                        <policy_overrides>
                            <policy_override start_date="2022-05-20" end_date="2022-05-29" policy_code="after_reservation_is_made"/>
                        </policy_overrides>
                    </guarantee_payment_policy>
                </policies>
                <pricing type="RLO"/>
                <target_channel value="mobile_app"/>
            </rate>
        </rates>
    </room>
</rooms>

Response body parameters

The following table describes the response elements:

Element Attribute Description Type Notes
rooms Contains the room objects. object
> room Contains the room type information. object
id Specifies the unique Booking.com ID of the room type. integer
hotel_id Specifies the unique ID of the property. integer
hotel_name Specifies the name of the property. string
max_children Specifies the maximum number of children allowed in the room type. integer
room_name Specifies the name of the room type. string
>> rates Contains the rate objects. object
>>> rate Contains the rate plan information. object
id Specifies the unique Booking.com ID of the rate plan. integer
max_persons Specifies the maximum number of adults allowed in the room type. integer
policy Specifies the name of the policy. string
policy_id Specifies the unique ID of the policy. integer
rate_name Specifies the name of the rate plan. string
>>>> meal_plan Contains the meal plan information. object
meal_plan_code Specifies the meal plan code. integer To see the list of meal plan codes at Booking.com, see meal plan codes.
>>>> policies Contains the policy elements. object
>>>>> booking_rules Contains the booking rule elements. object
>>>>> cancel_policy Contains the cancellation policy elements. object
>>>>>> cancel_penalty Contains a cancellation policy element. object
policy_code Specifies the cancellation policy code. integer To see the list of cancellation and prepaymeny policy codes at Booking.com, see cancellation and prepayment polices.
>>>>> guarantee_payment_policy Contains the prepayment policy elements. object
>>>>>> guarantee_payment Contains a prepayment policy element. object
policy_code Specifies the cancellation policy code. integer To see the list of cancellation and prepaymeny policy codes at Booking.com, see cancellation and prepayment polices.
effective_from Specifies from when the guest is charged the prepayment. enum Possible values are: after_reservation_is_made and after_cancellation_begins.
required Indicates whether a prepayment is required boolean
>>>> pricing Contains the rate plan information. object
type Specifies the pricing type. enum Possible values are: Standard, OBP, and LOS
>>>>> TargetChannel Contains the type of the mobile channel you want to target. object
value Specifies the mobile channel. string Possible values: app_only, mobile_app, or public.
ruid Specifies the unique ID of the request. string You can send this ID to Booking.com customer support if you run into an issue. This can help to understand what went wrong.

Removing mobile rate plans

POST https://supply-xml.booking.com/hotels/ota/OTA_HotelProductNotif

The POST /ota/OTA_HotelProductNotif endpoint enables you to remove mobile rate plans by setting the target channel to public.

Body parameters

The following table describes what elements you must add in the request body:

Element Attribute Description Type Required/Optional Notes
OTA_HotelProductNotifRQ Contains the Products array. object required
> HotelProducts Contains the HotelProduct objects, which refer to roomrates. array required
HotelCode Specifies the unique ID of the property you create rate plans for. integer required
>> HotelProduct Contains the roomrate information. object required
ProductNotifType Specifies that the request is to overlay a roomrate. enum required Possible values are New, Overlay, or Remove.
>>> RoomTypes Contains a RoomType object. object required
>>>> RoomType Contains the room type information. object required
RoomTypeCode Specifies the room type id. integer required
>>> RatePlans Contains a RatePlan object. object required
>>>> RatePlan Contains the rate plan information. object required
RatePlanCode Specifies the rate plan id. integer required
>>> TPA_Extensions Contains the TargetChannel object. object required
>>>> TargetChannel Contains the type of the mobile channel you want to target. object
value Specifies the mobile channel. string Possible values: app_only, mobile_app, or public.

Request body example

The following is a request body example:

<OTA_HotelProductNotifRQ>
    <HotelProducts HotelCode="6342570">
        <HotelProduct ProductNotifType="Overlay">
            <RoomTypes>
                <RoomType RoomTypeCode="634257005"/>
            </RoomTypes>
            <RatePlans>
                <RatePlan RatePlanCode="342432565"/>
            </RatePlans>
            <TPA_Extensions>
                <TPA_Extension>
                    <TargetChannel Value="public"/>
                </TPA_Extension>
            </TPA_Extensions>
        </HotelProduct>
    </HotelProducts>
</OTA_HotelProductNotifRQ>

Response body example

The following is a successful response body example:

<OTA_HotelProductNotifRS>
    <Success />
</OTA_HotelProductNotifRS>

Response body parameters

The following table describes the response elements:

Element Attribute Description Type Notes
OTA_HotelProductNotifRS Contains the response data. object
> success Indicates the success of the request. object
> warnings Contains potential warnings. These can help you improve your requests. array
> errors Contains potential errors. These can help you understand what went wrong with your request. array
ruid Specifies the unique ID of the request. string You can send this id to Booking.com customer support if you run into an issue. This can help to understand what went wrong.