Параметры запроса#
Детальное описание всех параметров для запроса /api/avia/seat_book.
Обязательные параметры#
| Параметр | Тип | Описание |
|---|---|---|
bookingId | guid | Идентификатор бронирования (формат UUID) |
seats | Seat[] | Список мест для бронирования (не может быть пустым) |
Структура seats#
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
paxRefId | string | Да | Ссылка на пассажира — значение passengers[].id из ответа pnr_retrieve |
segRefId | string | Да | Ссылка на сегмент — значение itinerary[].segments[].id из ответа pnr_retrieve |
row | integer | Да | Номер ряда, положительное число (например, 13) |
column | string | Да | Буквенное обозначение места — ровно одна латинская буква (например, A) |
Массив seats не может содержать две записи с одинаковой парой (paxRefId, segRefId) — на одного пассажира на одном сегменте допускается не более одного места. Цена места в запросе не указывается: она разрешается сервером из результата предшествующего seat_map.
Как использовать параметры#
Одно место для одного пассажира#
1{
2 "bookingId": "019a1f3e-6c2a-7d4b-9a11-3c5e7f902abc",
3 "seats": [
4 { "paxRefId": "P1", "segRefId": "5b6c7d8e-9f0a-41b2-8c3d-4e5f60718293", "row": 13, "column": "A" }
5 ]
6}Места для нескольких пассажиров на нескольких сегментах#
Для сегмента туда и сегмента обратно указывайте разные segRefId для того же пассажира:
1{
2 "bookingId": "019a1f3e-6c2a-7d4b-9a11-3c5e7f902abc",
3 "seats": [
4 { "paxRefId": "P1", "segRefId": "5b6c7d8e-9f0a-41b2-8c3d-4e5f60718293", "row": 13, "column": "A" },
5 { "paxRefId": "P2", "segRefId": "5b6c7d8e-9f0a-41b2-8c3d-4e5f60718293", "row": 13, "column": "F" },
6 { "paxRefId": "P1", "segRefId": "6c7d8e9f-0a1b-42c3-9d4e-5f6071829304", "row": 14, "column": "C" }
7 ]
8}Примеры запросов#
Минимальный запрос#
1curl -X POST https://test.travelplatform.ru/api/avia/seat_book \
2 -H "Authorization: Bearer YOUR_TOKEN" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "bookingId": "019a1f3e-6c2a-7d4b-9a11-3c5e7f902abc",
6 "seats": [
7 { "paxRefId": "P1", "segRefId": "5b6c7d8e-9f0a-41b2-8c3d-4e5f60718293", "row": 13, "column": "A" }
8 ]
9 }' 1var request = new SeatBookRequest
2{
3 BookingId = Guid.Parse("019a1f3e-6c2a-7d4b-9a11-3c5e7f902abc"),
4 Seats = new[]
5 {
6 new Seat
7 {
8 PaxRefId = "P1",
9 SegRefId = "5b6c7d8e-9f0a-41b2-8c3d-4e5f60718293",
10 Row = 13,
11 Column = "A"
12 }
13 }
14};
15
16var response = await httpClient.PostAsJsonAsync(
17 "https://test.travelplatform.ru/api/avia/seat_book",
18 request
19);
20
21var result = await response.Content.ReadFromJsonAsync<SeatBookResponse>();Запрос на несколько мест#
Развернуть пример
1{
2 "bookingId": "019a1f3e-6c2a-7d4b-9a11-3c5e7f902abc",
3 "seats": [
4 { "paxRefId": "P1", "segRefId": "5b6c7d8e-9f0a-41b2-8c3d-4e5f60718293", "row": 13, "column": "A" },
5 { "paxRefId": "P2", "segRefId": "5b6c7d8e-9f0a-41b2-8c3d-4e5f60718293", "row": 13, "column": "F" }
6 ]
7}Типичные ошибки#
| Код ошибки | Причина | Решение |
|---|---|---|
BOOKING_NOT_FOUND | Бронирование не найдено либо принадлежит другому клиенту | Проверьте bookingId |
SEAT_REF_NOT_FOUND | paxRefId или segRefId не найдены в этом бронировании | Сверьте значения с ответом pnr_retrieve |
SEAT_PRICE_NOT_FOUND_FOR_PAX_TYPE | Для места нет цены применительно к типу пассажира | Выберите другое место через seat_map |
SYSTEM_ERROR | Не удалось получить данные бронирования при разрешении мест | Повторите запрос позднее |
SEAT_INVALID_REQUEST | Не заполнены bookingId, seats, либо paxRefId/segRefId внутри seats[] | HTTP 400. Проверьте состав запроса |
SEAT_INVALID_ROW | Номер ряда должен быть положительным целым числом | HTTP 400. Укажите ряд из ответа seat_map |
SEAT_INVALID_COLUMN | Буква места должна быть одной латинской буквой A-Z | HTTP 400. Укажите место из ответа seat_map |
SEAT_DUPLICATE | У пассажира указано более одного места на одном сегменте | HTTP 400. Оставьте по одному месту на пассажира и сегмент |
VALIDATION_ERROR | Прочие нарушения формата запроса | HTTP 400. Проверьте обязательные поля |
Связанные операции#
- Карта мест — получение доступных мест и их цен перед бронированием
- Получение PNR — источник
paxRefId/segRefIdи итоговых статусов мест