[Beta] Sandbox

[Beta] Sandbox

🆕
The Sandbox environment is available exclusively to new partners who begin their integration in Q4 2025.

What is Sandbox?

The Sandbox is a test environment where you can make API calls using your regular credentials and sample properties, without affecting real accommodations, bookings, or financial transactions.

With the Demand API sandbox, you can:

  • Safely test API calls for accommodation search, availability, reservations, and cancellations.
  • Explore various test accommodation scenarios without impacting live production data.
  • Before using the sandbox environment and test properties, make sure you meet all the requirements for accessing our endpoints.

Quick start

Use the sandbox to mimic the key characteristics of the production environment and confidently test your integration before going live.

Get a sandbox API key

To get a sandbox API key, contact the API Support team.

ℹ️

The sandbox API key structure is:

  • The same as for other API key types.
  • Described in the Authorization section.

Start and complete the sandbox integration

The sandbox integration has fewer steps and possibilities.

To start and complete the integration:

  1. Use the sandbox host: https://api-sandbox.worldota.net.
  2. Follow the Sandbox Integration and Certification Guidelines documentation.
  3. Explore essential tips, best practices, and expert answers for integration in the Best Practices for Sandbox API documentation.

Sandbox limitations

  • Use only API keys and field values obtained in the sandbox environment; do not mix with production or other environments.
  • Not all API features and methods are supported; availability depends on your sandbox API key.
  • Many request and response fields have fixed or limited values (for example, language is always en, and currency is typically USD or EUR).
  • The number of results per request is limited (commonly up to 5 or 1000 items, depending on the method).
  • Some fields and error scenarios are not supported or always return default/test values.
  • Payment-related scenarios (such as 3D Secure and credit card flows) are not available in the sandbox.
  • The sandbox is intended for safe testing only; no real bookings, charges, or data changes occur.
  • For detailed information on method-specific limitations, refer to the documentation for each API endpoint.

Sandbox properties

Feature/Case HID ID
Hotels with metapolicy_struct and metapolicy_extra_info 6362880
6682380
pullman_dubai_jumeirah_lakes_towers__hotel_and_residence
hotel_monsieur
Hotels present in feedora/s3/incremental/incremental_en_1.jsonl.zst, feedora/s3/incremental/incremental_en_8.jsonl.zst, and ctproxy mock
Hotels with tax_data 10595223
10654204
key_view_the_residences
staycae_upper_crest_downtown_view
Hotel with vat_data 10678836 lux_the_pad_executive_suite_burj_khalifa_view_4
Hotel with 10% prebook price increase 8819557 rosa_bell_motel_los_angeles
Hotel with 20% prebook price increase 9744270 aparthotel_adagio_paris_montmartre_by_pierre_vacances
Hotel with all available meals 10047711 downtown_la_vacation_apartments_by_stay_city_rentals_3
Hotel with no availability for HN residency 8142632 apartamenty_sadovoe_koltso_paveletskaia
Hotel with double price for HN residency 6471709 sadovoye_koltso_apartment_1905_goda
Hotels with match_hash difference between SERP and HP 8608790
10724071
coeur_de_paris__pompidou
silkhaus_private_beach_unique_1bdr_in_emaar_beachfront

Errors reproducing

Use the following test accommodation IDs in your requests to reproduce error scenarios with the endpoints. Each property is a mock hotel or apartment created exclusively for testing and simulating various error responses.

Dump endpoints

Error code How to reproduce
dump_not_ready Request dump with any valid language except en

Hotel Data Search

Error code How to reproduce
hotel_not_found Request nonexistent hotel slug

Search methods (SERP/HP)

Error code How to reproduce
5xx, unknown, etc. N/A (unable to reproduce in sandbox)
validation errors Handled like in production (send invalid data in according field)

Prebook (HP/SERP)

Error code How to reproduce
5xx, unknown, etc. N/A (unable to reproduce in sandbox)
invalid_params Handled like in production (send invalid data in according field)
prebook_disabled / prebook_from_serp_disabled Contract’s setting
rate_not_found Request nonexistent rate hash
contract_mismatch Request with hash h-00000000-0000-0000-0000-000000000000
no_available_rates N/A (unable to reproduce in sandbox)

Booking Form

Error code How to reproduce
contract_mismatch Request with hash h-00000000-0000-0000-0000-000000000000
double_booking_form Request multiple times with same partner_order_id
insufficient_b2b_balance Unable to reproduce
duplicate_reservation Request with previously used for booking partner_order_id (unable to reproduce both in sandbox and prod, requires manual orderlog deletion to prevent double_booking_form error)
hotel_not_found Use rate from Hotelpage with book_hash starting with e0000001 (e.g. h-e0000001-8beb-43c4-b2d9-7e698efac087)
reservation_is_not_allowed Setting on API key
rate_not_found Request with random hash in valid format
sandbox_restriction Setting on API key

Booking Finish

Error code How to reproduce
book_hash_not_found N/A (unable to reproduce in sandbox)
booking_form_expired Use partner_order_id ending with booking_form_expired text on Booking Form stage
chosen_payment_type_was_not_available_on_booking_form Send payment type which was not present in Booking Form response
credit_card_required N/A (cc payments not supported yet)
double_booking_finish Call Booking Finish method twice for same partner_order_id
email Use partner_order_id ending with email text on Booking Form stage
incorrect_chosen_payment_type Send invalid currency_code (not applicable to hotel payment type)
incorrect_guests_number Send invalid guests number
incorrect_children_data Send invalid children data
incorrect_rooms_number Send invalid rooms number
insufficient_b2b_balance Use partner_order_id ending with insufficient_b2b_balance text on Booking Form stage
order_not_found Send non-existing partner_order_id
rate_not_found N/A (unable to reproduce in sandbox)
return_path_required N/A (cc payments not supported yet)
unauthorized_group_booking Send invalid rooms number (>9 rooms)
arrival_date_differs_from_checkin_date Send invalid arrival_date
not_enough_credit_card_data N/A (cc payments not supported yet)
incorrect_init_uuid_format N/A (cc payments not supported yet)
incorrect_pay_uuid_format N/A (cc payments not supported yet)
sandbox_restriction Try booking non-test hotel with sandbox (is_production=false) key
supplier_data_required Send empty object supplier_data field
unknown Use partner_order_id ending with unknown text on Booking Form stage

Booking Finish Status

Error code How to reproduce
block N/A (cc payments not supported yet)
charge N/A (cc payments not supported yet)
3ds N/A (cc payments not supported yet)
not_allowed N/A (cc payments not supported yet)
soldout Use partner_order_id ending with soldout text on Booking Form stage
book_limit Use partner_order_id ending with book_limit text on Booking Form stage
provider Use partner_order_id ending with provider text on Booking Form stage
order_not_found Request nonexistent partner_order_id
booking_finish_did_not_succeed Request after calling Booking Finish with error result
unknown Use partner_order_id ending with unknown_status text on Booking Form stage

Order Cancel

Error code How to reproduce
order_not_found Request nonexistent partner_order_id
order_not_cancellable Use partner_order_id ending with order_not_cancellable text on Booking Form stage