Technical Requirements for Interaction Between Yandex and Customer Online Systems for the Provision of Materials by the Customer
1. Interaction When Materials are Received
General scheme:
The User requests flight options between two points for the chosen date from Yandex.Flights.
Yandex.Flights sends a request (GET or POST) to the Customer's website in accordance with the format:
https://api.aviapartner.ru/search? [departure = <IATA or Sirena code of the point of departure>] &[arrival = <IATA or Sirena code of the point of arrival>] &[date_forward = <date of departure “to”>] &[date_backward = <date of departure “from”>] &[class = <class of service>] &[adults = <number of adult passengers>] &[children = <number of children>] &[infants = <number of infants>]
departure
Departure airport code. IATA or Sirena-Travel code. arrival
Arrival airport code. IATA or Sirena-Travel code. date_forward
Outbound flight date: YYYY-MM-DD. date_backward
Return flight date: YYYY-MM-DD. May be omitted. class
Letter symbol of service class. Acceptable values:
- First class — R, F, P, A.
- Business class — J, C, D, I, Z.
- Economy class — W, S, Y, B, H, K, L, M, N, Q, T, V, X, E, U, G, O.
adults
Number of passengers over the age of 12. children
Number of passengers aged 2 to 12 (inclusive). May be omitted. infants
Number of children under the age of 2 (inclusive). May be omitted. departure
Departure airport code. IATA or Sirena-Travel code. arrival
Arrival airport code. IATA or Sirena-Travel code. date_forward
Outbound flight date: YYYY-MM-DD. date_backward
Return flight date: YYYY-MM-DD. May be omitted. class
Letter symbol of service class. Acceptable values:
- First class — R, F, P, A.
- Business class — J, C, D, I, Z.
- Economy class — W, S, Y, B, H, K, L, M, N, Q, T, V, X, E, U, G, O.
adults
Number of passengers over the age of 12. children
Number of passengers aged 2 to 12 (inclusive). May be omitted. infants
Number of children under the age of 2 (inclusive). May be omitted. Request examplehttps://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
The Customer's website returns XML with information on available offers. The response contains one or more
variant
, objects, each specifying trip details: a link to buy a ticket on the Customer's website and information on flights “to” (route_forward
object) and “from” (route_backward
object). A trip can include multiple flights.The
route_forward
androute_backward
include thefare
object, which describes fares and luggage allowances.Field Description Format url
A URL to redirect the user to the Customer's website. The Customer must process the URL in conformance with clause 3.4 in RFC 2396 – Uniform Resource Identifiers (URI): Generic Syntax. String route_forward
Information on the flight “to”. Object route_backward
Information on the flight “from”. Omitted if the request did not specify the date of the return flight. Object route_code
Flight number. String company_code
Airline code. IATA or Sirena-Travel code. String company_name
Airline name. String departure_airport_code
Departure airport code. IATA or Sirena-Travel code. String arrival_airport_code
Arrival airport code. IATA or Sirena-Travel code. String departure_datetime
Departure date and time (local). String arrival_datetime
Arrival date and time (local). String route_time
Time en-route in minutes. Numeric farecode
Fare code. String tariff_adult
Fare for passengers over the age of 12. Numeric tariff_child
Fare for passengers aged 2 to 12 (inclusive). Omitted if the request did not specify the number of children. Numeric tariff_infant
Fare for children under the age of 2 (inclusive). Omitted if the request did not specify the number of infants. Numeric fare
Fare and luggage information. Object value
Minimum price in this service class. Numeric class
Letter symbol of service class. String charter
Indicates charter fare. Boolean block
Indicates block fare. Boolean selfconnect
Indicates separate tickets issued for flights in a trip. Boolean currency
Currency. String luggage
Whether the transportation of checked luggage is included in the ticket price. Boolean pieces_of_luggage
Number of pieces of luggage included in the price. Numeric luggage_weight
Maximum weight of luggage included in the price. Numeric luggage_dimensions
Maximum dimensions of luggage included in the price. Object length
Length. Numeric width
Width. Numeric height
Height. Numeric sum
Total of length, width and height. Numeric Field Description Format url
A URL to redirect the user to the Customer's website. The Customer must process the URL in conformance with clause 3.4 in RFC 2396 – Uniform Resource Identifiers (URI): Generic Syntax. String route_forward
Information on the flight “to”. Object route_backward
Information on the flight “from”. Omitted if the request did not specify the date of the return flight. Object route_code
Flight number. String company_code
Airline code. IATA or Sirena-Travel code. String company_name
Airline name. String departure_airport_code
Departure airport code. IATA or Sirena-Travel code. String arrival_airport_code
Arrival airport code. IATA or Sirena-Travel code. String departure_datetime
Departure date and time (local). String arrival_datetime
Arrival date and time (local). String route_time
Time en-route in minutes. Numeric farecode
Fare code. String tariff_adult
Fare for passengers over the age of 12. Numeric tariff_child
Fare for passengers aged 2 to 12 (inclusive). Omitted if the request did not specify the number of children. Numeric tariff_infant
Fare for children under the age of 2 (inclusive). Omitted if the request did not specify the number of infants. Numeric fare
Fare and luggage information. Object value
Minimum price in this service class. Numeric class
Letter symbol of service class. String charter
Indicates charter fare. Boolean block
Indicates block fare. Boolean selfconnect
Indicates separate tickets issued for flights in a trip. Boolean currency
Currency. String luggage
Whether the transportation of checked luggage is included in the ticket price. Boolean pieces_of_luggage
Number of pieces of luggage included in the price. Numeric luggage_weight
Maximum weight of luggage included in the price. Numeric luggage_dimensions
Maximum dimensions of luggage included in the price. Object length
Length. Numeric width
Width. Numeric height
Height. Numeric sum
Total of length, width and height. Numeric All the above flight information must be included in the response (as per types of passengers in the request).
Response example{ "variant" : [ { "url": "https://api.aviapartner.ru/redirect?key=gdfkj435lkfg", { "route_forward": [ { "route_code": "0123АБ", "company_code": "BL", "company_name": "Blah-air", "departure_airport_code": "DME", "arrival_airport_code": "SVO", "departure_datetime": "2011-04-01 18:12", "arrival_datetime": "2011-04-01 21:20", "route_time = "123", "farecode": "WFLOWCS", "tariff_adult": "80.00", "tariff_child": "60.00", "tariff_infant": "3.45", "fare": { "value: "123.45", "class: "E", "charter: "false", "block": "false", "selfconnect": "false", "currency": "RUB", "luggage: "true", "pieces_of_luggage: 1, "luggage_weight": 20, "luggage_dimensions: { "length: 90, "width: 28, "height: 40, "sum: 158 } } }, {...}, {...} ] }, { "route_backward": [{...}, {...}, {...}] }, { } }, {...}, {...}, ... ] }
The Customer's offers received after 20 seconds of waiting or after the User manually interrupted the waiting are not included in the list of flight options for this user. Offers received after waiting from 20 seconds to 2 minutes are saved in the cache and displayed again if the user repeats the search, without sending another request to the Customer (until the cache expires).
Customers who use the Sirena-Travel system shall respond to requests using the internal codes from this system.
The Customer undertakes to use the HTTPS secure data transfer protocol on its website for redirecting Users from Yandex.Flights.
If the Customer adopts a new information delivery protocol, said Customer undertakes to notify Yandex of the change at least thirty calendar days in advance.
The quantity and total price of air tickets that Users purchased by clicking through from the Yandex.Flights website, which is reported by the Customer as per clause 3.3.9 of the Agreement, shall be provided in XSL/XSLX or CSV format.
A list of acceptable regional routes may be defined in order to limit the number of requests. To do so, send a link to a CSV file with city/airport code pairs to the email address specified in the agreement (one pair per line, using a semicolon “;” to separate the codes). Either IATA codes or Sirena-Travel codes are acceptable. Each pair allows queries in both directions.
The file shall be UTF-8 encoded.
- ATH;CMB
- ATH;DXB
- GBB;GOI
- GPA;HAV
- HER;KLX
- KVD;LCA
- LIS;LLK
- LWN;MAD
- MLE;NAP
- СХТ;RHO
- СХТ;СПТ
Example of defining acceptable destinationsThe data are uploaded once a day.
Yandex appends a GET parameter
marker
, which is a unique string up to 200 symbols long, to the partner page URL when redirecting from Yandex.Flights.When booking/purchasing/canceling a ticket, the request
https://avia.yandex.ru/order/pixel/[marker]/[status]
shall be made to Yandex.Flights, where:marker
is the value of the GET parameter that Yandex.Flights transmitted when redirecting to the partner.
status
is a value set depending on the event type. Acceptable values:
Booking
Paid
Cancel
marker
is the value of the GET parameter that Yandex.Flights transmitted when redirecting to the partner.
status
is a value set depending on the event type. Acceptable values:
Booking
Paid
Cancel
Possible types of requests to Yandex.Flights:
- 1. CORS request from JavaScript when the event is completed;
- 2. HTML code to insert in a page after the user made a purchase
<img src="https://avia.yandex.ru/order/pixel/[marker]/[status]">
; - 3. Request from the partner's server after the event is completed.
Any of these requests will inform Yandex.Flights that the user with the transmitted marker parameter booked, purchased or canceled an air ticket on the partner's website.
2. Interaction When Sale is Initiated
Redirecting from Yandex.Flights to the Customer's website shall be conducted as follows:
The user selects an offer and clicks on the link (the price of the air ticket provided by the Customer) on the Yandex.Flights service.
The User is redirected to the Customer's website at the address received in the URL field of the variant for this offer in the response.
The user begins the booking process on the Customer’s website:
The offers selected by the user at Yandex.Flights shall be automatically checked for availability on the Customer's website (such check shall be performed before the User starts booking on the Customer’s website);
If an option selected by the User is not available, then the relevant information message shall be displayed to the User, and the User shall be offered other options corresponding to the user’s request parameters;
Deeplink redirection URL has to stay functional as provided in 3.2 for no less than 30 hours.
If the option selected by the User is available, then a page shall be displayed containing detailed information about the selected option: airports and cities of departure and arrival, dates, flight time, number and duration of connections (if any), other information regarding services included in the fare, number and type of passengers, ticket price and fields to enter passenger information for booking purposes. The following requirements shall also be met for the page:
If payment is made online using a bank card, the price of the air ticket displayed on the page shall exactly correspond to the price specified by the Customer in the Materials, and it must be displayed prominently and visually separated from other available options offered by the Customer;
The description of the option selected shall contain comprehensive information on checked and carry-on baggage allowances applicable to this air ticket. This data shall be available on the same page and cannot be placed in blocks that are hidden by default.
In case there are several tickets to be issued for one itinerary, the following information should be clearly displayed on the booking page:
How many tickets are to be issued;
Tickets may not be exchanged if the original flight is missed and/or delayed;
Checked luggage should be retrieved and checked in again in the connecting airport.
This information should be immediately visible on the booking page without any further clicks.
- If the Customer offers any additional services to the User on the Customer's website along with air tickets, the Customer undertakes to enable the User to select such additional services on its website independently. All additional services shall be offered before the details of the User’s bank card are entered. No additional services shall be added to the air ticket cost until consent of the User is received.
If the User begins the booking process on the Customer’s website and the selected option requires the Customer’s confirmation, the following requirements shall be met:
For air tickets that require manual confirmation, an automatic response shall be given specifying the terms of the final confirmation.
The timeframe for the final response on the availability of the selected offer and its cost shall not exceed 1 business day.
The User shall be informed if the offer is not confirmed.
The Customer undertakes not to transfer the Materials in response to the request from Yandex.Flights in the following cases:
If the parameters described herein are not fully displayed on the Customer’s website in obtaining the Materials;
If the Customer’s website does not open as specified in the response according to clause 2 of Interaction When Sale is Initiated, and an error message is displayed;
If there are any technical or other issues preventing the User from accessing the page with the selected option details (in accordance with clause 3.3 hereof) and completing the purchase process on the Customer website.
In the event that any technical problems are detected, the Customer shall immediately inform representatives of Yandex.Flights at avia-info@yandex-team.ru. When requested by Yandex.Flights, the Customer undertakes to respond within three hours and promptly provide any and all technical information needed to diagnose and solve the problems.
In that case, the purchase process shall continue in accordance with the technology used on the Customer website.
Date of publication: 24.07.2018 г.
Effective Date: 24.07.2018 г.
Previous version of the document: https://yandex.com/legal/airplane_timetable_requirements_ch/22062018
Previous version of the document: https://yandex.com/legal/airplane_timetable_requirements_ch/21072017
Previous version of the document: https://yandex.com/legal/airplane_timetable_requirements_ch/11112016
Previous version of the document: https://yandex.com/legal/airplane_timetable_requirements_ch/06102016
Previous version of the document: https://yandex.com/legal/airplane_timetable_requirements_ch/25072016
Previous version of the document: https://yandex.com/legal/airplane_timetable_requirements_ch/15032016