Интеграция со сторонними системами АПИ: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
м (API Авиабилетов)
 
(не показано 116 промежуточных версий 4 участников)
Строка 1: Строка 1:
==API Поиска авиабилетов==
+
==API Авиабилетов==
=== Подключение ===
 
  
 +
Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ.
 +
 +
=== API Поиска авиабилетов ===
 
Это сервис внутри Nemo, который позволяет получить результаты поиска.
 
Это сервис внутри Nemo, который позволяет получить результаты поиска.
  
 
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''.
 
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''.
  
После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.
+
Подробнее можно узнать в специальной статье [[Веб-служба поиска авиабилетов]]
  
WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights
+
=== API Бронирования авиабилетов ===
 +
Сервис позволяет забронировать/войдировать авиабилет с использованием API, описание подключения, запроса, ответов находится в этой статье [[Веб-служба бронирования]]
  
=== Общий формат запроса / ответа поиска ===
+
=== API Выписки авиабилетов ===
 +
 
 +
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. [[Веб-служба выписки]]
 +
 
 +
=== API Оплаты ===
 +
 
 +
Сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов. [[Агентские АПИ оплаты]]
 +
 
 +
=== API Дополнительных запросов авиабилетов ===
 +
 
 +
К дополнительных запросам относятся проверка на доступность, запрос на обновление заказа, чтение тарифных правил. [[Дополнительные запросы АПИ авиабилетов]]
 +
 
 +
=== Используемые параметры ===
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Запрос =====
+
==== Параметры, используемые в запросах ====
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
<table border="1">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
+
<tr bgcolor="#CCCCCC">
   <soapenv:Header/>
+
<th> Имя элемента </th><th> Обязательный      </th><th> Тип  </th><th>    Описание  </th>
  <soapenv:Body>
+
</tr>
      <ver:search>
+
<tr>
        <RequestBin>
+
 
            <Request>
+
<td>BookFlight </td><td>да </td><td>сложный </td><td>Контейнер для тела запроса бронирования</td>
              <SearchFlights LinkOnly="?">
+
</tr>
              <!--LinkOnly — Позволяет управлять выдачей результатов. true — вернуть только ссылку на результаты поиска,  
+
<tr>
                без перелётов (занимает меньше времени), false — полная выдача, ссылки и перелёты.-->
+
<td>FlightId </td><td class="col1">да </td><td>число</td><td >Id перелёта для которого будет производится бронирование(поиск тарифных правил, проверка доступности)</td>
                  <ODPairs Type="?" Direct="?" AroundDates="?">
+
</tr>
                  <!--Type — тип перелёта, возможные значения: OW — туда, RT — туда-обратно, CR — сложный маршрут. Для перелета
+
<tr>
                  туда-обратно или сложного маршрута необходимо добавить еще один или несколько тэгов ODPair, примеры далее-->
+
<td>CurrencyCode </td><td>нет</td><td>строка</td><td>Трёх буквенный код валюты (обязателен для комиссии в валюте)</td>
                  <!--Direct — искать только прямые перелёты, возможные значения: true/false-->
+
 
                  <!--AroundDates — поиск по окружным датам, количество дней +/- от даты заезда/возвращения, значения: 0, 1, 3.
+
</tr>
                  Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT)-->
+
<tr>
                    <!--Zero or more repetitions:-->
+
<td>Agency </td><td>да </td><td>сложный </td><td>Информация об агентстве</td>
                    <ODPair>
+
 
                        <DepDate>?</DepDate>
+
</tr>
                        <!--DepDate — дата вылета, в формате ГГГГ-MM-ДД-->
+
<tr>
                        <DepAirp CodeType="IATA">?</DepAirp>
+
<td>Name </td><td>да </td><td>строка </td><td>Название агентства</td>
                        <!--DepAirp — аэропорт вылета, IATA код-->
+
</tr>
                        <ArrAirp CodeType="IATA">?</ArrAirp>
+
<tr>
                        <!--ArrAirp — аэропорт прилёта, IATA код-->
+
<td>Telephone </td><td>нет </td><td>сложный </td><td>Контактный телефон агентства</td>
                    </ODPair>
+
 
                  </ODPairs>
+
</tr>
                  <Travellers>
+
<tr>
                    <!--Zero or more repetitions:-->
+
<td>Type</td><td>да </td><td>строка </td><td>Тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий, A - агентство</td>
                    <Traveller Type="?" Count="?"/>
+
</tr>
                    <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
+
<tr>
                      INF — младенцы, INS — младенцы с местом-->
+
<td>PhoneNumber </td><td>да </td><td>строка </td><td>Номер телефона</td>
            <!--Count — количество пассажиров-->
+
 
                  </Travellers>
+
</tr>
                  <Restrictions>
+
<tr>
                    <ClassPref>?</ClassPref> <!--необязательный-->
+
<td>CountryAccessCode </td><td>нет </td><td>строка </td><td>Код страны</td>
                    <!--ClassPref — предпочитаемый класс поиска, возможные значения: economy, business, first.
+
</tr>
                      Если не заполнять, то будет произведен поиск эконом класса-->
+
<tr>
                    <OnlyAvail>?</OnlyAvail> <!--необязательный-->
+
<td>AreaCityCode </td><td>нет </td><td>строка</td><td>Код региона/города</td>
                    <!--OnlyAvail — искать только доступные, возможные значения: true/false-->
+
 
                    <AirVPrefs>
+
</tr>
                        <!--Zero or more repetitions:-->
+
<tr>
                        <AirVPref Code="?" Include="?" Type="IATA"/> <!--необязательный-->
+
<td>Address</td><td>да </td><td>сложный </td><td class="col3">Адрес агентства</td>
                        <!--Code — код авиакомпании, SU, FV и т.п.-->
+
</tr>
        <!--Include — включить или исключить авиакомпанию из результатов: true — включить, false — исключить-->
+
<tr>
            </AirVPrefs>
+
<td>City</td><td>да </td><td class="col2">строка </td><td>Город, в котором расположено агентство</td>
                    <IncludePrivateFare>?</IncludePrivateFare> <!--необязательный-->
+
 
                    <!--IncludePrivateFare — искать цены для агентства, если true — то включаем приватные, false — публичные-->
+
</tr>
                    <CurrencyCode>?</CurrencyCode> <!--необязательный-->
+
<tr>
                    <!--CurrencyCode — код валюты, например: RUB, EUR-->  
+
<td>StreetAddress </td><td>нет </td><td>сложный </td><td>Адрес агентства в городе (улица, дом, корпус, офис и т.д.)</td>
                  </Restrictions>
+
</tr>
              </SearchFlights>
+
<tr>
            </Request>
+
<td>PostalCode </td><td>нет </td><td>строка </td><td>Почтовый код, индекс.</td>
            <Source>
+
 
              <ClientId>?</ClientId>
+
</tr>
              <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
+
<tr>
                "Администрирование" ? "Веб-служба. Авторизация".-->
+
<td>CountryCode </td><td>нет </td><td>строка </td><td>Код страны (RU, UA, US и т.д.)</td>
              <APIKey>?</APIKey>
+
</tr>
              <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
+
<tr>
                "Администрирование" ? "Веб-служба. Авторизация".-->
+
<td>Travellers </td><td>да </td><td>сложный </td><td>Контейнер для информации о пассажирах (для которых будет производится поиск перелёта, бронирование)</td>
              <Language>?</Language>
+
 
              <!--Language — язык, например: RU-->
+
</tr>
              <Currency>?</Currency>
+
<tr>
              <!-- Currency — валюта, например: RUB, EUR-->
+
<td class="col0">Traveller </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация о пассажире</td>
              <ShowNames>?</ShowNames>
+
</tr>
              <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент.  -->
+
<tr class="row24">
            </Source>
+
<td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: ADT - взрослые, CNN - дети, UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом</td>
        </RequestBin>
+
 
      </ver:search>
+
</tr>
  </soapenv:Body>
+
<tr class="row25">
</soapenv:Envelope>
+
<td class="col0">IsContact </td><td class="col1">нет</td><td class="col2">булевский </td><td class="col3">Индикатор показывающий является ли данное лицо контактным, возможные значение: true - пассажир является контактным лицом, false - не является. Контактное лицо может быть только одно, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом. Если не указано, то по умолчанию false.</td>
</syntaxhighlight>
+
</tr>
 +
<tr class="row26">
 +
<td class="col0">LinkedTo </td><td class="col1">нет </td><td class="col2">целое число </td><td class="col3">Номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)</td>
 +
 
 +
</tr>
 +
<tr class="row27">
 +
<td class="col0">Num </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер пассажира.</td>
 +
</tr>
 +
<tr class="row28">
 +
<td class="col0">PreferedPlace </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры Smoking и Location игнорируются и могут быть не указаны.</td>
 +
 
 +
</tr>
 +
<tr class="row29">
 +
<td class="col0">SmokingAllowed </td><td class="col1">нет </td><td class="col2">булевский </td><td class="col3">true - место для курящих, false - место для некурящих. По умолчанию false.</td>
 +
</tr>
 +
<tr class="row30">
 +
<td class="col0">Location </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Расположение места, возможные значения: W - у окна (Window); M - где-то в середине ряда (Middle); NPW - возле прохода (NearPassengerWay); NS - нет предпочтения (NotSpecified).</td>
 +
</tr>
 +
<tr class="row31">
 +
<td class="col0">RowNumber</td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Номер ряда</td>
 +
</tr>
 +
<tr class="row32">
 +
<td class="col0">PlaceNumber </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Номер места</td>
 +
 
 +
</tr>
 +
<tr class="row33">
 +
<td class="col0">SegNumber </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер сегмента</td>
 +
</tr>
 +
<tr class="row34">
 +
<td class="col0">DocumentInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Паспортные данные</td>
 +
 
 +
</tr>
 +
<tr class="row35">
 +
<td class="col0">DocType </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Тип документа, обязательный.</td>
 +
</tr>
 +
<tr class="row36">
 +
<td class="col0">DocNum </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер документа</td>
 +
</tr>
 +
<tr class="row37">
 +
<td class="col0">CountryCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Страна выдачи, двух буквенный код(RU, US и т.д.)</td>
 +
</tr>
 +
<tr class="row38">
 +
<td class="col0">DocElapsedTime</td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Срок истечения срока действия паспорта в фирмате dd.mm.yyyy (например 31.12.2012)</td>
 +
 
 +
</tr>
 +
<tr class="row39">
 +
<td class="col0">VisaInfo </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Информация о визе</td>
 +
</tr>
 +
<tr class="row40">
 +
<td class="col0">Num </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер визы</td>
 +
 
 +
</tr>
 +
<tr class="row41">
 +
<td class="col0">IssueDate </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Дата выдачи визы в формате dd.mm.yyyy</td>
 +
</tr>
 +
<tr class="row42">
 +
<td class="col0">IssueCountry </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Страна выдачи визы</td>
 +
 
 +
</tr>
 +
<tr class="row43">
 +
<td class="col0">IssuePlace </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Место выдачи визы</td>
 +
</tr>
 +
<tr class="row44">
 +
<td class="col0">BirthCountry </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Страна рождения (IATA код страны)</td>
 +
 
 +
</tr>
 +
<tr class="row45">
 +
<td class="col0">BirthCity </td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Город рождения (название)</td>
 +
</tr>
 +
<tr class="row46">
 +
<td class="col0">ArrAddress </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Адрес прибытия, для въезжающих в США (не граждан США) информация является обязательной. Если она не заполняется при оформлении брони, то её всё равно придётся заполнять при посадке на самолёт.</td>
 +
 
 +
</tr>
 +
<tr class="row47">
 +
<td class="col0">CountryCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">IATA код страны</td>
 +
</tr>
 +
<tr class="row48">
 +
<td class="col0">State </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Штат или область въезда</td>
 +
 
 +
</tr>
 +
<tr class="row49">
 +
<td class="col0">PostalCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Почтовый код</td>
 +
</tr>
 +
<tr class="row50">
 +
<td class="col0">City </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Город</td>
 +
 
 +
</tr>
 +
<tr class="row51">
 +
<td class="col0">StreetAddress </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Адрес: улица, номер дома, квартиры и тп</td>
 +
</tr>
 +
<tr class="row52">
 +
