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_percentlimit). The search does not extend to different room types or board types. If an alternative rate is found, newbook_hashandmatch_hashvalues are returned. - In cases where the same rate cannot be found and a price increase is permitted via the
price_increase_percentfield. 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_optionsfield 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-f025727e-bc8a-5837-b6b3-c55c53d67c3c",
"price_increase_percent": 20
}'Request body
Response
Response example
{
"data": {
"hotels": [
{
"id": "test_hotel_do_not_book",
"hid": 8473727,
"rates": [
{
"book_hash": "p-690e6790-46c7-4d4a-b0a7-a52c1750393d",
"match_hash": "m-edaa1e53-06a6-5914-9126-c4875660f18f",
"daily_prices": [
"2.00"
],
"meal": "nomeal",
"meal_data": {
"value": "nomeal",
"has_breakfast": false,
"no_child_meal": true
},
"payment_options": {
"payment_types": [
{
"amount": "268.00",
"show_amount": "308.97",
"currency_code": "EUR",
"show_currency_code": "USD",
"by": "credit_card",
"is_need_credit_card_data": true,
"is_need_cvc": true,
"type": "now",
"tax_data": {
"taxes": [
{
"name": "city_tax",
"included_by_supplier": false,
"amount": "787.93",
"currency_code": "HNL"
},
{
"name": "electricity_fee",
"included_by_supplier": true,
"amount": "0.06",
"currency_code": "USD"
},
{
"name": "service_fee",
"included_by_supplier": false,
"amount": "15.30",
"currency_code": "HNL"
},
{
"name": "vat",
"included_by_supplier": false,
"amount": "355.45",
"currency_code": "HNL"
}
]
},
"cancellation_penalties": {
"policies": [
{
"start_at": null,
"end_at": "2026-05-20T00:00:00",
"amount_charge": "0.00",
"amount_show": "0.00"
},
{
"start_at": "2026-05-20T00:00:00",
"end_at": null,
"amount_charge": "268.00",
"amount_show": "308.97"
}
],
"free_cancellation_before": "2026-05-20T00:00:00"
}
}
]
},
"rg_ext": {
"class": 3,
"quality": 2,
"sex": 0,
"bathroom": 2,
"bedding": 3,
"family": 0,
"capacity": 2,
"club": 0,
"bedrooms": 0,
"balcony": 0,
"view": 0,
"floor": 0
},
"room_name": "Standard Double room (full double bed)",
"room_name_info": null,
"serp_filters": [
"has_bathroom",
"has_internet"
],
"allotment": 33,
"amenities_data": [
"non-smoking"
],
"any_residency": true,
"deposit": null,
"no_show": null,
"room_data_trans": {
"main_room_type": "Standard Double room",
"main_name": "Standard Double room",
"bathroom": null,
"bedding_type": "full double bed",
"misc_room_type": null
},
"legal_info": {
"provider": {
"name": "",
"address": "",
"taxpayer_number": "0000000000",
"state_registration_number": "0000000000000"
},
"hotel": {
"name": "Test Hotel (Do not book) test",
"address": "Avenida Roble, Frente al Mall Multiplaza",
"taxpayer_number": "0000000000",
"state_registration_number": "0000000000000",
"work_time": "from 9-18 local time"
}
},
"is_package": false
}
]
}
],
"changes": {
"price_changed": false
}
},
"debug": {
"api_endpoint": {
"endpoint": "api/b2b/v3/hotel/prebook",
"is_active": true,
"is_limited": true,
"remaining": 29,
"requests_number": 30,
"reset": "2025-10-31T15:34:00",
"seconds_number": 60
},
"request": {
"hash": "sr-019a3ae6-0160-7945-9f6d-516791a39260",
"price_increase_percent": 20
},
"method": "POST",
"real_ip": "104.30.161.77",
"request_id": "24eb0f31b8a713e09c96b73c2c37f844",
"key_id": 1234,
"api_key_id": 1234,
"utcnow": "2025-10-31T15:33:13.467401"
},
"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
hashfield value isn’t found. - The
hashfield value has expired.
Send another search request and change the hash field value.
invalid_params
- The
hashfield is required. - The
hashfield value is incorrect. - The
price_increase_percentfield 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.