Prebook rate from hotelpage step

Prebook rate from hotelpage step

#b2b

https://api.worldota.net/api/b2b/v3/hotel/prebook/
ℹ️

This call is recommended. If method is not used:

  • The risk of receiving a soldout error at the booking stage increases.
  • The order confirmation process will take longer.

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, new book_hash and match_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 the payment_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 than 0.

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.