<td class="col0">DocStringFormats </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Список форматов строк паспортных данных, которые будут отправлены в дополнение к стандартным.</td>
 +
 
 +
</tr>
 +
<tr class="row53">
 +
<td class="col0">DocStringFormat </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Формат данных, возможные значения: DOCS - строка формата DOCS, FOID - строка формата FOID. Установка данных в формате DOCS как правило необходима для последующей выписки в BSP среде. Установка FOID - всреде ТКП.</td>
 +
</tr>
 +
<tr class="row54">
 +
<td class="col0">PersonalInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Персональные данные пассажира</td>
 +
</tr>
 +
<tr class="row55">
 +
<td class="col0">DateOfBirth</td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Дата рождения в формате dd.mm.yyyy (например 31.12.2000)</td>
 +
</tr>
 +
<tr class="row56">
 +
<td class="col0">Nationality </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Национальность/гражданство, двух буквенный код страны (RU, UA, US и т.д.)</td>
 +
 
 +
</tr>
 +
<tr class="row57">
 +
<td class="col0">Gender </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Пол пассажира, обязательный, возможные значения: M - мужской(Male); F - женский(Female).</td>
 +
</tr>
 +
<tr class="row58">
 +
<td class="col0">FirstName </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Имя пассажира</td>
 +
 
 +
</tr>
 +
<tr class="row59">
 +
<td class="col0">LastName </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Фамилия пассажира</td>
 +
</tr>
 +
<tr class="row60">
 +
<td class="col0">BMiddleName </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Отчество пассажира</td>
 +
</tr>
 +
<tr class="row61">
 +
<td class="col0">Meal </td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Код типа питания, возможные значения: NONE - отсутствует (по умолчанию); AVML - Азиатская вегетарианская кухня; BLML - Блюда щадящей диеты; CHML - Детское питание; CHPC - Детский холодный завтрак; СНСС - Детский горячий завтрак; CHHC - Детский ланч, ветчина и сыр; PBJS - Детский ланч, ореховое масло; CHMC - Детский обед макароны с сыром; DBML - Диабетическое питание; FPML - Фрукты; GFML - Питание без клейковины; HFML - Питание богатое клетчаткой; HNML - Индусская кухня; BBML - Питание для младенцев; KSML - Кошерная кухня; SMKB - Кошерный завтрак; SMKL - Кошерный ланч; SMKD - Кошерный обед; LPML - Малобелковое питание; LCML - Низкокалорийное питание; LFML - Низкохолестериновое питание; PRML - Низкопуриновое питание; LSML - Малосоленое питание; MOML - Мюсли; NLML - Безмолочные продукты; ORML - Восточная кухня; RVML - Сырые овощи; SFML - Морепродукты; SPML - Особое питание; VLML - Вегетарианское, молоко и яйца; VGML - Строго вегетарианское питание; VJML - Джайнизское вегетарианское; VOML - Восточное вегетарианское питание.</td>
 +
</tr>
 +
<tr class="row62">
 +
<td class="col0">LoyaltyCard </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Карточка часто летающего пассажира</td>
 +
 
 +
</tr>
 +
<tr class="row63">
 +
<td class="col0">OpCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">IATA код компании авиаперевозчика</td>
 +
</tr>
 +
<tr class="row64">
 +
<td class="col0">Number </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер карточки</td>
 +
</tr>
 +
<tr class="row65">
 +
<td class="col0">ContactInfo</td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактная информация для пассажира</td>
 +
</tr>
 +
<tr class="row66">
 +
<td class="col0">EmailID </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Контактный email</td>
 +
 
 +
</tr>
 +
<tr class="row67">
 +
<td class="col0">Telephone </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактный телефон пассажира, описание аналогично описанию телефона агентства</td>
 +
</tr>
 +
<tr class="row68">
 +
<td class="col0">CancelBook</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса отмены брони</td>
 +
</tr>
 +
<tr class="row69">
 +
<td class="col0">BookID</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер брони, которая будет отменяться (для которой будет производится выписка, отмена выписки)</td>
 +
 
 +
</tr>
 +
<tr class="row70">
 +
<td class="col0">GetAirRules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса поиска тарифных правил</td>
 +
</tr>
 +
<tr class="row71">
 +
<td class="col0">AirAvail</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса проверки доступности перелёта</td>
 +
 
 +
</tr>
 +
<tr class="row72">
 +
<td class="col0">Ticketing</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса выписки брони</td>
 +
</tr>
 +
<tr class="row73">
 +
<td class="col0">ValCompany</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Валидирующий перевозчик, на бланке которого выписывается билет</td>
 +
 
 +
</tr>
 +
<tr class="row74">
 +
<td class="col0">Comission</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Комиссия</td>
 +
</tr>
 +
<tr class="row75">
 +
<td class="col0">Amount</td><td class="col1">нет</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение комиссии в валюте, если указано, то комиссия в процентах игнорируется</td>
 +
 
 +
</tr>
 +
<tr class="row76">
 +
<td class="col0">Percent</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Комиссия в процентах</td>
 +
</tr>
 +
<tr class="row77">
 +
<td class="col0">VoidTicket</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса отмены выписки брони</td>
 +
 
 +
</tr>
 +
<tr class="row78">
 +
<td class="col0">Search</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса поиска</td>
 +
</tr>
 +
<tr class="row79">
 +
<td class="col0">ODPairs</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о перелёте</td>
 +
 
 +
</tr>
 +
<tr class="row80">
 +
<td class="col0">Type</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Тип перелёта, возможные значения: OW - в одну сторону, RT - туда-обратно, CR - сложный маршрут</td>
 +
</tr>
 +
<tr class="row81">
 +
<td class="col0">Direct</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Индикатор, указывающий какие перелёты искать, только прямые или с пересадками, возможные значения: false - с пересадками, true - только прямые. Если не указан, значение по умолчанию false.</td>
 +
</tr>
 +
<tr class="row82">
 +
<td class="col0">AroundDates</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Включает поиск по окружным датам, количество дней +/- от даты заезда/возвращения. Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT). Возможные значения: 0, 1, 2, 3</td>
 +
</tr>
 +
<tr class="row83">
 +
<td class="col0">ODPair</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о сегменте перелёта. Может повторяться 1-6 раз. Поиск по расписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается</td>
 +
 
 +
</tr>
 +
<tr class="row84">
 +
<td class="col0">DepDate</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата вылета, Формат ГГГГ-MM-DDTЧЧ:ММ:СС</td>
 +
</tr>
 +
<tr class="row85">
 +
<td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города отправления или конкретного аэропорта в городе отправления.</td>
 +
 
 +
</tr>
 +
<tr class="row86">
 +
<td class="col0">ArrAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города прибытия или конкретного аэропорта в городе прибытия.</td>
 +
</tr>
 +
<tr class="row87">
 +
<td class="col0">Count</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число пассажиров данного типа. Общее количество пассажиров всех типов должно быть не более 9.</td>
 +
 
 +
</tr>
 +
<tr class="row88">
 +
<td class="col0">Restrictions</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер дополнительной информации для поиска.</td>
 +
</tr>
 +
<tr class="row89">
 +
<td class="col0">ClassPref</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Предпочитаемый класс перелёта, возможные значения: All - все, Economy - эконом, Business - бизнес, First - первый. Если не указан, то по умолчанию All.</td>
 +
 
 +
</tr>
 +
<tr class="row90">
 +
<td class="col0">OnlyAvail</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Искать только доступные, возможные значения: true - только доступные, false - все. Если не указан, то по умолчанию false.</td>
 +
</tr>
 +
<tr class="row91">
 +
<td class="col0">AirVPrefs</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Обёртка для списка авиакомпаний, по которым будет или не будет проводиться поиск.</td>
 +
 
 +
</tr>
 +
<tr class="row92">
 +
<td class="col0">AirVPref</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Информация об авиакомпании.</td>
 +
</tr>
 +
<tr class="row93">
 +
<td class="col0">Include</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий включить или исключить в результатах поиска перелёты данной авиакомпании: true - включить, false - исключить. Если не указан, то по умолчанию false.</td>
 +
 
 +
</tr>
 +
<tr class="row94">
 +
<td class="col0">IncludePrivateFare</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Включать приватные цены в результат или нет, возможные значения: true - включать, false - не включать. Если не указан, то по умолчанию false.</td>
 +
</tr>
 +
<tr class="row95">
 +
<td class="col0">ServiceTypes</td><td class="col1">нет</td><td class="col2">сложный хмл</td><td class="col3">Контейнер массива используемых веб-сервисов при поиске.</td>
 +
 
 +
</tr>
 +
<tr class="row96">
 +
<td class="col0">ServiceType</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Тип веб-сервиса(поставщика). При указании нескольких элементов ServiceType поиск будет проведён для каждого сервиса. Возможные значения: Sirena2000 - поиск в Сирене; SirenaSchedule - поиск в Сирене по расписанию; SabreLFS - поиск в Сэйбр LFS; SabreBFM - поиск в Сэйбр BFM; SabreSchedule - поиск Сэйбр по расписанию; Galileo - поиск в Галилео; AmadeusMPTBS - поиск в Амадеус.</td>
 +
</tr>
 +
</table>
 
</div>
 
</div>
 
</div>
 
</div>
Строка 91: Строка 349:
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
  
===== Ответ =====
+
==== Параметры, используемые в ответах ====
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
<table border="1">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
 
   <SOAP-ENV:Body>
+
<tr bgcolor="#CCCCCC">
      <ns1:searchResponse>
+
<th class="col0 leftalign"> Имя элемента      </th><th class="col1 leftalign"> Обязательный      </th><th class="col2 leftalign"> Тип  </th><th class="col3 centeralign">    Описание  </th>
        <ResponseBin>
+
</tr>
            <Response>
+
<tr class="row1">
              <SearchFlights>
+
<td class="col0">BookFlightResult </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Контейнер для тела ответа бронирования</td>
                  <Flights SearchId="?" ResultURL="?">
+
 
                  <!--SearchId — номер процесса поиска в Nemo-->
+
</tr>
                  <!--ResultURL — ссылка на страницу просмотра результатов на сайте агентства-->
+
<tr class="row2">
                    <Flight FlightId="?">
+
<td class="col0">ID </td><td class="col1">да </td><td class="col2">число</td><td class="col3">Номер бронирования в системе Nemo.</td>
                    <!--FlightId — Id перелёта в системе Nemo-->
+
</tr>
                        <WebService>?</WebService>
+
<tr class="row3">
                        <!--WebService — поставщик перелёта-->
+
<td class="col0 leftalign">Status  </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Статус брони, возможные значения: booked - забронировано, canceled - бронь отменена, ticket - выписана; UNDEFINED - статус не определён.</td>
                        <ValCompany>?</ValCompany>
+
 
                        <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
+
</tr>
                        <URL>?</URL>
+
<tr class="row4">
                        <!--URL — ссылка на бронирование конкретного перелета-->
+
<td class="col0">Code </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер бронирования в системе поставщика (в sabre, sirena и т.д.)/код тарифного правила</td>
                        <Segments>
+
</tr>
                          <Segment SegNum="?" SegGroupNum="?">
+
<tr class="row5">
                          <!--SegNum — номер сегмента в перелёте-->
+
<td class="col0">QueryPlace </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Очередь, в которую помещено бронирование</td>
          <!--SegGroupNum – номер плеча перелёта-->
+
 
                              <DepAirp CodeType="IATA" Name="?">?</DepAirp>
+
</tr>
                              <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево. Name - название аэропорта отправления-->
+
<tr class="row6">
                              <DepTerminal>?</DepTerminal>
+
<td class="col0 leftalign">Number  </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер очереди</td>
                              <!--DepTerminal — терминал пункта отправления, если пустое значение,  
+
</tr>
                              то в аэропорту всего 1 терминал-->
+
<tr class="row7">
                              <ArrAirp CodeType="IATA" Name="?">?</ArrAirp>
+
<td class="col0">Flight </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Перелёт, по которому была сделана бронь (Результаты проверки доступности для перелёта)</td>
                              <!--ArrAirp — аэропорт прибытия. Name - название аэропорта прибытия-->
+
 
                              <ArrTerminal>?</ArrTerminal>
+
</tr>
                              <!--ArrTerminal — терминал пункта прибытия, если пустое значение,
+
<tr class="row8">
                              то в аэропорту всего 1 терминал-->
