Спецификация метода AvailabilitySearch

Пример вызова


Протокол: HTTP POST
Адресная строка: api/Availability/Execute


Метод апи: Execute
Полный аналог предыдущего метода, но все данные отправляются в теле запроса, также необходимо для запроса установить Content-Type: text/xml

Информация о запросе

Ниже приведены параметры запроса и их краткое описание

Параметры запроса

НазваниеОписаниеТИП
req Объект CommonSearchRequest с параметрами запроса

GET


Описание работы сервиса

Сервис Availability (Поиск по расписанию) - поиск по наличию мест на заданное направление и даты.

Данный метод осуществляет поиск вариантов перелета по заданному маршруту по расписанию.

Возможен поиск в режиме «в одну сторону», «туда-обратно» и «сложный маршрут».

Метод возвращает множество вариантов перелета без информации об их стоимости.

Стоимость каждого варианта можно будет оценить лишь на следующем шаге бизнес-процесса: PriceExact - точный расчет стоимости перелета.

Позиция в диаграмме бизнес-процесса

Ответ на запрос AvailabilitySearch

Общая информация о структуре ответа

Ответ метода AvailabilitySearch содержит в себе 3 узла:

  • Errors - ошибки, произошедшие в процессе выполнения запроса;
  • ReferenceContainer - справочники аэропортов, городов, авиакомпаний и branded fares, присутствующих в ответе;
  • Route - контейнер сегментов;

Availability — бизнес-объект, который используется при поиске перелета по расписанию.

Поиск по расписанию возможен для маршрутов «в одну сторону», «туда и обратно» и «сложный маршрут».

Метод поиска по расписанию (Availability) возвращает множество элементов Availability, каждый из которых представляет собой контейнер данных об одном варианте перелета.

В отличии от контейнера MultiItinerary, который используется при поиске по расписанию, контейнер Availability не содержит данных по расчету тарифа, а только информацию о рейсах и доступных классах бронирования на них.

Контейнер Availability используется только для работы с методом Availability, на дальнейших этапах поиска по расписанию (точный расчет выбранного варианта PriceExact, бронирование Booking, оформление билета Ticketing) используется контейнер MultiItinerary.

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
string Attribute Origin аэропорт вылета (код аэропорта IATA - скачать список с datahub.io) всегда MOW
string Attribute Destination аэропорт прилета (код аэропорта IATA - скачать список с datahub.io) всегда MUC
datetime Attribute Date дата и время вылета всегда 12.12.2017 18:00:00
AvailabilityLeg Element AvailabilityLeg коллекция маршрутов, принадлежащих данному контейнеру всегда -

AvailabilityLeg (Element, входящий в контейнер Availability)


AvailabilityLeg - участок перелета, содержащий один или более рейсов(связанных авиакомпанией на техническом уровне участков перелета от начального до конечного пункта, включая трансферные пункты). Так как не любую пару городов связывает прямое воздушное сообщение (прямые рейсы), то не всегда один участок перелета можно преодолеть одним рейсом. Иногда требуется лететь последовательно двумя или тремя рейсами отдельными прямыми рейсами, чтобы из пункта отправления попасть в пункт назначения. Такие рейсы называют стыковочными, а те пункты (города), где осуществляются пересадки с одного рейса на другой – пунктами пересадки (стыковки), разумеется, пункт прилета первого рейса является пунктом вылета следующего. Стыковочные рейсы образуются независимыми друг от друга прямыми рейсами, в общем случае это рейсы разных авиакомпаний, каждый из них имеет свой номер, свой тип самолета и прочие характеристики. Стыковки бывают как в рамках одного аэропорта, так и с переездом в другой аэропорт того же города.

Например, из Москвы до Сиднея (Австралия) нет прямого рейса. Поэтому можно лететь, например, со стыковкой во Франкфурте:

  • SU 109 SVO D FRA 2 2125 2240 E0/319 Аэрофлот Москва - Франкфурт
  • QF 006 FRA 2 SYD 1 2350 0510+2E1/744 Qantas Франкфурт – Сидней.

