Интеграция со сторонними системами АПИ
Содержание
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 для отелей