Параметры запроса# Детальное описание всех параметров для запроса /hotels/create_booking.
Обязательные параметры# Параметр Тип Описание searchIdstring Идентификатор из /hotels/hotel_pricing или /hotels/offer_pricing offerIdstring Идентификатор выбранного предложения partnerInfoPartnerInfo Информация о заказе партнера paymentTypePaymentInfo Информация об оплате guestsBookingGuest []Данные гостей customerCustomer Лицо, совершающее бронирование languagestring Язык ответа (например ru, en)
Опциональные параметры# Параметр Тип Описание partnerManagerPartnerManager Менеджер партнера upsellsUpsell []Дополнительные услуги (ранний заезд, поздний выезд) bookingTagsstring[] Теги бронирования для категоризации
Структура PartnerInfo# Поле Тип Обязательно Описание partnerOrderIdstring Да Идентификатор заказа в системе партнера commentstring Нет Комментарий к заказу amountSellB2b2cMoney Да Сумма продажи B2B2C
Структура PaymentInfo# Поле Тип Обязательно Описание typestring Да Тип оплаты (hotel, online)
Структура PartnerManager# Поле Тип Обязательно Описание firstNamestring Нет Имя lastNamestring Нет Фамилия emailstring Да Email phonestring Да Телефон commentstring Нет Комментарий
Как использовать параметры# Минимальное бронирование# 1 {
2 "searchId": "search-xyz789" ,
3 "offerId": "offer-001" ,
4 "language": "ru" ,
5 "partnerInfo": {
6 "partnerOrderId": "ORDER-12345"
7 },
8 "paymentType": {
9 "type": "online"
10 },
11 "guests": [
12 {
13 "firstName": "IVAN" ,
14 "lastName": "IVANOV" ,
15 "citizenship": "RU" ,
16 "isChild": false ,
17 "gender": "Male"
18 }
19 ],
20 "customer": {
21 "firstName": "Ivan" ,
22 "lastName": "Ivanov" ,
23 "email": "ivan@example.com" ,
24 "phone": "+79991234567"
25 }
26 } Бронирование с несколькими гостями# 1 {
2 "searchId": "search-xyz789" ,
3 "offerId": "offer-001" ,
4 "language": "ru" ,
5 "partnerInfo": {
6 "partnerOrderId": "ORDER-12345" ,
7 "comment": "VIP клиент"
8 },
9 "paymentType": {
10 "type": "online"
11 },
12 "guests": [
13 {
14 "firstName": "IVAN" ,
15 "lastName": "IVANOV" ,
16 "citizenship": "RU" ,
17 "isChild": false ,
18 "gender": "male"
19 },
20 {
21 "firstName": "MARIA" ,
22 "lastName": "IVANOVA" ,
23 "citizenship": "RU" ,
24 "isChild": false ,
25 "gender": "female"
26 },
27 {
28 "firstName": "PETR" ,
29 "lastName": "IVANOV" ,
30 "citizenship": "RU" ,
31 "isChild": true ,
32 "age": 7,
33 "gender": "Male"
34 }
35 ],
36 "customer": {
37 "firstName": "Ivan" ,
38 "lastName": "Ivanov" ,
39 "email": "ivan@example.com" ,
40 "phone": "+79991234567"
41 }
42 } Бронирование с дополнительными услугами# Опции раннего заезда и позднего выезда возвращаются в поле prices.earlyCheckin / prices.lateCheckout ответа /hotels/hotel_pricing или /hotels/offer_pricing. Передайте id выбранной опции и желаемое время.
1 {
2 "searchId": "search-xyz789" ,
3 "offerId": "offer-001" ,
4 "language": "ru" ,
5 "partnerInfo": {
6 "partnerOrderId": "ORDER-12345"
7 },
8 "paymentType": {
9 "type": "online"
10 },
11 "guests": [
12 {
13 "firstName": "IVAN" ,
14 "lastName": "IVANOV" ,
15 "citizenship": "RU" ,
16 "isChild": false ,
17 "gender": "Male"
18 }
19 ],
20 "customer": {
21 "firstName": "Ivan" ,
22 "lastName": "Ivanov" ,
23 "email": "ivan@example.com" ,
24 "phone": "+79991234567"
25 },
26 "upsells": [
27 {
28 "type": "earlyCheckin" ,
29 "checkinTime": "10:00"
30 },
31 {
32 "type": "late_checkout" ,
33 "checkoutTime": "18:00"
34 }
35 ]
36 } С указанием менеджера# 1 {
2 "partnerManager": {
3 "firstName": "Olga" ,
4 "lastName": "Petrova" ,
5 "email": "olga@travel-agency.com" ,
6 "phone": "+79997654321"
7 }
8 } Примеры запросов# Минимальный запрос# curl 1 curl -X POST https://test.travel-api.ru/hotels/create_booking \
2 -H "Authorization: Bearer YOUR_TOKEN" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "searchId": "search-xyz789",
6 "offerId": "offer-001",
7 "language": "ru",
8 "partnerInfo": {
9 "partnerOrderId": "ORDER-12345"
10 },
11 "paymentType": {
12 "type": "online"
13 },
14 "guests": [
15 {
16 "firstName": "IVAN",
17 "lastName": "IVANOV",
18 "citizenship": "RU",
19 "isChild": false,
20 "gender": "Male"
21 }
22 ],
23 "customer": {
24 "firstName": "Ivan",
25 "lastName": "Ivanov",
26 "email": "ivan@example.com",
27 "phone": "+79991234567"
28 }
29 }' C# 1 var request = new CreateBookingRequest
2 {
3 SearchId = "search-xyz789" ,
4 OfferId = "offer-001" ,
5 Language = "ru" ,
6 PartnerInfo = new PartnerInfo
7 {
8 PartnerOrderId = "ORDER-12345"
9 },
10 PaymentType = new PaymentInfo
11 {
12 Type = "online"
13 },
14 Guests = new []
15 {
16 new BookingGuest
17 {
18 FirstName = "IVAN" ,
19 LastName = "IVANOV" ,
20 Citizenship = "RU" ,
21 IsChild = false ,
22 Gender = "Male"
23 }
24 },
25 Customer = new Customer
26 {
27 FirstName = "Ivan" ,
28 LastName = "Ivanov" ,
29 Email = "ivan@example.com" ,
30 Phone = "+79991234567"
31 }
32 };
33
34 var response = await httpClient.PostAsJsonAsync(
35 "https://test.travel-api.ru/hotels/create_booking" ,
36 request
37 );
38
39 var result = await response.Content.ReadFromJsonAsync<CreateBookingResponse>();