+
<td class="col0">Agency </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация об агентстве</td>
                              <OpAirline>?</OpAirline>
+
</tr>
                              <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
+
<tr class="row9">
                              <OpAirlineName>?</OpAirlineName>
+
<td class="col0">ItinReceipts</td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Маршрут квитанция. Содержит строку в кодировки Encoding  (как правило в base64), представляющую маршрут квитанцию в формате Format.</td>
                              <!--OpAirlineName — название авиакомпании перевозчика, например: Аэрофлот - Российские авиалинии -->
+
 
                              <MarkAirline>?</MarkAirline>
+
</tr>
                              <!--MarkAirline — авиакомпания, продающая перелёт-->
+
<tr class="row10">
                              <MarkAirlineName>?</MarkAirlineName>
+
<td class="col0">Encoding </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Кодировка</td>
                              <!--MarkAirlineName — название авиакомпании, продающей перелёт-->
+
</tr>
                              <FlightNumber>?</FlightNumber>
+
<tr class="row11">
                              <!--FlightNumber — номер рейса-->
+
<td class="col0">Format </td><td class="col1">да </td><td class="col2">строка</td><td class="col3">Формат</td>
                              <AircraftName>?</AircraftName>
+
 
                              <!--AircraftName — название воздушного судна. Например: Airbus 320-->
+
</tr>
                              <AircraftType>?</AircraftType>
+
<tr class="row12">
                              <!--AircraftType — тип воздушного судна, код-->
+
<td class="col0">Travellers</td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Контейнер для информации о пассажирах</td>
                              <DepDateTime>?</DepDateTime>
+
</tr>
                              <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
+
<tr class="row13">
                              <ArrDateTime>?</ArrDateTime>
+
<td class="col0">Traveller </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация о пассажире</td>
                              <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
+
 
                              <StopNum>?</StopNum>
+
</tr>
                              <!--StopNum — количество остановок-->
+
<tr class="row14">
                              <BookingCodes>
+
<td class="col0">Ticket </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Билет пассажира.</td>
                                <BookingCode ClassType="?">
+
</tr>
                                <!--ClassType — класс перелета, например: economy-->
+
<tr class="row15">
                                    <BookingCode>?</BookingCode>
+
<td class="col0">TickectNum </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер билета</td>
                                    <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс
+
 
                                    может записываться разными литерами, например: L-->
+
</tr>
                                </BookingCode>
+
<tr class="row16">
                              </BookingCodes>
+
<td class="col0">Seats</td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контейнер мест пассажира.</td>
                              <FlightTime>?</FlightTime>
+
</tr>
                              <!--FlightTime — время перелёта в минутах-->
+
<tr class="row17">
                              <TimeZone Departure="?" Arrival="?"/>
+
<td class="col0">Seat </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Место в самолёте</td>
                              <!--Departure временная зона аэропорта отправления-->
+
 
      <!--Arrival — временная зона аэропорта прибытия-->
+
</tr>
                              <ETicket>?</ETicket>
+
<tr class="row18">
                              <!--ETicket — признак электронного билета, значения: true / false-->
+
<td class="col0">Number </td><td class="col1">да </td><td class="col2">строка</td><td class="col3">Номер места(ряд+номер в ряду)</td>
                          </Segment>
+
</tr>
                        </Segments>
+
<tr class="row19">
                        <PricingInfo Refundable="?">
+
<td class="col0">Characteristic </td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Характеристика места в соответствии со стандартом EDIFACT. См справочник “Таблица характеристик мест”.</td>
                        <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
+
 
                          <PassengerFare Type="?" Quantity="?">
+
</tr>
                          <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
+
<tr class="row20">
                            INF — младенцы, INS — младенцы с местом-->
+
<td class="col0">SmokingPreference </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Статус курения на этом месте, если Y - место для курящих, если N - место для некурящих.</td>
          <!--Quantity — количество пассажиров данного типа-->
+
</tr>
                              <BaseFare Currency="?" Amount="?"/>
+
<tr class="row21">
                              <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
+
<td class="col0">SegmentNumber </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер сегмента</td>
                              <EquiveFare Currency="?" Amount="?"/>
+
 
                              <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи).
+
</tr>
                              Currency — код валюты, Amount — значение цены-->
+
<tr class="row22">
                              <TotalFare Currency="?" Amount="?"/>
+
<td class="col0">PersonalInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Личные данные</td>
                              <!--TotalFare — суммарная стоимость, в эквивалентной валюте.
+
</tr>
                              Currency — код валюты, Amount — значение цены-->
+
<tr class="row23">
                              <Taxes>
+
<td class="col0">LoyaltyCard </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Карточка часто летающего пассажира</td>
                                <Tax CurCode="?" TaxCode="?" Amount="?"/>
+
 
                                <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
+
</tr>
                              </Taxes>
+
<tr class="row24">
                              <Tariffs>
+
<td class="col0">ContactInfo </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактная информация для пассажира</td>
                                <Tariff Code="?" SegNum="?"/>
+
</tr>
                                <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
+
<tr class="row25">
                              </Tariffs>
+
<td class="col0">FareStored </td><td class="col1">нет </td><td class="col2">срока: Yes/No </td><td class="col3">Указывает установлена ли / гарантируется ли цена у поставщика. Если параметр отсутствует в ответе, то по умолчанию значение “Yes”.</td>
                              <FareCalc>?</FareCalc>
+
 
                              <!--FareCalc — строка расчёта цены-->
+
</tr>
                              <LastTicketDateTime>?</LastTicketDateTime>
+
<tr class="row26">
                              <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
+
<td class="col0">CancelBookResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа отмены брони</td>
                          </PassengerFare>
+
</tr>
                        </PricingInfo>
+
<tr class="row27">
                        <Commission/>
+
<td class="col0">BookID</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер брони, которая отменялась (Номер выписанной брони, выписка которой отменялась)</td>
                        <Charges Currency="?">?</Charges>
+
 
                        <!--Charges — сборы, Currency — код валюты-->
+
</tr>
                        <TotalPrice Currency="?">?</TotalPrice>
+
<tr class="row28">
                        <!--TotalPrice — итоговая цена, Currency — код валюты-->
+
<td class="col0">Result</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Результат отмены (войдирования)</td>
                    </Flight>
+
</tr>
                    <Flight>...</Flight>
+
<tr class="row29">
                    ....................
+
<td class="col0">Success</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий успешно или нет прошла отмена, возможные значения: true - успешно отменена (войдирование); false - не отменена</td>
                    <Flight>...</Flight>
+
 
                  </Flights>
+
</tr>
                  <Errors>
+
<tr class="row30">
                    <Error Code="?">
+
<td class="col0">GetAirRulesResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа поиска тарифных правил</td>
                    <!--Code — код ошибки в системе Nemo-->
+
</tr>
                        <ServiceErrorMessage>?</ServiceErrorMessage>
+
<tr class="row31">
                        <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика-->
+
<td class="col0">FlightId</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер перелёта, для которого найдены тарифные правила (будет проводилась проверка доступности)</td>
                        <Message>?</Message>
+
 
                        <!--Message — сообщение об ошибке от системы Nemo-->
+
</tr>
                    </Error>
+
<tr class="row32">
                  </Errors>
+
<td class="col0">Rules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для правил</td>
              </SearchFlights>
+
</tr>
            </Response>
+
<tr class="row33">
        </ResponseBin>
+
<td class="col0">Rule</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Правило</td>
      </ns1:searchResponse>
+
 
  </SOAP-ENV:Body>
+
</tr>
</SOAP-ENV:Envelope>
+
<tr class="row34">
</syntaxhighlight>
+
<td class="col0">Tarrif</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код тарифа, для которого правило применяется</td>
 +
</tr>
 +
<tr class="row35">
 +
<td class="col0">Name</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Имя правила</td>
 +
 
 +
</tr>
 +
<tr class="row36">
 +
<td class="col0">RuleText</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Текст правила</td>
 +
</tr>
 +
<tr class="row37">
 +
<td class="col0">AirAvailResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа помещения брони в очередь</td>
 +
 
 +
</tr>
 +
<tr class="row38">
 +
<td class="col0">IsAvail</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий доступность перелёта, возможные значения: true - доступен; false - недоступен</td>
 +
</tr>
 +
<tr class="row39">
 +
<td class="col0">VoidTicketResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа отмены выписки брони</td>
 +
 
 +
</tr>
 +
<tr class="row40">
 +
<td class="col0">SearchResult</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер тела ответа для результатов поиска.</td>
 +
</tr>
 +
<tr class="row41">
 +
<td class="col0">Flights</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для перелётов</td>
 +
 
 +
</tr>
 +
<tr class="row42">
 +
<td class="col0">Flight</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Представляет информацию о перелёте. Отсутствует если перелётов не найдено (используется в поисковом ответе)</td>
 +
</tr>
 +
<tr class="row43">
 +
<td class="col0">WebService</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Веб-сервис (поставщик) от которого был получен перелёт.</td>
 +
 
 +
</tr>
 +
<tr class="row44">
 +
<td class="col0">ValCompany</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">IATA код авиакомпании. Валидирующий перевозчик, на бланках которого должен выписываться билет.</td>
 +
</tr>
 +
<tr class="row45">
 +
<td class="col0">Segments</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для сегментов перелёта</td>
 +
 
 +
</tr>
 +
<tr class="row46">
 +
<td class="col0">Segment</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Представляет информацию о сегменте</td>
 +
</tr>
 +
<tr class="row47">
 +
<td class="col0">SegNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер сегмента в перелёте</td>
 +
 
 +
</tr>
 +
<tr class="row48">
 +
<td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">IATA код аэропорта отправления</td>
 +
</tr>
 +
<tr class="row49">
 +
<td class="col0">DepTerminal</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Код терминала отправления</td>
 +
 
 +
</tr>
 +
<tr class="row50">
 +
<td class="col0">ArrAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">IATA код аэропорта прибытия</td>
 +
</tr>
 +
<tr class="row51">
 +
<td class="col0">ArrTerminal</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Код терминала прибытия</td>
 +
 
 +
</tr>
 +
<tr class="row52">
 +
<td class="col0">OpAirline</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код авиакомпании, выполняющей рейс</td>
 +
</tr>
 +
<tr class="row53">
 +
<td class="col0">MarkAirline</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код авиакомпании, продающей билет</td>
 +
 
 +
</tr>
 +
<tr class="row54">
 +
<td class="col0">FlightNumber</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер рейса</td>
 +
</tr>
 +
<tr class="row55">
 +
<td class="col0">AircraftType</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код типа самолёта</td>
 +
 
 +
</tr>
 +
<tr class="row56">
 +
<td class="col0">DepDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС</td>
 +
</tr>
 +
<tr class="row57">
 +
<td class="col0">ArrDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС</td>
 +
 
 +
</tr>
 +
<tr class="row58">
 +
<td class="col0">StopNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число остановок</td>
 +
</tr>
 +
<tr class="row59">
 +
<td class="col0">Meal</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Тип питания, возможные значения: UNDEFINED - неизвестно; N - Нет питания; P - Алкогольные напитки в продаже; B - Завтрак; O - Холодная еда; C - Бесплатные алкогольные напитки; K - Континтальный завтрак; D - Обед; F - Еда в продаже; G - Еда/напитки в продаже; H - Горячая еда; L - Ланч; M - Еда; R - Освежающие еда/напитки бесплатно; V - Освежающие еда/напитки за отдельную плату; S - Закуска</td>
 +
 
 +
</tr>
 +
<tr class="row60">
 +
<td class="col0">BookingCodes</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для классов перелёта</td>
 +
</tr>
 +
<tr class="row61">
 +
<td class="col0">BookingCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код класса перелёта. Если производится поиск по расписанию, то может встречаться несколько раз.</td>
 +
 
 +
</tr>
 +
<tr class="row62">
 +
<td class="col0">FlightTime</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Время перелёта в минутах</td>
 +
</tr>
 +
<tr class="row63">
 +
<td class="col0">TimeZone</td><td class="col1">нет</td><td class="col2 rightalign"> сложный</td><td class="col3">Информация о временных зона прибытия и отправления</td>
 +
 
 +
</tr>
 +
<tr class="row64">
 +
<td class="col0">Departure</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Часовой пояс отправления, UTC (смещение относительно Гринвича)</td>
 +
