Changes for page SearchTourPackages - Basic Version
Last modified by Giorgi Mdivnishvili on 2024/07/11 12:45
From version 1.1
edited by Giorgi Mdivnishvili
on 2024/04/11 09:30
on 2024/04/11 09:30
Change comment:
There is no comment for this version
To version 13.2
edited by Giorgi Mdivnishvili
on 2024/04/11 17:38
on 2024/04/11 17:38
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -SearchTourPackages - Basic version1 +SearchTourPackages - Basic Version - Content
-
... ... @@ -1,32 +1,946 @@ 1 1 {{box cssClass="floatinginfobox" title="**Contents**"}} 2 + 3 + 2 2 {{toc/}} 3 3 {{/box}} 4 4 5 -= Paragraph1=7 += Method Description = 6 6 7 -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 8 8 9 -== S ub-paragraph==10 +=== Method Overview: Streamlined Tour Package Discovery and Booking === 10 10 11 - Loremipsumdolor sit amet,consectetur adipiscingelit,seddo eiusmodtemporincididuntut laboreet doloremagna aliqua. Utenimadminim veniam,quisnostrudexercitationullamco laborisnisiutaliquipex eacommodoconsequat.Duisauteureolorin reprehenderitin voluptatevelitesse cillum doloreeu fugiatnullapariatur.Excepteursintoccaecatcupidatat nonproident, suntin culpaquiofficiadeseruntmollitnimidest laborum.12 +**Purpose:** This method outlines the most efficient process for locating and subsequently booking a tour package utilizing a minimal set of required parameters. It is designed to simplify the user interaction by reducing the complexity and volume of input data necessary for operation. 12 12 13 - == Sub-paragraph ==14 +**Procedure:** 14 14 15 -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 16 +1. **Initialization**: Start by specifying the essential parameters. This approach is engineered to streamline the search and booking process, focusing on the core data elements critical for identifying suitable tour packages. 17 +1. **Search Execution**: Deploy the method with the specified parameters to initiate the search. The system is optimized to process these inputs, conducting a targeted query across available tour packages to identify matches that align with the user's criteria. 18 +1. **Selection and Booking**: Upon receiving search results, the user can select a desired tour package. The booking process is then initiated with the minimal parameters already provided, ensuring a seamless transition from selection to confirmation. 16 16 17 - === Sub-sub paragraph===20 +**Parameter Details:** 18 18 19 - Loremipsum dolorsitamet, consecteturadipiscingelit, seddoeiusmodtempor incididuntut laboreetdolore magnaaliqua.Ut enimadminimveniam,quisnostrudexercitationullamcolaborisnisiut aliquipex eacommodo consequat.Duisauteirure dolorinreprehenderitnvoluptatevelit essecillumdoloreeufugiat nullapariatur. Excepteurt occaecat cupidatatnonproident,suntinculpaquiofficia deseruntmollitanimidstlaborum.22 +* The parameters required for this method are intentionally limited to essential elements only, aiming to expedite the search and booking phases while maintaining effectiveness. Details on these parameters, including data types and usage instructions, are documented separately. 20 20 24 +**Usage Notes:** 21 21 22 - =Paragraph2=26 +* This method is particularly beneficial for users seeking a straightforward and efficient path to tour package booking, minimizing decision fatigue and enhancing user experience. 23 23 24 - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquipex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.28 +**Examples:** 25 25 26 - ==Sub-paragraph==30 +* Code examples and detailed step-by-step instructions for utilizing this method are available in the subsequent sections, providing practical guidance on implementing the streamlined tour package discovery and booking process. 27 27 28 - Loremipsumdolor sit amet, consecteturadipiscingelit, sed doeiusmod tempor incididuntut laboreetdoloremagnaaliqua. Utenimad minimveniam, quis nostrud exercitationullamcolaborisnisi ut aliquipexea commodoconsequat.Duis aute iruredolor in reprehenderit in voluptatevelit esse cillum dolore eu fugiatnulla pariatur. Excepteur sintoccaecat cupidatatnon proident, suntinculpaqui officiadeserunt mollitnimidestlaborum.32 +This documentation segment aims to facilitate developers and users in leveraging a simplified method for tour package exploration and booking, ensuring an efficient and user-friendly interaction with the system. 29 29 30 -== Sub-paragraph == 31 31 32 -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 35 +== Endpoint URL - [POST] == 36 + 37 +{{info}} 38 +[[https:~~/~~/integration.kazunion.com/api/TourPackages/SearchTourPackages>>https://integration.kazunion.com/api/TourPackages/SearchTourPackages]] 39 +{{/info}} 40 + 41 +== Request Parameters == 42 + 43 +(% class="box infomessage" %) 44 +((( 45 +None 46 +))) 47 + 48 + 49 +== Request example == 50 + 51 +{{code language="Json"}} 52 +{ 53 + "departureCountryCode": "KZ", 54 + "departureCityUID": "f0ba6324-f337-405c-8cc7-23d62cf664e8", 55 + "arrivalCountryCode": "AE", 56 + "adults": 2, 57 + "children": 0, 58 + "departureDate": "2024-05-25T00:00:00", 59 + "returnDate": "2024-06-01T00:00:00", 60 + "departureAndReturnDaysCount": 7, 61 + "checkInDate": "2024-05-25T00:00:00", 62 + "checkOutDate": "2024-06-01T00:00:00", 63 + "checkInAndCheckOutDaysCount": 7, 64 + "directFlightsOnly": true, 65 + "pageRowCount": 25, 66 + "searchCurrency": "USD" 67 +} 68 +{{/code}} 69 + 70 +== Request example for 2Adults 2Child == 71 + 72 +{{code language="Json"}} 73 +{ 74 + "departureCountryCode": "KZ", 75 + "departureCityUID": "f0ba6324-f337-405c-8cc7-23d62cf664e8", 76 + "arrivalCountryCode": "AE", 77 + "adults": 2, 78 + "children": 2, 79 + "childrenAges": [ 80 + 4, 81 + 8 82 + ], 83 + "departureDate": "2024-05-26T00:00:00", 84 + "returnDate": "2024-06-02T00:00:00", 85 + "departureAndReturnDaysCount": 7, 86 + "checkInDate": "2024-05-26T00:00:00", 87 + "checkOutDate": "2024-06-02T00:00:00", 88 + "checkInAndCheckOutDaysCount": 7, 89 + "directFlightsOnly": true, 90 + "searchCurrency": "USD", 91 + 92 + "pagingId": "", 93 + "pageNumber": 1, 94 + "pageRowCount":5 95 +} 96 +{{/code}} 97 + 98 + 99 +== Response Body == 100 + 101 +{{code language="json"}} 102 +{ 103 + "error": true, 104 + "errorCode": "string", 105 + "errorDescription": "string", 106 + "userErrorDescription": "string", 107 + "packages": [ 108 + { 109 + "cacheKey": "string", 110 + "id": "string", 111 + "priceCurrency": "string", 112 + "totalPrice": 0, 113 + "agentCommissionPercent": 0, 114 + "agentCommissionAmount": 0, 115 + "includedExtrasAmount": 0, 116 + "priceDifference": 0, 117 + "hotel": { 118 + "hotelPriceId": "string", 119 + "providerId": 0, 120 + "hotelName": "string", 121 + "hotelCode": "string", 122 + "nigths": 0, 123 + "mealPlan": "string", 124 + "hotelClass": "string", 125 + "availabilityType": "OnRequest", 126 + "availableRoomsCount": 0, 127 + "fewRooms": true, 128 + "roomCategoryCode": "string", 129 + "roomCategoryName": "string", 130 + "placementTypeName": "string", 131 + "placementDescription": "string", 132 + "checkInDate": "2023-12-14T13:47:13.396Z", 133 + "checkOutDate": "2023-12-14T13:47:13.396Z", 134 + "adults": 0, 135 + "children": 0, 136 + "districtUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6", 137 + "districtName": "string", 138 + "cityUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6", 139 + "cityName": "string", 140 + "countryCode": "string", 141 + "countryName": "string", 142 + "hasAlcohol": true, 143 + "hasFreeWifi": true, 144 + "hasMetro": true, 145 + "hasPool": true, 146 + "hasMall": true, 147 + "cancellationPolicyDescription": "string", 148 + "cancellationPolicy": { 149 + "cancellationPolicyCode": "string", 150 + "noShowChargeValue": 0, 151 + "noShowChargeValueType": "string", 152 + "earlyDepartureChargeValue": 0, 153 + "earlyDepartureChargeValueType": "string", 154 + "conditions": [ 155 + { 156 + "timeunits": 0, 157 + "timeunitType": "string", 158 + "timeOffsetTypeName": "string", 159 + "chargeValue": 0, 160 + "chargeValueType": "string" 161 + } 162 + ] 163 + } 164 + }, 165 + "flight": { 166 + "id": "string", 167 + "departureDate": "2023-12-14T13:47:13.396Z", 168 + "returnDate": "2023-12-14T13:47:13.396Z", 169 + "departureTicketsLeft": 0, 170 + "returnTicketsLeft": 0, 171 + "departureAvailabilityType": "OnRequest", 172 + "returnAvailabilityType": "OnRequest", 173 + "isTwoWay": true, 174 + "departureSegments": [ 175 + { 176 + "airlineCode": "string", 177 + "airlineName": "string", 178 + "flightCode": "string", 179 + "class": "string", 180 + "lugageWeight": 0, 181 + "handLugageWeight": 0, 182 + "departureFlightDate": "2023-12-14T13:47:13.396Z", 183 + "departureCountryName": "string", 184 + "departureCityName": "string", 185 + "departureAirportCode": "string", 186 + "departureAirportName": "string", 187 + "departureTerminalCode": "string", 188 + "arrivalFlightDate": "2023-12-14T13:47:13.396Z", 189 + "arrivalCountryName": "string", 190 + "arrivalCityName": "string", 191 + "arrivalAirportCode": "string", 192 + "arrivalAirportName": "string", 193 + "arrivalTerminalCode": "string", 194 + "flightDuration": "string", 195 + "baggages": [ 196 + { 197 + "baggageCode": "string", 198 + "description": "string", 199 + "price": 0, 200 + "currency": "string", 201 + "included": true 202 + } 203 + ] 204 + } 205 + ], 206 + "returnSegments": [ 207 + { 208 + "airlineCode": "string", 209 + "airlineName": "string", 210 + "flightCode": "string", 211 + "class": "string", 212 + "lugageWeight": 0, 213 + "handLugageWeight": 0, 214 + "departureFlightDate": "2023-12-14T13:47:13.396Z", 215 + "departureCountryName": "string", 216 + "departureCityName": "string", 217 + "departureAirportCode": "string", 218 + "departureAirportName": "string", 219 + "departureTerminalCode": "string", 220 + "arrivalFlightDate": "2023-12-14T13:47:13.396Z", 221 + "arrivalCountryName": "string", 222 + "arrivalCityName": "string", 223 + "arrivalAirportCode": "string", 224 + "arrivalAirportName": "string", 225 + "arrivalTerminalCode": "string", 226 + "flightDuration": "string", 227 + "baggages": [ 228 + { 229 + "baggageCode": "string", 230 + "description": "string", 231 + "price": 0, 232 + "currency": "string", 233 + "included": true 234 + } 235 + ] 236 + } 237 + ] 238 + }, 239 + "extraServices": [ 240 + { 241 + "extraServiceCode": "string", 242 + "extraServiceTypeCode": "string", 243 + "isMandatory": 0, 244 + "extraServiceName": "string", 245 + "minimalServiceAmount": 0, 246 + "includedPriceCode": "string", 247 + "prices": [ 248 + { 249 + "extraServicePriceCode": "string", 250 + "displayName": "string", 251 + "restrictionInfo": "string", 252 + "additionalInfo": "string", 253 + "price": 0, 254 + "extraPrice": 0, 255 + "currency": "string" 256 + } 257 + ] 258 + } 259 + ], 260 + "insurancePrice": { 261 + "name": "string", 262 + "price": 0, 263 + "priceSurcarge": 0, 264 + "actualStartDate": "2023-12-14T13:47:13.396Z", 265 + "actualEndDate": "2023-12-14T13:47:13.396Z", 266 + "optional": true, 267 + "includedInPackagePrice": true 268 + } 269 + } 270 + ], 271 + "pagingId": "string", 272 + "pageNumber": 0, 273 + "pageCount": 0 274 +} 275 +{{/code}} 276 + 277 + 278 +== Response example == 279 + 280 +{{code language="Json"}} 281 +{ 282 + "packages": [ 283 + { 284 + "id": "tour:556ce3c2-4062-4181-9970-f41e1aeb3b8b:ce81c22f-7d91-4237-9a2a-43c4c4bcb62f:1d8793e6-346e-4b5c-933f-3d8637684d7e", 285 + "priceCurrency": "USD", 286 + "totalPrice": 909.78, 287 + "agentCommissionPercent": 0.0, 288 + "agentCommissionAmount": 0.0, 289 + "includedExtrasAmount": 0, 290 + "priceDifference": 0, 291 + "hotel": { 292 + "hotelPriceId": "ce81c22f-7d91-4237-9a2a-43c4c4bcb62f", 293 + "hotelName": "CityMax Sharjah", 294 + "hotelCode": "CMAXBSHJNUG", 295 + "nigths": 7, 296 + "mealPlan": "BB", 297 + "hotelClass": "3", 298 + "hotelColor": "#228B22", 299 + "availabilityType": "FreeSale", 300 + "availableRoomsCount": 0, 301 + "fewRooms": true, 302 + "roomCategoryCode": "DBL", 303 + "roomCategoryName": "Standard Room", 304 + "placementTypeName": "2 Adults", 305 + "placementDescription": "MARPROMDMC02/RUS", 306 + "checkInDate": "2024-05-25T00:00:00.000", 307 + "checkOutDate": "2024-06-01T00:00:00.000", 308 + "adults": 2, 309 + "children": 0, 310 + "districtUID": "7ac1bbc8-59ea-4977-b272-ed8553f94f9b", 311 + "districtName": "Sharjah", 312 + "cityUID": "f78ac3bc-f040-46d0-8319-2c52083080a6", 313 + "cityName": "Sharjah", 314 + "countryCode": "AE", 315 + "countryName": "United Arab Emirates", 316 + "hasAlcohol": false, 317 + "hasFreeWifi": true, 318 + "hasMetro": false, 319 + "hasPool": false, 320 + "hasMall": true, 321 + "infantMaxAge": 4.99, 322 + "childMinAge": 5.0, 323 + "childMaxAge": 11.99, 324 + "teenMinAge": 0.0, 325 + "teenMaxAge": 0.0, 326 + "adultMinAge": 12.0, 327 + "cancellationPolicyDescription": "Cancellation Policy: 2 Day Before Arrival: 1.00 Night, Early Departure: 1.00 Night, NoShow: 1.00 Night", 328 + "cancellationPolicy": { 329 + "noShowChargeValue": 1.0, 330 + "noShowChargeValueType": "Night", 331 + "earlyDepartureChargeValue": 1.0, 332 + "earlyDepartureChargeValueType": "Night", 333 + "conditions": [ 334 + { 335 + "timeunits": 2, 336 + "timeunitType": "Day", 337 + "timeOffsetTypeName": "Before Arrival", 338 + "chargeValue": 1.0, 339 + "chargeValueType": "Night" 340 + } 341 + ] 342 + } 343 + }, 344 + "flight": { 345 + "id": "1d8793e6-346e-4b5c-933f-3d8637684d7e", 346 + "departureDate": "2024-05-25T00:00:00.000", 347 + "returnDate": "2024-06-01T00:00:00.000", 348 + "departureTicketsLeft": 48, 349 + "returnTicketsLeft": 33, 350 + "departureAvailabilityType": "FreeSale", 351 + "returnAvailabilityType": "FreeSale", 352 + "isTwoWay": true, 353 + "sameBaggageForAll": false, 354 + "totalBaggage": false, 355 + "isBlock": true, 356 + "class": "Economy", 357 + "departureSegments": [ 358 + { 359 + "airlineCode": "FZ", 360 + "airlineName": "Fly Dubai", 361 + "flightCode": "FZ1722", 362 + "class": "Economy", 363 + "lugageWeight": 20, 364 + "handLugageWeight": 6, 365 + "departureFlightDate": "2024-05-25T03:35:00.000", 366 + "departureCountryName": "Kazakhstan", 367 + "departureCityName": "Almaty", 368 + "departureAirportCode": "ALA", 369 + "departureAirportName": "Almaty Intl Airport", 370 + "departureTerminalCode": "ALA", 371 + "arrivalFlightDate": "2024-05-25T07:10:00.000", 372 + "arrivalCountryName": "United Arab Emirates", 373 + "arrivalCityName": "Dubai", 374 + "arrivalAirportCode": "DXB", 375 + "arrivalAirportName": "Dubai Intl Airport", 376 + "arrivalTerminalCode": "DXB3", 377 + "flightDuration": "5h 35m" 378 + } 379 + ], 380 + "returnSegments": [ 381 + { 382 + "airlineCode": "FZ", 383 + "airlineName": "Fly Dubai", 384 + "flightCode": "FZ1721", 385 + "class": "Economy", 386 + "lugageWeight": 20, 387 + "handLugageWeight": 6, 388 + "departureFlightDate": "2024-06-01T21:25:00.000", 389 + "departureCountryName": "United Arab Emirates", 390 + "departureCityName": "Dubai", 391 + "departureAirportCode": "DXB", 392 + "departureAirportName": "Dubai Intl Airport", 393 + "departureTerminalCode": "DXB3", 394 + "arrivalFlightDate": "2024-06-02T02:35:00.000", 395 + "arrivalCountryName": "Kazakhstan", 396 + "arrivalCityName": "Almaty", 397 + "arrivalAirportCode": "ALA", 398 + "arrivalAirportName": "Almaty Intl Airport", 399 + "arrivalTerminalCode": "ALA", 400 + "flightDuration": "3h 10m" 401 + } 402 + ], 403 + "passengers": [ 404 + { 405 + "id": "1d8793e6-346e-4b5c-933f-3d8637684d7e-A1", 406 + "isAdult": true, 407 + "selectedForwardBaggageCode": "INCLUDED", 408 + "selectedBackwardBaggageCode": "INCLUDED", 409 + "forwardBaggages": [ 410 + { 411 + "baggageCode": "INCLUDED", 412 + "description": "20 Kg Included", 413 + "price": 0.0, 414 + "currency": "USD", 415 + "included": true 416 + } 417 + ], 418 + "backwardBaggages": [ 419 + { 420 + "baggageCode": "INCLUDED", 421 + "description": "20 Kg Included", 422 + "price": 0.0, 423 + "currency": "USD", 424 + "included": true 425 + } 426 + ] 427 + }, 428 + { 429 + "id": "1d8793e6-346e-4b5c-933f-3d8637684d7e-A2", 430 + "isAdult": true, 431 + "selectedForwardBaggageCode": "INCLUDED", 432 + "selectedBackwardBaggageCode": "INCLUDED", 433 + "forwardBaggages": [ 434 + { 435 + "baggageCode": "INCLUDED", 436 + "description": "20 Kg Included", 437 + "price": 0.0, 438 + "currency": "USD", 439 + "included": true 440 + } 441 + ], 442 + "backwardBaggages": [ 443 + { 444 + "baggageCode": "INCLUDED", 445 + "description": "20 Kg Included", 446 + "price": 0.0, 447 + "currency": "USD", 448 + "included": true 449 + } 450 + ] 451 + } 452 + ] 453 + }, 454 + "extraServices": [], 455 + "insurancePrice": { 456 + "name": "Medical INS (N10000)", 457 + "price": 35.84, 458 + "actualStartDate": "2024-05-25T00:00:00.000", 459 + "actualEndDate": "2024-06-01T00:00:00.000", 460 + "optional": false, 461 + "includedInPackagePrice": true 462 + }, 463 + "cacheKey": "bd7e9a28fb744528a2deb043f05e0502602ea56f943a4dc9805321db85d51137:{9}:i:1", 464 + "sortCheckInOut": "25.05.2024-01.06.2024", 465 + "sortAirline": "fly dubai", 466 + "sortHotelName": "citymax sharjah", 467 + "sortDetails": "bb", 468 + "sortPlacement": "standard room 2 adults" 469 + } 470 + ], 471 + "pagingId": "9", 472 + "pageNumber": 1, 473 + "pageCount": 883, 474 + "totalCount": 883, 475 + "error": false 476 +} 477 +{{/code}} 478 + 479 + 480 +=== Schema === 481 + 482 +{{success}} 483 +SearchTourPackagesResponse{ 484 + 485 +|error|boolean 486 +|errorCode|string 487 +nullable: true 488 +|errorDescription|string 489 +nullable: true 490 +|userErrorDescription|string 491 +nullable: true 492 +|packages|[ 493 +nullable: trueTourPackage{((( 494 +|cacheKey|string 495 +nullable: true 496 +|id|string 497 +nullable: true 498 +|priceCurrency|string 499 +nullable: true 500 +|totalPrice|number($double) 501 +|agentCommissionPercent|number($double) 502 +|agentCommissionAmount|number($double) 503 +|includedExtrasAmount|number($double) 504 +|priceDifference|number($double) 505 +|hotel|PackageHotel{((( 506 +|hotelPriceId|string 507 +nullable: true 508 +|providerId|integer($int32) 509 +|hotelName|string 510 +nullable: true 511 +|hotelCode|string 512 +nullable: true 513 +|nigths|integer($int32) 514 +|mealPlan|string 515 +nullable: true 516 +|hotelClass|string 517 +nullable: true 518 +|availabilityType|RoomAvailabilityTypeEnumstringEnum: 519 +[ OnRequest, FreeSale, StopSale ] 520 +|availableRoomsCount|integer($int32) 521 +|fewRooms|boolean 522 +|roomCategoryCode|string 523 +nullable: true 524 +|roomCategoryName|string 525 +nullable: true 526 +|placementTypeName|string 527 +nullable: true 528 +|placementDescription|string 529 +nullable: true 530 +|checkInDate|string($date-time) 531 +|checkOutDate|string($date-time) 532 +|adults|integer($int32) 533 +|children|integer($int32) 534 +|districtUID|string($uuid) 535 +nullable: true 536 +|districtName|string 537 +nullable: true 538 +|cityUID|string($uuid) 539 +nullable: true 540 +|cityName|string 541 +nullable: true 542 +|countryCode|string 543 +nullable: true 544 +|countryName|string 545 +nullable: true 546 +|hasAlcohol|boolean 547 +|hasFreeWifi|boolean 548 +|hasMetro|boolean 549 +|hasPool|boolean 550 +|hasMall|boolean 551 +|cancellationPolicyDescription|string 552 +nullable: true 553 +|cancellationPolicy|CancellationPolicyExchange{((( 554 +|cancellationPolicyCode|string 555 +nullable: true 556 +|noShowChargeValue|number($double) 557 +nullable: true 558 +|noShowChargeValueType|string 559 +nullable: true 560 +|earlyDepartureChargeValue|number($double) 561 +nullable: true 562 +|earlyDepartureChargeValueType|string 563 +nullable: true 564 +|conditions|[ 565 +nullable: trueCancellationPolicyConditionExchange{((( 566 +|timeunits|integer($int32) 567 +|timeunitType|string 568 +nullable: true 569 +|timeOffsetTypeName|string 570 +nullable: true 571 +|chargeValue|number($double) 572 +nullable: true 573 +|chargeValueType|string 574 +nullable: true 575 + 576 +}] 577 +))) 578 + 579 +} 580 +))) 581 + 582 +} 583 +))) 584 +|flight|PackageFlight{((( 585 +|id|string 586 +nullable: true 587 +|departureDate|string($date-time) 588 +|returnDate|string($date-time) 589 +nullable: true 590 +|departureTicketsLeft|integer($int32) 591 +|returnTicketsLeft|integer($int32) 592 +|departureAvailabilityType|FlightAvailabilityTypestringEnum: 593 +[ OnRequest, FreeSale, FewPlaces, StopSale ] 594 +|returnAvailabilityType|FlightAvailabilityTypestringEnum: 595 +[ OnRequest, FreeSale, FewPlaces, StopSale ] 596 +|isTwoWay|boolean 597 +|departureSegments|[ 598 +nullable: trueFlightSegment{((( 599 +|airlineCode|string 600 +nullable: true 601 +|airlineName|string 602 +nullable: true 603 +|flightCode|string 604 +nullable: true 605 +|class|string 606 +nullable: true 607 +|lugageWeight|number($double) 608 +|handLugageWeight|number($double) 609 +|departureFlightDate|string($date-time) 610 +|departureCountryName|string 611 +nullable: true 612 +|departureCityName|string 613 +nullable: true 614 +|departureAirportCode|string 615 +nullable: true 616 +|departureAirportName|string 617 +nullable: true 618 +|departureTerminalCode|string 619 +nullable: true 620 +|arrivalFlightDate|string($date-time) 621 +|arrivalCountryName|string 622 +nullable: true 623 +|arrivalCityName|string 624 +nullable: true 625 +|arrivalAirportCode|string 626 +nullable: true 627 +|arrivalAirportName|string 628 +nullable: true 629 +|arrivalTerminalCode|string 630 +nullable: true 631 +|flightDuration|string 632 +nullable: true 633 +|baggages|[ 634 +nullable: trueBaggage{((( 635 +|baggageCode|string 636 +nullable: true 637 +|description|string 638 +nullable: true 639 +|price|number($double) 640 +|currency|string 641 +nullable: true 642 +|included|boolean 643 + 644 +}] 645 +))) 646 + 647 +}] 648 +))) 649 +|returnSegments|[ 650 +nullable: trueFlightSegment{((( 651 +|airlineCode|string 652 +nullable: true 653 +|airlineName|string 654 +nullable: true 655 +|flightCode|string 656 +nullable: true 657 +|class|string 658 +nullable: true 659 +|lugageWeight|number($double) 660 +|handLugageWeight|number($double) 661 +|departureFlightDate|string($date-time) 662 +|departureCountryName|string 663 +nullable: true 664 +|departureCityName|string 665 +nullable: true 666 +|departureAirportCode|string 667 +nullable: true 668 +|departureAirportName|string 669 +nullable: true 670 +|departureTerminalCode|string 671 +nullable: true 672 +|arrivalFlightDate|string($date-time) 673 +|arrivalCountryName|string 674 +nullable: true 675 +|arrivalCityName|string 676 +nullable: true 677 +|arrivalAirportCode|string 678 +nullable: true 679 +|arrivalAirportName|string 680 +nullable: true 681 +|arrivalTerminalCode|string 682 +nullable: true 683 +|flightDuration|string 684 +nullable: true 685 +|baggages|[ 686 +nullable: trueBaggage{((( 687 +|baggageCode|string 688 +nullable: true 689 +|description|string 690 +nullable: true 691 +|price|number($double) 692 +|currency|string 693 +nullable: true 694 +|included|boolean 695 + 696 +}] 697 +))) 698 + 699 +}] 700 +))) 701 + 702 +} 703 +))) 704 +|extraServices|[ 705 +nullable: trueHotelExtraServiceBase{((( 706 +|extraServiceCode|string 707 +nullable: true 708 +|extraServiceTypeCode|string 709 +nullable: true 710 +|isMandatory|integer($int32) 711 +|extraServiceName|string 712 +nullable: true 713 +|minimalServiceAmount|number($double) 714 +|includedPriceCode|string 715 +nullable: true 716 +|prices|[ 717 +nullable: trueHotelExtraServicePriceBase{((( 718 +|extraServicePriceCode|string 719 +nullable: true 720 +|displayName|string 721 +nullable: true 722 +|restrictionInfo|string 723 +nullable: true 724 +|additionalInfo|string 725 +nullable: true 726 +|price|number($double) 727 +|extraPrice|number($double) 728 +|currency|string 729 +nullable: true 730 + 731 +}] 732 +))) 733 + 734 +}] 735 +))) 736 +|insurancePrice|InsurancePrice{((( 737 +|name|string 738 +nullable: true 739 +|price|number($double) 740 +|priceSurcarge|number($double) 741 +|actualStartDate|string($date-time) 742 +|actualEndDate|string($date-time) 743 +|optional|boolean 744 +|includedInPackagePrice|boolean 745 + 746 +} 747 +))) 748 + 749 +}] 750 +))) 751 +|pagingId|string 752 +nullable: true 753 +|pageNumber|integer($int64) 754 +|pageCount|integer($int64) 755 + 756 +} 757 +{{/success}} 758 + 759 + 760 +== Definitions == 761 + 762 + 763 +=== **Request Parameters ** === 764 + 765 +(% class="table-bordered" %) 766 +|=Key|=Type|=Nullable|=Description 767 +|departureCountryCode|String|No|The ISO 3166-1 alpha-2 code of the departure country. For example, "KZ" for Kazakhstan. 768 +|departureCityUID|String (UUID)|No|The unique identifier of the departure city. This is a UUID, such as "f0ba6324-f337-405c-8cc7-23d62cf664e8". 769 +|arrivalCountryCode|String|No|The ISO 3166-1 alpha-2 code of the arrival country. For example, "AE" for United Arab Emirates. 770 +|adults|Integer|No|The number of adults for the trip. For example, 2 for two adults. 771 +|children|Integer|No|The number of children for the trip. For example, 0 for no children. 772 +|departureDate|String (date-time)|No|The departure date in ISO 8601 format. For example, "2024-05-25T00:00:00" for May 25, 2024. 773 +|returnDate|String (date-time)|No|The return date in ISO 8601 format. For example, "2024-06-01T00:00:00" for June 1, 2024. 774 +|departureAndReturnDaysCount|Integer|No|The total number of days for the departure and return trip. For example, 7 for a week-long trip. 775 +|checkInDate|String (date-time)|No|The check-in date at the hotel in ISO 8601 format. For example, "2024-05-25T00:00:00" for May 25, 2024. 776 +|checkOutDate|String (date-time)|No|The check-out date from the hotel in ISO 8601 format. For example, "2024-06-01T00:00:00" for June 1, 2024. 777 +|checkInAndCheckOutDaysCount|Integer|No|The total number of days for the hotel stay. For example, 7 for a week-long stay. 778 +|directFlightsOnly|Boolean|No|Whether to search for direct flights only. For example, true to only search for direct flights. 779 +|pageRowCount|Integer|No|The number of results to return per page. For example, 1 to return 1 result per page. 780 +|searchCurrency|String|No|The currency in which the search results should be displayed. For example, "USD" for United States Dollar. 781 + 782 + 783 +=== **Response Parameters** === 784 + 785 +(% class="table-bordered" %) 786 +|=Key|=Type|=Description 787 +|packages|Array|An array of travel packages. Each package includes various details about the package. 788 +|packages[].id|String|A unique identifier for the package. This is used to uniquely identify each package. 789 +|packages[].priceCurrency|String|The currency in which the price is denoted. This could be USD, EUR, etc. 790 +|packages[].totalPrice|Number|The total price of the package. This includes all costs associated with the package. 791 +|packages[].agentCommissionPercent|Number|The commission percentage for the agent. This is the percentage of the total price that the agent receives as commission. 792 +|packages[].agentCommissionAmount|Number|The commission amount for the agent. This is the actual amount the agent receives as commission. 793 +|packages[].includedExtrasAmount|Number|The amount for the included extras. This is the cost of any extra services included in the package. 794 +|packages[].priceDifference|Number|The price difference. This could be a discount or a price increase. 795 +|packages[].hotel|Object|An object containing details about the hotel included in the package. This includes information like the hotel name, class, availability, etc. 796 +|packages[].hotel.hotelPriceId|String|The price ID of the hotel. This is used to uniquely identify the price for the hotel. 797 +|packages[].hotel.hotelName|String|The name of the hotel. This is the actual name of the hotel. 798 +|packages[].hotel.hotelCode|String|The code of the hotel. This is a unique code used to identify the hotel. 799 +|packages[].hotel.nights|Number|The number of nights for the stay. This is the duration of the stay at the hotel. 800 +|packages[].hotel.mealPlan|String|The meal plan for the stay. This could be breakfast included, all inclusive, etc. 801 +|packages[].hotel.hotelClass|String|The class of the hotel. This could be 3-star, 4-star, 5-star, etc. 802 +|packages[].hotel.hotelColor|String|The color associated with the hotel. This could be used for categorization or visualization purposes. 803 +|packages[].hotel.availabilityType|String|The availability type of the hotel. This could be available, sold out, etc. 804 +|packages[].hotel.availableRoomsCount|Number|The count of available rooms. This is the number of rooms that are currently available at the hotel. 805 +|packages[].hotel.fewRooms|Boolean|A boolean indicating if there are few rooms left. If true, it means that there are only a few rooms left. 806 +|packages[].hotel.roomCategoryCode|String|The code of the room category. This is a unique code used to identify the room category. 807 +|packages[].hotel.roomCategoryName|String|The name of the room category. This is the actual name of the room category. 808 +|packages[].hotel.placementTypeName|String|The name of the placement type. This could be sea view, garden view, etc. 809 +|packages[].hotel.placementDescription|String|The description of the placement. This provides more details about the placement type. 810 +|packages[].hotel.checkInDate|String|The check-in date. This is the date when the stay at the hotel begins. 811 +|packages[].hotel.checkOutDate|String|The check-out date. This is the date when the stay at the hotel ends. 812 +|packages[].hotel.adults|Number|The number of adults. This is the number of adults that will be staying at the hotel. 813 +|packages[].hotel.children|Number|The number of children. This is the number of children that will be staying at the hotel. 814 +|packages[].hotel.districtUID|String|The UID of the district. This is a unique identifier for the district where the hotel is located. 815 +|packages[].hotel.districtName|String|The name of the district. This is the actual name of the district where the hotel is located. 816 +|packages[].hotel.cityUID|String|The UID of the city. This is a unique identifier for the city where the hotel is located. 817 +|packages[].hotel.cityName|String|The name of the city. This is the actual name of the city where the hotel is located. 818 +|packages[].hotel.countryCode|String|The code of the country. This is a unique code used to identify the country where the hotel is located. 819 +|packages[].hotel.countryName|String|The name of the country. This is the actual name of the country where the hotel is located. 820 +|packages[].hotel.hasAlcohol|Boolean|A boolean indicating if alcohol is available. If true, it means that alcohol is available at the hotel. 821 +|packages[].hotel.hasFreeWifi|Boolean|A boolean indicating if free Wi-Fi is available. If true, it means that free Wi-Fi is available at the hotel. 822 +|packages[].hotel.hasMetro|Boolean|A boolean indicating if metro is available. If true, it means that there is a metro station near the hotel. 823 +|packages[].hotel.hasPool|Boolean|A boolean indicating if a pool is available. If true, it means that the hotel has a pool. 824 +|packages[].hotel.hasMall|Boolean|A boolean indicating if a mall is available. If true, it means that there is a mall near the hotel. 825 +|packages[].hotel.infantMaxAge|Number|The maximum age for an infant. This is the maximum age at which a person is considered an infant. 826 +|packages[].hotel.childMinAge|Number|The minimum age for a child. This is the minimum age at which a person is considered a child. 827 +|packages[].hotel.childMaxAge|Number|The maximum age for a child. This is the maximum age at which a person is considered a child. 828 +|packages[].hotel.teenMinAge|Number|The minimum age for a teen. This is the minimum age at which a person is considered a teen. 829 +|packages[].hotel.teenMaxAge|Number|The maximum age for a teen. This is the maximum age at which a person is considered a teen. 830 +|packages[].hotel.adultMinAge|Number|The minimum age for an adult. This is the minimum age at which a person is considered an adult. 831 +|packages[].hotel.cancellationPolicyDescription|String|The description of the cancellation policy. This provides more details about the cancellation policy of the hotel. 832 +|packages[].hotel.cancellationPolicy|Object|An object containing details about the cancellation policy. This includes information like the cancellation deadline, cancellation fee, etc. 833 +|packages[].flight|Object|An object containing details about the flight included in the package. This includes information like the flight ID, departure date, return date, etc. 834 +|packages[].flight.id|String|The ID of the flight. This is used to uniquely identify the flight. 835 +|packages[].flight.departureDate|String|The departure date of the flight. This is the date when the flight departs. 836 +|packages[].flight.returnDate|String|The return date of the flight. This is the date when the flight returns. 837 +|packages[].flight.departureTicketsLeft|Number|The number of departure tickets left. This is the number of tickets that are still available for the departure flight. 838 +|packages[].flight.returnTicketsLeft|Number|The number of return tickets left. This is the number of tickets that are still available for the return flight. 839 +|packages[].flight.departureAvailabilityType|String|The availability type of the departure flight. This could be available, sold out, etc. 840 +|packages[].flight.returnAvailabilityType|String|The availability type of the return flight. This could be available, sold out, etc. 841 +|packages[].flight.isTwoWay|Boolean|A boolean indicating if the flight is two-way. If true, it means that the flight includes both departure and return. 842 +|packages[].flight.sameBaggageForAll|Boolean|A boolean indicating if the same baggage is for all. If true, it means that the same baggage allowance applies to all passengers. 843 +|packages[].flight.totalBaggage|Boolean|A boolean indicating if total baggage is included. If true, it means that the total baggage allowance is included in the price. 844 +|packages[].flight.isBlock|Boolean|A boolean indicating if the flight is blocked. If true, it means that the flight is currently blocked and cannot be booked. 845 +|packages[].flight.class|String|The class of the flight. This could be economy, business, first class, etc. 846 +|packages[].flight.departureSegments|Array|An array containing details about the departure segments. Each segment includes information like the departure airport, arrival airport, departure time, arrival time, etc. 847 +|packages[].flight.returnSegments|Array|An array containing details about the return segments. Each segment includes information like the departure airport, arrival airport, departure time, arrival time, etc. 848 +|packages[].flight.passengers|Array|An array containing details about the passengers. Each passenger includes information like the passenger type, baggage allowance, etc. 849 +|packages[].extraServices|Array|An array of any extra services included in the package. Each service includes information like the service name, service price, etc. 850 +|packages[].insurancePrice|Object|An object containing details about the insurance price included in the package. This includes information like the insurance type, insurance price, etc. 851 +|packages[].cacheKey|String|The cache key. This is used to cache the package details for faster retrieval. 852 +|packages[].sortCheckInOut|String|The check-in and check-out dates for sorting. This is used to sort the packages based on the check-in and check-out dates. 853 +|packages[].sortAirline|String|The airline for sorting. This is used to sort the packages based on the airline. 854 +|packages[].sortHotelName|String|The hotel name for sorting. This is used to sort the packages based on the hotel name. 855 +|packages[].sortDetails|String|The details for sorting. This is used to sort the packages based on various details. 856 +|packages[].sortPlacement|String|The placement for sorting. This is used to sort the packages based on the placement. 857 +|pagingId|String|An identifier for the page. This is used to uniquely identify each page of results. 858 +|pageNumber|Number|The current page number. This is the number of the current page of results. 859 +|pageCount|Number|The total number of pages. This is the total number of pages of results. 860 +|totalCount|Number|The total count of packages. This is the total number of packages in all pages of results. 861 +|error|Boolean|A boolean indicating whether there was an error. If true, it means that there was an error in retrieving the packages. 862 + 863 + 864 +==== first request ==== 865 + 866 +{{code language="Json"}} 867 + { 868 + "pagingId": "", 869 + "pageNumber": 1, 870 + "pageRowCount":10 871 + } 872 +{{/code}} 873 + 874 +While making first search request, paging id should be empty, "pageNumber": and "pageRowCount":10 means that, in response there will be returned maximum 10 packages per page. 875 + 876 + 877 +==== Request with caching ==== 878 + 879 +after receiving response from first search request, in the end we can see pagingId- number, wchich we can use for caching, and (pageinatoin) for switch pagenumbers, and displaying results as we whant. For cleaning cache, it's important to make new request without cllear pagingID, like this "pagingId": "", 880 + 881 +{{code language="Json"}} 882 + { 883 + "pagingId": "80", 884 + "pageNumber": 1, 885 + "pageRowCount":10 886 + } 887 +{{/code}} 888 + 889 + 890 +=== search parameter options === 891 + 892 +in the request body it's available to filter search results with parameters. parameter examples: 893 + 894 +{{code language="Json"}} 895 + { "totalPriceFrom": 500, 896 + "totalPriceTo": 10000, 897 + "hotelTypes": [ 898 + "CityHotel", 899 + "BeachHotel", 900 + "SecondLineBeach" 901 + ], 902 + "hotelClasses": [ 903 + "1", 904 + "2", 905 + "3", 906 + "4", 907 + "5", 908 + "6" 909 + ], 910 + "hotelServices": [ 911 + "HasAlcohol", 912 + "HasFreeWifi", 913 + "HasMetro", 914 + "HasPool", 915 + "HasMall" 916 + ], 917 + "mealPlans": [ 918 + "RO", 919 + "BB", 920 + "HB", 921 + "FB", 922 + "AL" 923 + ] 924 +} 925 +{{/code}} 926 + 927 + 928 + 929 +== Important == 930 + 931 +{{error}} 932 +=== Implementing Authorization in Subsequent Requests === 933 + 934 +For every API request after the initial authentication, it's crucial to include the authorization token in the request header. This ensures your requests are authorized and can access the necessary resources. Here's how to properly include your token: 935 + 936 +* **Header Key:** Authorization 937 +* **Header Value:** Bearer [Your Token Here] - Use the bearer token provided in the initial authentication response. The authorization type should be specified as Bearer Token. 938 + 939 +Additionally, to ensure your requests are properly formatted and recognized, include the following headers: 940 + 941 +* **Content-Type:** Specify this header as application/json to indicate the format of the request body. 942 +* **Header Key:** X-nugios-timezone 943 +* **Header Value:** 240 - Adjust this value to match your local timezone offset in minutes. 944 + 945 +Incorporating these headers with their respective values is essential for the successful processing of your API requests. 946 +{{/error}}