Открыть главное меню

Изменения

Интеграция со сторонними системами АПИ

4992 байта убрано, 14:43, 28 ноября 2018
м
API Авиабилетов
==API Поиска авиабилетов===== Подключение =Авиабилетов==
Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ.
 
=== API Поиска авиабилетов ===
Это сервис внутри Nemo, который позволяет получить результаты поиска.
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''.
После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.Подробнее можно узнать в специальной статье [[Веб-служба поиска авиабилетов]]
WSDL === API Бронирования авиабилетов ===Сервис позволяет забронировать/войдировать авиабилет с использованием API, описание подключения, запроса, ответов находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlightsв этой статье [[Веб-служба бронирования]]
=== Общий формат запроса / ответа поиска API Выписки авиабилетов === Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. [[Веб-служба выписки]] === API Оплаты === Сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов. [[Агентские АПИ оплаты]] === API Дополнительных запросов авиабилетов === К дополнительных запросам относятся проверка на доступность, запрос на обновление заказа, чтение тарифных правил. [[Дополнительные запросы АПИ авиабилетов]] === Используемые параметры ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Запрос =Параметры, используемые в запросах ====
<div class="mw-collapsible-content">
<syntaxhighlight langtable border="xml1" line enclose> <tr bgcolor="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;CCCCCC"> <th> Имя элемента <soapenv:Envelope xmlns:soapenv="http:/th><th> Обязательный </schemas.xmlsoap.orgth><th> Тип </soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"th><th> Описание <soapenv:Header/th> <soapenv:Body/tr> <ver:searchtr> <RequestBintd> BookFlight <Request/td> <SearchFlights LinkOnlytd>да </td><td>сложный </td><td>Контейнер для тела запроса бронирования</td> </tr> <tr> <td>FlightId </td><td class="?col1"> да <!--LinkOnly — Позволяет управлять выдачей результатов. true — вернуть только ссылку на результаты поиска/td><td>число</td><td >Id перелёта для которого будет производится бронирование(поиск тарифных правил, без перелётов (занимает меньше временипроверка доступности), false — полная выдача, ссылки и перелёты.--</td> <ODPairs Type="?" Direct="?" AroundDates="?"/tr> <tr> <td>CurrencyCode <!--Type — тип перелёта, возможные значения: OW — туда, RT — туда-обратно, CR — сложный маршрут. Для перелета туда-обратно или сложного маршрута необходимо добавить еще один или несколько тэгов ODPair, примеры далее--/td><td>нет</td><td> строка<!--Direct — искать только прямые перелёты, возможные значения: true/false--td><td>Трёх буквенный код валюты (обязателен для комиссии в валюте)</td> <!--AroundDates — поиск по окружным датам, количество дней +/- от даты заезда/возвращения, значения: 0, 1, 3.tr> <tr> Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT)-- <td> Agency <!--Zero or more repetitions:--/td><td>да </td><td> сложный <ODPair/td> <DepDatetd>?Информация об агентстве</DepDatetd> <!--DepDate — дата вылета, в формате ГГГГ-MM-ДД--/tr> <DepAirp CodeType="IATA"tr> <td>?Name </DepAirptd><td> да <!--DepAirp — аэропорт вылета, IATA код--/td> <ArrAirp CodeType="IATA"td>?строка </ArrAirptd> <!--ArrAirp — аэропорт прилёта, IATA код--> td>Название агентства</ODPairtd> </ODPairstr> <Travellerstr> <!--Zero or more repetitions:--td> Telephone <Traveller Type="?" Count="?"/td> <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, INF — младенцы, INS — младенцы с местом--> td>нет </td><!--Count — количество пассажиров--td> сложный </Travellerstd> <Restrictionstd>Контактный телефон агентства</td>  </tr> <tr> <td>Type</td><ClassPreftd>да </td><td>?строка </ClassPreftd> <!td>Тип номера, возможные значения: M -мобильный, H -необязательныйдомашний, B -рабочий, A -агентство</td> <!--ClassPref — предпочитаемый класс поиска, возможные значения: economy, business, first./tr> Если не заполнять, то будет произведен поиск эконом класса-- <tr> <OnlyAvailtd>?PhoneNumber </OnlyAvailtd> <!--необязательный--td> да </td><td>строка </td><td>Номер телефона<!--OnlyAvail — искать только доступные, возможные значения: true/false--td> <AirVPrefs/tr> <!--Zero or more repetitions:--tr> <td>CountryAccessCode <AirVPref Code="?" Include="?" Type="IATA"/td> <!--необязательный--td> нет <!--Code — код авиакомпании, SU, FV и т.п.--/td> <!--Include — включить или исключить авиакомпанию из результатов: true — включить, false — исключить--td>строка </td><td>Код страны</td> </AirVPrefstr> <tr> <IncludePrivateFaretd>?AreaCityCode </IncludePrivateFaretd> <!--необязательный--td> нет <!--IncludePrivateFare — искать цены для агентства, если true — то включаем приватные, false — публичные--/td><td>строка</td> <CurrencyCodetd>?Код региона/города</CurrencyCodetd>   <!--необязательный--/tr> <!--CurrencyCode — код валюты, например: RUB, EUR--tr> <td>Address</td><td>да </td><td>сложный </Restrictionstd><td class="col3"> Адрес агентства</SearchFlightstd> </Requesttr> <Sourcetr> <ClientIdtd>?City</ClientIdtd><td> да <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе td><td class="Администрированиеcol2" ? "Веб-служба. Авторизация".--> строка </td><APIKeytd>?Город, в котором расположено агентство</APIKeytd> <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе tr> <tr> "Администрирование" ? "Веб-служба. Авторизация".-- <td> StreetAddress <Language/td>?</Languagetd> нет <!--Language — язык, например: RU--/td> <Currencytd>?сложный </Currencytd> <!-- Currency — валютаtd>Адрес агентства в городе (улица, дом, например: RUBкорпус, EUR--офис и т.д.)</td> </tr> <tr> <td>PostalCode </td><ShowNamestd>?нет </ShowNamestd><td>строка </td> <!-- ShowNames — отображение названий аэропортовtd>Почтовый код, авиакомпаний индекс.</td>  </tr> <tr> <td>CountryCode </td><td>нет </td><td>строка </td><td>Код страны (RU, UA, US и воздушных судов: true - отображать, false - не отображатьт.д. Возвращает значение на том языке, который был указан )</td> </tr> <tr> <td>Travellers </td><td>да </td><td>сложный </td><td>Контейнер для информации о пассажирах (для которых будет производится поиск перелёта, бронирование)</td>  </tr> <tr> <td class="col0">Traveller </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация о пассажире</td> </tr> <tr class="row24"> <td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: ADT - взрослые, CNN - дети, UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом</td>  </tr> <tr class="row25"> <td class="col0">IsContact </td><td class="col1">нет</td><td class="col2">булевский </td><td class="col3">Индикатор показывающий является ли данное лицо контактным, возможные значение: true - пассажир является контактным лицом, false - не является. Контактное лицо может быть только одно, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом. Если не указано, то по умолчанию false.</td> </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 - поиск в запросеАмадеус. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. --> </Sourcetd> </RequestBin> </ver:search> </soapenv:Body></soapenv:Envelopetr></syntaxhighlighttable>
</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Ответ =Параметры, используемые в ответах ====
<div class="mw-collapsible-content">
<syntaxhighlight langtable border="xml1" line enclose="div" style>  <tr bgcolor="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;CCCCCC"> <SOAP-ENV:Envelope xmlns:SOAP-ENVth class="http:col0 leftalign"> Имя элемента </th><th class="col1 leftalign"> Обязательный </schemas.xmlsoap.org/soap/envelope/th><th class=" xmlns:ns1=col2 leftalign"http:> Тип <//CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsith><th class="http://www.w3.org/2001/XMLSchema-instancecol3 centeralign"> Описание <SOAP-ENV:Body/th> <ns1:searchResponse/tr> <ResponseBintr class="row1"> <Responsetd class="col0"> BookFlightResult <SearchFlights/td> <Flights SearchIdtd class="?col1" ResultURL>да </td><td class="?col2"> сложный <!--SearchId — номер процесса поиска в Nemo--/td> <!--ResultURL — ссылка на страницу просмотра результатов на сайте агентства--td class="col3">Контейнер для тела ответа бронирования</td>  </tr> <Flight FlightIdtr class="?row2"> <!--FlightId — Id перелёта в системе Nemo--td class="col0"> ID <WebService/td>?</WebServicetd class="col1">да </td><td class="col2"> число<!--WebService — поставщик перелёта--/td> <ValCompanytd class="col3">?Номер бронирования в системе Nemo.</ValCompanytd> <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA--/tr> <URL>?</URLtr class="row3"> <!--URL — ссылка на бронирование конкретного перелета--td class="col0 leftalign"> Status <Segments/td> <Segment SegNumtd class="?col1" SegGroupNum>да </td><td class="?col2"> строка </td><!td class="col3">Статус брони, возможные значения: booked -забронировано, canceled -SegNum — номер сегмента в перелётебронь отменена, ticket -выписана; UNDEFINED -статус не определён.</td> <!--SegGroupNum – номер плеча перелёта--/tr> <DepAirp CodeTypetr class="IATArow4" Name> <td class="?col0">?Code </DepAirptd><td class="col1"> да <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево. Name - название аэропорта отправления--/td> <DepTerminaltd class="col2">?строка </DepTerminaltd> <!--DepTerminal — терминал пункта отправления, если пустое значениеtd class="col3">Номер бронирования в системе поставщика (в sabre, sirena и т.д.)/код тарифного правила</td> то в аэропорту всего 1 терминал-- </tr> <ArrAirp CodeTypetr class="IATArow5" Name> <td class="?col0">?QueryPlace </ArrAirptd><td class="col1"> нет <!--ArrAirp — аэропорт прибытия. Name - название аэропорта прибытия--/td> <ArrTerminaltd class="col2">?сложный </ArrTerminaltd> <!--ArrTerminal — терминал пункта прибытияtd class="col3">Очередь, если пустое значение, то в аэропорту всего 1 терминал--которую помещено бронирование</td> <OpAirline>? </OpAirlinetr> <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот--tr class="row6"> <OpAirlineNametd class="col0 leftalign">?Number </OpAirlineNametd> <!--OpAirlineName — название авиакомпании перевозчика, например: Аэрофлот - Российские авиалинии --td class="col1">да </td> <MarkAirlinetd class="col2">?число </MarkAirlinetd> <!--MarkAirline — авиакомпания, продающая перелёт--td class="col3"> Номер очереди<MarkAirlineName/td>? </MarkAirlineNametr> <!--MarkAirlineName — название авиакомпании, продающей перелёт--tr class="row7"> <FlightNumbertd class="col0">?Flight </FlightNumbertd><td class="col1"> да <!--FlightNumber — номер рейса--/td> <AircraftNametd class="col2">?сложный </AircraftNametd> <!--AircraftName — название воздушного судна. Например: Airbus 320--td class="col3"> Перелёт, по которому была сделана бронь (Результаты проверки доступности для перелёта)<AircraftType/td>?  </AircraftTypetr> <!--AircraftType — тип воздушного судна, код--tr class="row8"> <DepDateTimetd class="col0">?Agency </DepDateTimetd><td class="col1"> да <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--/td> <ArrDateTimetd class="col2">?сложный </ArrDateTimetd> <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--td class="col3"> <StopNum>?Информация об агентстве</StopNumtd> <!--StopNum — количество остановок--/tr> <BookingCodestr class="row9"> <td class="col0">ItinReceipts</td><BookingCode ClassTypetd class="?col1"> нет <!--ClassType — класс перелета, например: economy--/td> <BookingCodetd class="col2">?сложный </BookingCodetd> <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс может записываться разными литерамиtd class="col3">Маршрут квитанция. Содержит строку в кодировки Encoding (как правило в base64), например: L--представляющую маршрут квитанцию в формате Format.</td> </BookingCodetr> </BookingCodestr class="row10"> <FlightTimetd class="col0">?Encoding </FlightTimetd> <!--FlightTime — время перелёта в минутах--td class="col1">да </td> <TimeZone Departuretd class="?col2" Arrival>строка </td><td class="?col3">Кодировка</td> <!--Departure временная зона аэропорта отправления--/tr> <!--Arrival — временная зона аэропорта прибытия--tr class="row11"> <ETickettd class="col0">?Format </ETickettd> <!--ETicket — признак электронного билета, значения: true / false--td class="col1"> да </Segmenttd> <td class="col2">строка</Segmentstd> <PricingInfo Refundabletd class="?col3">Формат</td> <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно--tr> <PassengerFare Typetr class="?row12" Quantity> <td class="?col0"> Travellers</td><!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, INF — младенцы, INS — младенцы с местом--td class="col1"> да <!--Quantity — количество пассажиров данного типа--/td> <BaseFare Currencytd class="?col2" Amount>сложный </td><td class="?col3">Контейнер для информации о пассажирах</td> <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены--/tr> <EquiveFare Currencytr class="?row13" Amount> <td class="?col0">Traveller </td> <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи). Currency — код валюты, Amount — значение цены--> <TotalFare Currencytd class="?col1" Amount>да </td><td class="?col2"/> сложный </td><td class="col3">Информация о пассажире<!--TotalFare — суммарная стоимость, в эквивалентной валюте. /td> Currency — код валюты, Amount — значение цены--> <Taxes/tr> <Tax CurCodetr class="?row14" TaxCode> <td class="?col0" Amount>Ticket </td><td class="?col1">нет </td> <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы--td class="col2"> сложный </Taxestd> <Tariffstd class="col3">Билет пассажира.</td> </tr> <Tariff Codetr class="?row15" SegNum> <td class="?col0"/> TickectNum <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф--/td> <td class="col1">да </Tariffstd> <FareCalctd class="col2">?строка </FareCalctd> <!--FareCalc — строка расчёта цены--td class="col3"> Номер билета<LastTicketDateTime/td>?  </LastTicketDateTimetr> <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--tr class="row16"> <td class="col0">Seats</PassengerFaretd> </PricingInfotd class="col1"> нет <Commission/td> <Charges Currencytd class="?col2">?сложный </Chargestd> <!--Charges — сборы, Currency — код валюты--> <TotalPrice Currencytd class="?col3">?Контейнер мест пассажира.</TotalPricetd> <!--TotalPrice — итоговая цена, Currency — код валюты--/tr> </Flighttr class="row17"> <Flighttd class="col0">...<Seat </Flighttd> .................... <Flighttd class="col1">...да </Flighttd> <td class="col2">сложный </td><td class="col3">Место в самолёте</Flightstd> <Errors/tr> <Error Codetr class="?row18"> <!--Code — код ошибки в системе Nemo--> <ServiceErrorMessagetd class="col0">?Number </ServiceErrorMessagetd> <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика--td class="col1"> да <Message/td>?<td class="col2">строка</Messagetd> <!--Message — сообщение об ошибке от системы Nemo--td class="col3"> Номер места(ряд+номер в ряду)</Errortd> </Errorstr> </SearchFlightstr class="row19"> <td class="col0">Characteristic </Responsetd> <td class="col1">нет</ResponseBintd> </ns1:searchResponsetd class="col2"> строка </SOAP-ENV:Bodytd></SOAP-ENVtd class="col3">Характеристика места в соответствии со стандартом EDIFACT. См справочник “Таблица характеристик мест”.</td>  </tr> <tr class="row20"> <td class="col0">SmokingPreference </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Статус курения на этом месте, если Y - место для курящих, если N - место для некурящих.</td> </tr> <tr class="row21"> <td class="col0">SegmentNumber </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер сегмента</td>  </tr> <tr class="row22"> <td class="col0">PersonalInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Личные данные</td> </tr> <tr class="row23"> <td class="col0">LoyaltyCard </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Карточка часто летающего пассажира</td>  </tr> <tr class="row24"> <td class="col0">ContactInfo </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактная информация для пассажира</td> </tr> <tr class="row25"> <td class="col0">FareStored </td><td class="col1">нет </td><td class="col2">срока:EnvelopeYes/No </td><td class="col3">Указывает установлена ли / гарантируется ли цена у поставщика. Если параметр отсутствует в ответе, то по умолчанию значение “Yes”.</td>  </tr> <tr class="row26"> <td class="col0">CancelBookResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа отмены брони</td> </tr> <tr class="row27"> <td class="col0">BookID</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер брони, которая отменялась (Номер выписанной брони, выписка которой отменялась)</td>  </tr> <tr class="row28"> <td class="col0">Result</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Результат отмены (войдирования)</td> </tr> <tr class="row29"> <td class="col0">Success</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий успешно или нет прошла отмена, возможные значения: true - успешно отменена (войдирование); false - не отменена</td>  </tr> <tr class="row30"> <td class="col0">GetAirRulesResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа поиска тарифных правил</td> </tr> <tr class="row31"> <td class="col0">FlightId</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер перелёта, для которого найдены тарифные правила (будет проводилась проверка доступности)</td>  </tr> <tr class="row32"> <td class="col0">Rules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для правил</td> </tr> <tr class="row33"> <td class="col0">Rule</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Правило</td>  </tr> <tr class="row34"> <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></syntaxhighlighttable>
</div>
</div>
В ссылках на просмотр страницы результата поиска и на бронирование конкретного перелета, домен агентства/субагентства определяется следующим образом:==API Отелей==* Если текущий домен агентства/субагентства есть в настройках ('''Администрирование''' ⇨ '''Настройки агентства''' ⇨ '''Доменное имя сайта для загрузки настроекАгентский API Отелей''')- система, то этот домен используется в ссылках.* Если текущего домена нет в настройкахкоторая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, то используется первый домен из настроек.* Если в настройках не прописано ни одного доменауникальной информации об отеле, то используется текущий доменполучение статической информации.
На поиск действуют ограничения заданные Подробнее можно узнать в настройках агентства, в частности ограничения по пассажирам и ограничение ближайшей разрешенной даты поиска билетовнашей специальной статье [http://support.nemo.* Если дата поиска меньше ближайшей разрешенной даты для поиска билетов, то выводится сообщение об ошибке Invalid search param: Неверная дата вылета: слишком близкая* Если количество взрослых пассажиров превышает допустимое ограничение - Invalid search param: Слишком много взрослых* Если количество детей в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много детей* Если количество младенцев в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов* Если количество младенцев с местом в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов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 Агентский АПИ отелей]
=== Примеры использования ===
==== Односторонний перелет ====
Пример одностороннего перелета: Москва ==Выгрузки статистики продаж через API (Метапоиск)== '''Метапоисковая система''' (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем. В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) <u>за определенный период бронирования заказов</u> в виде файла данных в формате XML. Можно получить список заказов с их статусом (забронирован, выписан, аннулирован), сделанных через метапоисковую систему. Подробнее можно узнать в статье посвященной взаимодействию с метопоисковиками [[Взаимодействие с метапоисковиками]] ==Выгрузка информации о заказах =='''Выгрузка заказов''' Мадридэто экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. Подробнее о процессе выгрузки, 1 взрослыйнастройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]] == API Синхронизации пользователей и субагентов ==Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, 1 ребеноксистемой автоматизации туроператора "САМО-тур") и 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="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>
<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 class></div> ="toccolours mw=Передача параметров в форму поиска (FastSearch)== В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска. Примеры FastSearch запросов и используемые переменные подробно описаны в статье [[FastSearch - передача параметров в форму]]  FastSearch так же работает и для отелей, подробности в статье [[Fast Search для отелей]] <!-collapsible mw-collapsedТ.к. это внутренний формат обмена данными между Немо и одним клиентом, то данную инфу скроем в комментарии==Проверка в сторонней системе возможности тикетинга== При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty" style, который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, то в ответе будет <pre><m:Opportunity>Да</m:Opportunity></pre>Пример запроса "GetDebtCounterparty"<pre><?xml version="1.0" encoding="width:1000pxUTF-8"?>
===== Ответ =====<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;"> <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"Body> <SOAP-ENVns1:BodyGetDebtCounterparty> <ns1:searchResponseExternalUserId> <ResponseBin> <Response> <SearchFlights> <Flights SearchId="13949" ResultURL="http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D13949"> <Flight FlightId="168090001"> <WebService>SABRE00000001</WebServicens1:ExternalUserId> <ValCompany/> <URLns1:ExternalPaymentId>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D16809000100000001</URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirp> <DepTerminal/> <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-20T08ns1:05:00</DepDateTimeExternalPaymentId> <ArrDateTime>2014-03-20T10ns1:15:00</ArrDateTime> <StopNumBaseFare>02490</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"> <ns1:BaseFare Currency="EUR" Amount="165"/> <EquiveFare Currency="RUB" Amount="8250"/> <TotalFare Currency="RUB" Amount="10535"/> <Taxes> <ns1:Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> 643<Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> </Taxes> <Tariffs/> <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59ns1: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/> <FareCalcns1:ValVendorCommission>MOW SU MAD16949.08NUC169.08END ROE0.7318578</FareCalcns1:ValVendorCommission> <LastTicketDateTime>2014-03-09T23ns1:59:59</LastTicketDateTimeLocator> 0X97T6</PassengerFarens1:Locator> </PricingInfo> <Commission/> <Charges Currency="RUB"ns1:Discount>0</Chargesns1:Discount> <TotalPrice Currency="RUB">19020</TotalPrice> </Flightns1:Charge> <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-20T20ns1:30:00</DepDateTimeCharge> <ArrDateTime>2014-03-20T22ns1:40:00</ArrDateTimeSum> <StopNum>03133</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-09T23ns1:59:59</LastTicketDateTimeSum> </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-09T23ns1: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="3658.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-20T09ns1:10:00</DepDateTimeTotalPrice> <ArrDateTime>2014-03-20T10:40ns1:00</ArrDateTimeGDSCurrency> <StopNum>0RUB</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-20T12ns1:05:00</DepDateTimeGDSCurrency> <ArrDateTime>2014-03-20T13ns1: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</ETicketOrderCurrency> </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"/ns1:OrderCurrency> <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-09T23ns1:59:59</LastTicketDateTime> </PassengerFareOrderCurrencyRate> <PassengerFare Type="CNN" Quantity="1"> <BaseFare Currency="EUR" Amount="124"/ns1:OrderCurrencyRate> <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> <LastTicketDateTimens1:beginDate>2014-0308-09T2330T11:5905:5900</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="RUB">0</Charges> <TotalPrice Currency="RUB">25312</TotalPrice> </Flight> ......... <Flight>...</Flight> </Flights> <Errors xsins1:nil="true"/> </SearchFlightsbeginDate> </Response> </ResponseBin> </ns1:searchResponseGetDebtCounterparty> </SOAP-ENV:Body>
</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"»
Пример перелета туда<div class="toccolours mw-обратноcollapsible mw-collapsed" style="width: Москва — Париж, 2 взрослых, бизнес класс. '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.'''800px">
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Запрос ==Пример запроса ===
<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>
===== Ответ =====<div class="mw-collapsible-content"><syntaxhighlight lang="?xml" line encloseversion="div1.0" styleencoding="fontUTF-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DSearchFlightsDOMEN_NAME" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:searchResponseNewAccount> <ResponseBinns1:Input> <Responsens1:CompanyID> 0001<SearchFlights/ns1:CompanyID> <Flights SearchId="190484987" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190484987"ns1:ID> 123321<Flight FlightId="372384680001"/ns1:ID> <WebServicens1:ExternalUserId>SABRE00123321</WebServicens1:ExternalUserId> <ValCompany/ns1:Locator> <URL>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190484987%26flight%3D372384680001%26utm_source%3Dalias111KW22</URLns1:Locator> <Segmentsns1:ExternalPaymentId> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirpns1:ExternalPaymentId> <DepTerminal xsins1:nil="true"/Tickets> <ArrAirp CodeType="IATA" Name="Белград, Никола Тесла"ns1:IATAValidator>BEG92222616</ArrAirpns1:IATAValidator> <ArrTerminal xsins1:nil="true"/ValVendor> <OpAirline>JUUT</OpAirlinens1:ValVendor> <OpAirlineNamens1:GDSCurrency>ДЖАТ ЭйрвэйзRUB</OpAirlineNamens1:GDSCurrency> <MarkAirlinens1:OrderCurrency>JURUB</MarkAirlinens1:OrderCurrency> <MarkAirlineNamens1:OrderCurrencyRate>ДЖАТ Эйрвэйз1</MarkAirlineNamens1:OrderCurrencyRate> <FlightNumberns1:BaseFare>6578990</FlightNumberns1:BaseFare> <AircraftName>Airbus 319</AircraftNamens1:Tax> <AircraftTypens1:Code>319YQ</AircraftType> <DepDateTime>2014-12-20T05ns1:05:00</DepDateTimeCode> <ArrDateTime>2014-12-20T06ns1:05:00</ArrDateTimeAmount> <StopNum>0975</StopNum> <BookingCodes> <BookingCode ClassType="business"ns1:Amount> <BookingCode>W </BookingCodens1:Tax> </BookingCodens1:Tax> </BookingCodesns1:Code> <FlightTime>180YR</FlightTimens1:Code> <TimeZone Departure="3" Arrival="1"/> <ETicketns1:Amount>true75</ETicketns1:Amount> </Segmentns1:Tax> <ns1:Segment SegNum="2" SegGroupNum="0"> <DepAirp CodeType="IATA" Name="Белград, Никола Тесла"ns1:StartDate>BEG2015-02-17T20:20:00</DepAirpns1:StartDate> <DepTerminal xsins1:nil="true"/StartAirportCode> <ArrAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDGVKO</ArrAirpns1:StartAirportCode> <ArrTerminal xsins1:nil="true"/EndAirportCode> <OpAirline>JUSGC</OpAirlinens1:EndAirportCode> <OpAirlineNamens1:CompanyCode>ДЖАТ ЭйрвэйзUT</OpAirlineNamens1:CompanyCode> <MarkAirlinens1:Tariffs>JUOSSOW</MarkAirlinens1:Tariffs> <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName> <ns1:FlightNumber>314295</ns1:FlightNumber> <AircraftNamens1:StopOver>Airbus 320O</AircraftName> <AircraftType>320</AircraftType> <DepDateTime>2014-12-20T17:10ns1:00</DepDateTimeStopOver> <ArrDateTime>2014-12-20T19:50ns1:00</ArrDateTime> <StopNumClassTypeCode>0O</StopNumns1:ClassTypeCode> <BookingCodes> <BookingCode ClassType="business"> <BookingCode>W </BookingCodens1:Segment> </BookingCodens1:FullName> PASSANGER NAME</BookingCodesns1:FullName> <FlightTime>160 </FlightTimens1:Tickets> <TimeZone Departure="1" Arrival="1"/ns1:Options> <ETicketns1:Name>trueService</ETicketns1:Name> </Segment> <Segment SegNum="3" SegGroupNum="1"> <DepAirp CodeType="IATA" Name="Шарль де Голль, Париж"ns1:StringValue>CDGGALILEO</DepAirpns1:StringValue> <DepTerminal ns1:NumericValue xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</ArrAirp> <ArrTerminal ns1:DateValue xsi:nil="true"/> <OpAirline>JU </OpAirlinens1:Options> <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineNamens1:Options> <MarkAirlinens1:Name>JUAAA</MarkAirlinens1:Name> <MarkAirlineNamens1:StringValue>ДЖАТ Эйрвэйз000A</MarkAirlineName> <FlightNumber>311</FlightNumber> <AircraftName>Airbus 320</AircraftName> <AircraftType>320</AircraftType> <DepDateTime>2014-12-21T10:10ns1:00</DepDateTimeStringValue> <ArrDateTime>2014-12-21T12:30ns1: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 NumericValue xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</ArrAirp> <ArrTerminal ns1:DateValue xsi:nil="true"/> <OpAirline>JU </OpAirlinens1:Options> <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineNamens1:Options> <MarkAirlinens1:Name>JUCheckbox</MarkAirlinens1:Name> <MarkAirlineNamens1:StringValue>ДЖАТ ЭйрвэйзYES</MarkAirlineName> <FlightNumber>656</FlightNumber> <AircraftName>Airbus 319</AircraftName> <AircraftType>319</AircraftType> <DepDateTime>2014-12-21T23:20ns1:00</DepDateTimeStringValue> <ArrDateTime>2014-12-22T04ns1:10NumericValue xsi: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 Refundablenil="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-20T04ns1:05:00</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="RUB">0</Charges> <TotalPrice Currency="RUB">88860</TotalPrice> </Flight> ......... <Flight>...</Flight> </Flights> <Errors DateValue xsi:nil="true"/> </SearchFlightsns1:Options> </Responsens1:Input> </ResponseBin> </ns1:searchResponseNewAccount> </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
</div>
</div>
==== Сложный маршрут ====
Пример сложного маршрута: Прага — Москва — Милан — Мадрид, 1 взрослый, 1 младенец, эконом класс. '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.'''</pre></div></div>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px800px">===== Запрос ==Пример ответа ===
<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="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></divpre>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> ===== Ответ =====<div class="mw-collapsible-content"><syntaxhighlight lang="?xml" line encloseversion="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 1.0;"?><SOAP-ENVsoap:Envelope xmlns:SOAP-ENVsoap="http://schemas.xmlsoap.org/soap/envelope/" > <soap:Header/> <soap:Body> <m:NewAccountResponse xmlns:ns1m="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DSearchFlightsDOMEN_NAME" > <m:return xmlns:xsixs="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENVxmlns:Body> <ns1:searchResponse> <ResponseBin> <Response> <SearchFlights> <Flights SearchId="190491108" ResultURLxsi="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190491108"> <Flight FlightId="372394480001"> <WebService>SABRE<:/WebService> <ValCompany/> <URL>http%3A%2F%2Ftstwww.nemow3.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190491108%26flight%3D372394480001%26utm_source%3Dalias1<org/URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA" Name="Прага">PRG<2001/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>1485</FlightNumber> <AircraftName>Avro RJ100</AircraftName> <AircraftType>AR1</AircraftType> <DepDateTime>2014XMLSchema-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="0instance"> <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Nametype="Домодедово, Москва">DME</ArrAirp> <ArrTerminal xsim:nil="trueoutInvoice"/> <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-20T17m: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="Домодедово, Москва"NoDoc>DME00015365</DepAirp> <DepTerminal xsim:nil="true"/NoDoc> <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp> <ArrTerminal xsim:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1325</FlightNumber> <AircraftName>Airbus 321</AircraftName> <AircraftTypeDateInvoice>321</AircraftType> <DepDateTime>20142015-1202-23T09:0504T00: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 xsim:nil="true"/> <ArrAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</ArrAirpDateInvoice> <ArrTerminal xsim:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1628</FlightNumber> <AircraftNameExternalUserId>Avro RJ10000017483</AircraftName> <AircraftType>AR1</AircraftType> <DepDateTime>2014-12-23T12:25m:00</DepDateTimeExternalUserId> <ArrDateTime>2014-12-23T13m: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"TicketsSum> <DepAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</DepAirp> <DepTerminal xsim:nil="true"/Price> <ArrAirp CodeType="IATA" Name="Цюрих">ZRH10040</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-27T07m:05:00</DepDateTimePrice> <ArrDateTime>2014-12-27T08:05m:00</ArrDateTime> <StopNumDiscount>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 xsim:nil="true"/> <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirpDiscount> <ArrTerminal xsim:nil="true"/Charge> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>20260</FlightNumber> <AircraftName/> <AircraftType>32A</AircraftType> <DepDateTime>2014-12-27T12m:30:00</DepDateTimeCharge> <ArrDateTime>2014-12-27T14m: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"/Sum> 10040<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:05m: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"/> </TariffsSum> <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-20T11m:05:00</LastTicketDateTimeTicketsSum> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="RUB">765.82</Charges> <TotalPrice Currency="RUB">39056.82</TotalPrice> </Flight> ......... <Flight>...</Flight> </Flights> <Errors xsim:nil="true"/> </SearchFlightsreturn> </Response> </ResponseBin> </ns1m:searchResponseNewAccountResponse> </SOAP-ENVsoap:Body></SOAP-ENVsoap:Envelope></syntaxhighlight></div></div>
</pre>
</div></div>
==API Поиска отелей====API бронирования, аннуляции, войдирования авиабилетов====API бронирования, отмены отелей====API Выгрузки статистики продаж через API====Выгрузка информации о продажах в формате Nemo XML====Выгрузка информации о продажах в формате СОФИ XML====Фиксация оплаты внешним запросом====Выгрузка заказов по критериям в формате Nemo XML====Выгрузка определенного заказа по критериям в формате Nemo XML====API универсального платежного шлюза====API Синхронизации пользователей и субагентов====API Кросс­авторизации====Передача параметров в форму поиска====Проверка в сторонней системе возможности тикетинга====API загрузки счетов из сторонней системы====API загрузки сальдо компаний из СОФИ==-->
1382
правки
'