</tr>
 +
<tr class="row65">
 +
<td class="col0">Arrival</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Часовой пояс прибытия, UTC (смещение относительно Гринвича)</td>
 +
 
 +
</tr>
 +
<tr class="row66">
 +
<td class="col0">ETicket</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3 rightalign"> Индикатор электронного билета,  возможные значения: true - билет является электронным, false - билет не является электронным.</td>
 +
</tr>
 +
<tr class="row67">
 +
<td class="col0">Baggage</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Информация о багаже</td>
 +
 
 +
</tr>
 +
<tr class="row68">
 +
<td class="col0">Measure</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Мера веса. K - килограммы, PC - сумки/клади</td>
 +
</tr>
 +
<tr class="row69">
 +
<td class="col0">Value</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Количество багажа</td>
 +
 
 +
</tr>
 +
<tr class="row70">
 +
<td class="col0">PricingInfo</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о ценах. Отсутствует в случае, если производится поиск по расписанию.</td>
 +
</tr>
 +
<tr class="row71">
 +
<td class="col0">Refundable</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор показывающий является ли билет возвратным или нет,  возможные значения: true - возвратный (нет штрафов за возврат), false - невозвратный (могут быть штрафы за возврат)</td>
 +
 
 +
</tr>
 +
<tr class="row72">
 +
<td class="col0">PassengerFare</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Информация о ценах для конкретного типа пассажиров.</td>
 +
</tr>
 +
<tr class="row73">
 +
<td class="col0">Quantity</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число пассажиров данного типа</td>
 +
 
 +
</tr>
 +
<tr class="row74">
 +
<td class="col0">BaseFare</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Цена в базовой валюте(за одного пассажира)</td>
 +
</tr>
 +
<tr class="row75">
 +
<td class="col0">EquiveFare</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Цена в эквивалентной валюте(за одного пассажира), при поиске цены не возвращается</td>
 +
 
 +
</tr>
 +
<tr class="row76">
 +
<td class="col0">TotalFare</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Полная стоимость для пассажиров данного типа включая таксы (за одного пассажира), при поиске цены не возвращается</td>
 +
</tr>
 +
<tr class="row77">
 +
<td class="col0">Currency</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код валюты.</td>
 +
 
 +
</tr>
 +
<tr class="row78">
 +
<td class="col0">Amount</td><td class="col1">да</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение стоимости.</td>
 +
</tr>
 +
<tr class="row79">
 +
<td class="col0">Taxes</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для такс, при поиске цены не возвращается</td>
 +
 
 +
</tr>
 +
<tr class="row80">
 +
<td class="col0">Tax</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Одна такса</td>
 +
</tr>
 +
<tr class="row81">
 +
<td class="col0">CurCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код валюты для таксы</td>
 +
 
 +
</tr>
 +
<tr class="row82">
 +
<td class="col0">TaxCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код таксы</td>
 +
</tr>
 +
<tr class="row83">
 +
<td class="col0">Amount</td><td class="col1">да</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение таксы</td>
 +
 
 +
</tr>
 +
<tr class="row84">
 +
<td class="col0">Tariffs</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тарифов</td>
 +
</tr>
 +
<tr class="row85">
 +
<td class="col0">Tariff</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для одного тарифа</td>
 +
 
 +
</tr>
 +
<tr class="row86">
 +
<td class="col0">Code</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код тарифа</td>
 +
</tr>
 +
<tr class="row87">
 +
<td class="col0">SegNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер сегмента для которого применяется тариф, если тариф применяется для всех сегментов, то возвращается 0.</td>
 +
 
 +
</tr>
 +
<tr class="row88">
 +
<td class="col0">FareCalc</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Строка расчёта цены</td>
 +
</tr>
 +
<tr class="row89">
 +
<td class="col0">LastTicketDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если бронирование не будет аннулировано или выписано до этого времени, то могут быть применены штрафы.</td>
 +
 
 +
</tr>
 +
</table>
 
</div>
 
</div>
 
</div>
 
</div>
  
В ссылках на просмотр страницы результата поиска и на бронирование конкретного перелета, домен агентства/субагентства определяется следующим образом:
+
==API Отелей==
* Если текущий домен агентства/субагентства есть в настройках ('''Администрирование''' ⇨ '''Настройки агентства''' ⇨ '''Доменное имя сайта для загрузки настроек'''), то этот домен используется в ссылках.
+
'''Агентский API Отелей''' - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.
* Если текущего домена нет в настройках, то используется первый домен из настроек.
 
* Если в настройках не прописано ни одного домена, то используется текущий домен.
 
  
На поиск действуют ограничения заданные в настройках агентства, в частности ограничения по пассажирам и ограничение ближайшей разрешенной даты поиска билетов.
+
Подробнее можно узнать в нашей специальной статье [http://support.nemo.travel/ru/%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D1%81%D0%BA%D0%B8%D0%B9_API_%D0%9E%D1%82%D0%B5%D0%BB%D0%B5%D0%B9 Агентский АПИ отелей]
* Если дата поиска меньше ближайшей разрешенной даты для поиска билетов, то выводится сообщение об ошибке Invalid search param: Неверная дата вылета: слишком близкая
 
* Если количество взрослых пассажиров превышает допустимое ограничение - Invalid search param: Слишком много взрослых
 
* Если количество детей в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много детей
 
* Если количество младенцев в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
 
* Если количество младенцев с местом в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
 
  
=== Примеры использования ===
 
  
==== Односторонний перелет ====
 
  
Пример одностороннего перелета: Москва Мадрид, 1 взрослый, 1 ребенок, эконом класс, предпочитаемая авиакомпания Аэрофлот.  
+
==Выгрузки статистики продаж через API (Метапоиск)==
 +
 
 +
'''Метапоисковая система''' (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем.
 +
 
 +
В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) <u>за определенный период бронирования заказов</u> в виде файла данных в формате XML.
 +
 
 +
Можно получить список заказов с их статусом (забронирован, выписан, аннулирован), сделанных через метапоисковую систему.
 +
 
 +
Подробнее можно узнать в статье посвященной взаимодействию с метопоисковиками [[Взаимодействие с метапоисковиками]]
 +
 
 +
==Выгрузка информации о заказах ==
 +
'''Выгрузка заказов''' это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки.
 +
Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]]
 +
 
 +
== API Синхронизации пользователей и субагентов ==
 +
Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей.
 +
Модуль является компонентом, включаемым и отключаемым из административной части.
 +
 
 +
О механизме авторизации B2B-пользователей, синхронизации учетных записей можно прочитать в статье [[Синхронизация пользователей]]
 +
 
 +
==API Кросс­авторизации==
 +
'''Авторизация пользователей из внешних систем''' Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п)
 +
 
 +
Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу:
 +
 
 +