Стыковки строятся автоматически системами ГДС по специальным алгоритмам. При этом проверяется так называемое MCT (minimum connecting time, минимальное время стыковки) – время, требующееся для осуществления пересадки с рейса на рейс. В ГДС достаточно указать дату, начальный и конечный пункт участка перелета – и она подберет стыковки. Однако перелет стыковочными рейсами используется не только в том случае, если между начальным и конечным пунктом нет прямых рейсов. Довольно часто перелет стыковочными рейсами стоит дешевле прямого рейса, а иногда он получается удобнее по времени вылета/прилета и т.п. Не нужно путать стыковочные (пересадочные) пункты с пунктами отправления/назначения сегментов перелета. В терминах нашей системы участки (сегменты) задаются пользователем, и на этапе задания маршрута он не должен(кроме тех случаев, когда пассажир указывает конкретную точку пересадки по своей инициативе) задумываться о том, какие пересадки пассажиру потребуется совершить, чтобы попасть из пункта отправления каждого участка в пункт назначения. Если пассажир хочет лететь из Москвы в Сидней, значит, у него маршрут OW, состоящий из 1 участка перелета: Москва – Сидней. То, что на участке Москва – Сидней пассажир делает стыковку во Франкфурте, не значит, что у него 2 участка (сегмента) перелета. В терминах ГДС сегментом маршрута называется каждый прямой рейс маршрута. Соответственно, для ГДС в маршруте Москва – Сидней будет 2 сегмента: Москва – Франкфурт и Франкфурт – Сидней.

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
uint Attribute Key уникальный идентификатор группы участков всегда 3460159847
int Attribute id_System система бронирования - идентификатор GDS, из которой получен данный участок всегда 3
int Attribute DurationMinutes длительность полета в минутах 2 190
AvailabilityFlight Element AvailabilityFlight сегмент перелета (конкретный рейс) в данном маршруте всегда, если бронь не отменена -

AvailabilityFlight (Element, входящий в контейнер AvailabilityLeg)


AvailabilityFlight - описание сегмента перелета (конкретного рейса) в составе AvailabilityLeg с указанием авиа перевозчика, тарифа, дат и времени, а так же аэропорта вылета и прилета, класса обслуживания и статуса подтверждения с локатором авиакомпании.

Дает нам полную информацию о сегменте перелета, а так же статус его подтверждения.

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
uint Attribute Key уникальный идентификатор рейса всегда 1583579537
string Attribute Airline код авиакомпании IATA - скачать список с openflights.org
маркетинговый перевозчик
всегда SU
string Attribute OperatingAirline оперирующий перевозчик всегда SU
int Attribute Number номер рейса всегда 2320
string Attribute Origin аэропорт вылета (код аэропорта IATA - скачать список с datahub.io) всегда SVO
string Attribute OriginTerminal терминал в пункте отправления всегда, если в пункте отправления есть терминалы D
string Attribute Destination аэропорт прилета (код аэропорта IATA - скачать список с datahub.io) всегда MUC
string Attribute DestinationTerminal терминал в пункте прибытия всегда, если в пункте прибытия есть терминалы 1
datetime Attribute DepartureDate дата и время вылета всегда 18.12.2017 8:05:00
datetime Attribute ArrivalDate дата и время прилета всегда 18.12.2017 9:15:00
string Attribute AirplaneCode код самолета - Квалификатор воздушных судов всегда 320
string Attribute Status статус рейса всегда HK
int Attribute NumOfStops количество промежуточных посадок всегда 0
RBD Element RBD список кодов класса бронирования (часто бывает первой буквой FareName) и наличие всегда -

RBD (Element, входящий в контейнер AvailabilityFlight)


RBD — код класса бронирования (часто бывает первой буквой кода тарифа FareName).

По каждому рейсу маршрута метод поиска по расписанию Availability в контейнере Availability/AvailabilityLeg/Flight возвращает все классы бронирования, которые есть на рейсе с указанием количества мест, доступных для одновременного бронирования.

Если для класса бронирования, скажем, Y, кол-во доступных мест равно 7, то это не значит, что их на рейсе именно семь. Авиакомпании ограничивают показ доступных мест по классам числами от 1 до 9. Допустим, если для какого-то класса максимально возможное кол-во мест для показа 9, а реально их доступно 20, то система покажет на этот класс 9 доступных мест. А если реально доступных мест на этот класс станет 6, то система так и покажет 6.

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
string Attribute например, Y буква кода семейства тарифа (Branded Fare) всегда Y="7"
string Attribute например, 7 количество мест по данному тарифу всегда Y="7"

