Параметры запроса#
Детальное описание всех параметров для запроса /hotels/create_booking.
Обязательные параметры#
| Параметр | Тип | Описание |
|---|
searchId | string | Идентификатор из /hotels/hotel_pricing или /hotels/offer_pricing |
offerId | string | Идентификатор выбранного предложения |
partnerInfo | PartnerInfo | Информация о заказе партнера |
paymentType | PaymentInfo | Информация об оплате |
guests | BookingGuest[] | Данные гостей |
customer | Customer | Контактное лицо |
language | string | Язык ответа (например ru, en) |
Опциональные параметры#
| Параметр | Тип | Описание |
|---|
partnerManager | PartnerManager | Менеджер партнера |
upsells | Upsell[] | Дополнительные услуги (ранний заезд, поздний выезд) |
bookingTags | string[] | Теги бронирования для категоризации |
Структура PartnerInfo#
| Поле | Тип | Обязательно | Описание |
|---|
partnerOrderId | string | Да | Идентификатор заказа в системе партнера |
comment | string | Нет | Комментарий к заказу |
amountSellB2b2c | Money | Нет | Сумма продажи B2B2C |
Структура PaymentInfo#
| Поле | Тип | Обязательно | Описание |
|---|
type | string | Да | Тип оплаты (hotel, online) |
Структура PartnerManager#
| Поле | Тип | Обязательно | Описание |
|---|
firstName | string | Нет | Имя |
lastName | string | Нет | Фамилия |
email | string | Нет | Email |
phone | string | Нет | Телефон |
comment | string | Нет | Комментарий |
Как использовать параметры#
Минимальное бронирование#
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 "isChild": false
16 }
17 ],
18 "customer": {
19 "firstName": "Ivan",
20 "lastName": "Ivanov",
21 "email": "ivan@example.com",
22 "phone": "+79991234567"
23 }
24}
Бронирование с несколькими гостями#
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 "isChild": true,
31 "age": 7
32 }
33 ],
34 "customer": {
35 "firstName": "Ivan",
36 "lastName": "Ivanov",
37 "email": "ivan@example.com",
38 "phone": "+79991234567"
39 }
40}
Бронирование с ранним заездом#
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 "isChild": false
16 }
17 ],
18 "customer": {
19 "firstName": "Ivan",
20 "lastName": "Ivanov",
21 "email": "ivan@example.com",
22 "phone": "+79991234567"
23 },
24 "upsells": [
25 {
26 "type": "early_checkin",
27 "checkinTime": "10:00"
28 }
29 ]
30}
С указанием менеджера#
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 "isChild": false
19 }
20 ],
21 "customer": {
22 "firstName": "Ivan",
23 "lastName": "Ivanov",
24 "email": "ivan@example.com",
25 "phone": "+79991234567"
26 }
27 }'
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 IsChild = false
21 }
22 },
23 Customer = new Customer
24 {
25 FirstName = "Ivan",
26 LastName = "Ivanov",
27 Email = "ivan@example.com",
28 Phone = "+79991234567"
29 }
30};
31
32var response = await httpClient.PostAsJsonAsync(
33 "https://test.travel-api.ru/hotels/create_booking",
34 request
35);
36
37var result = await response.Content.ReadFromJsonAsync<CreateBookingResponse>();