[http://hostname/authorization_reol.wsdl http://hostname/authorization_reol.wsdl]
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
===== Запрос =====
 
===== Запрос =====
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
 
  <soapenv:Header/>
 
  <soapenv:Body>
 
      <ver:search>
 
        <RequestBin>
 
            <Request>
 
              <SearchFlights LinkOnly="false">
 
                  <ODPairs Type="OW" Direct="false" AroundDates="0">
 
                    <!--Zero or more repetitions:-->
 
                    <ODPair>
 
                        <DepDate>2014-03-20</DepDate>
 
                        <DepAirp CodeType="IATA">MOW</DepAirp>
 
                        <ArrAirp CodeType="IATA">MAD</ArrAirp>
 
                    </ODPair>
 
                  </ODPairs>
 
                  <Travellers>
 
                    <!--Zero or more repetitions:-->
 
                    <Traveller Type="ADT" Count="1"/>
 
                    <Traveller Type="CNN" Count="1"/>
 
                  </Travellers>
 
                  <Restrictions>
 
                    <ClassPref>economy</ClassPref>
 
                    <OnlyAvail>false</OnlyAvail>
 
                    <AirVPrefs>
 
                        <!--Zero or more repetitions:-->
 
                        <AirVPref Code="SU" Include="true" Type="IATA"/>
 
                    </AirVPrefs>
 
                    <IncludePrivateFare>false</IncludePrivateFare>
 
                    <CurrencyCode>RUB</CurrencyCode>
 
                  </Restrictions>
 
              </SearchFlights>
 
            </Request>
 
            <Source>
 
              <ClientId>---</ClientId>
 
              <APIKey>---</APIKey>
 
              <Language>RU</Language>
 
              <Currency>RUB</Currency>
 
              <ShowNames>true</ShowNames>
 
            </Source>
 
        </RequestBin>
 
      </ver:search>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
<pre>?xml version ='1.0' encoding ='UTF-8' ?>
 +
<definitions name='Authorization'
 +
targetNamespace='http://example.org/Authorization'
 +
xmlns:tns=' http://example.org/Authorization '
 +
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
 +
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
 +
xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
 +
xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
 +
xmlns='http://schemas.xmlsoap.org/wsdl/'>
 +
 +
<message name='getAuthorizationRequest'>
 +
<part name='login' type='xsd:string'/>
 +
<part name='pass' type='xsd:string'/>
 +
</message>
 +
<message name='getAuthorizationResponse'>
 +
<part name='session_id' type='xsd:string'/>
 +
<part name='user_id' type='xsd:string'/>
 +
<part name='login' type='xsd:string'/>
 +
<part name='status' type='xsd:string'/>
 +
</message>
 +
 +
<portType name='AuthorizationPortType'>
 +
<operation name='getAuthorization'>
 +
  <input message='tns:getAuthorizationRequest'/>
 +
  <output message='tns:getAuthorizationResponse'/>
 +
</operation>
 +
</portType>
 +
 +
<binding name='AuthorizationBinding' type='tns:AuthorizationPortType'>
 +
<soap:binding style='rpc'
 +
  transport='http://schemas.xmlsoap.org/soap/http'/>
 +
<operation name='getAuthorization'>
 +
  <soap:operation soapAction='urn:xmethods-delayed-quotes#getAuthorization'/>
 +
  <input>
 +
  <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
 +
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
 +
  </input>
 +
  <output>
 +
  <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
 +
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
 +
  </output>
 +
</operation>
 +
</binding>
 +
 +
<service name='AuthorizationService'>
 +
<port name='AuthorizationPort' binding='AuthorizationBinding'>
 +
  <soap:address location='http://nemo.local/controllers/authorization/auth_server.php'/>
 +
</port>
 +
</service>
 +
</definitions></pre>
 +
</div></div>
 +
 
 +
==Передача параметров в форму поиска (FastSearch)==
 +
 
 +
В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.
 +
 
 +
Примеры FastSearch запросов и используемые переменные подробно описаны в статье [[FastSearch - передача параметров в форму]]
 +
 
 +
FastSearch так же работает и для отелей, подробности в статье [[Fast Search для отелей]]
 +
 
 +
<!-- Т.к. это внутренний формат обмена данными между Немо и одним клиентом, то данную инфу скроем в комментарии
 +
==Проверка в сторонней системе возможности тикетинга==
 +
 
 +
При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, то в ответе будет
 +
<pre><m:Opportunity>Да</m:Opportunity></pre>
 +
Пример запроса "GetDebtCounterparty"
 +
<pre>
 +
<?xml version="1.0" encoding="UTF-8"?>
  
===== Ответ =====
+
  <SOAP-ENV:Body>
<div class="mw-collapsible-content">
+
    <ns1:GetDebtCounterparty>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
       <ns1:ExternalUserId>00000001</ns1:ExternalUserId>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
      <ns1:ExternalPaymentId>00000001</ns1:ExternalPaymentId>
  <SOAP-ENV:Body>
+
      <ns1:BaseFare>2490</ns1:BaseFare>
       <ns1:searchResponse>
+
      <ns1:Tax>643</ns1:Tax>
        <ResponseBin>
+
      <ns1:ValVendorCommission>49.8</ns1:ValVendorCommission>
            <Response>
+
      <ns1:Locator>0X97T6</ns1:Locator>
              <SearchFlights>
+
      <ns1:Discount>0</ns1:Discount>
                  <Flights SearchId="13949" ResultURL="http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D13949">
+
      <ns1:Charge>0</ns1:Charge>
                    <Flight FlightId="168090001">
+
      <ns1:Sum>3133</ns1:Sum>
                        <WebService>SABRE</WebService>
+
      <ns1:TotalPrice>3658.1</ns1:TotalPrice>
                        <ValCompany/>
+
      <ns1:GDSCurrency>RUB</ns1:GDSCurrency>
                        <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090001</URL>
+
      <ns1:OrderCurrency>RUB</ns1:OrderCurrency>
                        <Segments>
+
      <ns1:OrderCurrencyRate>1</ns1:OrderCurrencyRate>
                          <Segment SegNum="1" SegGroupNum="0">
+
      <ns1:beginDate>2014-08-30T11:05:00</ns1:beginDate>
                              <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirp>
+
    </ns1:GetDebtCounterparty>
                              <DepTerminal/>
+
  </SOAP-ENV:Body>
                              <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp>
 
                              <ArrTerminal/>
 
                              <OpAirline>SU</OpAirline>
 
                              <OpAirlineName>Аэрофлот - Российские авиалинии</OpAirlineName>
 
                              <MarkAirline>SU</MarkAirline>
 
                              <MarkAirlineName>Аэрофлот - Российские авиалинии</MarkAirlineName>
 
                              <FlightNumber>2500</FlightNumber>
 
                              <AircraftName>Airbus 320</AircraftName>
 
                              <AircraftType>320</AircraftType>
 
                              <DepDateTime>2014-03-20T08:05:00</DepDateTime>
 
                              <ArrDateTime>2014-03-20T10:15:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>E</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>310</FlightTime>
 
                              <TimeZone Departure="4" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="false">
 
                          <PassengerFare Type="ADT" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="165"/>
 
                              <EquiveFare Currency="RUB" Amount="8250"/>
 
                              <TotalFare Currency="RUB" Amount="10535"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                          <PassengerFare Type="CNN" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="124"/>
 
                              <EquiveFare Currency="RUB" Amount="6200"/>
 
                              <TotalFare Currency="RUB" Amount="8485"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU MAD169.08NUC169.08END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="RUB">0</Charges>
 
                        <TotalPrice Currency="RUB">19020</TotalPrice>
 
                    </Flight>
 
                    <Flight FlightId="168090002">
 
                        <WebService>SABRE</WebService>
 
                        <ValCompany/>
 
                        <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090002</URL>
 
                        <Segments>
 
                          <Segment SegNum="1" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA">SVO</DepAirp>
 
                              <DepTerminal/>
 
                              <ArrAirp CodeType="IATA">MAD</ArrAirp>
 
                              <ArrTerminal/>
 
                              <OpAirline>SU</OpAirline>
 
                              <MarkAirline>SU</MarkAirline>
 
                              <FlightNumber>2604</FlightNumber>
 
                              <AircraftType>320</AircraftType>
 
                              <DepDateTime>2014-03-20T20:30:00</DepDateTime>
 
                              <ArrDateTime>2014-03-20T22:40:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>E</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>310</FlightTime>
 
                              <TimeZone Departure="4" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="false">
 
                          <PassengerFare Type="ADT" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="165"/>
 
                              <EquiveFare Currency="RUB" Amount="8250"/>
 
                              <TotalFare Currency="RUB" Amount="10535"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                          <PassengerFare Type="CNN" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="124"/>
 
                              <EquiveFare Currency="RUB" Amount="6200"/>
 
                              <TotalFare Currency="RUB" Amount="8485"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU MAD169.08NUC169.08END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="RUB">0</Charges>
 
                        <TotalPrice Currency="RUB">19020</TotalPrice>
 
                    </Flight>
 
                    <Flight FlightId="168090003">
 
                        <WebService>SABRE</WebService>
 
                        <ValCompany/>
 
                        <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090003</URL>
 
                        <Segments>
 
                          <Segment SegNum="1" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA">SVO</DepAirp>
 
                              <DepTerminal/>
 
                              <ArrAirp CodeType="IATA">BCN</ArrAirp>
 
                              <ArrTerminal/>
 
                              <OpAirline>SU</OpAirline>
 
                              <MarkAirline>SU</MarkAirline>
 
                              <FlightNumber>2638</FlightNumber>
 
                              <AircraftType>321</AircraftType>
 
                              <DepDateTime>2014-03-20T09:10:00</DepDateTime>
 
                              <ArrDateTime>2014-03-20T10:40:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>E</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>270</FlightTime>
 
                              <TimeZone Departure="4" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="2" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA">BCN</DepAirp>
 
                              <DepTerminal/>
 
                              <ArrAirp CodeType="IATA">MAD</ArrAirp>
 
                              <ArrTerminal/>
 
                              <OpAirline>UX</OpAirline>
 
                              <MarkAirline>SU</MarkAirline>
 
                              <FlightNumber>3403</FlightNumber>
 
                              <AircraftType>738</AircraftType>
 
                              <DepDateTime>2014-03-20T12:05:00</DepDateTime>
 
                              <ArrDateTime>2014-03-20T13:25:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>E</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>80</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="false">
 
                          <PassengerFare Type="ADT" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="165"/>
 
                              <EquiveFare Currency="RUB" Amount="8250"/>
 
                              <TotalFare Currency="RUB" Amount="13681"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="JD" Amount="675"/>
 
                                <Tax CurCode="RUB" TaxCode="QV" Amount="186"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                          <PassengerFare Type="CNN" Quantity="1">
 
                              <BaseFare Currency="EUR" Amount="124"/>
 
                              <EquiveFare Currency="RUB" Amount="6200"/>
 
                              <TotalFare Currency="RUB" Amount="11631"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="JD" Amount="675"/>
 
                                <Tax CurCode="RUB" TaxCode="QV" Amount="186"/>
 
                              </Taxes>
 
                              <Tariffs/>
 
                              <FareCalc>MOW SU X/BCN SU MAD169.08NUC169.08END ROE0.731857</FareCalc>
 
                              <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="RUB">0</Charges>
 
                        <TotalPrice Currency="RUB">25312</TotalPrice>
 
                    </Flight>
 
                    .........
 
                    <Flight>...</Flight>
 
                  </Flights>
 
                  <Errors xsi:nil="true"/>
 
              </SearchFlights>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:searchResponse>
 
  </SOAP-ENV:Body>
 
 
</SOAP-ENV:Envelope>
 
</SOAP-ENV:Envelope>
</syntaxhighlight>
 
</div>
 
</div>
 
  
==== Перелет туда-обратно ====
+
</pre>
 +
Пример ответа "GetDebtCounterparty"
 +
<pre>
 +
<?xml version="1.0"?>
 +
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 +
  <soap:Header/>
 +
  <soap:Body>
 +
    <m:GetDebtCounterpartyResponse xmlns:m="http://DOMEN_NAME/avia">
 +
      <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="m:AnswerDebt">
 +
        <m:Opportunity>Да</m:Opportunity>
 +
        <m:Message1/>
 +
      </m:return>
 +
    </m:GetDebtCounterpartyResponse>
 +
  </soap:Body>
 +
</soap:Envelope>
 +
 
 +
</pre>
 +
 
 +
== Загрузка счетов из сторонней системы ==
 +
 
 +
При взаимодействии с веб-сервисом 1С, на этапе бронирования отправляется запрос, на создание аккаунта 1С, содержащий в себе данные счета. В системе логирования этот запрос можно найти под именем «[GDS] Запрос "NewAccount"» и ответ «[GDS] Ответ "NewAccount"»
  
Пример перелета туда-обратно: Москва — Париж, 2 взрослых, бизнес класс. '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.'''
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
=== Пример запроса ===
===== Запрос =====
 
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
 
<soapenv:Header/>
 
  <soapenv:Body>
 
      <ver:search>
 
        <RequestBin>
 
            <Request>
 
              <SearchFlights LinkOnly="false">
 
                  <ODPairs Type="RT" Direct="false" AroundDates="0">
 
                    <!--Zero or more repetitions:-->
 
                    <ODPair>
 
                        <DepDate>2014-12-20</DepDate>
 
                        <DepAirp CodeType="IATA">MOW</DepAirp>
 
                        <ArrAirp CodeType="IATA">PAR</ArrAirp>
 
                    </ODPair>
 
                      <ODPair>
 
                        <DepDate>2014-12-21</DepDate>
 
                        <DepAirp CodeType="IATA">PAR</DepAirp>
 
                        <ArrAirp CodeType="IATA">MOW</ArrAirp>
 
                    </ODPair>
 
                  </ODPairs>
 
                  <Travellers>
 
                    <!--Zero or more repetitions:-->
 
                    <Traveller Type="ADT" Count="2"/>
 
                  </Travellers>
 
                  <Restrictions>
 
                    <ClassPref>business</ClassPref>
 
                    <OnlyAvail>false</OnlyAvail>
 
                    <AirVPrefs/>
 
                    <IncludePrivateFare>false</IncludePrivateFare>
 
                    <CurrencyCode>RUB</CurrencyCode>
 
                  </Restrictions>
 
              </SearchFlights>
 
            </Request>
 
            <Source>
 
              <ClientId>---</ClientId>
 
              <APIKey>---</APIKey>
 
              <Language>RU</Language>
 
              <Currency>RUB</Currency>
 
              <ShowNames>true</ShowNames>
 
            </Source>
 
        </RequestBin>
 
      </ver:search>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
<pre>
  
===== Ответ =====
+
<?xml version="1.0" encoding="UTF-8"?>
<div class="mw-collapsible-content">
+
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://DOMEN_NAME" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
  <SOAP-ENV:Body>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
    <ns1:NewAccount>
    <SOAP-ENV:Body>
+
      <ns1:Input>
      <ns1:searchResponse>
+
        <ns1:CompanyID>0001</ns1:CompanyID>
        <ResponseBin>
+
        <ns1:ID>123321</ns1:ID>
            <Response>
+
        <ns1:ExternalUserId>00123321</ns1:ExternalUserId>
              <SearchFlights>
+
        <ns1:Locator>11KW22</ns1:Locator>
                  <Flights SearchId="190484987" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190484987">
+
        <ns1:ExternalPaymentId>0</ns1:ExternalPaymentId>
                    <Flight FlightId="372384680001">
+
        <ns1:Tickets>
                        <WebService>SABRE</WebService>
+
          <ns1:IATAValidator>92222616</ns1:IATAValidator>
                        <ValCompany/>
+
          <ns1:ValVendor>UT</ns1:ValVendor>
                        <URL>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190484987%26flight%3D372384680001%26utm_source%3Dalias1</URL>
+
          <ns1:GDSCurrency>RUB</ns1:GDSCurrency>
                        <Segments>
+
          <ns1:OrderCurrency>RUB</ns1:OrderCurrency>
                          <Segment SegNum="1" SegGroupNum="0">
+
          <ns1:OrderCurrencyRate>1</ns1:OrderCurrencyRate>
                              <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirp>
+
          <ns1:BaseFare>8990</ns1:BaseFare>
                              <DepTerminal xsi:nil="true"/>
+
          <ns1:Tax>
                              <ArrAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</ArrAirp>
+
            <ns1:Code>YQ</ns1:Code>
                              <ArrTerminal xsi:nil="true"/>
+
            <ns1:Amount>975</ns1:Amount>
                              <OpAirline>JU</OpAirline>
+
          </ns1:Tax>
                              <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
+
          <ns1:Tax>
                              <MarkAirline>JU</MarkAirline>
+
            <ns1:Code>YR</ns1:Code>
                              <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
+
            <ns1:Amount>75</ns1:Amount>
                              <FlightNumber>657</FlightNumber>
+
          </ns1:Tax>
                              <AircraftName>Airbus 319</AircraftName>
+
          <ns1:Segment>
                              <AircraftType>319</AircraftType>
+
            <ns1:StartDate>2015-02-17T20:20:00</ns1:StartDate>
                              <DepDateTime>2014-12-20T05:05:00</DepDateTime>
+
            <ns1:StartAirportCode>VKO</ns1:StartAirportCode>
                              <ArrDateTime>2014-12-20T06:05:00</ArrDateTime>
+
            <ns1:EndAirportCode>SGC</ns1:EndAirportCode>
                              <StopNum>0</StopNum>
+
            <ns1:CompanyCode>UT</ns1:CompanyCode>
                              <BookingCodes>
+
            <ns1:Tariffs>OSSOW</ns1:Tariffs>
                                <BookingCode ClassType="business">
+
            <ns1:FlightNumber>295</ns1:FlightNumber>
                                    <BookingCode>W</BookingCode>
+
            <ns1:StopOver>O</ns1:StopOver>
                                </BookingCode>
+
            <ns1:ClassTypeCode>O</ns1:ClassTypeCode>
                              </BookingCodes>
+
          </ns1:Segment>
                              <FlightTime>180</FlightTime>
+
          <ns1:FullName>PASSANGER NAME</ns1:FullName>
                              <TimeZone Departure="3" Arrival="1"/>
+
        </ns1:Tickets>
                              <ETicket>true</ETicket>
+
        <ns1:Options>
                          </Segment>
+
          <ns1:Name>Service</ns1:Name>
                          <Segment SegNum="2" SegGroupNum="0">
+
          <ns1:StringValue>GALILEO</ns1:StringValue>
                              <DepAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</DepAirp>
+
          <ns1:NumericValue xsi:nil="true"/>
                              <DepTerminal xsi:nil="true"/>
+
          <ns1:DateValue xsi:nil="true"/>
                              <ArrAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDG</ArrAirp>
+
        </ns1:Options>
                              <ArrTerminal xsi:nil="true"/>
+
        <ns1:Options>
                              <OpAirline>JU</OpAirline>
+
          <ns1:Name>AAA</ns1:Name>
                              <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
+
          <ns1:StringValue>000A</ns1:StringValue>
                              <MarkAirline>JU</MarkAirline>
+
          <ns1:NumericValue xsi:nil="true"/>
                              <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
+
          <ns1:DateValue xsi:nil="true"/>
                              <FlightNumber>314</FlightNumber>
+
        </ns1:Options>
                              <AircraftName>Airbus 320</AircraftName>
+
        <ns1:Options>
                              <AircraftType>320</AircraftType>
+
          <ns1:Name>Checkbox</ns1:Name>
                              <DepDateTime>2014-12-20T17:10:00</DepDateTime>
+
          <ns1:StringValue>YES</ns1:StringValue>
                              <ArrDateTime>2014-12-20T19:50:00</ArrDateTime>
+
          <ns1:NumericValue xsi:nil="true"/>
                              <StopNum>0</StopNum>
+
          <ns1:DateValue xsi:nil="true"/>
                              <BookingCodes>
+
        </ns1:Options>
                                <BookingCode ClassType="business">
+
      </ns1:Input>
                                    <BookingCode>W</BookingCode>
+
    </ns1:NewAccount>
                                </BookingCode>
+
  </SOAP-ENV:Body>
                              </BookingCodes>
 
                              <FlightTime>160</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="3" SegGroupNum="1">
 
                              <DepAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDG</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>JU</OpAirline>
 
                              <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
 
                              <MarkAirline>JU</MarkAirline>
 
                              <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
 
                              <FlightNumber>311</FlightNumber>
 
                              <AircraftName>Airbus 320</AircraftName>
 
                              <AircraftType>320</AircraftType>
 
                              <DepDateTime>2014-12-21T10:10:00</DepDateTime>
 
                              <ArrDateTime>2014-12-21T12:30:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="business">
 
                                    <BookingCode>W</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>140</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="4" SegGroupNum="1">
 
                              <DepAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>JU</OpAirline>
 
                              <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName>
 
                              <MarkAirline>JU</MarkAirline>
 
                              <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName>
 
                              <FlightNumber>656</FlightNumber>
 
                              <AircraftName>Airbus 319</AircraftName>
 
                              <AircraftType>319</AircraftType>
 
                              <DepDateTime>2014-12-21T23:20:00</DepDateTime>
 
                              <ArrDateTime>2014-12-22T04:10:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="business">
 
                                    <BookingCode>W</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>170</FlightTime>
 
                              <TimeZone Departure="1" Arrival="3"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="true">
 
                          <PassengerFare Type="ADT" Quantity="2">
 
                              <BaseFare Currency="EUR" Amount="620"/>
 
                              <EquiveFare Currency="RUB" Amount="34720"/>
 
                              <TotalFare Currency="RUB" Amount="44430"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
 
                                <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/>
 
                                <Tax CurCode="RUB" TaxCode="RI" Amount="428"/>
 
                                <Tax CurCode="RUB" TaxCode="RI" Amount="428"/>
 
                                <Tax CurCode="RUB" TaxCode="UH" Amount="304"/>
 
                                <Tax CurCode="RUB" TaxCode="LG" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="LG" Amount="185"/>
 
                                <Tax CurCode="RUB" TaxCode="RS" Amount="224"/>
 
                                <Tax CurCode="RUB" TaxCode="RS" Amount="224"/>
 
                                <Tax CurCode="RUB" TaxCode="RF" Amount="55"/>
 
                                <Tax CurCode="RUB" TaxCode="RF" Amount="55"/>
 
                                <Tax CurCode="RUB" TaxCode="FR1" Amount="434"/>
 
                                <Tax CurCode="RUB" TaxCode="FR4" Amount="714"/>
 
                                <Tax CurCode="RUB" TaxCode="QX3" Amount="1546"/>
 
                                <Tax CurCode="RUB" TaxCode="IZ4" Amount="224"/>
 
                              </Taxes>
 
                              <Tariffs>
 
                                <Tariff Code="WRTRU" SegNum="4"/>
 
                              </Tariffs>
 
                              <FareCalc>MOW JU X/BEG JU PAR401.57JU X/BEG JU MOW401.57NUC803.14END ROE0.771963</FareCalc>
 
                              <LastTicketDateTime>2014-12-20T04:05:00</LastTicketDateTime>
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="RUB">0</Charges>
 
                        <TotalPrice Currency="RUB">88860</TotalPrice>
 
                    </Flight>
 
                    .........
 
                    <Flight>...</Flight>
 
                  </Flights>
 
                  <Errors xsi:nil="true"/>
 
              </SearchFlights>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:searchResponse>
 
  </SOAP-ENV:Body>
 
 
</SOAP-ENV:Envelope>
 
</SOAP-ENV:Envelope>
</syntaxhighlight>
 
</div>
 
</div>
 
  
==== Сложный маршрут ====
 
  
Пример сложного маршрута: Прага — Москва — Милан — Мадрид, 1 взрослый, 1 младенец, эконом класс.  '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.'''
+
</pre>
 +
</div></div>
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
===== Запрос =====
+
=== Пример ответа ===
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
<pre>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
 
    <soapenv:Header/>
 
  <soapenv:Body>
 
      <ver:search>
 
        <RequestBin>
 
            <Request>
 
              <SearchFlights LinkOnly="false">
 
                  <ODPairs Type="CR" Direct="false" AroundDates="0">
 
                    <!--Zero or more repetitions:-->
 
                    <ODPair>
 
                        <DepDate>2014-12-20</DepDate>
 
                        <DepAirp CodeType="IATA">PRG</DepAirp>
 
                        <ArrAirp CodeType="IATA">MOW</ArrAirp>
 
                    </ODPair>
 
                      <ODPair>
 
                        <DepDate>2014-12-23</DepDate>
 
                        <DepAirp CodeType="IATA">MOW</DepAirp>
 
                        <ArrAirp CodeType="IATA">MIL</ArrAirp>
 
                    </ODPair>
 
                    <ODPair>
 
                        <DepDate>2014-12-27</DepDate>
 
                        <DepAirp CodeType="IATA">MIL</DepAirp>
 
                        <ArrAirp CodeType="IATA">MAD</ArrAirp>
 
                    </ODPair>
 
                  </ODPairs>
 
                  <Travellers>
 
                    <!--Zero or more repetitions:-->
 
                    <Traveller Type="ADT" Count="1"/>
 
                    <Traveller Type="INF" Count="1"/>
 
                  </Travellers>
 
                  <Restrictions>
 
                    <ClassPref>economy</ClassPref>
 
                    <OnlyAvail>false</OnlyAvail>
 
                    <AirVPrefs/>
 
                    <IncludePrivateFare>false</IncludePrivateFare>
 
                    <CurrencyCode>RUB</CurrencyCode>
 
                  </Restrictions>
 
              </SearchFlights>
 
            </Request>
 
            <Source>
 
              <ClientId>134</ClientId>
 
              <APIKey>93632C10DA299034C03D742FB160C2D6</APIKey>
 
              <Language>RU</Language>
 
              <Currency>RUB</Currency>
 
              <ShowNames>true</ShowNames>
 
            </Source>
 
        </RequestBin>
 
      </ver:search>
 
  </soapenv:Body>
 
</soapenv:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
+
<?xml version="1.0"?>
 
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
===== Ответ =====
+
  <soap:Header/>
<div class="mw-collapsible-content">
+
  <soap:Body>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
+
    <m:NewAccountResponse xmlns:m="http://DOMEN_NAME">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
      <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="m:outInvoice">
  <SOAP-ENV:Body>
+
        <m:NoDoc>00015365</m:NoDoc>
      <ns1:searchResponse>
+
        <m:DateInvoice>2015-02-04T00:00:00</m:DateInvoice>
        <ResponseBin>
+
        <m:ExternalUserId>00017483</m:ExternalUserId>
            <Response>
+
        <m:TicketsSum>
              <SearchFlights>
+
          <m:Price>10040</m:Price>
                  <Flights SearchId="190491108" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190491108">
+
          <m:Discount>0</m:Discount>
                    <Flight FlightId="372394480001">
+
          <m:Charge>0</m:Charge>
                        <WebService>SABRE</WebService>
+
          <m:Sum>10040</m:Sum>
                        <ValCompany/>
+
        </m:TicketsSum>
                        <URL>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190491108%26flight%3D372394480001%26utm_source%3Dalias1</URL>
+
      </m:return>
                        <Segments>
+
    </m:NewAccountResponse>
                          <Segment SegNum="1" SegGroupNum="0">
+
  </soap:Body>
                              <DepAirp CodeType="IATA" Name="Прага">PRG</DepAirp>
+
</soap:Envelope>
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>1485</FlightNumber>
 
                              <AircraftName>Avro RJ100</AircraftName>
 
                              <AircraftType>AR1</AircraftType>
 
                              <DepDateTime>2014-12-20T10:05:00</DepDateTime>
 
                              <ArrDateTime>2014-12-20T11:30:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>K</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>85</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="2" SegGroupNum="0">
 
                              <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Домодедово, Москва">DME</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>1326</FlightNumber>
 
                              <AircraftName>Airbus 321</AircraftName>
 
                              <AircraftType>321</AircraftType>
 
                              <DepDateTime>2014-12-20T12:20:00</DepDateTime>
 
                              <ArrDateTime>2014-12-20T17:50:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>K</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>210</FlightTime>
 
                              <TimeZone Departure="1" Arrival="3"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="3" SegGroupNum="1">
 
                              <DepAirp CodeType="IATA" Name="Домодедово, Москва">DME</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>1325</FlightNumber>
 
                              <AircraftName>Airbus 321</AircraftName>
 
                              <AircraftType>321</AircraftType>
 
                              <DepDateTime>2014-12-23T09:05:00</DepDateTime>
 
                              <ArrDateTime>2014-12-23T10:50:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>V</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>225</FlightTime>
 
                              <TimeZone Departure="3" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="4" SegGroupNum="1">
 
                              <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>1628</FlightNumber>
 
                              <AircraftName>Avro RJ100</AircraftName>
 
                              <AircraftType>AR1</AircraftType>
 
                              <DepDateTime>2014-12-23T12:25:00</DepDateTime>
 
                              <ArrDateTime>2014-12-23T13:20:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>K</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>55</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="5" SegGroupNum="2">
 
                              <DepAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>1639</FlightNumber>
 
                              <AircraftName>Avro RJ100</AircraftName>
 
                              <AircraftType>AR1</AircraftType>
 
                              <DepDateTime>2014-12-27T07:05:00</DepDateTime>
 
                              <ArrDateTime>2014-12-27T08:05:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>K</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>60</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                          <Segment SegNum="6" SegGroupNum="2">
 
                              <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp>
 
                              <DepTerminal xsi:nil="true"/>
 
                              <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp>
 
                              <ArrTerminal xsi:nil="true"/>
 
                              <OpAirline>LX</OpAirline>
 
                              <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName>
 
                              <MarkAirline>LX</MarkAirline>
 
                              <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName>
 
                              <FlightNumber>2026</FlightNumber>
 
                              <AircraftName/>
 
                              <AircraftType>32A</AircraftType>
 
                              <DepDateTime>2014-12-27T12:30:00</DepDateTime>
 
                              <ArrDateTime>2014-12-27T14:50:00</ArrDateTime>
 
                              <StopNum>0</StopNum>
 
                              <BookingCodes>
 
                                <BookingCode ClassType="economy">
 
                                    <BookingCode>V</BookingCode>
 
                                </BookingCode>
 
                              </BookingCodes>
 
                              <FlightTime>140</FlightTime>
 
                              <TimeZone Departure="1" Arrival="1"/>
 
                              <ETicket>true</ETicket>
 
                          </Segment>
 
                        </Segments>
 
                        <PricingInfo Refundable="false">
 
                          <PassengerFare Type="ADT" Quantity="1">
 
                              <BaseFare Currency="CZK" Amount="8440"/>
 
                              <EquiveFare Currency="RUB" Amount="17305"/>
 
                              <TotalFare Currency="RUB" Amount="31456"/>
 
                              <Taxes>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
 
                                <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/>
 
                                <Tax CurCode="RUB" TaxCode="RI" Amount="378"/>
 
                                <Tax CurCode="RUB" TaxCode="RI" Amount="378"/>
 
                                <Tax CurCode="RUB" TaxCode="UH" Amount="284"/>
 
                                <Tax CurCode="RUB" TaxCode="CZ" Amount="1159"/>
 
                                <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/>
 
                                <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/>
 
                                <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/>
 
                                <Tax CurCode="RUB" TaxCode="EX" Amount="56"/>
 
                                <Tax CurCode="RUB" TaxCode="IT1" Amount="707"/>
 
                                <Tax CurCode="RUB" TaxCode="VT" Amount="142"/>
 
                                <Tax CurCode="RUB" TaxCode="HB" Amount="364"/>
 
                                <Tax CurCode="RUB" TaxCode="MJ" Amount="67"/>
 
                              </Taxes>
 
                              <Tariffs>
 
                                <Tariff Code="KNC29F3S" SegNum="2"/>
 
                                <Tariff Code="VNC28G2S" SegNum="6"/>
 
                                <Tariff Code="KNN2SSR" SegNum="5"/>
 
                              </Tariffs>
 
                              <FareCalc>PRG LX X/ZRH LX MOW28.06LX ZRH*LX MIL31.13LX ZRH31.13*LX MAD175.52 1S129.53NUC395.37END ROE21.3469</FareCalc>
 
                              <LastTicketDateTime>2014-12-20T11:05:00</LastTicketDateTime>
 
                          </PassengerFare>
 
                          <PassengerFare Type="INF" Quantity="1">
 
                              <BaseFare Currency="CZK" Amount="3333"/>
 
                              <EquiveFare Currency="RUB" Amount="6835"/>
 
                              <TotalFare Currency="RUB" Amount="6835"/>
 
                              <Taxes/>
 
                              <Tariffs>
 
                                <Tariff Code="KNC29F3S/IN90" SegNum="2"/>
 
                                <Tariff Code="VNC28G2S/IN90" SegNum="6"/>
 
                                <Tariff Code="KNN2SSR/IN90" SegNum="5"/>
 
                              </Tariffs>
 
                              <FareCalc>PRG LX X/ZRH LX MOW2.80LX ZRH*LX MIL3.11LX ZRH3.11*LX MAD17.55 1S129.53NUC156.10END ROE21.3469</FareCalc>
 
                              <LastTicketDateTime>2014-12-20T11:05:00</LastTicketDateTime>
 
                          </PassengerFare>
 
                        </PricingInfo>
 
                        <Commission/>
 
                        <Charges Currency="RUB">765.82</Charges>
 
                        <TotalPrice Currency="RUB">39056.82</TotalPrice>
 
                    </Flight>
 
                    .........
 
                    <Flight>...</Flight>
 
                  </Flights>
 
                  <Errors xsi:nil="true"/>
 
              </SearchFlights>
 
            </Response>
 
        </ResponseBin>
 
      </ns1:searchResponse>
 
  </SOAP-ENV:Body>
 
</SOAP-ENV:Envelope>
 
</syntaxhighlight>
 
</div>
 
</div>
 
  
  
 +
</pre>
 +
</div></div>
  
==API Поиска отелей==
+
-->
==API бронирования, аннуляции, войдирования авиабилетов==
 
==API бронирования, отмены отелей==
 
==API Выгрузки статистики продаж через API==
 
==Выгрузка информации о продажах в формате Nemo XML==
 
==Выгрузка информации о продажах в формате СОФИ XML==
 
==Фиксация оплаты внешним запросом==
 
==Выгрузка заказов по критериям в формате Nemo XML==
 
==Выгрузка определенного заказа по критериям в формате Nemo XML==
 
==API универсального платежного шлюза==
 
==API Синхронизации пользователей и субагентов==
 
==API Кросс­авторизации==
 
==Передача параметров в форму поиска==
 
==Проверка в сторонней системе возможности тикетинга==
 
==API загрузки счетов из сторонней системы==
 
==API загрузки сальдо компаний из СОФИ==
 

Текущая версия на 14:43, 28 ноября 2018

API Авиабилетов

Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ.

API Поиска авиабилетов

Это сервис внутри Nemo, который позволяет получить результаты поиска.

Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Администрирование»«Веб-служба. Авторизация».

Подробнее можно узнать в специальной статье Веб-служба поиска авиабилетов

API Бронирования авиабилетов

Сервис позволяет забронировать/войдировать авиабилет с использованием API, описание подключения, запроса, ответов находится в этой статье Веб-служба бронирования

API Выписки авиабилетов

Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. Веб-служба выписки

API Оплаты

Сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов. Агентские АПИ оплаты

API Дополнительных запросов авиабилетов

К дополнительных запросам относятся проверка на доступность, запрос на обновление заказа, чтение тарифных правил. Дополнительные запросы АПИ авиабилетов

Используемые параметры

Параметры, используемые в запросах

Имя элемента Обязательный Тип Описание
BookFlight да сложный Контейнер для тела запроса бронирования
FlightId да числоId перелёта для которого будет производится бронирование(поиск тарифных правил, проверка доступности)
CurrencyCode нетстрокаТрёх буквенный код валюты (обязателен для комиссии в валюте)
Agency да сложный Информация об агентстве
Name да строка Название агентства
Telephone нет сложный Контактный телефон агентства
Typeда строка Тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий, A - агентство
PhoneNumber да строка Номер телефона
CountryAccessCode нет строка Код страны
AreaCityCode нет строкаКод региона/города
Addressда сложный Адрес агентства
Cityда строка Город, в котором расположено агентство
StreetAddress нет сложный Адрес агентства в городе (улица, дом, корпус, офис и т.д.)
PostalCode нет строка Почтовый код, индекс.
CountryCode нет строка Код страны (RU, UA, US и т.д.)
Travellers да сложный Контейнер для информации о пассажирах (для которых будет производится поиск перелёта, бронирование)
Traveller да сложный Информация о пассажире
TypeдастрокаТип пассажира возможные значения: ADT - взрослые, CNN - дети, UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом
IsContact нетбулевский Индикатор показывающий является ли данное лицо контактным, возможные значение: true - пассажир является контактным лицом, false - не является. Контактное лицо может быть только одно, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом. Если не указано, то по умолчанию false.
LinkedTo нет целое число Номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)
Num да число Номер пассажира.
PreferedPlace нет сложный Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры Smoking и Location игнорируются и могут быть не указаны.
SmokingAllowed нет булевский true - место для курящих, false - место для некурящих. По умолчанию false.
Location нет строка Расположение места, возможные значения: W - у окна (Window); M - где-то в середине ряда (Middle); NPW - возле прохода (NearPassengerWay); NS - нет предпочтения (NotSpecified).
RowNumberнетстрока Номер ряда
PlaceNumber нет строка Номер места
SegNumber да строка Номер сегмента
DocumentInfo да сложный Паспортные данные
DocType да строка Тип документа, обязательный.
DocNum да строка Номер документа
CountryCode да строка Страна выдачи, двух буквенный код(RU, US и т.д.)
DocElapsedTimeда строка Срок истечения срока действия паспорта в фирмате dd.mm.yyyy (например 31.12.2012)
VisaInfo нет сложный Информация о визе
Num да строка Номер визы
IssueDate да строка Дата выдачи визы в формате dd.mm.yyyy
IssueCountry да строка Страна выдачи визы
IssuePlace да строка Место выдачи визы
BirthCountry нет строка Страна рождения (IATA код страны)
BirthCity нетстрокаГород рождения (название)
ArrAddress нет сложный Адрес прибытия, для въезжающих в США (не граждан США) информация является обязательной. Если она не заполняется при оформлении брони, то её всё равно придётся заполнять при посадке на самолёт.
CountryCode да строка IATA код страны
State да строка Штат или область въезда
PostalCode да строка Почтовый код
City да строка Город
StreetAddress да строка Адрес: улица, номер дома, квартиры и тп
DocStringFormats нет сложный Список форматов строк паспортных данных, которые будут отправлены в дополнение к стандартным.
DocStringFormat да строка Формат данных, возможные значения: DOCS - строка формата DOCS, FOID - строка формата FOID. Установка данных в формате DOCS как правило необходима для последующей выписки в BSP среде. Установка FOID - всреде ТКП.
PersonalInfo да сложный Персональные данные пассажира
DateOfBirthда строка Дата рождения в формате dd.mm.yyyy (например 31.12.2000)
Nationality да строка Национальность/гражданство, двух буквенный код страны (RU, UA, US и т.д.)
Gender да строка Пол пассажира, обязательный, возможные значения: M - мужской(Male); F - женский(Female).
FirstName да строка Имя пассажира
LastName да строка Фамилия пассажира
BMiddleName да строка Отчество пассажира
Meal нетстрока Код типа питания, возможные значения: NONE - отсутствует (по умолчанию); AVML - Азиатская вегетарианская кухня; BLML - Блюда щадящей диеты; CHML - Детское питание; CHPC - Детский холодный завтрак; СНСС - Детский горячий завтрак; CHHC - Детский ланч, ветчина и сыр; PBJS - Детский ланч, ореховое масло; CHMC - Детский обед макароны с сыром; DBML - Диабетическое питание; FPML - Фрукты; GFML - Питание без клейковины; HFML - Питание богатое клетчаткой; HNML - Индусская кухня; BBML - Питание для младенцев; KSML - Кошерная кухня; SMKB - Кошерный завтрак; SMKL - Кошерный ланч; SMKD - Кошерный обед; LPML - Малобелковое питание; LCML - Низкокалорийное питание; LFML - Низкохолестериновое питание; PRML - Низкопуриновое питание; LSML - Малосоленое питание; MOML - Мюсли; NLML - Безмолочные продукты; ORML - Восточная кухня; RVML - Сырые овощи; SFML - Морепродукты; SPML - Особое питание; VLML - Вегетарианское, молоко и яйца; VGML - Строго вегетарианское питание; VJML - Джайнизское вегетарианское; VOML - Восточное вегетарианское питание.
LoyaltyCard нет сложный Карточка часто летающего пассажира
OpCode да строка IATA код компании авиаперевозчика
Number да строка Номер карточки
ContactInfoнет сложный Контактная информация для пассажира
EmailID нет строка Контактный email
Telephone нет сложный Контактный телефон пассажира, описание аналогично описанию телефона агентства
CancelBookдасложныйКонтейнер для тела запроса отмены брони
BookIDдачислоНомер брони, которая будет отменяться (для которой будет производится выписка, отмена выписки)
GetAirRulesдасложныйКонтейнер для тела запроса поиска тарифных правил
AirAvailдасложныйКонтейнер для тела запроса проверки доступности перелёта
TicketingдасложныйКонтейнер для тела запроса выписки брони
ValCompanyнетстрокаВалидирующий перевозчик, на бланке которого выписывается билет
ComissionнетсложныйКомиссия
Amountнетчисло с плавающей точкойЗначение комиссии в валюте, если указано, то комиссия в процентах игнорируется
PercentнетчислоКомиссия в процентах
VoidTicketдасложныйКонтейнер для тела запроса отмены выписки брони
SearchдасложныйКонтейнер для тела запроса поиска
ODPairsдасложныйКонтейнер для информации о перелёте
TypeдастрокаТип перелёта, возможные значения: OW - в одну сторону, RT - туда-обратно, CR - сложный маршрут
DirectнетбулевскийИндикатор, указывающий какие перелёты искать, только прямые или с пересадками, возможные значения: false - с пересадками, true - только прямые. Если не указан, значение по умолчанию false.
AroundDatesнетчислоВключает поиск по окружным датам, количество дней +/- от даты заезда/возвращения. Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT). Возможные значения: 0, 1, 2, 3
ODPairдасложныйКонтейнер для информации о сегменте перелёта. Может повторяться 1-6 раз. Поиск по расписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается
DepDateдастрокаДата вылета, Формат ГГГГ-MM-DDTЧЧ:ММ:СС
DepAirpдастрокаТрёх буквенный код города отправления или конкретного аэропорта в городе отправления.
ArrAirpдастрокаТрёх буквенный код города прибытия или конкретного аэропорта в городе прибытия.
CountдачислоЧисло пассажиров данного типа. Общее количество пассажиров всех типов должно быть не более 9.
RestrictionsнетсложныйКонтейнер дополнительной информации для поиска.
ClassPrefнетстрокаПредпочитаемый класс перелёта, возможные значения: All - все, Economy - эконом, Business - бизнес, First - первый. Если не указан, то по умолчанию All.
OnlyAvailнетбулевскийИскать только доступные, возможные значения: true - только доступные, false - все. Если не указан, то по умолчанию false.
AirVPrefsнетсложныйОбёртка для списка авиакомпаний, по которым будет или не будет проводиться поиск.
AirVPrefдасложныйИнформация об авиакомпании.
IncludeнетбулевскийИндикатор, показывающий включить или исключить в результатах поиска перелёты данной авиакомпании: true - включить, false - исключить. Если не указан, то по умолчанию false.
IncludePrivateFareнетбулевскийВключать приватные цены в результат или нет, возможные значения: true - включать, false - не включать. Если не указан, то по умолчанию false.
ServiceTypesнетсложный хмлКонтейнер массива используемых веб-сервисов при поиске.
ServiceTypeнетстрокаТип веб-сервиса(поставщика). При указании нескольких элементов ServiceType поиск будет проведён для каждого сервиса. Возможные значения: Sirena2000 - поиск в Сирене; SirenaSchedule - поиск в Сирене по расписанию; SabreLFS - поиск в Сэйбр LFS; SabreBFM - поиск в Сэйбр BFM; SabreSchedule - поиск Сэйбр по расписанию; Galileo - поиск в Галилео; AmadeusMPTBS - поиск в Амадеус.

