Wiki source code of 2. CalcPackage
Last modified by Giorgi Mdivnishvili on 2024/04/12 18:58
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{box cssClass="floatinginfobox" title="**Contents**"}} | ||
2 | |||
3 | |||
4 | {{toc/}} | ||
5 | {{/box}} | ||
6 | |||
7 | = Method Description = | ||
8 | |||
9 | This method is used to calculate package only hotels, to recheck prices, availability, prices and cancelation policy before book. | ||
10 | |||
11 | |||
12 | == Endpoint URL - [POST] == | ||
13 | |||
14 | {{info}} | ||
15 | [[https:~~/~~/integration.kazunion.com/api/OnlyHotelPackages/CalcPackage>>https://integration.kazunion.com/api/OnlyHotelPackages/CalcPackage]] | ||
16 | {{/info}} | ||
17 | |||
18 | |||
19 | == Request Parameters == | ||
20 | |||
21 | (% class="box infomessage" %) | ||
22 | ((( | ||
23 | None | ||
24 | ))) | ||
25 | |||
26 | |||
27 | == Request Body == | ||
28 | |||
29 | {{code language="Json"}} | ||
30 | none{ | ||
31 | "packageId": "string", | ||
32 | "extraServicePriceCodes": [ | ||
33 | "string" | ||
34 | ] | ||
35 | } | ||
36 | {{/code}} | ||
37 | |||
38 | == (% id="cke_bm_10575S" style="display:none" %) (%%)Request Body example == | ||
39 | |||
40 | {{code language="Json"}} | ||
41 | { | ||
42 | "packageId": "onlyhotel:25a0ce83-047e-485a-8fd7-f2b5a7a1fa37:9963330c-2346-4330-b9cf-7abbb0f64636", | ||
43 | "includeInsurance": false | ||
44 | } | ||
45 | {{/code}} | ||
46 | |||
47 | |||
48 | == Response == | ||
49 | |||
50 | {{code language="json"}} | ||
51 | { | ||
52 | "error": true, | ||
53 | "errorCode": "string", | ||
54 | "errorDescription": "string", | ||
55 | "userErrorDescription": "string", | ||
56 | "package": { | ||
57 | "id": "string", | ||
58 | "priceCurrency": "string", | ||
59 | "totalPrice": 0, | ||
60 | "agentCommissionPercent": 0, | ||
61 | "agentCommissionAmount": 0, | ||
62 | "hotel": { | ||
63 | "hotelPriceId": "string", | ||
64 | "providerId": 0, | ||
65 | "hotelName": "string", | ||
66 | "hotelCode": "string", | ||
67 | "nigths": 0, | ||
68 | "mealPlan": "string", | ||
69 | "hotelClass": "string", | ||
70 | "availabilityType": "OnRequest", | ||
71 | "availableRoomsCount": 0, | ||
72 | "fewRooms": true, | ||
73 | "roomCategoryCode": "string", | ||
74 | "roomCategoryName": "string", | ||
75 | "placementTypeName": "string", | ||
76 | "placementDescription": "string", | ||
77 | "checkInDate": "2023-12-14T08:49:36.703Z", | ||
78 | "checkOutDate": "2023-12-14T08:49:36.703Z", | ||
79 | "adults": 0, | ||
80 | "children": 0, | ||
81 | "districtUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6", | ||
82 | "districtName": "string", | ||
83 | "cityUID": "3fa85f64-5717-4562-b3fc-2c963f66afa6", | ||
84 | "cityName": "string", | ||
85 | "countryCode": "string", | ||
86 | "countryName": "string", | ||
87 | "hasAlcohol": true, | ||
88 | "hasFreeWifi": true, | ||
89 | "hasMetro": true, | ||
90 | "hasPool": true, | ||
91 | "hasMall": true, | ||
92 | "cancellationPolicyDescription": "string", | ||
93 | "cancellationPolicy": { | ||
94 | "cancellationPolicyCode": "string", | ||
95 | "noShowChargeValue": 0, | ||
96 | "noShowChargeValueType": "string", | ||
97 | "earlyDepartureChargeValue": 0, | ||
98 | "earlyDepartureChargeValueType": "string", | ||
99 | "conditions": [ | ||
100 | { | ||
101 | "timeunits": 0, | ||
102 | "timeunitType": "string", | ||
103 | "timeOffsetTypeName": "string", | ||
104 | "chargeValue": 0, | ||
105 | "chargeValueType": "string" | ||
106 | } | ||
107 | ] | ||
108 | } | ||
109 | }, | ||
110 | "extraServices": [ | ||
111 | { | ||
112 | "extraServiceCode": "string", | ||
113 | "extraServiceTypeCode": "string", | ||
114 | "isMandatory": 0, | ||
115 | "extraServiceName": "string", | ||
116 | "minimalServiceAmount": 0, | ||
117 | "includedPriceCode": "string", | ||
118 | "prices": [ | ||
119 | { | ||
120 | "extraServicePriceCode": "string", | ||
121 | "displayName": "string", | ||
122 | "restrictionInfo": "string", | ||
123 | "additionalInfo": "string", | ||
124 | "price": 0, | ||
125 | "extraPrice": 0, | ||
126 | "currency": "string" | ||
127 | } | ||
128 | ] | ||
129 | } | ||
130 | ] | ||
131 | } | ||
132 | } | ||
133 | {{/code}} | ||
134 | |||
135 | |||
136 | === Response example === | ||
137 | |||
138 | {{code language="Json"}} | ||
139 | { | ||
140 | "package": { | ||
141 | "id": "onlyhotel:25a0ce83-047e-485a-8fd7-f2b5a7a1fa37:9963330c-2346-4330-b9cf-7abbb0f64636", | ||
142 | "priceCurrency": "USD", | ||
143 | "totalPrice": 46.94, | ||
144 | "agentCommissionPercent": 0.00, | ||
145 | "agentCommissionAmount": 0.00, | ||
146 | "hotel": { | ||
147 | "hotelPriceId": "9963330c-2346-4330-b9cf-7abbb0f64636", | ||
148 | "hotelName": "Royal Continental Hotel", | ||
149 | "hotelCode": "03cf038c-df96-4926-af5f-0f285e600405", | ||
150 | "nigths": 1, | ||
151 | "mealPlan": "RO", | ||
152 | "hotelClass": "4", | ||
153 | "hotelColor": "#000000", | ||
154 | "availabilityType": "FreeSale", | ||
155 | "availableRoomsCount": 0, | ||
156 | "fewRooms": true, | ||
157 | "roomCategoryCode": "ff13e5ec-2116-46d1-9ff4-ae76be84ff91", | ||
158 | "roomCategoryName": "Superior King Room", | ||
159 | "placementTypeName": "DBL", | ||
160 | "checkInDate": "2024-06-30T00:00:00.000", | ||
161 | "checkOutDate": "2024-07-01T00:00:00.000", | ||
162 | "adults": 2, | ||
163 | "children": 0, | ||
164 | "districtUID": "aaff2238-fa72-4900-83f8-a16990415547", | ||
165 | "districtName": "Deira", | ||
166 | "cityUID": "f5185fa3-3f56-44ed-bf6b-80386a33caa2", | ||
167 | "cityName": "Dubai", | ||
168 | "countryCode": "AE", | ||
169 | "countryName": "United Arab Emirates", | ||
170 | "hasAlcohol": false, | ||
171 | "hasFreeWifi": true, | ||
172 | "hasMetro": false, | ||
173 | "hasPool": true, | ||
174 | "hasMall": false, | ||
175 | "infantMaxAge": 5.99, | ||
176 | "childMinAge": 6.00, | ||
177 | "childMaxAge": 11.99, | ||
178 | "teenMinAge": 0.0, | ||
179 | "teenMaxAge": 0.0, | ||
180 | "adultMinAge": 12.00, | ||
181 | "cancellationPolicyDescription": "Cancellation Policy: 1 Day Before Arrival: 1.00 Night, Early Departure: 100.00 %, NoShow: 100.00 %", | ||
182 | "cancellationPolicy": { | ||
183 | "noShowChargeValue": 100.00, | ||
184 | "noShowChargeValueType": "%", | ||
185 | "earlyDepartureChargeValue": 100.00, | ||
186 | "earlyDepartureChargeValueType": "%", | ||
187 | "conditions": [ | ||
188 | { | ||
189 | "timeunits": 1, | ||
190 | "timeunitType": "Day", | ||
191 | "timeOffsetTypeName": "Before Arrival", | ||
192 | "chargeValue": 1.00, | ||
193 | "chargeValueType": "Night" | ||
194 | } | ||
195 | ] | ||
196 | } | ||
197 | }, | ||
198 | "extraServices": [], | ||
199 | "insurancePrice": { | ||
200 | "name": "Insurance (10000 USD) with COVID coverage", | ||
201 | "price": 8.96, | ||
202 | "actualStartDate": "2024-06-30T00:00:00.000", | ||
203 | "actualEndDate": "2024-07-01T00:00:00.000", | ||
204 | "optional": true, | ||
205 | "includedInPackagePrice": false | ||
206 | }, | ||
207 | "sortCheckInOut": "30.06.2024-01.07.2024", | ||
208 | "sortHotelName": "royal continental hotel", | ||
209 | "sortDetails": "ro", | ||
210 | "sortPlacement": "superior king room dbl" | ||
211 | }, | ||
212 | "refreshPriceResult": "Success", | ||
213 | "error": false | ||
214 | } | ||
215 | {{/code}} | ||
216 | |||
217 | |||
218 | === Schema === | ||
219 | |||
220 | {{success}} | ||
221 | CalcOnlyHotelPackageResponse{ | ||
222 | |||
223 | |error|boolean | ||
224 | |errorCode|string | ||
225 | nullable: true | ||
226 | |errorDescription|string | ||
227 | nullable: true | ||
228 | |userErrorDescription|string | ||
229 | nullable: true | ||
230 | |package|OnlyHotelPackage{((( | ||
231 | |id|string | ||
232 | nullable: true | ||
233 | |priceCurrency|string | ||
234 | nullable: true | ||
235 | |totalPrice|number($double) | ||
236 | |agentCommissionPercent|number($double) | ||
237 | |agentCommissionAmount|number($double) | ||
238 | |hotel|PackageHotel{((( | ||
239 | |hotelPriceId|string | ||
240 | nullable: true | ||
241 | |providerId|integer($int32) | ||
242 | |hotelName|string | ||
243 | nullable: true | ||
244 | |hotelCode|string | ||
245 | nullable: true | ||
246 | |nigths|integer($int32) | ||
247 | |mealPlan|string | ||
248 | nullable: true | ||
249 | |hotelClass|string | ||
250 | nullable: true | ||
251 | |availabilityType|RoomAvailabilityTypeEnumstringEnum: | ||
252 | [ OnRequest, FreeSale, StopSale ] | ||
253 | |availableRoomsCount|integer($int32) | ||
254 | |fewRooms|boolean | ||
255 | |roomCategoryCode|string | ||
256 | nullable: true | ||
257 | |roomCategoryName|string | ||
258 | nullable: true | ||
259 | |placementTypeName|string | ||
260 | nullable: true | ||
261 | |placementDescription|string | ||
262 | nullable: true | ||
263 | |checkInDate|string($date-time) | ||
264 | |checkOutDate|string($date-time) | ||
265 | |adults|integer($int32) | ||
266 | |children|integer($int32) | ||
267 | |districtUID|string($uuid) | ||
268 | nullable: true | ||
269 | |districtName|string | ||
270 | nullable: true | ||
271 | |cityUID|string($uuid) | ||
272 | nullable: true | ||
273 | |cityName|string | ||
274 | nullable: true | ||
275 | |countryCode|string | ||
276 | nullable: true | ||
277 | |countryName|string | ||
278 | nullable: true | ||
279 | |hasAlcohol|boolean | ||
280 | |hasFreeWifi|boolean | ||
281 | |hasMetro|boolean | ||
282 | |hasPool|boolean | ||
283 | |hasMall|boolean | ||
284 | |cancellationPolicyDescription|string | ||
285 | nullable: true | ||
286 | |cancellationPolicy|CancellationPolicyExchange{((( | ||
287 | |cancellationPolicyCode|string | ||
288 | nullable: true | ||
289 | |noShowChargeValue|number($double) | ||
290 | nullable: true | ||
291 | |noShowChargeValueType|string | ||
292 | nullable: true | ||
293 | |earlyDepartureChargeValue|number($double) | ||
294 | nullable: true | ||
295 | |earlyDepartureChargeValueType|string | ||
296 | nullable: true | ||
297 | |conditions|[ | ||
298 | nullable: trueCancellationPolicyConditionExchange{((( | ||
299 | |timeunits|integer($int32) | ||
300 | |timeunitType|string | ||
301 | nullable: true | ||
302 | |timeOffsetTypeName|string | ||
303 | nullable: true | ||
304 | |chargeValue|number($double) | ||
305 | nullable: true | ||
306 | |chargeValueType|string | ||
307 | nullable: true | ||
308 | |||
309 | }] | ||
310 | ))) | ||
311 | |||
312 | } | ||
313 | ))) | ||
314 | |||
315 | } | ||
316 | ))) | ||
317 | |extraServices|[ | ||
318 | nullable: trueHotelExtraServiceBase{((( | ||
319 | |extraServiceCode|string | ||
320 | nullable: true | ||
321 | |extraServiceTypeCode|string | ||
322 | nullable: true | ||
323 | |isMandatory|integer($int32) | ||
324 | |extraServiceName|string | ||
325 | nullable: true | ||
326 | |minimalServiceAmount|number($double) | ||
327 | |includedPriceCode|string | ||
328 | nullable: true | ||
329 | |prices|[ | ||
330 | nullable: trueHotelExtraServicePriceBase{((( | ||
331 | |extraServicePriceCode|string | ||
332 | nullable: true | ||
333 | |displayName|string | ||
334 | nullable: true | ||
335 | |restrictionInfo|string | ||
336 | nullable: true | ||
337 | |additionalInfo|string | ||
338 | nullable: true | ||
339 | |price|number($double) | ||
340 | |extraPrice|number($double) | ||
341 | |currency|string | ||
342 | nullable: true | ||
343 | |||
344 | }] | ||
345 | ))) | ||
346 | |||
347 | }] | ||
348 | ))) | ||
349 | |||
350 | } | ||
351 | ))) | ||
352 | |||
353 | } | ||
354 | {{/success}} | ||
355 | |||
356 | |||
357 | |||
358 | == Important == | ||
359 | |||
360 | {{error}} | ||
361 | === Implementing Authorization in Subsequent Requests === | ||
362 | |||
363 | 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: | ||
364 | |||
365 | * **Header Key:** Authorization | ||
366 | * **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. | ||
367 | |||
368 | Additionally, to ensure your requests are properly formatted and recognized, include the following headers: | ||
369 | |||
370 | * **Content-Type:** Specify this header as application/json to indicate the format of the request body. | ||
371 | * **Header Key:** X-nugios-timezone | ||
372 | * **Header Value:** 240 - Adjust this value to match your local timezone offset in minutes. | ||
373 | |||
374 | Incorporating these headers with their respective values is essential for the successful processing of your API requests. | ||
375 | {{/error}} |