Авиабилеты
- Для каких сайтов
- Что добавляет в результаты поиска
- Как настроить
- Схема взаимодействия при переходе к продаже
- Условия
Для каких сайтов
Авиакомпании, турагентства, агенты по продаже авиабилетов.
Что добавляет в результаты поиска
Содержит варианты перелета с ценами на интересующие пользователя даты. Пользователь может указать требования к пересадкам, изменить направления и даты, уточнить наличие багажа и количество пассажиров, выбрать авиакомпанию, не покидая страницу поисковой выдачи, а затем перейти к покупке билета на сайте партнера.
Пример отображения (дизайн может меняться):
Как настроить
Когда пользователь указывает в Поиске начальную и конечную точку перелета, дату (опционально), название сайта или сервиса (опционально), на котором предполагает купить билеты, Яндекс отправляет GET-запрос к веб-сайту партнера в соответствии с форматом:
https://api.aviapartner.ru/search?
[departure = <IATA либо Сирена-код пункта отправления>]
&[arrival = <IATA либо Сирена-код пункта прибытия>]
&[date_forward = <дата вылета «туда»>]
&[date_backward = <дата вылета «обратно»>]
&[class = <класс обслуживания>]
&[adults =<количество взрослых пассажиров>]
&[children = <количество детей>]
&[infants = <количество младенцев>]
departure | Код аэропорта отправления. Указывается код IATA или код в системе «Сирена-Трэвел». |
arrival | Код аэропорта прибытия. Указывается код IATA или код в системе «Сирена-Трэвел». |
date_forward | Дата прямого вылета в формате YYYY-MM-DD. |
date_backward | Дата обратного вылета в формате YYYY-MM-DD. Может отсутствовать. |
class | Буквенное обозначение класса обслуживания. Допустимые значения:
|
adults | Количество пассажиров старше 12 лет. |
children | Количество пассажиров от 2 до 12 лет (включительно). Может отсутствовать. |
infants | Количество детей до 2 лет (включительно). Может отсутствовать. |
departure | Код аэропорта отправления. Указывается код IATA или код в системе «Сирена-Трэвел». |
arrival | Код аэропорта прибытия. Указывается код IATA или код в системе «Сирена-Трэвел». |
date_forward | Дата прямого вылета в формате YYYY-MM-DD. |
date_backward | Дата обратного вылета в формате YYYY-MM-DD. Может отсутствовать. |
class | Буквенное обозначение класса обслуживания. Допустимые значения:
|
adults | Количество пассажиров старше 12 лет. |
children | Количество пассажиров от 2 до 12 лет (включительно). Может отсутствовать. |
infants | Количество детей до 2 лет (включительно). Может отсутствовать. |
Пример запроса:
https://api.aviapartner.ru/search?departure=MOW&arrival=AGP&date_forward=2022-03-19&date_backward=2022-03-26&class=ECONOMY&adults=2&children=0&infants=1"
Веб-сайт партнера возвращает информацию о доступных предложениях в формате JSON. Поддерживается HTTP basic access authorization. В ответе содержится один или несколько объектов variant, в каждом указаны сведения о перелете: ссылка для покупки билета на веб-сайте партнера и информация о рейсах «туда» (объект route_forward) и «обратно» (объект route_backward). Перелет может состоять из нескольких рейсов.
Для каждого варианта передаются:
- цена, в том числе для каждого типа пассажиров, если это применимо;
- валюта;
- URL для перенаправления на сайт;
- количество оставшихся мест;
- возвратность (по сегменту с самими строгими условиями).
Остальные параметры заполняются для каждого сегмента.
* Поля, которые должны обязательно быть заполнены и присутствовать в ответе.
Поле | Описание | Формат |
---|---|---|
url* | URL для перенаправления пользователя на сайт партнера. Обработка URL на стороне партнера должна происходить в соответствии с п. 3.4 RFC 2396 – Uniform Resource Identifiers (URI): Generic Syntax. Максимальный размер 1024 байт. | Строка |
price* | Цена варианта. | Объект (Price) |
route_forward* | Информация о рейсе «туда». | Список объектов (Segment) |
route_backward* | Информация о рейсе «обратно». Отсутствует, если в запросе не была указана дата обратного вылета. | Список объектов (Segment) |
value* | Цена варианта в данном классе обслуживания. | Число |
currency* | Валюта. | Строка |
tariff_adult | В том числе стоимость для пассажиров старше 12 лет. | Число |
tariff_child | В том числе стоимость для детей от 2 до 12 лет (включительно). Отсутствует, если в запросе не было указано количество детей. | Число |
tariff_infant | В том числе стоимость для детей до 2 лет (включительно). Отсутствует, если в запросе не было указано количество младенцев. | Число |
refundable | Возможность вернуть билет. | Логический |
seats_remaining | Количество оставшихся мест по данной цене. | Число |
Segment | ||
flight_number* | Номер рейса. | Строка |
marketing_carrier* | Код авиакомпании, которая продает билет. Указывается код IATA или код в системе «Сирена-Трэвел». | Строка |
operating_carrier* | Перевозчик, выполняющий перевозку. | Строка |
operating_flight_number* | Номер рейса оперирующего перевозчика. | Строка |
validating_carrier | Код перевозчика, выписывающего билет. | Строка |
fare_family | Название семейства тарифов. | Строка |
carrier_name | Название авиакомпании. | Строка |
departure_airport_code* | Код аэропорта вылета. Указывается код IATA или код в системе «Сирена-Трэвел». | Строка |
arrival_airport_code* | Код аэропорта прибытия. Указывается код IATA или код в системе «Сирена-Трэвел». | Строка |
departure_datetime* | Дата и время отправления (местные). | Строка |
arrival_datetime* | Дата и время прибытия (местные). | Строка |
fare_code* | Код тарифа. | Строка |
class* | Обозначение класса обслуживания. | Строка |
charter* | Признак чартерного тарифа. | Логический |
technical_stop* | Техническая остановка. | Логический |
selfconnect* | Признак выписки отдельных билетов для рейсов в перелете. | Логический |
luggage* | Включен ли провоз сдаваемого багажа в стоимость билета. Объект, включающий поля с информацией о багаже. | Логический Объект (Baggage) |
hand_luggage* | Объект, включающий поля с информацией о допустимых размерах ручной клади. | Объект (Baggage) |
Baggage | ||
included* | Наличие возможности без дополнительной оплаты провезти сдаваемый багаж. | Логический |
pieces* | Число мест багажа. | Число |
weight* | Вес багажа. | Число |
units* | Единицы изменения веса. | Строка |
dimensions | Объект, включающий поля с информацией о допустимых размерах багажа. | Объект (Dimensions) |
Dimensions | ||
length | Длина. | Число |
width | Ширина. | Число |
height | Высота. | Число |
sum | Сумма длины, ширины и высоты. | Число |
Поле | Описание | Формат |
---|---|---|
url* | URL для перенаправления пользователя на сайт партнера. Обработка URL на стороне партнера должна происходить в соответствии с п. 3.4 RFC 2396 – Uniform Resource Identifiers (URI): Generic Syntax. Максимальный размер 1024 байт. | Строка |
price* | Цена варианта. | Объект (Price) |
route_forward* | Информация о рейсе «туда». | Список объектов (Segment) |
route_backward* | Информация о рейсе «обратно». Отсутствует, если в запросе не была указана дата обратного вылета. | Список объектов (Segment) |
value* | Цена варианта в данном классе обслуживания. | Число |
currency* | Валюта. | Строка |
tariff_adult | В том числе стоимость для пассажиров старше 12 лет. | Число |
tariff_child | В том числе стоимость для детей от 2 до 12 лет (включительно). Отсутствует, если в запросе не было указано количество детей. | Число |
tariff_infant | В том числе стоимость для детей до 2 лет (включительно). Отсутствует, если в запросе не было указано количество младенцев. | Число |
refundable | Возможность вернуть билет. | Логический |
seats_remaining | Количество оставшихся мест по данной цене. | Число |
Segment | ||
flight_number* | Номер рейса. | Строка |
marketing_carrier* | Код авиакомпании, которая продает билет. Указывается код IATA или код в системе «Сирена-Трэвел». | Строка |
operating_carrier* | Перевозчик, выполняющий перевозку. | Строка |
operating_flight_number* | Номер рейса оперирующего перевозчика. | Строка |
validating_carrier | Код перевозчика, выписывающего билет. | Строка |
fare_family | Название семейства тарифов. | Строка |
carrier_name | Название авиакомпании. | Строка |
departure_airport_code* | Код аэропорта вылета. Указывается код IATA или код в системе «Сирена-Трэвел». | Строка |
arrival_airport_code* | Код аэропорта прибытия. Указывается код IATA или код в системе «Сирена-Трэвел». | Строка |
departure_datetime* | Дата и время отправления (местные). | Строка |
arrival_datetime* | Дата и время прибытия (местные). | Строка |
fare_code* | Код тарифа. | Строка |
class* | Обозначение класса обслуживания. | Строка |
charter* | Признак чартерного тарифа. | Логический |
technical_stop* | Техническая остановка. | Логический |
selfconnect* | Признак выписки отдельных билетов для рейсов в перелете. | Логический |
luggage* | Включен ли провоз сдаваемого багажа в стоимость билета. Объект, включающий поля с информацией о багаже. | Логический Объект (Baggage) |
hand_luggage* | Объект, включающий поля с информацией о допустимых размерах ручной клади. | Объект (Baggage) |
Baggage | ||
included* | Наличие возможности без дополнительной оплаты провезти сдаваемый багаж. | Логический |
pieces* | Число мест багажа. | Число |
weight* | Вес багажа. | Число |
units* | Единицы изменения веса. | Строка |
dimensions | Объект, включающий поля с информацией о допустимых размерах багажа. | Объект (Dimensions) |
Dimensions | ||
length | Длина. | Число |
width | Ширина. | Число |
height | Высота. | Число |
sum | Сумма длины, ширины и высоты. | Число |
Вся указанная выше информация о перелете обязательно должна быть включена в ответ (в соответствии с типами пассажиров в запросе).
{
"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": [
{...}
]
},
{...}
]
}
Обратите внимание, что взаимодействие по договору осуществляется на платной основе. Чтобы узнать подробности, оставьте заявку.
Схема взаимодействия при переходе к продаже
Переход с универсального поиска Яндекса на веб-сайт партнера осуществляется следующим образом:
- Пользователь выбирает предложение и нажимает на ссылку для перехода на страницу соответствующего варианта на сайте партнера.
- Пользователь перенаправляется на веб-сайт партнера по адресу, полученному в ответе в поле url блока variant для данного предложения.
- Пользователь на веб-сайте партнера начинает процесс бронирования:
- На веб-сайте партнера должна осуществляться автоматическая проверка возможности забронировать предложение, которое пользователь выбрал на поиске Яндекса (проверка должна осуществляться перед тем, как пользователь на веб-сайте партнера начинает процесс бронирования).
- Если выбранный Пользователем вариант бронирования не доступен, то пользователю должно показываться соответствующее информационное сообщение и должны предлагаться другие варианты, соответствующие параметрам запроса пользователя.
- URL для перенаправления пользователя на сайт партнера должен сохранять работоспособность согласно логике, описанной в пункте 3.2, в течение 30 часов.
- Если выбранный пользователем вариант бронирования доступен, то должна отображаться страница с подробной информацией о выбранном варианте бронирования: аэропорты и города вылета и прилета, даты, длительность полёта , длительность и города пересадок при их наличии, информация об услугах включенных в тариф, количество и состав пассажиров, стоимость и предложение ввести данные о пассажирах для бронирования. На странице также должны соблюдаться следующие условия:
- Стоимость авиационного билета при оплате банковской картой в сети Интернет, отображаемая на странице, должна полностью соответствовать стоимости, предоставленной партнером в Материалах, а также располагаться на видном месте и визуально отделена от других возможных предлагаемых партнером вариантов.
- В описании выбранного варианта бронирования должна содержаться исчерпывающая информация о применимых к этому билету нормах провоза багажа и ручной клади. Эти данные должны быть доступны на этой же странице и не могут находиться в скрытых по умолчанию блоках.
- При переходе на сайт партнера с мобильных устройств пользователь также должен видеть полную информацию о перелете. В пределах одного экрана должны быть видны следующие параметры: цена варианта, аэропорты прилета и вылета, информация о багаже и пересадках, длительность перелета и пересадок, информация о чартерности рейса и, при необходимости, предупреждение о том, что в пределах одного варианта будет выписано несколько билетов. Страница должна быть адаптирована под размер экрана мобильного устройства и предоставлять удобный интерфейс бронирования билетов.
Если на перелет будет выписано более одного билета, на странице бронирования необходимо указать следующую информацию:Надпись должна находиться в пределах видимости, без необходимости дополнительного клика.- Количество билетов которые будут выписаны при покупке этого варианта.
- При отмене или задержке одного из рейсов в таком перелёте билеты на другие рейсы могут не подлежать замене.
- На пересадке багаж должен быть получен самостоятельно и при необходимости зарегистрирован заново.
- В течение всего процесса бронирования цена, показанная при переходе с поиска Яндекса, должна быть явно выделена, все дополнительные услуги должны быть в явном виде отключены. Также запрещается использовать всплывающие окна, отдельные страницы со списком услуг и аналогичные инструменты, прерывающие процесс бронирования билета.
- В случае если пользователь на веб-сайте партнера начинает процесс бронирования и по выбранному варианту требуется подтверждение от партнера, должны выполняться следующие требования:
- Для авиационных билетов, требующих ручного подтверждения, должен осуществляться автоматический ответ с указанием сроков окончательного подтверждения.
- Срок окончательного ответа о наличии выбранного предложения и его стоимости должен составлять не более 1 рабочего дня.
- Пользователь должен быть проинформирован в случае, если предложение не подтверждается.
Партнер обязуется не передавать материалы в ответ на запрос поиска Яндекса в следующих случаях:
- если параметры, описанные в настоящем документе, при получении Материалов, отображается на веб-сайте партнера не полностью;
- если веб-сайт партнера по адресу, полученному в ответе согласно п. 2 Схемы взаимодействия при переходе к продаже, не загружается и выдает сообщения об ошибке;
- при любых технических и иных проблемах, не позволяющих Пользователю перейти на страницу с подробной информацией о выбранном варианте (согласно п.3.3 настоящего документа) и завершить процесс покупки на веб-сайте партнера.
В случае обнаружения технических проблем партнер обязан немедленно известить представителей Яндекса по электронной почте. При поступлении запроса от поиска Яндекса партнер обязуется в течение трех часов ответить на обращение и в кратчайшие сроки предоставить всю техническую информацию, необходимую для диагностики и решения проблем.
Далее процесс покупки должен продолжаться согласно технологии, принятой на веб-сайте партнера.
Условия
- Сайт авиакомпании или онлайн-агентства должен позволять бронировать авиабилеты с моментальным подтверждением.
- Предложения, которые будут получены после 120 секунды с начала опроса, не будут сохранены в кэше Яндекса и при повторном поиске будут запрошены снова.
- Партнеры, использующие систему «Сирена-Трэвел», должны отвечать на запросы с внутренними кодами, которые используются в этой системе.
- Партнер обязуется использовать защищенный протокол передачи данных HTTPS на своем сайте при переходе из результатов поиска Яндекса.
- Партнер обязуется информировать Яндекс о переходе на новый протокол предоставления информации (и изменениях в текущем) не менее чем за тридцать календарных дней до начала перехода.
- Для ограничения количества запросов можно задать допустимые региональные направления. Для этого на указанный в договоре адрес пришлите ссылку на CSV-файл с парами кодов городов/аэропортов и дней недели (по одной в каждой строке с разделителем «;»). Допускается использовать как коды IATA, так и коды системы «Сирена-Трэвел». Каждая пара разрешает опрос в обе стороны.
- Файл должен быть сохранен в кодировке UTF-8.
- Пример задания допустимых направлений:
ATH;CMB;1,3,5 ATH;DXB;1,2,3,4,5,6,7 СХТ;RHO;2,4 СХТ;СПТ;5
Данные выгружаются раз в сутки.
Партнер обязан предоставить отчет, который содержит следующую информацию о бронированиях, совершенных пользователями после перехода из результатов поиска Яндекса.
Отчет о продажах должен быть доступен к получению через API с минимальной глубиной запроса в 60 дней.
К хосту отправляется запрос в формате JSON вида:https://{HOST}/api/statistics?date1=2021-05-14&date2=2021-05-14&partner=yandex&password=
Пример ответа{ "result":{ "isSuccess":true, "msgs":null }, "bookings":{ "booking":[ { "id":"XXXXXXXXXX", "pnr":"XXXXXX", "created_at":"2021-05-14 23:25:43", "marker":"123-234-234-234232", "price":10000.0, "currency":"RUB", "status":"paid", "segment":{ "flight":[ { "operatingCarrier":"XX", "number":"XXX", "departure":"AER", "departureDate":"2022-05-26", "departureTime":"12:00", "arrival":"VKO", "arrivalDate":"2021-05-26", "arrivalTime":"14:00", "cabin":"ST" } ] }, "adults":1, "children":0, "infants":0 }, { "id":"REFID124", "pnr":"BGDDR2", "created_at":"2022-01-14 20:46:53", "marker":"6745-3434-3434-23423", "price":180.0, "currency":"EUR", "status":"refunded", "segment":{ "flight":[ { "operatingCarrier":"XX", "number":"XXX", "departure":"AER", "departureDate":"2022-08-21", "departureTime":"12:00", "arrival":"VKO", "arrivalDate":"2021-08-21", "arrivalTime":"13:50", "cabin":"ST" } ] }, "adults":1, "children":1, "infants":0 } ] } }
В URL страницы партнера при переходе из результатов поиска Яндекса необходимо передавать GET-параметр marker, который представляет из себя уникальную строку длиной до 200 символов.
Обязательные параметры:
Параметр Описание [marker] Значение переданного в диплинке get-параметра. [status] Значение, которое выставляется в зависимости от типа события.
Допустимые значения:- paid — заказ оплачен;
- booked — заказ забронирован, но не оплачен;
- cancel — бронь отменена;
- refunded — оформлен возврат оплаченного заказа.
[id] Номер заказа или аналог, например PNR. [price]
Цена заказа. [currency]
Валюта заказа, в ISO4217. [created_at] Дата создания заказа. [changed_at] Дата изменения статуса заказа.
Параметр Описание [marker] Значение переданного в диплинке get-параметра. [status] Значение, которое выставляется в зависимости от типа события.
Допустимые значения:- paid — заказ оплачен;
- booked — заказ забронирован, но не оплачен;
- cancel — бронь отменена;
- refunded — оформлен возврат оплаченного заказа.
[id] Номер заказа или аналог, например PNR. [price]
Цена заказа. [currency]
Валюта заказа, в ISO4217. [created_at] Дата создания заказа. [changed_at] Дата изменения статуса заказа.
Дополнительные параметры:
Парамтер Описание [type] Тип перелета. Возможные параметры: OW или RT. [from] Пункт отправления. [to] Пункт назначения. Парамтер Описание [type] Тип перелета. Возможные параметры: OW или RT. [from] Пункт отправления. [to] Пункт назначения. Если заказ изменился, необходимо в текущем заказе поменять сумму на изменившуюся, оставив изначальный ID и дату создания.
Данные из отчета используются для взаиморасчетов по CPA-модели и ранжирования предложений в тематическом блоке.
Сайт несет ответственность за корректность данных, соответствие предложений тематике, а также за распространение незаконной информации. В случае нарушения условий Яндекс имеет право не использовать данные сайта для изменения представления ответа в поисковой выдаче. См. подробные условия.
Если вы хотите обсудить интеграцию или у вас есть вопросы по текущему подключению, оставьте заявку в форме ниже.
Дата обновления страницы: 11.03.2022.
- Обновлены условия подключения.
- Обновлено описания формата данных.
- Добавлена Схема взаимодействия при переходе к продаже.