Параметры, используемые в ответах

Имя элемента Обязательный Тип Описание
BookFlightResult да сложный Контейнер для тела ответа бронирования
ID да числоНомер бронирования в системе Nemo.
Status да строка Статус брони, возможные значения: booked - забронировано, canceled - бронь отменена, ticket - выписана; UNDEFINED - статус не определён.
Code да строка Номер бронирования в системе поставщика (в sabre, sirena и т.д.)/код тарифного правила
QueryPlace нет сложный Очередь, в которую помещено бронирование
Number да число Номер очереди
Flight да сложный Перелёт, по которому была сделана бронь (Результаты проверки доступности для перелёта)
Agency да сложный Информация об агентстве
ItinReceiptsнет сложный Маршрут квитанция. Содержит строку в кодировки Encoding (как правило в base64), представляющую маршрут квитанцию в формате Format.
Encoding да строка Кодировка
Format да строкаФормат
Travellersда сложный Контейнер для информации о пассажирах
Traveller да сложный Информация о пассажире
Ticket нет сложный Билет пассажира.
TickectNum да строка Номер билета
Seatsнет сложный Контейнер мест пассажира.
Seat да сложный Место в самолёте
Number да строкаНомер места(ряд+номер в ряду)
Characteristic нетстрока Характеристика места в соответствии со стандартом EDIFACT. См справочник “Таблица характеристик мест”.
SmokingPreference нет строка Статус курения на этом месте, если Y - место для курящих, если N - место для некурящих.
SegmentNumber да число Номер сегмента
PersonalInfo да сложный Личные данные
LoyaltyCard нет сложный Карточка часто летающего пассажира
ContactInfo нет сложный Контактная информация для пассажира
FareStored нет срока: Yes/No Указывает установлена ли / гарантируется ли цена у поставщика. Если параметр отсутствует в ответе, то по умолчанию значение “Yes”.
CancelBookResultдасложныйКонтейнер для тела ответа отмены брони
BookIDдачислоНомер брони, которая отменялась (Номер выписанной брони, выписка которой отменялась)
ResultдасложныйРезультат отмены (войдирования)
SuccessдабулевскийИндикатор, показывающий успешно или нет прошла отмена, возможные значения: true - успешно отменена (войдирование); false - не отменена
GetAirRulesResultдасложныйКонтейнер для тела ответа поиска тарифных правил
FlightIdдачислоНомер перелёта, для которого найдены тарифные правила (будет проводилась проверка доступности)
RulesдасложныйКонтейнер для правил
RuleдасложныйПравило
TarrifдастрокаКод тарифа, для которого правило применяется
NameдастрокаИмя правила
RuleTextдастрокаТекст правила
AirAvailResultдасложныйКонтейнер для тела ответа помещения брони в очередь
IsAvailдабулевскийИндикатор, показывающий доступность перелёта, возможные значения: true - доступен; false - недоступен
VoidTicketResultдасложныйКонтейнер для тела ответа отмены выписки брони
SearchResultнетсложныйКонтейнер тела ответа для результатов поиска.
FlightsдасложныйКонтейнер для перелётов
FlightнетсложныйПредставляет информацию о перелёте. Отсутствует если перелётов не найдено (используется в поисковом ответе)
WebServiceдастрокаВеб-сервис (поставщик) от которого был получен перелёт.
ValCompanyнетстрокаIATA код авиакомпании. Валидирующий перевозчик, на бланках которого должен выписываться билет.
SegmentsдасложныйКонтейнер для сегментов перелёта
SegmentдасложныйПредставляет информацию о сегменте
SegNumдачислоНомер сегмента в перелёте
DepAirpдастрокаIATA код аэропорта отправления
DepTerminalнетстрокаКод терминала отправления
ArrAirpдастрокаIATA код аэропорта прибытия
ArrTerminalнетстрокаКод терминала прибытия
OpAirlineдастрокаКод авиакомпании, выполняющей рейс
MarkAirlineдастрокаКод авиакомпании, продающей билет
FlightNumberдачислоНомер рейса
AircraftTypeдастрокаКод типа самолёта
DepDateTimeдастрокаДата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС
ArrDateTimeдастрокаДата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС
StopNumдачислоЧисло остановок
MealдастрокаТип питания, возможные значения: UNDEFINED - неизвестно; N - Нет питания; P - Алкогольные напитки в продаже; B - Завтрак; O - Холодная еда; C - Бесплатные алкогольные напитки; K - Континтальный завтрак; D - Обед; F - Еда в продаже; G - Еда/напитки в продаже; H - Горячая еда; L - Ланч; M - Еда; R - Освежающие еда/напитки бесплатно; V - Освежающие еда/напитки за отдельную плату; S - Закуска
BookingCodesдасложныйКонтейнер для классов перелёта
BookingCodeдастрокаКод класса перелёта. Если производится поиск по расписанию, то может встречаться несколько раз.
FlightTimeнетчислоВремя перелёта в минутах
TimeZoneнет сложныйИнформация о временных зона прибытия и отправления
DepartureдачислоЧасовой пояс отправления, UTC (смещение относительно Гринвича)
ArrivalдачислоЧасовой пояс прибытия, UTC (смещение относительно Гринвича)
ETicketдабулевский Индикатор электронного билета, возможные значения: true - билет является электронным, false - билет не является электронным.
BaggageнетсложныйИнформация о багаже
MeasureдастрокаМера веса. K - килограммы, PC - сумки/клади
ValueдастрокаКоличество багажа
PricingInfoнетсложныйКонтейнер для информации о ценах. Отсутствует в случае, если производится поиск по расписанию.
RefundableдабулевскийИндикатор показывающий является ли билет возвратным или нет, возможные значения: true - возвратный (нет штрафов за возврат), false - невозвратный (могут быть штрафы за возврат)
PassengerFareдасложныйИнформация о ценах для конкретного типа пассажиров.
QuantityдачислоЧисло пассажиров данного типа
BaseFareдасложныйЦена в базовой валюте(за одного пассажира)
EquiveFareнетсложныйЦена в эквивалентной валюте(за одного пассажира), при поиске цены не возвращается
TotalFareнетсложныйПолная стоимость для пассажиров данного типа включая таксы (за одного пассажира), при поиске цены не возвращается
CurrencyдастрокаТрёх буквенный код валюты.
Amountдачисло с плавающей точкойЗначение стоимости.
TaxesнетсложныйКонтейнер для такс, при поиске цены не возвращается
TaxдасложныйОдна такса
CurCodeдастрокаТрёх буквенный код валюты для таксы
TaxCodeдастрокаКод таксы
Amountдачисло с плавающей точкойЗначение таксы
TariffsдасложныйКонтейнер для тарифов
TariffдасложныйКонтейнер для одного тарифа
CodeдастрокаКод тарифа
SegNumдачислоНомер сегмента для которого применяется тариф, если тариф применяется для всех сегментов, то возвращается 0.
FareCalcнетстрокаСтрока расчёта цены
LastTicketDateTimeдастрокаДата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если бронирование не будет аннулировано или выписано до этого времени, то могут быть применены штрафы.

