Prebook rate from search step
This call is available to only certified partners who don’t use the Retrieve hotelpage call in their flow.
https://api.worldota.net/api/b2b/v3/serp/prebook/
ℹ️
- This call is required if you don’t use the Prebook rate from hotelpage step call.
- Request this call right after the SERP calls withing 6 hours.
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/serp/prebook/' \
--header 'Content-Type: application/json' \
--data '{
"hash": "sr-019a3ae6-0160-7945-9f6d-516791a39260",
"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/serp/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": "aa2890f8c136cc39104370ef11e33d32",
"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_from_serp_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.