Wiki source code of 7. Book
Version 3.1 by Giorgi Mdivnishvili on 2024/02/26 16:23
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | **https:~/~/restapi.rustaronline.com/v1.01/api/book** | ||
2 | |||
3 | Method: POST | ||
4 | |||
5 | Parameters to pass (IN URL): agented and agentpassword | ||
6 | |||
7 | Sample URL: | ||
8 | |||
9 | [[**https:~~/~~/restapi.rustaronline.com/v1.01/api/book?agentid=test.test&agentpassword=TestP@ssw0rd**>>url:https://restapi.rustaronline.com/v1.01/api/book?agentid=test.test&agentpassword=TestP@ssw0rd]] | ||
10 | |||
11 | |||
12 | The method registers a booking request from the agent into Rustar’s database | ||
13 | |||
14 | **Post value example:** | ||
15 | |||
16 | {{code language="json"}} | ||
17 | { | ||
18 | "reservationcode": "RES001", | ||
19 | "customers": [{ | ||
20 | "customercode": "1", | ||
21 | "title": "Mr", | ||
22 | "gender": "M", | ||
23 | "firstname": "John", | ||
24 | "lastname": "Smith", | ||
25 | "birthdate": "1990-01-01T00:00:00", | ||
26 | "citizenship": "AE", | ||
27 | "visarequired": true, | ||
28 | "arrivaldate": "2018-03-20T13:00:00", | ||
29 | "arrivalflightnumber": "FL001", | ||
30 | "arrivalairport": "DXB", | ||
31 | "departuredate": "2018-03-25T15:00:00", | ||
32 | "departureflightnumber": "FL002", | ||
33 | "departureairport": "DXB", | ||
34 | "countryaccesscode": "971", | ||
35 | "areacitycode": "4", | ||
36 | "phonenumber": "000-00-00", | ||
37 | "email": "", | ||
38 | "passportnumber": "", | ||
39 | "passporttype": "", | ||
40 | "issuedate": null, | ||
41 | "expirydate": null, | ||
42 | "issuecity": null, | ||
43 | "note": "" | ||
44 | },{ | ||
45 | "customercode": "2", | ||
46 | "title": "Mrs", | ||
47 | "gender": "F", | ||
48 | "firstname": "Jane", | ||
49 | "lastname": "Smith", | ||
50 | "birthdate": "1990-02-02T00:00:00", | ||
51 | "citizenship": "AE", | ||
52 | "visarequired": true, | ||
53 | "arrivaldate": "2018-03-20T13:00:00", | ||
54 | "arrivalflightnumber": "FL001", | ||
55 | "arrivalairport": "DXB", | ||
56 | "departuredate": "2018-03-25T15:00:00", | ||
57 | "departureflightnumber": "FL002", | ||
58 | "departureairport": "DXB", | ||
59 | "countryaccesscode": "971", | ||
60 | "areacitycode": "4", | ||
61 | "phonenumber": "000-00-00", | ||
62 | "email": "", | ||
63 | "passportnumber": "", | ||
64 | "passporttype": "", | ||
65 | "issuedate": null, | ||
66 | "expirydate": null, | ||
67 | "issuecity": null, | ||
68 | "note": "" | ||
69 | } | ||
70 | ], | ||
71 | "hotels": [{ | ||
72 | "hotelname": "Rixos Premium Dubai", | ||
73 | "checkindate": "2018-03-20T00:00:00", | ||
74 | "checkoutdate": "2018-03-25T00:00:00", | ||
75 | "placement": "DBL", | ||
76 | "roomcategoryname": "1 B/R Deluxe Suite", | ||
77 | "promotioncodes": "", | ||
78 | "mealplan": "BB", | ||
79 | "adults": 2, | ||
80 | "children": 0, | ||
81 | "infants": 0, | ||
82 | "hotelnote": "VIP Guest", | ||
83 | "customercodes": [ | ||
84 | "1","2" | ||
85 | ] | ||
86 | } | ||
87 | ], | ||
88 | "transfers": [{ | ||
89 | "transferdate": "2018-03-20T00:00:00", | ||
90 | "transfertype": "GROUP", | ||
91 | "fromairport": "DXB", | ||
92 | "toairport": null, | ||
93 | "tohotelname": "Rixos Premium Dubai", | ||
94 | "customercodes": [ | ||
95 | "1","2" | ||
96 | ] | ||
97 | },{ | ||
98 | "transferdate": "2018-03-25T00:00:00", | ||
99 | "transfertype": "GROUP", | ||
100 | "fromairport": null, | ||
101 | "fromhotelname": "Rixos Premium Dubai", | ||
102 | "toairport": "DXB", | ||
103 | "tohotelid": null, | ||
104 | "customercodes": [ | ||
105 | "1","2" | ||
106 | ] | ||
107 | } | ||
108 | ], | ||
109 | "hotelextras": [] | ||
110 | } | ||
111 | |||
112 | {{/code}} | ||
113 | |||
114 | |||
115 | |||
116 | **reservationcode:** string. Reservation/Booking ID from Agent’s system. Might be null | ||
117 | |||
118 | **customers:** Array of all tourists of this booking | ||
119 | |||
120 | **~ customercode:** string. Unique ID of the customer from Agent. Mandatory | ||
121 | |||
122 | **title:** string. Tile (“Mr”, “Mrs”…). Optional | ||
123 | |||
124 | **gender:** string. “M” or “F” only. Mandatory | ||
125 | |||
126 | **firstname:** First name of the customer. Mandatory | ||
127 | |||
128 | **lastname:** Last name of the customer. Mandatory | ||
129 | |||
130 | **birthdate:** Birth date of the customer. Optional. If empty, then the customer will be registered as adult | ||
131 | |||
132 | **citizenship:** string. ISO2 format of the country code. For example “KZ”, “UA”. . Mandatory | ||
133 | |||
134 | **visarequired:** Boolean. Is customer applying for a visa service from rustar. Mandatory | ||
135 | |||
136 | **arrivaldate:** datetime. Mandatory. Addival date AND time of the customer | ||
137 | |||
138 | **arrivalflightnumber:** string. Mandatory. Flight code of the customer for arrival | ||
139 | |||
140 | **arrivalairport:** string. IATA 3 character code of the airpot. Mandatory. Example: “DXB”,”SHJ” | ||
141 | |||
142 | **departuredate:** datetime. Mandatory. Departure date AND time of the customer | ||
143 | |||
144 | **departureflightnumber:** string. Mandatory. Flight code of the customer for arrival | ||
145 | |||
146 | **departureairport:** string. IATA 3 character code of the airpot. Mandatory. Example: “DXB”,”SHJ” | ||
147 | |||
148 | **countryaccesscode:** string. Phone code for the country. Optional. Example: “971” | ||
149 | |||
150 | **areacitycode:** string. Phone code for city or mobile operator. Optional. Example: “050” | ||
151 | |||
152 | **phonenumber:** string. Phone number of the customer. Optional | ||
153 | |||
154 | **email:** string. Email address of the customer. Optional | ||
155 | |||
156 | **passportnumber:** string. Passport number of the customer. Optional | ||
157 | |||
158 | **passporttype:** string. “ID” or “PS”. Optional. Passport type. | ||
159 | |||
160 | **issuedate:** date. Optional. Issue date of the passport | ||
161 | |||
162 | **expirydate:** date. Optional. Expire date of the passport | ||
163 | |||
164 | **issuecity:** string. Optional. City where the passport was issued | ||
165 | |||
166 | **note:** string. Optional. | ||
167 | |||
168 | **hotels:** Array of the hotels to book for this reservation | ||
169 | |||
170 | **hotelid: **guid. Optional. Hotelid returned by “hotels” method (page 2) | ||
171 | |||
172 | **hotelname:** string. Optional. Hotel name. Will be taken from hotelid if empty | ||
173 | |||
174 | **placement:** string. Mandatory. Placement returned by hotelprices method. (see page 4) | ||
175 | |||
176 | **roomcategory:** guid. Optional. Room category ID returned by hotelprices method. (see page 4) | ||
177 | |||
178 | **roomcategoryname:** string. Optional. Room type name. Will be taken from roomcategory if empty | ||
179 | |||
180 | **priceid:** guid. Optional. Priceid returned by hotelprices method. (see page 4) | ||
181 | |||
182 | **~ promotioncodes: **string. Optional. PromotionCodes separated by “;” to book | ||
183 | |||
184 | **mealplan:** string. Optional. Meal plan of the price. Will be taken from priceid if empty | ||
185 | |||
186 | **checkindate:** date. Mandatory. Check in date for this price. Must be within the range of the price | ||
187 | |||
188 | **checkoutdate:** date. Mandatory. Check out date for this price. Must be within the range of the price | ||
189 | |||
190 | **adults:** int. Mandatory. Number of adults in booking | ||
191 | |||
192 | **children:** int. Number of children in booking | ||
193 | |||
194 | **infants:** int. Number of infants in booking | ||
195 | |||
196 | **hotelnote:** string. Note for the booking. Optional | ||
197 | |||
198 | **customercodes:** array of strings. Codes of the customers staying in this hotel reservation for these dates | ||
199 | |||
200 | **transfers:** Array of the transfers for this booking | ||
201 | |||
202 | **transferdate: **date. Mandatory. Date of the transfer | ||
203 | |||
204 | **transfertype:** string. Mandatory. VehicleName taken from vehicletypes method. Page 15 (“GROUP”, “TOYOTA PREVIA”…) | ||
205 | |||
206 | **fromairport:** string. IATA code of the airport to pick up the tourists | ||
207 | |||
208 | **fromhotelid:** guid. Hotelid returned by hotels method. Hotel to pick up the tourists. | ||
209 | |||
210 | **fromhotelname:** string. HotelName returned by hotels method. | ||
211 | |||
212 | **toairport:** string. IATA code of the airport to drop the tourists | ||
213 | |||
214 | **tohotelid:** guid. Hotelid returned by hotels method. Hotel to drop the tourists. | ||
215 | |||
216 | **tohotelname:** string. HotelName returned by hotels method. | ||
217 | |||
218 | **customercodes:** array of strings. Codes of the customers for this transfer | ||
219 | |||
220 | **hotelextras:** Array of the extra services, like gala dinners for this booking | ||
221 | |||
222 | **servicedate: **date. Mandatory. Date of the service/gala dinner | ||
223 | |||
224 | **extraserviceid:** guid. Mandatory. extraserviceid returned by hotelextras method. Page 9 | ||
225 | |||
226 | **customerprices:** array of customercodes and priceid-s from hotelextras | ||
227 | |||
228 | **customercode:** string. Mandatory. CustomerCode from Customer’s object. | ||
229 | |||
230 | **priceid:** guid. Mandatory. Price id from Adult, Teen, Child, Infant from hotelextras | ||
231 | |||
232 | |||
233 | |||
234 | **Return value example:** | ||
235 | |||
236 | |||
237 | {{code language="json"}} | ||
238 | { | ||
239 | "Code": "00", | ||
240 | "Message": "", | ||
241 | "Timestamp": "2018-01-06T03:35:50.0365078+04:00", | ||
242 | "Version": "1.01", | ||
243 | "ResponseID": "506decf4-7deb-46fd-b10f-35d8baf6ee3f", | ||
244 | "Data": { | ||
245 | "ReservationID": "b36f6534-c5ce-4bc7-b8b6-8ee39fc6f913", | ||
246 | "ReservationNumber": "68440", | ||
247 | "ReservationDate": "2018-01-06T03:35:46.257", | ||
248 | "ReservationAmount": 6877.00, | ||
249 | "ReservationStatus": 0, | ||
250 | "ReservationStatusName": "Draft", | ||
251 | "ReservationTourists": [{ | ||
252 | "TouristID": "942dd874-cd3b-4f3c-b3bc-c2a92b38c392", | ||
253 | "FirstName": "John", | ||
254 | "LastName": "Smith", | ||
255 | "ChildFlag": 0, | ||
256 | "BirthDate": "1990-01-01T00:00:00", | ||
257 | "CountryCode": "AE", | ||
258 | "CountryID": "fead4059-3958-42d9-ab98-4446de89c0f1", | ||
259 | "CountryAccessCode": "971", | ||
260 | "AreaCityCode": "4", | ||
261 | "PhoneNumber": "000-00-00", | ||
262 | "Gender": 1, | ||
263 | "ArrivalDate": "2018-03-20T13:00:00", | ||
264 | "ArrivalFlightNumber": "FL001", | ||
265 | "ArrivalTerminalName": "DXB", | ||
266 | "DepartureDate": "2018-03-25T15:00:00", | ||
267 | "DepartureFlightNumber": "FL002", | ||
268 | "DepartureTerminalName": "DXB", | ||
269 | "Email": "", | ||
270 | "PassportNumber": "", | ||
271 | "PassportType": "", | ||
272 | "IssueCity": null, | ||
273 | "IssueDate": null, | ||
274 | "ExpiryDate": null, | ||
275 | "Note": "" | ||
276 | }, { | ||
277 | "TouristID": "18c4ac33-05e6-49b5-b9cd-3f3cc1a30b61", | ||
278 | "FirstName": "Jane", | ||
279 | "LastName": "Smith", | ||
280 | "ChildFlag": 0, | ||
281 | "BirthDate": "1990-02-02T00:00:00", | ||
282 | "CountryCode": "AE", | ||
283 | "CountryID": "fead4059-3958-42d9-ab98-4446de89c0f1", | ||
284 | "CountryAccessCode": "971", | ||
285 | "AreaCityCode": "4", | ||
286 | "PhoneNumber": "000-00-00", | ||
287 | "Gender": 2, | ||
288 | "ArrivalDate": "2018-03-20T13:00:00", | ||
289 | "ArrivalFlightNumber": "FL001", | ||
290 | "ArrivalTerminalName": "DXB", | ||
291 | "DepartureDate": "2018-03-25T15:00:00", | ||
292 | "DepartureFlightNumber": "FL002", | ||
293 | "DepartureTerminalName": "DXB", | ||
294 | "Email": "", | ||
295 | "PassportNumber": "", | ||
296 | "PassportType": "", | ||
297 | "IssueCity": null, | ||
298 | "IssueDate": null, | ||
299 | "ExpiryDate": null, | ||
300 | "Note": "" | ||
301 | }], | ||
302 | "ReservationHotels": [{ | ||
303 | "ReservationHotelID": "19be0332-a305-4343-b2a2-ff2f012461d9", | ||
304 | "AgentConfirmationNumber": "RES001", | ||
305 | "CheckInDate": "2018-03-20T00:00:00", | ||
306 | "CheckOutDate": "2018-03-25T00:00:00", | ||
307 | "HotelID": "ed1b48cc-c0d1-47f4-8b17-03e509f705bc", | ||
308 | "HotelName": "Rixos Premium Dubai", | ||
309 | "RoomCategoryID": "64c30364-80db-4634-ad24-5b15eb1adf44", | ||
310 | "RoomCategoryName": "1 B/R Deluxe Suite", | ||
311 | "PriceID": "5ed4e543-9af3-42b3-b367-b4dfce0b2042", | ||
312 | "MealPlanName": "BB", | ||
313 | "Placement": 3, | ||
314 | "PlacementTypeName": "DBL", | ||
315 | "Note": "VIP Guest", | ||
316 | "Tourists": ["942dd874-cd3b-4f3c-b3bc-c2a92b38c392", "18c4ac33-05e6-49b5-b9cd-3f3cc1a30b61"] | ||
317 | }], | ||
318 | "ReservationTransferServices": [{ | ||
319 | "ReservationTransferID": "47608d83-7205-4a60-9498-055516ad4328", | ||
320 | "TouristID": "942dd874-cd3b-4f3c-b3bc-c2a92b38c392", | ||
321 | "TransferDate": "2018-03-25T00:00:00", | ||
322 | "ServiceName": "DEPARTURE", | ||
323 | "FromTerminalName": null, | ||
324 | "ToTerminalName": "DXB", | ||
325 | "FromHotelID": "ed1b48cc-c0d1-47f4-8b17-03e509f705bc", | ||
326 | "FromHotelName": "Rixos Premium Dubai", | ||
327 | "ToHotelID": null, | ||
328 | "ToHotelName": null, | ||
329 | "VehicleTypeId": "a9252005-0a92-4ed1-9603-0f2f14295c29", | ||
330 | "VehicleTypeName": "GROUP" | ||
331 | }, { | ||
332 | "ReservationTransferID": "14730745-5ce8-4045-b032-b3c0fe956a96", | ||
333 | "TouristID": "942dd874-cd3b-4f3c-b3bc-c2a92b38c392", | ||
334 | "TransferDate": "2018-03-20T00:00:00", | ||
335 | "ServiceName": "ARRIVAL", | ||
336 | "FromTerminalName": "DXB", | ||
337 | "ToTerminalName": null, | ||
338 | "FromHotelID": null, | ||
339 | "FromHotelName": null, | ||
340 | "ToHotelID": "ed1b48cc-c0d1-47f4-8b17-03e509f705bc", | ||
341 | "ToHotelName": "Rixos Premium Dubai", | ||
342 | "VehicleTypeId": "a9252005-0a92-4ed1-9603-0f2f14295c29", | ||
343 | "VehicleTypeName": "GROUP" | ||
344 | }, { | ||
345 | "ReservationTransferID": "128930a5-996e-4581-8be0-0126a4d460ec", | ||
346 | "TouristID": "18c4ac33-05e6-49b5-b9cd-3f3cc1a30b61", | ||
347 | "TransferDate": "2018-03-20T00:00:00", | ||
348 | "ServiceName": "ARRIVAL", | ||
349 | "FromTerminalName": "DXB", | ||
350 | "ToTerminalName": null, | ||
351 | "FromHotelID": null, | ||
352 | "FromHotelName": null, | ||
353 | "ToHotelID": "ed1b48cc-c0d1-47f4-8b17-03e509f705bc", | ||
354 | "ToHotelName": "Rixos Premium Dubai", | ||
355 | "VehicleTypeId": "a9252005-0a92-4ed1-9603-0f2f14295c29", | ||
356 | "VehicleTypeName": "GROUP" | ||
357 | }, { | ||
358 | "ReservationTransferID": "1d0630a4-547e-452d-b0c9-448b5423fe94", | ||
359 | "TouristID": "18c4ac33-05e6-49b5-b9cd-3f3cc1a30b61", | ||
360 | "TransferDate": "2018-03-25T00:00:00", | ||
361 | "ServiceName": "DEPARTURE", | ||
362 | "FromTerminalName": null, | ||
363 | "ToTerminalName": "DXB", | ||
364 | "FromHotelID": "ed1b48cc-c0d1-47f4-8b17-03e509f705bc", | ||
365 | "FromHotelName": "Rixos Premium Dubai", | ||
366 | "ToHotelID": null, | ||
367 | "ToHotelName": null, | ||
368 | "VehicleTypeId": "a9252005-0a92-4ed1-9603-0f2f14295c29", | ||
369 | "VehicleTypeName": "GROUP" | ||
370 | }], | ||
371 | "ReservationServices": [{ | ||
372 | "ReservationServiceID": "d026ba62-c193-4c5b-956d-458dc5e6a00a", | ||
373 | "TouristID": "18c4ac33-05e6-49b5-b9cd-3f3cc1a30b61", | ||
374 | "ServiceDate": "2018-03-20T13:00:00", | ||
375 | "ServiceName": "Visa / Visa Charges" | ||
376 | }, { | ||
377 | "ReservationServiceID": "180538a7-34f5-4899-a47c-f732cf1e29fd", | ||
378 | "TouristID": "942dd874-cd3b-4f3c-b3bc-c2a92b38c392", | ||
379 | "ServiceDate": "2018-03-20T13:00:00", | ||
380 | "ServiceName": "Visa / Visa Charges" | ||
381 | }] | ||
382 | } | ||
383 | } | ||
384 | |||
385 | |||
386 | {{/code}} | ||
387 | |||
388 | |||
389 | |||
390 | The values are self-descriptive and most of them just are the same as passed to this booking. The values to pay attention apart crosschecking the booking parameters are: | ||
391 | |||
392 | |||
393 | **ReservationID**: guid. Unique ID assigned to the booking by Rustar | ||
394 | |||
395 | **ReservationNumber**: string. Unique booking number assigned by Rustar. Can be used for searching on web portal | ||
396 | |||
397 | **ReservationDate**: date and time of the reservation. | ||
398 | |||
399 | **ReservationAmount**: decimal. Total amount of the booking in USD | ||
400 | |||
401 | **ReservationStatus**: int. Status id of the reservation. | ||
402 | |||
403 | **ReservationStatusName**: string. Description of the status of the reservation | ||
404 | |||
405 |