Prebook rate from hotelpage step
π
The Sandbox environment is available exclusively to new partners who begin their integration in Q4 2025.
https://api-sandbox.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.
Sandbox limitations
β οΈ
Use all field values and API keys obtained from the sandbox environment only within the sandbox. Donβt mix them with test or production environments.
Response
hotels.rates
. The maximum itemsβ number is5
.- Not supported fields:
hotels.rates.payment_options.payment_types.cancellation_penalties.policies.commission_info.charge.amount_gross
.hotels.rates.payment_options.payment_types.cancellation_penalties.policies.commission_info.charge.amount_commission
.
Errors
- Not supported errors:
no_available_rates
.unknown
.contract_mismatch
.
Request example
curl --user '<KEY_ID>:<API_KEY>' 'https://api-sandbox.worldota.net/api/b2b/v3/hotel/prebook/' \
--header 'Content-Type: application/json' \
--data '{
"hash": "h-498454e1-8a8b-48fc-ae83-dab7d9bb83b7",
"price_increase_percent": 10
}'
Request body
Response
Response example
{
"data": {
"hotels": [
{
"id": "rosa_bell_motel_los_angeles",
"hid": 8819557,
"rates": [
{
"book_hash": "p-9cb971d1-25eb-45a5-8747-116361b3eead",
"match_hash": "m-ed28b4b2-9064-52bb-b9d6-64b544b7fc38",
"daily_prices": [
"10585.10"
],
"meal": "nomeal",
"meal_data": {
"value": "nomeal",
"has_breakfast": false,
"no_child_meal": true
},
"payment_options": {
"payment_types": [
{
"amount": "115.99",
"show_amount": "10585.10",
"currency_code": "EUR",
"show_currency_code": "RUB",
"by": null,
"is_need_credit_card_data": false,
"is_need_cvc": false,
"type": "deposit",
"vat_data": {
"included": false,
"applied": false,
"amount": "0.00",
"currency_code": "USD",
"value": "0.00"
},
"tax_data": {},
"perks": {},
"commission_info": {
"show": {
"amount_gross": "10585.11",
"amount_net": "10585.11",
"amount_commission": "0.00"
},
"charge": {
"amount_gross": "116.00",
"amount_net": "116.00",
"amount_commission": "0.00"
}
},
"cancellation_penalties": {
"policies": [
{
"start_at": null,
"end_at": null,
"amount_charge": "115.99",
"amount_show": "10585.10",
"commission_info": {
"show": {
"amount_gross": "11761.23",
"amount_net": "10585.11",
"amount_commission": "1176.12"
},
"charge": {
"amount_gross": "128.89",
"amount_net": "116.00",
"amount_commission": "12.89"
}
}
}
],
"free_cancellation_before": null
},
"recommended_price": null
}
]
},
"bar_rate_price_data": null,
"rg_ext": {
"class": 3,
"quality": 2,
"sex": 0,
"bathroom": 2,
"bedding": 0,
"family": 0,
"capacity": 2,
"club": 0,
"bedrooms": 0,
"balcony": 0,
"view": 0,
"floor": 0
},
"room_name": "Standard Double room",
"room_name_info": null,
"serp_filters": [
"has_bathroom"
],
"sell_price_limits": null,
"allotment": 2,
"amenities_data": null,
"any_residency": true,
"deposit": null,
"no_show": {
"amount": "0.00",
"currency_code": "USD",
"from_time": "00:00:00"
},
"room_data_trans": null,
"legal_info": null
}
],
"bar_price_data": null
}
],
"changes": {
"price_changed": false
}
},
"debug": {
"api_endpoint": {
"endpoint": "api/b2b/v3/hotel/prebook",
"is_active": true,
"is_limited": true,
"remaining": 28,
"requests_number": 30,
"reset": "2025-09-17T07:59:00",
"seconds_number": 60
},
"request": {
"hash": "h-498454e1-8a8b-48fc-ae83-dab7d9bb83b7",
"price_increase_percent": 10
},
"method": "POST",
"real_ip": "10.96.90.22",
"request_id": "98f9f2ab3fbd9ffa7defa9cc3b89bf15",
"key_id": 6,
"api_key_id": 6,
"utcnow": "2025-09-17T07:58:08.188104"
},
"status": "ok",
"error": null
}
Errors
The error
field has the value specified in the headers below.
no_available_rates
β οΈ
The error isnβt supported yet.
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
.
prebook_disabled
There is no permission to use this call for this contract. Contact the API support team.
contract_mismatch
β οΈ
The error isnβt supported yet.
The pre-book contract differs from the rate contract. They should be the same.
timeout
, unknown
, and 5xx
If you get errors timeout
, unknown
, or the 5Ρ
Ρ
status code from this call:
- Make another request with a new
partner_order_id
. - The number of calls should be limited to 10.
- If you get this error more than 10 times in a row, the issue is probably in automatically changed settings of your contract. Contact your account manager to resolve the issue. Otherwise, the ETG has temporary technical issues.