{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"20cd6fe9-39ab-4a13-a36d-a3f1e1015f1b","name":"Illusions Webservices Development Service - Hotel Booking","description":"<p>iOLX provides a single service with access to hotel rates and booking.</p>\n\n<p>Sets of hotels can be retrieved from single source or multiple sources depending on the profile created on iOLX.</p>\n\n<p>Workflow starts with hotel shopping (search) process which sends a request to obtain hotel availability and price for the traveller’s criteria.</p>\n\n<p>The traveller then selects a hotel from the list of hotels and required criteria.</p>\n\n<p>Booking creation, cancellation and retrieval can be done through different sets of API calls.&nbsp;</p>\n\n<h1>1. Access Details</h1>\n\n<p>The samples in this project provide the endpoints for you to develop.<br><br>Credentials will be provided for you.</p>\n\n<h1>2. Connections</h1>\n\n<p>The iOLX webservices credentials can provide access to multiple suppliers for a single client. With the same connection, we can provide access to directly to the hotel (switch) or act as distributor.</p>\n\n<p>Each set of credentials (Client) will have a unique list of properties available to it based on rules and conditions linked to their credentials. One set of credentials can link to multiple suppliers and hence it is important to be able maintain a relationship between the SOURCE ID/hotels returned in the booking response and who the client will pay. If this is not possible, we will issue separate credentials for each source.</p>\n\n<p>It is also important that you are downloading data from our hotel List as this list will be different per set of credentials.</p>\n\n<h2>2.1. Hotel Mapping</h2>\n\n<p>iOLX does not support searches based on location data, you must search by hotel codes. It is your responsibility to ensure hotels are correct mapped to your data.</p>\n\n<p>GIATA has all hotels mapped against supplier code iol_iwtx.&nbsp;Vervotech also provides a mapping service to our hotels.</p>\n\n<h2>2.2. Inventory Types</h2>\n\niOLX works with 3 types of inventory.\n\n1. Static Rates\n    \n2. Dynamic Inventory with Cache\n    \n3. Runtime - no cache inventory\n    \n\n<p>in the case of 1 &amp; 2, the roomtype codes and contracttokenid are static and will be the same for all sessions. When booking multiple rooms, it is fine to mix and match rooms and ContracttokenID (Rateplans).</p>\n\n<p>in the case of 3, the contracttokenID is dynamically created for each search. This means the same roomtype and rateplan combination could have a different contracttokenid for each search.<br>There are limitation on booking; when booking multiple rooms are only possible where all rooms have the SAME contracttokenID.</p>\n\n<h1>3. Certification and Live Credentials</h1>\n\n<p>Access to live data credentials will only be given once certification is complete.</p>\n\n<p>A questionnaire will be provided with the test credentials.</p>\n\n<p><b>Please request &amp; READ the questionnaire prior to beginning your development as that contains helpful details for development.</b></p>\n\n<p>Please give IOL at least <b>2 weeks’ notice</b> of expected completion date of integration for us to book you a certification slot. Please allow 2 weeks for certification process to be completed.&nbsp;</p>\n\n<h1>4. Contact &amp; Support</h1>\n\nPlease forward all queries and certification requests to the IOL support email.\n\nX Apisupport [x.apisupport@iol.world](https://mailto:x.apisupport@iol.world)\n\n<h1>5.&nbsp;&nbsp; API List</h1>\n\n<table><tbody><tr><td><div><p><b>API Name</b></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p><b>Description</b></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p><a rel=\"noreferrer noopener nofollow\" href=\"https://docs.iol-x.com/#85a70b42-692a-4cb9-a15e-b7666fceea97\" target=\"_blank\" url=\"https://docs.iol-x.com/#85a70b42-692a-4cb9-a15e-b7666fceea97\">Search Hotel</a></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>Basic Search Function, will return all available rates for hotel(s) searched. Response includes information on each rate returned including cancellation policy but not daily rates.</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p><a rel=\"noreferrer noopener nofollow\" href=\"https://docs.iol-x.com/#4d06c60a-284d-436c-afbc-754ecf54939c\" target=\"_blank\" url=\"https://docs.iol-x.com/#4d06c60a-284d-436c-afbc-754ecf54939c\">Hotel Availability</a></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Validate the rate and availability fopr a specific rate</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p><a rel=\"noreferrer noopener nofollow\" href=\"https://docs.iol-x.com/#51879ef8-bb0e-48a6-ab04-d4cee9d30d98\" target=\"_blank\" url=\"https://docs.iol-x.com/#51879ef8-bb0e-48a6-ab04-d4cee9d30d98\">HotelDetails</a></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>API will return hotel details including description, images, local payments</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p><a rel=\"noreferrer noopener nofollow\" href=\"https://docs.iol-x.com/#57341c4b-0eb9-4a2e-8639-1544d8dbf56b\" target=\"_blank\" url=\"https://docs.iol-x.com/#57341c4b-0eb9-4a2e-8639-1544d8dbf56b\">BookHotel</a></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>API will create booking on iOLX repository and the supplier's repository</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p><a rel=\"noreferrer noopener nofollow\" href=\"https://docs.iol-x.com/#dd3deae0-f448-4370-847a-b4cf6218348e\" target=\"_blank\" url=\"https://docs.iol-x.com/#dd3deae0-f448-4370-847a-b4cf6218348e\">CancelHotelBooking</a></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>API will cancel booking on iOLX repository and the supplier's repository</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p><a rel=\"noreferrer noopener nofollow\" href=\"https://docs.iol-x.com/#8c625829-31b8-460c-a161-61b52c7d2193\" target=\"_blank\" url=\"https://docs.iol-x.com/#8c625829-31b8-460c-a161-61b52c7d2193\">BookingSearch</a></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>Will return a list of bookings</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p><a rel=\"noreferrer noopener nofollow\" href=\"https://docs.iol-x.com/#385dc274-1b07-49df-9787-1db3c873e1a5\" target=\"_blank\" url=\"https://docs.iol-x.com/#385dc274-1b07-49df-9787-1db3c873e1a5\">RetrieveBooking</a></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><p>Will return all booking details</p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><p><a rel=\"noreferrer noopener nofollow\" href=\"https://docs.iol-x.com/#e5c753f5-541e-4a67-bf0d-1ebe420202e0\" target=\"_blank\" url=\"https://docs.iol-x.com/#e5c753f5-541e-4a67-bf0d-1ebe420202e0\">Hotel List</a></p></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Pull a list of hotels available through the connection</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h2>5.1.&nbsp;&nbsp;&nbsp;&nbsp; Common Elements</h2>\n\n<p>The following are elements common to all requests.&nbsp;</p>\n\n<h3>5.1.1. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Profile Data</h3>\n\n<p>Each Request required a Profile element which contains the credentials provided for that client.&nbsp;</p>\n\n<p>This will consist of the following:-</p>\n\n<ul><li><div>Code</div></li><li><div>Password&nbsp;</div></li></ul>\n\n<h3>5.1.2. &nbsp;&nbsp;&nbsp;&nbsp;TokenNumber</h3>\n\n<p>This value <b>must</b> be specified within the profile and will be returned to you in the response.&nbsp; This should be quoted in any correspondence to Illusions XML Support.</p>\n\n<p>It is recommended that the same number be used for the entire booking flow/user session.</p>\n\n<h2>5.2.&nbsp;&nbsp;&nbsp;&nbsp; Dates</h2>\n\n<p>All dates are in format of YYYYMMDD e.g. 7 November 2017 will be 20171107</p>\n\n<h2>5.3.&nbsp;&nbsp;&nbsp;&nbsp; MealPlans</h2>\n\n<p>We maintain a fixed list of mealplans&nbsp;</p>\n\n| **MealPlanCode** | **MealPlan** | **Mealplan Description** |  |\n| --- | --- | --- | --- |\n| 7 | BB | Breakfast |  |\n| 11 | HB | Half Board |  |\n| 14 | FB | Full Board |  |\n| 17 | AI | All Inclusive |  |\n| 28 | RO | Room Only |  |\n| 12 | HB+ | Half Board Plus |  |\n| 15 | FB+ | Full Board Plus |  |\n| 18 | AI+ | All Inclusive Premium |  |\n\n<h2>5.4.&nbsp;&nbsp;&nbsp;&nbsp; Infants</h2>\n\n<p>It is important to understand that iOLX does not have a charge type of Infant, these must be added as Charge Type = CHD with the appropriate age.&nbsp;</p>\n\n<p><b>Infants must be included in the search/booking request to ensure they are priced/booked.&nbsp;&nbsp;</b>&nbsp;</p>\n\n<p>Infants not included in the search/booking request may result in additional charges at check in.&nbsp;</p>\n\n<h2>5.5.&nbsp;&nbsp;&nbsp;&nbsp; Hotel Messages/Errata</h2>\n\n<p>Hotels often have important messages that must be displayed to the end user.&nbsp;This included fees payable at the hotel.</p>\n\n<p>The are returned in the HotelDetailsRequest as static data, or from the Price Check step.</p>\n\n<p>It is required that these are displayed to the end user as part of your booking flow.&nbsp;</p>\n\n<p><b>It is the XML users responsibility to ensure these are communicated to the customer.</b><b>&nbsp;</b></p>\n\n<h2>6.6.&nbsp;&nbsp;&nbsp;&nbsp; Country Of Residence/Nationality</h2>\n\n<p>Many properties will have prices based on the country of residence of the passenger.&nbsp; This is the country where the client is legally residing, not necessarily their nationality.</p>\n\n<p>It is <b>mandatory</b> to specify the country of residence (tag name = Nationality) of the passenger in all searches and all bookings.<br><br></p>\n\n<p><b>Important:<br></b>Please make sure your serializer/mapping is configured properly and if<br>we add new tags to the response model at any level(to any endpoint) this should<br>not break your code/application. So if there is a new tag but you don’t have it<br>in the typed model just ignore and get what you can, what you already mapped.<br><br><br><br></p>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"40416318","team":6603910,"collectionId":"20cd6fe9-39ab-4a13-a36d-a3f1e1015f1b","publishedId":"2sAYJ1khqT","public":true,"publicUrl":"https://docs.iol-x.com","privateUrl":"https://go.postman.co/documentation/40416318-20cd6fe9-39ab-4a13-a36d-a3f1e1015f1b","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2025-09-19T08:33:32.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/f9be37bf8b30756549aea657fcf416e31ad4d20ad8f6646ecf09728a3819e45f","favicon":"https://iol-x.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://docs.iol-x.com/view/metadata/2sAYJ1khqT"}