ReferenceContainer - справочники авиакомпаний, городов, аэропортов и семейств тарифов.

Структура ответа

  • Airlines(ReferenceAirline) - список авиакомпаний, каждая из которых присутствует хотя бы в одном из рейсов в ответе;
    • Rus - название авиакомпании на русском языке (некоторые названия не переводятся и совпадают с английским)
    • En - название авиакомпании на английском языке
    • Code - код авиакомпании IATA - скачать список с openflights.org
  • Airports(ReferenceAirport) - список аэропортов, каждый из которых является пунктом вылета или прилета хотя бы в одном из рейсов в ответе;
    • Rus - название аэропорта на русском языке (некоторые названия не переводятся и совпадают с английским)
    • En - название аэропорта на английском языке
    • Code - код аэропорта IATA - скачать список с datahub.io
    • id_City - идентификатор города, в котором расположен аэропорт, см. ReferenceCity
  • Cities(ReferenceCity) - список городв, в которых находятся аэропорты из пункта выше.
    • Rus - название города на русском (некоторые названия не переводятся и совпадают с английским)
    • En - название города на английском
    • Code - код города IATA - скачать список с openflights.org
    • Country - код страны ISO 3166-2 - скачать список с openflights.org
    • id_City - идентификатор города
    • CountryName - сведения о стране, в которой находится город
      • Rus - название страны на русском
      • En - название страны на английском
  • Families(FareFamily) - список семейств тарифов, которые представленны в ответе;
    • Name - название семейства
    • NameLatin - название семейства на английском
    • AirlineCode - код авиакомпании IATA - скачать список с openflights.org
    • FareType - код класса обслуживания семейства
    • Description - описание семейства, раскрывающее условия его применения
    • DescriptionLatin - описание семейства на английском, раскрывающее условия его применения
    • Services(FareFamilyServiceDetails) - перечень услуг, которые могут быть доступны или недоступны при выполнении перелета по тарифу из семейства;
      • id_FareFamilyService - идентификатор услуги
      • Description - описание услуги
      • DescriptionLatin - описание услуги на английском
      • Price - стоимость услуги
      • IsIncluded - доступна услуга или нет
      • Name - название услуги
      • NameLatin - название услуги на английском
    • Relations(FareFamilyGDSRelation) - перечень кодов, которыми семейство обозначаетс�� у разных поставщиков (GDS - см. система бронирования);
      • id_System - идентификатор GDS, для которого указан код
      • Code - код семейства

Пример ответа