API Отелей

Агентский API Отелей - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.

Подробнее можно узнать в нашей специальной статье Агентский АПИ отелей


Выгрузки статистики продаж через API (Метапоиск)

Метапоисковая система (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем.

В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) за определенный период бронирования заказов в виде файла данных в формате XML.

Можно получить список заказов с их статусом (забронирован, выписан, аннулирован), сделанных через метапоисковую систему.

Подробнее можно узнать в статье посвященной взаимодействию с метопоисковиками Взаимодействие с метапоисковиками

Выгрузка информации о заказах

Выгрузка заказов — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье Выгрузка

API Синхронизации пользователей и субагентов

Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей. Модуль является компонентом, включаемым и отключаемым из административной части.

О механизме авторизации B2B-пользователей, синхронизации учетных записей можно прочитать в статье Синхронизация пользователей

API Кросс­авторизации

Авторизация пользователей из внешних систем — Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п)

Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу:

http://hostname/authorization_reol.wsdl

Запрос
?xml version ='1.0' encoding ='UTF-8' ?>
<definitions name='Authorization'
 targetNamespace='http://example.org/Authorization'
 xmlns:tns=' http://example.org/Authorization '
 xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
 xmlns:xsd='http://www.w3.org/2001/XMLSchema'
 xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
 xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
 xmlns='http://schemas.xmlsoap.org/wsdl/'>
 
