Технические требования к организации взаимодействия веб-систем Яндекса и Заказчика для предоставления Заказчиком Материалов
1. Схема взаимодействия при получении Материалов
Общая схема работы:
- Пользователь запрашивает у сервиса Яндекс.Авиабилеты варианты перелетов между двумя пунктами на выбранную дату.
- Сервис Яндекс.Авиабилеты отправляет запрос (GET или POST) к веб-сайту Заказчика в соответствии с форматом:
https://api.aviapartner.ru/search? [departure = <IATA либо Сирена-код пункта отправления>] &[arrival = <IATA либо Сирена-код пункта прибытия>]&[date_forward = <дата вылета «туда»>] &[date_backward = <дата вылета «обратно»>] &[class = <класс обслуживания>] &[adults =<количество взрослых пассажиров>] &[children = <количество детей>]&[infants = <количество младенцев>]
|
|
Код аэропорта отправления. Указывается код IATA или код в системе «Сирена-Трэвел». |
|
|
Код аэропорта прибытия. Указывается код IATA или код в системе «Сирена-Трэвел». |
|
|
Дата прямого вылета в формате YYYY-MM-DD. |
|
|
Дата обратного вылета в формате YYYY-MM-DD. Может отсутствовать. |
|
|
Буквенное обозначение класса обслуживания. Допустимые значения:
|
|
|
Количество пассажиров старше 12 лет. |
|
|
Количество пассажиров от 2 до 12 лет (включительно). Может отсутствовать. |
|
|
Количество детей до 2 лет (включительно). Может отсутствовать. |
Пример запроса
https://api.aviapartner.ru/search?departure=MOW&arrival=AGP&date_forward=2017-03-19&date_backward=2017-03-26&class=E&adults=2&children=0&infants=1"
Веб-сайт Заказчика возвращает информацию о доступных предложениях в формате XML, JSON. В ответе содержится один или несколько объектов variant, в каждом указаны сведения о перелете: ссылка для покупки билета на веб-сайте Заказчика и информация о рейсах «туда» (объект route_forward) и «обратно» (объект route_backward). Перелет может состоять из нескольких рейсов.
Для каждого варианта передаются:
- цена , в том числе для каждого типа пассажиров, если это применимо,
- валюта,
- URL для перенаправления на сайт,
- количество оставшихся мест,
- возвратность (по сегменту с самими строгими условиями).
Остальные параметры заполняются для каждого сегмента.
*Поля обязательные к заполнению и наличию в ответе.
|
Поле |
Описание |
Формат |
|
|
URL для перенаправления пользователя на сайт Заказчика. Обработка URL на стороне Заказчика должна происходить в соответствии с п. 3.4 RFC 2396 – Uniform Resource Identifiers (URI): Generic Syntax. |
Строка |
|
|
Цена варианта. |
Объект (Price) |
|
|
Информация о рейсе «туда». |
Список объектов (Segment) |
|
|
Информация о рейсе «обратно». Отсутствует, если в запросе не была указана дата обратного вылета. |
Список объектов (Segment) |
|
|
Цена варианта в данном классе обслуживания. |
Число |
|
|
Валюта. |
Строка |
|
|
В том числе стоимость для пассажиров старше 12 лет. |
Число |
|
|
В том числе стоимость для детей от 2 до 12 лет (включительно). Отсутствует, если в запросе не было указано количество детей. |
Число |
|
|
В том числе стоимость для детей до 2 лет (включительно). Отсутствует, если в запросе не было указано количество младенцев. |
Число |
|
|
Возможность вернуть билет. |
Логический |
|
|
Количество оставшихся мест по данной цене |
Число |
|
Segment |
||
|
|
Номер рейса. |
Строка |
|
|
Код авиакомпании, которая продает билет. Указывается код IATA или код в системе «Сирена-Трэвел». |
Строка |
|
|
Перевозчик, выполняющий перевозку. |
Строка |
|
|
Номер рейса оперирующего перевозчика. |
Строка |
|
|
Код перевозчика, выписывающего билет. |
Строка |
|
|
Название семейства тарифов. |
Строка |
|
|
Название авиакомпании. |
Строка |
|
|
Код аэропорта вылета. Указывается код IATA или код в системе «Сирена-Трэвел». |
Строка |
|
|
Код аэропорта прибытия. Указывается код IATA или код в системе «Сирена-Трэвел». |
Строка |
|
|
Дата и время отправления (местные). |
Строка |
|
|
Дата и время прибытия (местные). |
Строка |
|
|
Код тарифа. |
Строка |
|
|
Обозначение класса обслуживания. |
Строка |
|
|
Признак чартерного тарифа. |
Логический |
|
|
Техническая остановка |
Логический |
|
|
Признак выписки отдельных билетов для рейсов в перелете. |
Логический |
|
|
Включен ли провоз сдаваемого багажа в стоимость билета.Объект, включающий поля с информацией о багаже. |
Объект (Baggage) |
|
|
Объект, включающий поля с информацией о допустимых размерах ручной клади. |
Объект (Baggage) |
|
Baggage |
||
|
|
Наличие возможности без дополнительной оплаты провезти сдаваемый багаж. |
Логический |
|
|
Число мест багажа. |
Число |
|
|
Вес багажа. |
Число |
|
|
Единицы изменения веса. |
Строка |
|
|
Объект, включающий поля с информацией о допустимых размерах багажа. |
Объект (Dimensions) |
|
Dimensions |
||
|
|
Длина. |
Число |
|
|
Ширина. |
Число |
|
|
Высота. |
Число |
|
|
Сумма длины, ширины и высоты. |
Число |
Вся указанная выше информация о перелете обязательно должна быть включена в ответ (в соответствии с типами пассажиров в запросе).
Пример ответа
{
"variant": [
{
"url": "https://api.aviapartner.ru/redirect?key=gdfkj435lkfg",
"price": {
"value": 123.45,
"currency": "RUB",
"tariff_adult": 80.00,
"tariff_child": 40.00,
"tariff_infant": 3.45,
"refundable": false,
"seats_remaining": 9
},
"route_forward": [
{
"flight_number": "BL 123",
"carrier_name": "Jetstar Pacific AirLines",
"marketing_carrier": "BL",
"operating_flight_number": "OH 123",
"operating_carrier": "OH",
"validating_carrier": 'OH',
"departure_airport_code": "DME",
"arrival_airport_code": "SVO",
"departure_datetime": "2011-04-01 18:12",
"arrival_datetime": "2011-04-01 21:20",
"fare_code": "WFLOWCS",
"fare_family": "FLEX ECONOMY",
"class": "E",
"charter": false,
"selfconnect": false,
"technical_stop": false,
"luggage": {
"included": true,
"pieces": 1,
"weight": 20,
"units": "kg",
"dimensions": {
"length": 110,
"width": 90,
"height": 50,
"sum": 213
}
},
"hand_luggage": {
"included": true,
"pieces": 1,
"weight": 7,
"units": "kg",
"dimensions": {
"length": 55,
"width": 35,
"height": 20
}
}
},
{...}
],
"route_backward": [
{...}
]
},
{...}
]
}
4. Предложения, которые будут получены после 120 секунды с начала опроса, не будут сохранены в кэше Яндекс.Авиабилетов и при повторном поиске будут запрошены снова.
5. Заказчики, использующие систему «Сирена-Трэвел», должны отвечать на запросы с внутренними кодами, которые используются в этой системе.
6. Заказчик обязуется использовать защищенный протокол передачи данных https на своем сайте при переходе с сервиса Яндекс.Авиабилеты.
7. Заказчик обязуется информировать Яндекс о переходе на новый протокол предоставления информации не менее чем за тридцать календарных дней до начала перехода.
8. Отчет о количестве и общей стоимости приобретенных Пользователями авиабилетов в результате их перехода с веб-страниц сервиса Яндекс.Авиабилеты, который предоставляется Заказчиком согласно пункту 3.3.9. Договора, должен передаваться в форматах xls/xlsx, либо csv.
9. Для ограничения количества запросов можно задать допустимые региональные направления. Для этого на указанный в договоре адрес пришлите ссылку на csv-файл с парами кодов городов/аэропортов (по одной в каждой строке с разделителем «;»). Допускается использовать как коды IATA, так и коды системы «Сирена-Трэвел». Каждая пара разрешает опрос в обе стороны.
Файл должен быть сохранен в кодировке UTF-8.
Пример задания допустимых направлений
- ATH;CMB
- ATH;DXB
- GBB;GOI
- GPA;HAV
- HER;KLX
- KVD;LCA
- LIS;LLK
- LWN;MAD
- MLE;NAP
- СХТ;RHO
- СХТ;СПТ
Данные выгружаются раз в сутки.
10. В url страницы партнера при переходе с сервиса Авиабилеты Яндекс передает get-параметр marker, который представляет из себя уникальную строку длиной до 200 символов.
Партнер обязан предоставить отчет, который содержит следующую информацию о бронированиях, совершенных пользователями после перехода с сервисов Яндекса:
Обязательные параметры:
|
[ |
Значение переданного в диплинке get-параметра |
|
[ |
Значение, которое выставляется в зависимости от типа события. Допустимые значения:
refunded – оформлен возврат оплаченного заказа |
|
[ |
Номер заказа или аналог, например PNR |
|
[ |
Цена заказа |
|
[ |
Валюта заказа, в ISO4217 |
|
[ |
Дата создания заказа |
|
[ |
Дата изменения статуса заказа |
Дополнительные параметры:
|
[ |
Типа перелета: возможные параметры OW или RT. |
|
[ |
Пункт отправления |
|
[ |
Пункт назначения |
|
[ |
Количество взрослых пассажиров в заказе |
- Через API. Детали реализации согласуются с Яндекс.Авиабилетами по электронной почте.
- o Файл в формате XML/XLS/CSV/JSON, выложенный в закрытый раздел сайта партнера, который автоматически обновляется не реже, чем раз в час и содержит данные за последние 62 дня.
2. Схема взаимодействия при переходе к продаже
Переход с сервиса Яндекс.Авиабилеты на веб-сайт Заказчика осуществляется следующим образом:
1. Пользователь выбирает предложение и нажимает на ссылку (стоимость авиационного билета, указанную в валюте, переданной Заказчиком), на сервисе Яндекс. Авиабилеты.
2. Пользователь перенаправляется на веб-сайт Заказчика по адресу, полученному в ответе в поле url блока variant для данного предложения.
3. Пользователь на веб-сайте Заказчика начинает процесс бронирования:
a. на веб-сайте Заказчика должна осуществляться автоматическая проверка возможности забронировать предложение, которое пользователь выбрал на сервисе Яндекс.Авиабилеты (проверка должна осуществляться перед тем, как пользователь на веб-сайте Заказчика начинает процесс бронирования);
b. если выбранный Пользователем вариант бронирования не доступен, то пользователю должно показываться соответствующее информационное сообщение и должны предлагаться другие варианты, соответствующие параметрам запроса пользователя;
i. Url для перенаправления пользователя на сайт партнера должен сохранять работоспособность согласно логике, описанной в пункте 3.2 в течение 30 часов.
c. если выбранный Пользователем вариант бронирования доступен, то должна отображаться страница с подробной информацией о выбранном варианте бронирования: аэропорты и города вылета и прилета, даты, длительность полёта , длительность и города пересадок при их наличии, информация об услугах включенных в тариф, количество и состав пассажиров, стоимость и предложение ввести данные о пассажирах для бронирования. На странице также должны соблюдаться следующие условия:
- Стоимость авиационного билета при оплате банковской картой в сети Интернет, отображаемая на странице, должна полностью соответствовать стоимости, предоставленной Заказчиком в Материалах, а также располагаться на видном месте и визуально отделена от других возможных предлагаемых Заказчиком вариантов.
- В описании выбранного варианта бронирования должна содержаться исчерпывающая информация о применимых к этому билету нормах провоза багажа и ручной клади. Эти данные должны быть доступны на этой же странице и не могут находиться в скрытых по умолчанию блоках.
- При переходе на сайт партнера с мобильных устройств пользователь также должен видеть полную информацию о перелете. В пределах одного экрана должны быть видны следующие параметры: цена варианта, аэропорты прилета и вылета, информация о багаже и пересадках, длительность перелета и пересадок, информация о чартерности рейса и, при необходимости, предупреждение о том, что в пределах одного варианта будет выписано несколько билетов. Страница должна быть адаптирована под размер экрана мобильного устройства и предоставлять удобный интерфейс бронирования билетов.
Если на перелет будет выписано более одного билета, на странице бронирования необходимо указать следующую информацию:
- Количество билетов которые будут выписаны при покупке этого варианта;
- При отмене или задержке одного из рейсов в таком перелёте билеты на другие рейсы могут не подлежать замене;
- На пересадке багаж должен быть получен самостоятельно и при необходимости зарегистрирован заново.
Надпись должна находиться в пределах видимости, без необходимости дополнительного клика.
d. В течение всего процесса бронирования цена, показанная при переходе с Яндекс.Авиабилетов, должна быть явно выделена, все дополнительные услуги должны быть в явном виде отключены. Также запрещается использовать всплывающие окна, отдельные страницы со списком услуг и аналогичные инструменты, прерывающие процесс бронирования билета.
4. В случае если Пользователь на веб-сайте Заказчика начинает процесс бронирования и по выбранному варианту требуется подтверждение от Заказчика, должны выполняться следующие требования:
- Для авиационных билетов, требующих ручного подтверждения должен осуществляться автоматический ответ с указанием сроков окончательного подтверждения.
- Срок окончательного ответа о наличии выбранного предложения и его стоимости должен составлять не более 1 рабочего дня.
- Пользователь должен быть проинформирован в случае, если предложение не подтверждается.
Заказчик обязуется не передавать материалы в ответ на запрос сервис Яндекс.Авиабилеты в следующих случаях:
a. если параметры, описанные в настоящем документе, при получении Материалов, отображается на веб-сайте Заказчика не полностью;
b. если веб-сайт Заказчика по адресу, полученному в ответе согласно п. 2. Схемы взаимодействия при переходе к продаже не загружается и выдает сообщения об ошибке;
c. при любых технических и иных проблемах, не позволяющих Пользователю перейти на страницу с подробной информации о выбранном варианте (согласно п.3.3 настоящего документа) и завершить процесс покупки на веб-сайте Заказчика.
В случае обнаружения технических проблем Заказчик обязан немедленно известить представителей сервиса Яндекс.Авиабилеты по почте avia-info@yandex-team.ru. При поступлении запроса от Яндекс.Авиабилетов Заказчик обязуется в течение трех часов ответить на обращение и в кратчайшие сроки предоставить всю техническую информацию, необходимую для диагностики и решения проблем.
Далее процесс покупки должен продолжаться согласно технологии, принятой на веб-сайте Заказчика.
Дата публикации 01.10.2021 г.
Дата вступления в силу: 01.10.2021 г.
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/06102020/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/03062019/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/26102018/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/21082018/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/24072018/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/22062018/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/21072017/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/01032017/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/11112016/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/06102016/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/25072016/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/05042016/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/25012016/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/15122015/
Предыдущая версия документа: https://yandex.ru/legal/airplane_timetable_requirements/25052015/