<?xml version="1.0" encoding="utf-8" ?>
<ReferenceContainer>
  <Airlines>
    <ReferenceAirline Rus="Lufthansa" En="Lufthansa" Code="LH"/>
    <ReferenceAirline Rus="Swiss" En="Swiss" Code="LX"/>
    <ReferenceAirline Rus="Helvetic Airways" En="Helvetic Airways" Code="2L"/>
    <ReferenceAirline Rus="Polish Airlines" En="LOT" Code="LO"/>
    <ReferenceAirline Rus="Austrian" En="Austrian Airlines" Code="OS"/>
    <ReferenceAirline Rus="Finnair" En="Finnair" Code="AY"/>
    <ReferenceAirline Rus="Аэрофлот" En="Aeroflot" Code="SU"/>
    <ReferenceAirline Rus="Air France" En="Air France" Code="AF"/>
    <ReferenceAirline Rus="S7 Airlines" En="S7 Airlines" Code="S7"/>
    <ReferenceAirline Rus="Klm Royal Dutch Airlines" En="KLM" Code="KL"/>
    <ReferenceAirline Rus="Turkish Airlines " En="Turkish Airlines" Code="TK"/>
    <ReferenceAirline Rus="ЮТэйр" En="Utair" Code="UT"/>
    <ReferenceAirline Rus="Air Baltic" En="AirBaltic" Code="BT"/>
    <ReferenceAirline Rus="Alitalia" En="Alitalia" Code="AZ"/>
  </Airlines>
  <Airports>
    <ReferenceAirport Rus="Домодедово" En="Domodedovo" Code="DME" id_City="660"/>
    <ReferenceAirport Rus="Мюнхен" En="Munich" Code="MUC" id_City="929"/>
    <ReferenceAirport Rus="Цюрих" En="Zurich" Code="ZRH" id_City="1009"/>
    <ReferenceAirport Rus="Франкфурт-на-Майне" En="Frankfurt" Code="FRA" id_City="898"/>
    <ReferenceAirport Rus="Шереметьево" En="Sheremetyevo" Code="SVO" id_City="660"/>
    <ReferenceAirport Rus="Варшава" En="Warsaw" Code="WAW" id_City="657"/>
    <ReferenceAirport Rus="Вена" En="Vienna" Code="VIE" id_City="656"/>
    <ReferenceAirport Rus="Хельсинки" En="Helsinki" Code="HEL" id_City="923"/>
    <ReferenceAirport Rus="Шарль Де Голь" En="Charles De Gaulle" Code="CDG" id_City="967"/>
    <ReferenceAirport Rus="Амстердам" En="Amsterdam" Code="AMS" id_City="833"/>
    <ReferenceAirport Rus="Внуково" En="Vnukovo" Code="VKO" id_City="660"/>
    <ReferenceAirport Rus="Стамбул" En="Istanbul" Code="IST" id_City="655"/>
    <ReferenceAirport Rus="Рига" En="Riga" Code="RIX" id_City="767"/>
    <ReferenceAirport Rus="Фьюмичино" En="Fiumicino" Code="FCO" id_City="957"/>
  </Airports>
  <Cities>
    <ReferenceCity Rus="Москва" En="Moscow" Code="MOW" Country="RU" id_City="660">
      <CountryName Rus="Россия" En="Russia"/>
    </ReferenceCity>
    <ReferenceCity Rus="Мюнхен" En="Munich" Code="MUC" Country="DE" id_City="929">
      <CountryName Rus="Германия" En="Germany"/>
    </ReferenceCity>
    <ReferenceCity Rus="Цюрих" En="Zurich" Code="ZRH" Country="CH" id_City="1009">
      <CountryName Rus="Швейцария" En="Switzerland"/>
    </ReferenceCity>
    <ReferenceCity Rus="Франкфурт-на-Майне" En="Frankfurt" Code="FRA" Country="DE" id_City="898">
      <CountryName Rus="Германия" En="Germany"/>
    </ReferenceCity>
    <ReferenceCity Rus="Варшава" En="Warsaw" Code="WAW" Country="PL" id_City="657">
      <CountryName Rus="Польша" En="Poland"/>
    </ReferenceCity>
    <ReferenceCity Rus="Вена" En="Vienna" Code="VIE" Country="AT" id_City="656">
      <CountryName Rus="Австрия" En="Austria"/>
    </ReferenceCity>
    <ReferenceCity Rus="Хельсинки" En="Helsinki" Code="HEL" Country="FI" id_City="923">
      <CountryName Rus="Финляндия" En="Finland"/>
    </ReferenceCity>
    <ReferenceCity Rus="Париж" En="Paris" Code="PAR" Country="FR" id_City="967">
      <CountryName Rus="Франция" En="France"/>
    </ReferenceCity>
    <ReferenceCity Rus="Амстердам" En="Amsterdam" Code="AMS" Country="NL" id_City="833">
      <CountryName Rus="Нидерланды" En="Netherlands"/>
    </ReferenceCity>
    <ReferenceCity Rus="Стамбул" En="Istanbul" Code="IST" Country="TR" id_City="655">
      <CountryName Rus="Турция" En="Turkey"/>
    </ReferenceCity>
    <ReferenceCity Rus="Рига" En="Riga" Code="RIX" Country="LV" id_City="767">
      <CountryName Rus="Латвия" En="Latvia"/>
    </ReferenceCity>
    <ReferenceCity Rus="Рим" En="Rome" Code="ROM" Country="IT" id_City="957">
      <CountryName Rus="Италия" En="Italy"/>
    </ReferenceCity>
  </Cities>
  <Families>
    <FareFamily id_FareFamily="174" Name="BUSINESS SAVER" NameLatin="BUSINESS SAVER" AirlineCode="LH" FareType="C">
      <Description>
        Тариф BUSINESS SAVER/LH
        Meal(BUSINESS CLASS FOOD AND BEV) : доступно
      </Description>
      <DescriptionLatin>
        Fare family BUSINESS SAVER/LH
        Meal(BUSINESS CLASS FOOD AND BEV) : included
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15597" id_FareFamilyService="9" id_FareFamily="174" Description="BUSINESS CLASS FOOD AND BEV" DescriptionLatin="BUSINESS CLASS FOOD AND BEV" Price="" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="125" id_FareFamily="174" id_System="3" Code="SAVER"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="175" Name="BUSINESS SAVER" NameLatin="BUSINESS SAVER" AirlineCode="LX" FareType="C">
      <Description>
        Тариф BUSINESS SAVER/LX
        Meal(BUSINESS CLASS FOOD AND BEV) : доступно
      </Description>
      <DescriptionLatin>
        Fare family BUSINESS SAVER/LX
        Meal(BUSINESS CLASS FOOD AND BEV) : included
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15598" id_FareFamilyService="9" id_FareFamily="175" Description="BUSINESS CLASS FOOD AND BEV" DescriptionLatin="BUSINESS CLASS FOOD AND BEV" Price="" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="126" id_FareFamily="175" id_System="3" Code="SAVER"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="177" Name="BUSINESSEMIFLX" NameLatin="BUSINESSEMIFLX" AirlineCode="LO" FareType="C">
      <Description>
        Тариф BUSINESSEMIFLX/LO
        Meal(COMPLIMENTARY FOOD AND BEV) : доступно
        Miles(MILEAGE ACCRUAL) : доступно
        Exchange(CHANGEABLE TICKET) : доступно за дополнительную плату
        Refund(REFUND BEFORE DEPARTURE) : доступно за дополнительную плату
        Refund(REFUND AFTER DEPARTURE) : не доступно
      </Description>
      <DescriptionLatin>
        Fare family BUSINESSEMIFLX/LO
        Meal(COMPLIMENTARY FOOD AND BEV) : included
        Miles(MILEAGE ACCRUAL) : included
        Exchange(CHANGEABLE TICKET) : included with extra charge
        Refund(REFUND BEFORE DEPARTURE) : included with extra charge
        Refund(REFUND AFTER DEPARTURE) : not offered
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15600" id_FareFamilyService="9" id_FareFamily="177" Description="COMPLIMENTARY FOOD AND BEV" DescriptionLatin="COMPLIMENTARY FOOD AND BEV" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15601" id_FareFamilyService="8" id_FareFamily="177" Description="MILEAGE ACCRUAL" DescriptionLatin="MILEAGE ACCRUAL" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15602" id_FareFamilyService="7" id_FareFamily="177" Description="CHANGEABLE TICKET" DescriptionLatin="CHANGEABLE TICKET" Price="Extra charge" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15603" id_FareFamilyService="6" id_FareFamily="177" Description="REFUND BEFORE DEPARTURE" DescriptionLatin="REFUND BEFORE DEPARTURE" Price="Extra charge" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15604" id_FareFamilyService="6" id_FareFamily="177" Description="REFUND AFTER DEPARTURE" DescriptionLatin="REFUND AFTER DEPARTURE" Price="" IsIncluded="false"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="128" id_FareFamily="177" id_System="3" Code="BUSEMI"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="176" Name="BUSINESS SAVER" NameLatin="BUSINESS SAVER" AirlineCode="OS" FareType="C">
      <Description>
        Тариф BUSINESS SAVER/OS
        Meal(BUSINESS CLASS FOOD AND BEV) : доступно
      </Description>
      <DescriptionLatin>
        Fare family BUSINESS SAVER/OS
        Meal(BUSINESS CLASS FOOD AND BEV) : included
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15599" id_FareFamilyService="9" id_FareFamily="176" Description="BUSINESS CLASS FOOD AND BEV" DescriptionLatin="BUSINESS CLASS FOOD AND BEV" Price="" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="127" id_FareFamily="176" id_System="3" Code="SAVER"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="179" Name="BUSINESS" NameLatin="BUSINESS" AirlineCode="AY" FareType="C">
      <Description>
        Тариф BUSINESS/AY
        Exchange(CHANGE BEFORE DEPARTURE) : доступно
        Exchange(CHANGE AFTER DEPARTURE) : доступно
        Refund(REFUND BEFORE DEPARTURE) : доступно
      </Description>
      <DescriptionLatin>
        Fare family BUSINESS/AY
        Exchange(CHANGE BEFORE DEPARTURE) : included
        Exchange(CHANGE AFTER DEPARTURE) : included
        Refund(REFUND BEFORE DEPARTURE) : included
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15606" id_FareFamilyService="7" id_FareFamily="179" Description="CHANGE BEFORE DEPARTURE" DescriptionLatin="CHANGE BEFORE DEPARTURE" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15607" id_FareFamilyService="7" id_FareFamily="179" Description="CHANGE AFTER DEPARTURE" DescriptionLatin="CHANGE AFTER DEPARTURE" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15608" id_FareFamilyService="6" id_FareFamily="179" Description="REFUND BEFORE DEPARTURE" DescriptionLatin="REFUND BEFORE DEPARTURE" Price="" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="130" id_FareFamily="179" id_System="3" Code="BIZ"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="180" Name="BUSINESS CLASSIC" NameLatin="BUSINESS CLASSIC" AirlineCode="SU" FareType="C">
      <Description>
        Тариф BUSINESS CLASSIC/SU
        Exchange(CHANGEABLE TICKET) : доступно за дополнительную плату
      </Description>
      <DescriptionLatin>
        Fare family BUSINESS CLASSIC/SU
        Exchange(CHANGEABLE TICKET) : included with extra charge
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15605" id_FareFamilyService="7" id_FareFamily="180" Description="CHANGEABLE TICKET" DescriptionLatin="CHANGEABLE TICKET" Price="Extra charge" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="131" id_FareFamily="180" id_System="3" Code="BC"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="184" Name="BUSINESS CLASS" NameLatin="BUSINESS CLASS" AirlineCode="AF" FareType="C">
      <Description>
        Тариф BUSINESS CLASS/AF
        Meal(BEVERAGE) : доступно
        Meal(MEAL) : доступно
        Exchange(CHANGEABLE TICKET) : доступно
        Miles(BUSINESS CLASS MILES ACCRUAL) : доступно
      </Description>
      <DescriptionLatin>
        Fare family BUSINESS CLASS/AF
        Meal(BEVERAGE) : included
        Meal(MEAL) : included
        Exchange(CHANGEABLE TICKET) : included
        Miles(BUSINESS CLASS MILES ACCRUAL) : included
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15609" id_FareFamilyService="9" id_FareFamily="184" Description="BEVERAGE" DescriptionLatin="BEVERAGE" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15610" id_FareFamilyService="9" id_FareFamily="184" Description="MEAL" DescriptionLatin="MEAL" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15611" id_FareFamilyService="7" id_FareFamily="184" Description="CHANGEABLE TICKET" DescriptionLatin="CHANGEABLE TICKET" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15612" id_FareFamilyService="8" id_FareFamily="184" Description="BUSINESS CLASS MILES ACCRUAL" DescriptionLatin="BUSINESS CLASS MILES ACCRUAL" Price="" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="135" id_FareFamily="184" id_System="3" Code="BUSINESS"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="178" Name="BASIC BUSINESS" NameLatin="BASIC BUSINESS" AirlineCode="S7" FareType="C">
      <Description>
        Тариф BASIC BUSINESS/S7
        Meal(SPECIAL MEAL) : доступно
        Miles(MILEAGE ACCRUAL) : доступно
        Exchange(CHANGE BEFORE DEPARTURE) : доступно за дополнительную плату
        Exchange(CHANGE AFTER DEPARTURE) : доступно за дополнительную плату
      </Description>
      <DescriptionLatin>
        Fare family BASIC BUSINESS/S7
        Meal(SPECIAL MEAL) : included
        Miles(MILEAGE ACCRUAL) : included
        Exchange(CHANGE BEFORE DEPARTURE) : included with extra charge
        Exchange(CHANGE AFTER DEPARTURE) : included with extra charge
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15613" id_FareFamilyService="9" id_FareFamily="178" Description="SPECIAL MEAL" DescriptionLatin="SPECIAL MEAL" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15614" id_FareFamilyService="8" id_FareFamily="178" Description="MILEAGE ACCRUAL" DescriptionLatin="MILEAGE ACCRUAL" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15615" id_FareFamilyService="7" id_FareFamily="178" Description="CHANGE BEFORE DEPARTURE" DescriptionLatin="CHANGE BEFORE DEPARTURE" Price="Extra charge" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15616" id_FareFamilyService="7" id_FareFamily="178" Description="CHANGE AFTER DEPARTURE" DescriptionLatin="CHANGE AFTER DEPARTURE" Price="Extra charge" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="129" id_FareFamily="178" id_System="3" Code="CBS"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="181" Name="BUSINESS CLASS" NameLatin="BUSINESS CLASS" AirlineCode="KL" FareType="C">
      <Description>
        Тариф BUSINESS CLASS/KL
        Meal(SNACK) : доступно
        Meal(BEVERAGE) : доступно
        Meal(MEAL) : доступно
        Exchange(CHANGEABLE TICKET) : доступно
        Miles(BUSINESS CLASS MILES ACCRUAL) : доступно
      </Description>
      <DescriptionLatin>
        Fare family BUSINESS CLASS/KL
        Meal(SNACK) : included
        Meal(BEVERAGE) : included
        Meal(MEAL) : included
        Exchange(CHANGEABLE TICKET) : included
        Miles(BUSINESS CLASS MILES ACCRUAL) : included
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15617" id_FareFamilyService="9" id_FareFamily="181" Description="SNACK" DescriptionLatin="SNACK" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15618" id_FareFamilyService="9" id_FareFamily="181" Description="BEVERAGE" DescriptionLatin="BEVERAGE" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15619" id_FareFamilyService="9" id_FareFamily="181" Description="MEAL" DescriptionLatin="MEAL" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15620" id_FareFamilyService="7" id_FareFamily="181" Description="CHANGEABLE TICKET" DescriptionLatin="CHANGEABLE TICKET" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15621" id_FareFamilyService="8" id_FareFamily="181" Description="BUSINESS CLASS MILES ACCRUAL" DescriptionLatin="BUSINESS CLASS MILES ACCRUAL" Price="" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="132" id_FareFamily="181" id_System="3" Code="BUSINESS"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="182" Name="BUSINESS" NameLatin="BUSINESS" AirlineCode="UT" FareType="C">
      <Description>
        Тариф BUSINESS/UT
        Meal(ALCOHOLIC DRINK) : доступно
        Meal(NON ALCOHOLIC DRINK) : доступно
        Meal(MEAL) : доступно
        Exchange(CHANGEABLE TICKET) : доступно за дополнительную плату
        Miles(200 PERCENT MILES EARNED) : доступно
      </Description>
      <DescriptionLatin>
        Fare family BUSINESS/UT
        Meal(ALCOHOLIC DRINK) : included
        Meal(NON ALCOHOLIC DRINK) : included
        Meal(MEAL) : included
        Exchange(CHANGEABLE TICKET) : included with extra charge
        Miles(200 PERCENT MILES EARNED) : included
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15622" id_FareFamilyService="9" id_FareFamily="182" Description="ALCOHOLIC DRINK" DescriptionLatin="ALCOHOLIC DRINK" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15623" id_FareFamilyService="9" id_FareFamily="182" Description="NON ALCOHOLIC DRINK" DescriptionLatin="NON ALCOHOLIC DRINK" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15624" id_FareFamilyService="9" id_FareFamily="182" Description="MEAL" DescriptionLatin="MEAL" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15625" id_FareFamilyService="7" id_FareFamily="182" Description="CHANGEABLE TICKET" DescriptionLatin="CHANGEABLE TICKET" Price="Extra charge" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15626" id_FareFamilyService="8" id_FareFamily="182" Description="200 PERCENT MILES EARNED" DescriptionLatin="200 PERCENT MILES EARNED" Price="" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="133" id_FareFamily="182" id_System="3" Code="BUSINESS"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="183" Name="BUSINESS" NameLatin="BUSINESS" AirlineCode="BT" FareType="C">
      <Description>
        Тариф BUSINESS/BT
        Meal(BUSINESS CLASS MEAL AND BEV) : доступно
      </Description>
      <DescriptionLatin>
        Fare family BUSINESS/BT
        Meal(BUSINESS CLASS MEAL AND BEV) : included
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15627" id_FareFamilyService="9" id_FareFamily="183" Description="BUSINESS CLASS MEAL AND BEV" DescriptionLatin="BUSINESS CLASS MEAL AND BEV" Price="" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="134" id_FareFamily="183" id_System="3" Code="BUSINESS"/>
      </Relations>
    </FareFamily>
    <FareFamily id_FareFamily="188" Name="BUSINESS CLASSIC" NameLatin="BUSINESS CLASSIC" AirlineCode="AZ" FareType="C">
      <Description>
        Тариф BUSINESS CLASSIC/AZ
        Miles(MILEAGE ACCRUAL) : доступно
        Exchange(CHANGE BEFORE DEPARTURE) : доступно за дополнительную плату
      </Description>
      <DescriptionLatin>
        Fare family BUSINESS CLASSIC/AZ
        Miles(MILEAGE ACCRUAL) : included
        Exchange(CHANGE BEFORE DEPARTURE) : included with extra charge
      </DescriptionLatin>
      <Services>
        <ServiceToFareFamilyRelation id_Relation="15628" id_FareFamilyService="8" id_FareFamily="188" Description="MILEAGE ACCRUAL" DescriptionLatin="MILEAGE ACCRUAL" Price="" IsIncluded="true"/>
        <ServiceToFareFamilyRelation id_Relation="15629" id_FareFamilyService="7" id_FareFamily="188" Description="CHANGE BEFORE DEPARTURE" DescriptionLatin="CHANGE BEFORE DEPARTURE" Price="Extra charge" IsIncluded="true"/>
      </Services>
      <Relations>
        <FareFamilyGDSRelation id_Relation="139" id_FareFamily="188" id_System="3" Code="BIZCLASSIC"/>
      </Relations>
    </FareFamily>
  </Families>