<message name='getAuthorizationRequest'>
 <part name='login' type='xsd:string'/>
 <part name='pass' type='xsd:string'/>
</message>
<message name='getAuthorizationResponse'>
 <part name='session_id' type='xsd:string'/>
 <part name='user_id' type='xsd:string'/>
 <part name='login' type='xsd:string'/>
 <part name='status' type='xsd:string'/>
</message>
 
<portType name='AuthorizationPortType'>
 <operation name='getAuthorization'>
  <input message='tns:getAuthorizationRequest'/>
  <output message='tns:getAuthorizationResponse'/>
 </operation>
</portType>
 
<binding name='AuthorizationBinding' type='tns:AuthorizationPortType'>
 <soap:binding style='rpc'
  transport='http://schemas.xmlsoap.org/soap/http'/>
 <operation name='getAuthorization'>
  <soap:operation soapAction='urn:xmethods-delayed-quotes#getAuthorization'/>
  <input>
   <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
  </input>
  <output>
   <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
  </output>
 </operation>
</binding>
 
<service name='AuthorizationService'>
 <port name='AuthorizationPort' binding='AuthorizationBinding'>
  <soap:address location='http://nemo.local/controllers/authorization/auth_server.php'/>
 </port>
</service>
</definitions>

Передача параметров в форму поиска (FastSearch)

В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.

Примеры FastSearch запросов и используемые переменные подробно описаны в статье FastSearch - передача параметров в форму

FastSearch так же работает и для отелей, подробности в статье Fast Search для отелей