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 onlymobile_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:
- Create a rate plan to use specifically as a mobile rate plan.
- Use existing rate plans for which you can specify a mobile channel on the roomrate level.
→ 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:
- 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. - Set up a mobile rate plan.
- Push inventory.
Using an existing rate plan¶
To create mobile rates, you must:
- Retrieve existing roomrates and select those roomrates you want to create mobile rates for.
- Set up a mobile rate plan.
- 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. |