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

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