Prebook rate from hotelpage step
https://api.worldota.net/api/b2b/v3/hotel/prebook/
ℹ️
This call is required if you don’t use the Prebook rate from search step call.
The call checks if the requested rate is still available before it can be booked and improves the booking success rate:
- When the original rate is not available, the system searches only for alternative rates of the same room type and board type (e.g., switching between refundable and non-refundable conditions within the
price_increase_percent
limit). The search does not extend to different room types or board types. If an alternative rate is found, newbook_hash
andmatch_hash
values are returned. - In cases where the same rate cannot be found and a price increase is permitted via the
price_increase_percent
field. The call will attempt to find the same room and board type at an increased price, but not exceeding the allowed percentage. The value in thepayment_options
field may change.
ℹ️
The limitations:
- The recommended call timeout is 60 seconds.
- The minimum call timeout is 30 seconds.
Request example
curl --user '<KEY_ID>:<API_KEY>' 'https://api.worldota.net/api/b2b/v3/hotel/prebook' \
--header 'Content-Type: application/json' \
--data '{
"hash": "h-027a29bc-eb54-5a23-a73c-07261af22c1b",
"price_increase_percent": 20
}'
Request body
Response
Response example
{
"data": {
"hotels": [
{
"id": "hilton_dubai_palm_jumeirah",
"hid": 9764165,
"rates": [
{
"book_hash": "p-ba6844aa-8b05-45e7-ae98-f32cc61c80c7",
"match_hash": "m-dedd4686-5a70-5763-8e08-7b7a821c60fb",
"daily_prices": [
"65078.00",
"65078.00"
],
"meal": "breakfast",
"meal_data": {
"value": "breakfast",
"has_breakfast": true,
"no_child_meal": false
},
"payment_options": {
"payment_types": [
{
"amount": "1558.00",
"show_amount": "130156.00",
"currency_code": "USD",
"show_currency_code": "RUB",
"by": null,
"is_need_credit_card_data": false,
"is_need_cvc": false,
"type": "deposit",
"vat_data": {
"included": true,
"applied": true,
"amount": "74.19",
"currency_code": "USD",
"value": "74.19"
},
"tax_data": {
"taxes": [
{
"name": "city_tax",
"included_by_supplier": false,
"amount": "40.00",
"currency_code": "AED"
},
{
"name": "occupancy_tax",
"included_by_supplier": true,
"amount": "7062.73",
"currency_code": "RUB"
},
{
"name": "resort_fee",
"included_by_supplier": true,
"amount": "7062.73",
"currency_code": "RUB"
},
{
"name": "service_fee",
"included_by_supplier": true,
"amount": "10089.61",
"currency_code": "RUB"
},
{
"name": "vat",
"included_by_supplier": true,
"amount": "5044.81",
"currency_code": "RUB"
}
]
},
"perks": {},
"commission_info": {
"show": {
"amount_gross": "130156.00",
"amount_net": "130156.00",
"amount_commission": "0.00"
},
"charge": {
"amount_gross": "1558.00",
"amount_net": "1558.00",
"amount_commission": "0.00"
}
},
"cancellation_penalties": {
"policies": [
{
"start_at": null,
"end_at": "2025-09-30T19:59:00",
"amount_charge": "0.00",
"amount_show": "0.00",
"commission_info": {
"show": {
"amount_gross": "0.00",
"amount_net": "0.00",
"amount_commission": "0.00"
},
"charge": {
"amount_gross": "0.00",
"amount_net": "0.00",
"amount_commission": "0.00"
}
}
},
{
"start_at": "2025-09-30T19:59:00",
"end_at": "2025-10-05T19:59:00",
"amount_charge": "636.00",
"amount_show": "53132.00",
"commission_info": {
"show": {
"amount_gross": "53132.00",
"amount_net": "53132.00",
"amount_commission": "0.00"
},
"charge": {
"amount_gross": "636.00",
"amount_net": "636.00",
"amount_commission": "0.00"
}
}
},
{
"start_at": "2025-10-05T19:59:00",
"end_at": null,
"amount_charge": "1558.00",
"amount_show": "130156.00",
"commission_info": {
"show": {
"amount_gross": "130156.00",
"amount_net": "130156.00",
"amount_commission": "0.00"
},
"charge": {
"amount_gross": "1558.00",
"amount_net": "1558.00",
"amount_commission": "0.00"
}
}
}
],
"free_cancellation_before": "2025-09-30T19:59:00"
},
"recommended_price": null
}
]
},
"bar_rate_price_data": null,
"rg_ext": {
"class": 3,
"quality": 2,
"sex": 0,
"bathroom": 2,
"bedding": 3,
"family": 0,
"capacity": 2,
"club": 0,
"bedrooms": 0,
"balcony": 1,
"view": 0,
"floor": 0
},
"room_name": "6 Bedrooms Villa",
"room_name_info": null,
"serp_filters": [
"has_bathroom"
],
"sell_price_limits": null,
"allotment": 9,
"amenities_data": [
"non-smoking",
"king-bed",
"balcony"
],
"any_residency": false,
"deposit": null,
"no_show": null,
"room_data_trans": {
"main_room_type": "Doppel Zimmer mit Balkon",
"main_name": "Doppel Zimmer mit Balkon",
"bathroom": null,
"bedding_type": "Doppelbett",
"misc_room_type": "Kingsize-Bett"
},
"legal_info": null,
"is_package": true
}
],
"bar_price_data": null
}
],
"changes": {
"price_changed": false
}
},
"debug": {
"api_endpoint": {
"endpoint": "api/b2b/v3/hotel/prebook",
"is_active": true,
"is_limited": true,
"remaining": 199,
"requests_number": 200,
"reset": "2025-09-23T09:48:00",
"seconds_number": 60
},
"request": {
"hash": "h-027a29bc-eb54-5a23-a73c-07261af22c1b",
"price_increase_percent": 20
},
"method": "POST",
"real_ip": "10.97.2.10",
"request_id": "5584aef8d9258a086e00fcb908acf867",
"key_id": 1234,
"api_key_id": 1234,
"utcnow": "2025-09-23T09:47:18.387950"
},
"status": "ok",
"error": null
}
Errors
The error
field has the value specified in the headers below.
no_available_rates
The rate with the price_increase_percent
field value isn’t found. Try to change the value.
rate_not_found
- The rate with the
hash
field value isn’t found. - The
hash
field value has expired.
Send another search request and change the hash
field value.
invalid_params
- The
hash
field is required. - The
hash
field value is incorrect. - The
price_increase_percent
field value is less than0
.
unknown
The internal ETG services’ timeout.
prebook_disabled
There is no permission to use this call for this contract. Contact the API support team.
contract_mismatch
The pre-book contract differs from the rate contract. They should be the same.