</ReferenceContainer>

Errors

Контейнер ошибок, каждый элемент которого выглядит следующим образом:
Module: MASTERPRICERPARSER Method: TRYEXECUTE Error: TRANSACTION UNABLE TO PROCESS : CB (711 / 301)
В данном ответе сожержится следующая информация:

  • Module - название модуля, в котором произошла ошибка
  • Method - имя процедуры, в которой возникла ошибка
  • Error - описание ошибки
В данном примере приведена системная ошибка на стороне поставщика система бронирования Amadeus.




Структура запроса при отправке запроса в теле сообщения

  • id_Profile - int, число, идентификатор финансового профиля(финансовый профиль) для применения 3D и финусловий;
  • SecurityKey - ключ для работы с API;
  • IsMock - bool - используется только для разработки, для моментального получения прегенеренного ответа;
  • Fare - Fare;
  • Adults - int - число, количество взрослых, 1-4;
  • Children - int - число, количество детей, 0-4;
  • Infants - int - число, количество младенцев, 0-4;
  • OnlyDirect - bool - возвращать только прямые рейсы в ответе;
  • ConnectionPoint - string - необязательное поле, код пункта пересадки, город или аэропорт, код аэропорта IATA - скачать список с datahub.io;
  • Airlines - string - необязательное поле, предпочтительные перевозчики - не более 3-х кодов авиакомпаний через запятую(например, "SU,AF,KL"), код авиакомпании IATA - скачать список с openflights.org;
  • Route - маршрут перелета, состоит из участков Segment

    • Origin - string - пункт вылета(код города или аэропорта) - код аэропорта IATA - скачать список с datahub.io;
    • Destination - string - пункт прибытия(код города или аэропорта) - код аэропорта IATA - скачать список с datahub.io ;
    • Date - datetime - дата вылета, формат dd.MM.yyyy - время игнорируется и не обязательно для заполнения;
    • StartHour - string - необязательное поле, минимальный час вылета, 2 символа с ведущим 0, например, 01;
    • EndHour - string - необязательное поле, максимальный час вылета, 2 символа с ведущим 0, например, 09;

Пример для отправки запроса в теле сообщения

<?xml version="1.0" encoding="utf-8" ?>
<CommonSearchRequest SecurityKey="XXXXXXXXX" id_Profile="XXX" LanguageCode="" MaximizeSpeed="false" Fare="0" FareName="Economy" Adults="2" Children="1" Infants="1" OnlyDirect="false">
  <ConnectionPoint />
  <Route>
    <Segment Origin="MOW" Destination="MUC" Date="18.12.2017 0:00:00">
      <StartHour></StartHour>
      <EndHour></EndHour>
    </Segment>
    <Segment Origin="MUC" Destination="MOW" Date="25.12.2017 0:00:00">
      <StartHour></StartHour>
      <EndHour></EndHour>
    </Segment>
  </Route>
</CommonSearchRequest>