Last updated

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).

Eligibility

Access to Mobile rates is currently restricted. Please reach out to your Account Manager with any questions about Mobile rates.

Using mobile rate plans without access will result in the following error message:

Ineligible to create a Mobile Rate Plan

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:

ElementAttributeDescriptionTypeRequired/OptionalNotes
OTA_HotelProductNotifRQContains the Products array.objectrequired
> HotelProductsContains the HotelProduct objects, which refer to roomrates.arrayrequired
HotelCodeSpecifies the unique ID of the property you create rate plans for.integerrequired
>> HotelProductContains the roomrate information.objectrequired
ProductNotifTypeSpecifies whether the request is to create a roomrate (New) or modify an existing one (Overlay).enumrequiredPossible values are New and Overlay. You must use New to create a mobile rate plan.
>>> RoomTypesContains a RoomType object.objectrequired
>>>> RoomTypeContains the room type information.objectrequired
RoomTypeCodeSpecifies the room type id.integerrequired
>>> RatePlansContains a RatePlan object.objectrequired
>>>> RatePlanContains the rate plan information.objectrequired
RatePlanCodeSpecifies the rate plan id.integerrequired
>>> TPA_ExtensionsContains the TargetChannel object.objectrequired
>>>> TargetChannelContains the type of the mobile channel you want to target.objectrequired
ValueSpecifies the mobile channel.stringrequiredPossible 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:

ElementAttributeDescriptionTypeNotes
OTA_HotelProductNotifRSContains the response data.object
> successIndicates the success of the request.object
> warningsContains potential warnings. These can help you improve your requests.array
> errorsContains potential errors. These can help you understand what went wrong with your request.array
ruidSpecifies the unique ID of the request.stringYou 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:

ElementAttributeDescriptionTypeRequired/OptionalNotes
OTA_HotelProductNotifRQContains the Products array.objectrequired
> HotelProductsContains the HotelProduct objects, which refer to roomrates.arrayrequired
HotelCodeSpecifies the unique ID of the property you create rate plans for.integerrequired
>> HotelProductContains the roomrate information.objectrequired
ProductNotifTypeSpecifies whether the request is to create a roomrate (New) or modify an existing one (Overlay).enumrequiredPossible values are New and Overlay. You must use Overlay to update a mobile rate plan.
>>> RoomTypesContains a RoomType object.objectrequired
>>>> RoomTypeContains the room type information.objectrequired
RoomTypeCodeSpecifies the room type id.integerrequired
>>> RatePlansContains a RatePlan object.objectrequired
>>>> RatePlanContains the rate plan information.objectrequired
RatePlanCodeSpecifies the rate plan id.integerrequired
>>> TPA_ExtensionsContains the TargetChannel object.objectrequired
>>>> TargetChannelContains the type of the mobile channel you want to target.objectrequired
valueSpecifies the mobile channel.stringrequiredPossible 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:

ElementAttributeDescriptionTypeNotes
OTA_HotelProductNotifRSContains the response data.object
> successIndicates the success of the request.object
> warningsContains potential warnings. These can help you improve your requests.array
> errorsContains potential errors. These can help you understand what went wrong with your request.array
ruidSpecifies the unique ID of the request.stringYou 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:

ElementDescriptionTypeRequired/OptionalNotes
requestContains the request information.objectrequired
> hotel_idSpecifies the unique ID of the property you want to retrieve the mobile rates for.integerrequired

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:

ElementAttributeDescriptionTypeNotes
roomsContains the room objects.object
> roomContains the room type information.object
idSpecifies the unique Booking.com ID of the room type.integer
hotel_idSpecifies the unique ID of the property.integer
hotel_nameSpecifies the name of the property.string
max_childrenSpecifies the maximum number of children allowed in the room type.integer
room_nameSpecifies the name of the room type.string
>> ratesContains the rate objects.object
>>> rateContains the rate plan information.object
idSpecifies the unique Booking.com ID of the rate plan.integer
max_personsSpecifies the maximum number of adults allowed in the room type.integer
policySpecifies the name of the policy.string
policy_idSpecifies the unique ID of the policy.integer
rate_nameSpecifies the name of the rate plan.string
>>>> meal_planContains the meal plan information.object
meal_plan_codeSpecifies the meal plan code.integerTo see the list of meal plan codes at Booking.com, see meal plan codes.
>>>> policiesContains the policy elements.object
>>>>> booking_rulesContains the booking rule elements.object
>>>>> cancel_policyContains the cancellation policy elements.object
>>>>>> cancel_penaltyContains a cancellation policy element.object
policy_codeSpecifies the cancellation policy code.integerTo see the list of cancellation and prepaymeny policy codes at Booking.com, see cancellation and prepayment polices.
>>>>> guarantee_payment_policyContains the prepayment policy elements.object
>>>>>> guarantee_paymentContains a prepayment policy element.object
policy_codeSpecifies the cancellation policy code.integerTo see the list of cancellation and prepaymeny policy codes at Booking.com, see cancellation and prepayment polices.
effective_fromSpecifies from when the guest is charged the prepayment.enumPossible values are: after_reservation_is_made and after_cancellation_begins.
requiredIndicates whether a prepayment is requiredboolean
>>>> pricingContains the rate plan information.object
typeSpecifies the pricing type.enumPossible values are: Standard, OBP, and LOS
>>>>> TargetChannelContains the type of the mobile channel you want to target.object
valueSpecifies the mobile channel.stringPossible values: app_only, mobile_app, or public.
ruidSpecifies the unique ID of the request.stringYou 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:

ElementAttributeDescriptionTypeRequired/OptionalNotes
OTA_HotelProductNotifRQContains the Products array.objectrequired
> HotelProductsContains the HotelProduct objects, which refer to roomrates.arrayrequired
HotelCodeSpecifies the unique ID of the property you create rate plans for.integerrequired
>> HotelProductContains the roomrate information.objectrequired
ProductNotifTypeSpecifies that the request is to overlay a roomrate.enumrequiredPossible values are New, Overlay, or Remove.
>>> RoomTypesContains a RoomType object.objectrequired
>>>> RoomTypeContains the room type information.objectrequired
RoomTypeCodeSpecifies the room type id.integerrequired
>>> RatePlansContains a RatePlan object.objectrequired
>>>> RatePlanContains the rate plan information.objectrequired
RatePlanCodeSpecifies the rate plan id.integerrequired
>>> TPA_ExtensionsContains the TargetChannel object.objectrequired
>>>> TargetChannelContains the type of the mobile channel you want to target.object
valueSpecifies the mobile channel.stringPossible 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:

ElementAttributeDescriptionTypeNotes
OTA_HotelProductNotifRSContains the response data.object
> successIndicates the success of the request.object
> warningsContains potential warnings. These can help you improve your requests.array
> errorsContains potential errors. These can help you understand what went wrong with your request.array
ruidSpecifies the unique ID of the request.stringYou can send this id to Booking.com customer support if you run into an issue. This can help to understand what went wrong.