Параметры запроса#

Детальное описание всех параметров для запроса /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}

Примеры запросов#

Минимальный запрос#

 1curl -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  }'
 1var 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
34var response = await httpClient.PostAsJsonAsync(
35    "https://test.travel-api.ru/hotels/create_booking",
36    request
37);
38
39var result = await response.Content.ReadFromJsonAsync<CreateBookingResponse>();