Главная страница / Бронирование
Конечная точка:
POST /api/v1/offers/{id}/booking
Параметры строки запроса:
Параметры тела запроса:
Пример запроса
/api/v1/offers/AExtfokS0hOv3wFdbiSuACSenrXNeWy1/booking
{
"payer_name":"Viktor Petrov",
"payer_email":"developer@bookhara.com",
"payer_tel":"+380652147502",
"passengers":[
{
"first_name":"Alla",
"last_name":"Petrova",
"middle_name":" ",
"age":"adt",
"birthdate":"1983-01-06",
"gender":"F",
"citizenship":"UZ",
"tel":"+980652147502",
"doc_type":"A",
"doc_number":"AS76123646",
"doc_expire":"2023-05-14"
},
...
]
}
Пример ответа:
{
"request_id":"gLLEfxGC3Rd8M3xeALmlF8LIOIau92ylzLPh2hvM",
"created_at":"2021-04-12 15:15",
"message":"The request was completed successfully.",
"data":{
"id":"A5kucCKZjhN9iZyKE117307Cqqz2jOEw", // Идентификатор бронирования. Используется при запросе информации по бронированию, запросе правил тарифа, оплате.
"type": "AV", // Тип оффера.
"status":"booked", // Статус бронирования.
"created":"2021-04-12 15:15:41", // Дата и время создания, UTC.
"expire":"2021-04-15 15:05:00", // Дата и время автоотмены, UTC.
"refund_availability": true, // Флаг наличия возврата.
"is_charter": false, // Является ли оффер чартерным перелетом.
"flight_type": "regular", // Тип оффера. Возможные варианты указаны в справочнике.
"price":{
"has_changed":false, // Будет true, если стоимость бронирования изменилась.
"prev_amount":null, // Стоимость до последнего изменения.
"amount":3248609, // Общая стоимость бронирования.
"currency":"UZS" // Валюта, в которой указана общая стоимость, а также стоимость для каждого пассажира в блоке passengers.
},
"payer":{
"name":"Viktor Petrov", // Имя плательщика.
"email":"developer@bookhara.com", // Email плательщика.
"tel":"+380652147502" // Номера телефона плательщика.
},
"passengers":[ // Данные пассажиров.
{
"key":"48304083", // Идентификатор пассажира.
"first_name":"Alla", // Имя пассажира.
"last_name":"Petrova", // Фамилия пассажира.
"middle_name":null, // Отчество пассажира.
"email":"developer@bookhara.com", // Email пассажира.
"tel":"+998565004522", // Номера телефона пассажира.
"gender":"F", // Пол пассажира.
"birthdate":"1983-01-06", // Дата рождения пассажира, в формате YYYY-MM-DD.
"citizenship":"UZ", // Гражданство пассажира.
"age":"adt", // Возрастная группа пассажира.
"document":{ // Данные документа для оформления бронирования
"type":"A", // Тип документа.
"number":"AS76123646", // Номер документа.
"expire":"2026-05-14" // Срок действия документа, в формате YYYY-MM-DD.
},
"price":3248609,
"extended_price":{
"has_changed":false, // Будет true, если стоимость бронирования изменилась.
"prev_amount":null, // Стоимость до последнего изменения.
"amount":3248609, // Стоимость для пассажира.
},
"tickets":[ // Билеты пассажира.
{
"pnr":"0MSBMG", // PNR.
"airline_locators":[ // Локатор авиакомпании, используется для регистрации на рейс.
"TK\/UNESYV"
],
"ticket_number":null, // Номер билета. Будет назначен после оплаты.
"carrier":{
"code":"HY",
"title":"Uzbekistan Airways"
},
"provider":"TUA"
},
...
]
},
...
],
"directions":[ // Направления перелетов.
{
"departure":{
"datetime":"2021-09-03 08:50:00", // Дата и время вылета. Время местное.
"airport":{
"code":"TAS", // IATA код аэропорта.
"title":"Ислам Каримов", // Название аэропорта.
"title_intl":{
"uz":null,
"en":"Islom Karimov",
"ru":"Ислам Каримов"
},
"city":"Ташкент", // Город.
"city_intl":{
"uz":"Toshkent",
"en":"Tashkent",
"ru":"Ташкент"
},
"country":{ // Страна.
"code":"UZ",
"title":"Узбекистан",
"title_intl":{
"uz":null,
"en":"Uzbekistan",
"ru":"Узбекистан"
}
}
}
},
"arrival":{
"datetime":"2021-09-03 12:05:00",
"airport":{
"code":"IST",
"title":"Новый",
"title_intl":{
"uz":null,
"en":"Istanbul",
"ru":"Новый"
},
"city":"Стамбул",
"city_intl":{
"uz":"Istanbul",
"en":"Istanbul",
"ru":"Стамбул"
},
"country":{
"code":"TR",
"title":"Турция",
"title_intl":{
"uz":null,
"en":"Turkey",
"ru":"Турция"
}
}
}
},
"travel_time":315, // Время в пути, в минутах.
"transfer_time":null, // Время ожидания пересадки, в минутах.
"route_duration":315,
"segments":[ // Информация о рейсах оффера.
{
"departure":{
"datetime":"2021-09-03 08:50:00", // Дата и время вылета. Время местное.
"airport":{
"code":"TAS", // IATA код аэропорта.
"title":"Ислам Каримов", // Название аэропорта.
"title_intl":{
"uz":null,
"en":"Islom Karimov",
"ru":"Ислам Каримов"
},
"terminal":"2", // Название или код терминала.
"city":"Ташкент", // Город.
"city_intl":{
"uz":"Toshkent",
"en":"Tashkent",
"ru":"Ташкент"
},
"country":{ // Страна.
"code":"UZ",
"title":"Узбекистан",
"title_intl":{
"uz":null,
"en":"Uzbekistan",
"ru":"Узбекистан"
}
}
}
},
"arrival":{
"datetime":"2021-09-03 12:05:00", // Дата и время прибытия. Время местное.
"airport":{
"code":"IST",
"title":"Новый",
"title_intl":{
"uz":null,
"en":"Istanbul",
"ru":"Новый"
},
"terminal":null,
"city":"Стамбул",
"city_intl":{
"uz":"Istanbul",
"en":"Istanbul",
"ru":"Стамбул"
},
"country":{
"code":"TR",
"title":"Турция",
"title_intl":{
"uz":null,
"en":"Turkey",
"ru":"Турция"
}
}
}
},
"airline":{
"code":"TK", // IATA код авиакомпании-перевозчика.
"title":"Turkish Airlines" // Название авиакомпании-перевозчика.
},
"service_class":"E", // Класс обслуживания.
"flight_number":"369", // Номер рейса.
"travel_time":315, // Время в пути, в минутах.
"transfer_time":null, // Время ожидания пересадки, в минутах.
"aircraft":"Airbus A320-100/200", // Название самолёта, выполняющего рейс.
"refund":true, // Возможность возврата.
"change":true, // Возможность обмена.
"handbags":{ // Информация о ручной клади.
"piece":1, // Количество мест.
"weight":8 // Максимальный вес.
},
"baggage":{ // Информация по багажу.
"piece":1,
"weight":35
},
"comment":"",
"technical_stops":[ // Технические остановки.
{
"airport":{
"code":"SFO",
"title":"San Francisco",
"city":"Сан-Франциско",
"country":"Соединенные Штаты"
},
"arrival_datetime":"2021-08-07 09:20:00",
"departure_datetime":"2021-08-07 09:50:00",
"duration":30 // Длительность остановки, в минутах.
}
],
"information_for_clients":[ // Информация для клиентов.
{
"uz":"Diqqat, loukoster!\nChipta toʼloʼvdan soʼng 4 soat ichida yoziladi.\nChipta umuman yozilmasligi ...",
"en":"Attention, low-cost airline!\nThe ticket will be issued within 4 hours after payment.\nThere is a risk ...",
"ru":"Внимание, лоукостер!\nБилет будет выписан в течение 4-х часов после оплаты.\nЕсть риск ..."
}
]
},
...
]
},
...
],
"information_for_clients":[ // Информация для клиентов.
{
"uz":"Diqqat, loukoster!\nChipta toʼloʼvdan soʼng 4 soat ichida yoziladi.\nChipta umuman yozilmasligi ...",
"en":"Attention, low-cost airline!\nThe ticket will be issued within 4 hours after payment.\nThere is a risk ...",
"ru":"Внимание, лоукостер!\nБилет будет выписан в течение 4-х часов после оплаты.\nЕсть риск ..."
}
]
}
}
Если в ответе приходит ошибка с error_code 100500, 1030, 1031, это означает, что стоимость оффера изменилась, и надо сделать повторный запрос к /api/v1/offers/{id} чтобы получить актуальную стоимость.
Авиакомпании запрещают дублирование бронирований. Для того, чтобы избежать штрафов и автоматических аннулирований всех заказов пассажира, в системе производится проверка на уникальность запрашиваемого бронирования. В случае, если проверка выявит дубль, вернется ошибка с id бронирования, дублем которого является текущий запрос.
{
"request_id":"ErTiap8gh0Ss7cztQHGXKPfnybH25qvkyoEDr6n9",
"created_at":"2023-05-19 09:56",
"error_code":5231, // 5231 — код неоплаченного бронирования, 5232 — код оплаченного или выписанного заказа
"message":"Duplicate booking",
"data":{
"existing_booking_id":"75e8c1ca-aa5a-45c5-bfe4-1d3923605ff1" // id бронирования, дублем которого является текущий запрос
}
}