Изменения

Перейти к навигации Перейти к поиску

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

126 293 байта убрано, 14:43, 28 ноября 2018
м
API Авиабилетов
==API Авиабилетов==
'''!!!СТАТЬЯ В РАЗРАБОТКЕ!!!'''Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ.
===API Поиска авиабилетов===
Это сервис внутри Nemo, который позволяет получить результаты поиска.
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''.
После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения. Подробнее можно узнать в специальной статье [[Веб-служба поиска авиабилетов]]
Подробнее можно узнать === API Бронирования авиабилетов ===Сервис позволяет забронировать/войдировать авиабилет с использованием API, описание подключения, запроса, ответов находится в специальной этой статье [[[[Веб-служба поиска авиабилетов]]бронирования]]
===API Поиска отелейВыписки авиабилетов ==='''Агентский API Отелей''' - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.
==API бронированияАгентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, аннуляции, войдирования авиабилетов===== Подключение ===а также запустить процедуру выписки билета. [[Веб-служба выписки]]
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр — «FlightId» — Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.== API Оплаты ===
=== Общий формат запроса / ответа бронирования ===Сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов. [[Агентские АПИ оплаты]]
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">=API Дополнительных запросов авиабилетов ==== Запрос =====<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%3DBookFlight"> <soapenv:Header/> <soapenv:Body> <ver:BookFlight> <RequestBin> <Request> <BookFlight> <FlightId>?</FlightId> <!--FlightId — Id перелёта в системе Nemo--> <!--Optional:--> <ValidatingCompany>?</ValidatingCompany> <!--необязательный--> <!--ValidatingCompany — валидирующий перевозчик (тот кто выписывает билет)--> <!--Optional:--> <BookingCodes> <!--Zero or more repetitions:--> <BookingCode Code="?" SegNumber="?"/> <!--Code — код класса перелёта--> <!--SegNumber — номер сегмента в перелёте (начинаются с 1)--> </BookingCodes> <!--Optional:--> <CurrencyCode>?</CurrencyCode> <!--необязательный--> <!--CurrencyCode — код валюты--> <!--Optional:--> <TicketTimeLimit>?</TicketTimeLimit> <!--необязательный--> <!--TicketTimeLimit — таймлимит на оплату, формат: ГГГГ-ММ-ДДTЧЧ:ММ:СС--> <!--Optional:--> <Agency Name="?"> <!--необязательный--> <!--Name — название агентства--> <Telephone Type="?"> <!--Type — тип номера, обязательный, возможные значения: M — мобильный, H — домашний, B — рабочий, A — агенство--> <!--Optional:--> <PhoneNumber>?</PhoneNumber> <!--PhoneNumber — номер телефона--> <!--Optional:--> <CountryAccessCode>?</CountryAccessCode> <!--необязательный--> <!--CountryAccessCode — код страны--> <!--Optional:--> <AreaCityCode>?</AreaCityCode> <!--необязательный--> <!--AreaCityCode — код региона/города--> </Telephone> <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный--> <!--City — город--> <!--State — штат--> <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)--> <!--PostalCode — почтовый индекс--> <!--CountryCode — код страны (RU, UA и т.п.)--> </Agency> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?"> <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые, CNN — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом--> <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является, контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false--> <!--Num — порядковый номер пассажира, начинается с 1--> <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок--> <!--необязательный--> <!--TravellerId — устаревший параметр, не используется--> <Meal>?</Meal> <!--необязательный--> <!--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 — Восточное вегетарианское питание--> <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?"> <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)--> <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)--> <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)--> <FirstName>?</FirstName> <!--FirstName — имя пассажира--> <LastName>?</LastName> <!--LastName — фамилия пассажира--> <!--Optional:--> <MiddleName>?</MiddleName> <!--необязательный--> <!--MiddleName — отчество пассажира--> </PersonalInfo> <LoyaltyCard OpCode="?" Number="?"/> <!--необязательный--> <!--OpCode — код авиакомпании--> <!--Number — номер карточки--> <ContactInfo> <!--необязательный--> <!--Optional:--> <EmailID>?</EmailID> <!--EmailID — контактный email--> <!--Optional:--> <Telephone Type="?"> <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий--> <!--Optional:--> <PhoneNumber>?</PhoneNumber> <!--PhoneNumber — номер телефона--> <!--Optional:--> <CountryAccessCode>?</CountryAccessCode> <!--CountryAccessCode — код страны--> <!--Optional:--> <AreaCityCode>?</AreaCityCode> <!--AreaCityCode — код региона/города--> </Telephone> </ContactInfo> <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/> <!--DocType — тип документа, возможные значения: Р — Паспорт A – Паспорт иностранца С — Внутренний гражданский паспорт F – Документ заменяющий паспорт М — Воинское удостоверение N – Сертификат натурализации(специфичный документ США) T – Док.повторного въезда, паспорт беженца V – Документ для пересечения границы--> <!--DocNum — номер документа--> <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)--> <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)--> <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/> <!--необязательный--> <!--Num — номер визы--> <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы--> <!--IssueCountry — страна выдачи визы--> <!--IssuePlace — место выдачи визы--> <!--BirthCountry — страна рождения(IATA код страны)--> <!--BirthCity — город рождения(название)--> <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный--> <!--City — город--> <!--State — штат или область въезда--> <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.--> <!--PostalCode — почтовый код--> <!--CountryCode — код страны--> <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/> <!--необязательный--> <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются--> <!--SmokingAllowed — булевское значение, true — место для курящих, false — место для некурящих--> <!--Location — положение места в ряде, возможные значения: W — у окна (Window) M — где-то в середине ряда (Middle) NPW — возле прохода (NearPassengerWay) NS — нет предпочтения (NotSpecified)--> <!--RowNumber — номер ряда--> <!--PlaceNumber — номер места--> <!--SegNumber — номер сегмента--> <DocStringFormats> <!--Zero or more repetitions:--> <DocStringFormat>?</DocStringFormat> <!--DocStringFormat — формат паспортной строки, возможные значения: DOCS — строка формата DOCS, FOID — строка формата FOID--> </DocStringFormats> </Traveller> </Travellers> <!--Optional:--> <QueueNum>?</QueueNum> <!--необязательный--> <!--QueueNum — номер очереди, в которую необходимо поместить бронирование--> </BookFlight> </Request> <Source> <ClientId>?</ClientId> <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".--> <APIKey>?</APIKey> <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".--> <Language>?</Language> <!--Language — язык--> <Currency>?</Currency> <!-- CUrrency — валюта--> </Source> </RequestBin> </ver:BookFlight> </soapenv:Body></soapenv:Envelope></syntaxhighlight></div></div>
<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;"><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:BookFlightResponse> <ResponseBin> <Response> <BookFlight ID="?" Status="?" Code="?"> <!--ID — Id брони в системе Nemo, целое число, обязательный--> <!--Status — индикатор состояния брони, возможные значения: booked — забронировано, canceled — бронь отменена, ticket — выписана UNDEFINED — статус не определён--> <!--Code — код брони в системе поставщика--> <QueryPlace xsi:nil="true"/> <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди--> <Flight FlightId="?"> <!--FlightId — Id перелёта в системе Nemo--> <WebService>?</WebService> <!--WebService — поставщик перелёта--> <ValCompany>?</ValCompany> <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA--> <URL>?</URL> <!--URL — ссылка на бронирование конкретного перелета--> <Segments> <Segment SegNum="?" SegGroupNum="?"> <!--SegNum — номер сегмента в перелёте--> <!--SegGroupNum – номер плеча перелёта--> <DepAirp CodeType="IATA">?</DepAirp> <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево--> <DepTerminal>?</DepTerminal> <!--DepTerminal — терминал пункта отправления, если пустое значение, то в аэропорту всего 1 терминал--> <ArrAirp CodeType="IATA">?</ArrAirp> <!--ArrAirp — аэропорт прибытия--> <ArrTerminal>?</ArrTerminal> <!--ArrTerminal — терминал пункта прибытия, если пустое значение, то в аэропорту всего 1 терминал--> <OpAirline>?</OpAirline> <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот--> <MarkAirline>?</MarkAirline> <!--MarkAirline — авиакомпания, продающая перелёт--> <FlightNumber>?</FlightNumber> <!--FlightNumber — номер рейса--> <AircraftType>?</AircraftType> <!--AircraftType — тип воздушного судна, код--> <DepDateTime>?</DepDateTime> <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> <ArrDateTime>?</ArrDateTime> <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> <StopNum>?</StopNum> <!--StopNum — количество остановок--> <BookingCodes> <BookingCode ClassType="?"> <!--ClassType — класс перелета, например: economy--> <BookingCode>?</BookingCode> <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс может записываться разными литерами, например: L--> </BookingCode> </BookingCodes> <FlightTime>?</FlightTime> <!--FlightTime — время перелёта в минутах--> <TimeZone Departure="?" Arrival="?"/> <!--Departure временная зона аэропорта отправления--> <!--Arrival — временная зона аэропорта прибытия--> <ETicket>?</ETicket> <!--ETicket — признак электронного билета, значения: true / false--> </Segment> </Segments> <PricingInfo Refundable="?"> <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно--> <PassengerFare Type="?" Quantity="?"> <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, INF — младенцы, INS — младенцы с местом--> <!--Quantity — количество пассажиров данного типа--> <BaseFare Currency="?" Amount="?"/> <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены--> <EquiveFare Currency="?" Amount="?"/> <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи). Currency — код валюты, Amount — значение цены--> <TotalFare Currency="?" Amount="?"/> <!--TotalFare — суммарная стоимость, в эквивалентной валюте. Currency — код валюты, Amount — значение цены--> <Taxes> <Tax CurCode="?" TaxCode="?" Amount="?"/> <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы--> </Taxes> <Tariffs> <Tariff Code="?" SegNum="?"/> <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф--> </Tariffs> <FareCalc>?</FareCalc> <!--FareCalc — строка расчёта цены--> <LastTicketDateTime>?</LastTicketDateTime> <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="?">?</Charges> <!--Charges — сборы, Currency — код валюты--> <TotalPrice Currency="?">?</TotalPrice> <!--TotalPrice — итоговая цена, Currency — код валюты--> </Flight> <Agency Name="?"> <!--Name — название агентства--> <Telephone Type="?"> <!--Type — тип номера, обязательный, возможные значения: M — мобильный, H — домашний, B — рабочий, A — агенство--> <!--Optional:--> <PhoneNumber>?</PhoneNumber> <!--PhoneNumber — номер телефона--> <!--Optional:--> <CountryAccessCode>?</CountryAccessCode> <!--CountryAccessCode — код страны--> <!--Optional:--> <AreaCityCode>?</AreaCityCode> <!--AreaCityCode — код региона/города--> </Telephone> <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--City — город--> <!--State — штат--> <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)--> <!--PostalCode — почтовый индекс--> <!--CountryCode — код страны (RU, UA и т.п.)--> </Agency> <ItinReceipts Encoding="?" Format="?"> <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат--> <FareStored xsi:nil="true"/> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?"> <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые, CNN — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом--> <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является, контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false--> <!--Num — порядковый номер пассажира, начинается с 1--> <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок--> <!--TravellerId — устаревший параметр, не используется--> <Meal>?</Meal> <!--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 — Восточное вегетарианское питание--> <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?"> <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)--> <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)--> <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)--> <FirstName>?</FirstName> <!--FirstName — имя пассажира--> <LastName>?</LastName> <!--LastName — фамилия пассажира--> <!--Optional:--> <MiddleName>?</MiddleName> <!--MiddleName — отчество пассажира--> </PersonalInfo> <LoyaltyCard OpCode="?" Number="?"/> <!--OpCode — код авиакомпании--> <!--Number — номер карточки--> <ContactInfo> <!--Optional:--> <EmailID>?</EmailID> <!--EmailID — контактный email--> <!--Optional:--> <Telephone Type="?"> <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий--> <!--Optional:--> <PhoneNumber>?</PhoneNumber> <!--PhoneNumber — номер телефона--> <!--Optional:--> <CountryAccessCode>?</CountryAccessCode> <!--CountryAccessCode — код страны--> <!--Optional:--> <AreaCityCode>?</AreaCityCode> <!--AreaCityCode — код региона/города--> </Telephone> </ContactInfo> <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/> <!--DocType — тип документа, возможные значения: Р — Паспорт A – Паспорт иностранца С — Внутренний гражданский паспорт F – Документ заменяющий паспорт М — Воинское удостоверение N – Сертификат натурализации(специфичный документ США) T – Док.повторного въезда, паспорт беженца V – Документ для пересечения границы--> <!--DocNum — номер документа--> <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)--> <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)--> <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/> <!--Num — номер визы--> <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы--> <!--IssueCountry — страна выдачи визы--> <!--IssuePlace — место выдачи визы--> <!--BirthCountry — страна рождения(IATA код страны)--> <!--BirthCity — город рождения(название)--> <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--City — город--> <!--State — штат или область въезда--> <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.--> <!--PostalCode — почтовый код--> <!--CountryCode — код страны--> <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/> <!--Если указаны номер ряда и номер места, то Используемые параметры SmokingAllowed и Location игнорируются--> <!--SmokingAllowed — булевское значение, true — место для курящих, false — место для некурящих--> <!--Location — положение места в ряде, возможные значения: W — у окна (Window) M — где-то в середине ряда (Middle) NPW — возле прохода (NearPassengerWay) NS — нет предпочтения (NotSpecified)--> <!--RowNumber — номер ряда--> <!--PlaceNumber — номер места--> <!--SegNumber — номер сегмента--> <DocStringFormats> <!--Zero or more repetitions:--> <DocStringFormat>?</DocStringFormat> <!--DocStringFormat — формат паспортной строки, возможные значения: DOCS — строка формата DOCS, FOID — строка формата FOID--> </DocStringFormats> </Traveller> </Travellers> </BookFlight> <Requisites/> <RequestType xsi:nil="true"/> <UserID xsi:nil="true"/> <Errors> <Error Code="?"> <!--Code — код ошибки в системе Nemo--> <ServiceErrorMessage>?</ServiceErrorMessage> <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика--> <Message>?</Message> <!--Message — сообщение об ошибке от системы Nemo--> </Error> </Errors> </Response> </ResponseBin> </ns1:BookFlightResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></div> === Пример использования === Пример одностороннего перелета Москва — Мадрид.
<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; table 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%3DBookFlight"> <soapenv:Header/> <soapenv:Body> <ver:BookFlight> <RequestBin> <Request> <BookFlight> <FlightId>171430002</FlightId> <BookingCodes> <!--Zero or more repetitions:--> <BookingCode Code="E" SegNumber="2"/> </BookingCodes> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="ADT" IsContact="true" Num="1"> <PersonalInfo DateOfBirthtr bgcolor="20.05.1980" Nationality="RU" Gender="M#CCCCCC"> <FirstNameth>PetrИмя элемента </FirstNameth> <LastNameth>Ivanov</LastName> </PersonalInfo> <ContactInfo> <!--Optional:--> <EmailID>testmail@mail.ruОбязательный </EmailID> <!--Optional:--> <Telephone Type="M"> <!--Optional:--> <PhoneNumberth>79051234567</PhoneNumberth> Тип </Telephoneth> </ContactInfoth> <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/> </Traveller> </Travellers> </BookFlight> </Request> <Source> <ClientId>---</ClientId> <APIKey>---</APIKey> <Language>RU</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:BookFlight> Описание </soapenv:Bodyth> </soapenv:Envelopetr> </syntaxhighlight></div></divtr>
<div td>BookFlight </td><td>да </td><td>сложный </td><td>Контейнер для тела запроса бронирования</td> </tr> <tr> <td>FlightId </td><td class="toccolours mw-collapsible mw-collapsed" style="width:1000pxcol1">да </td><td>число</td><td >Id перелёта для которого будет производится бронирование(поиск тарифных правил, проверка доступности)</td> </tr> <tr> <td>CurrencyCode </td><td>нет</td><td>строка</td><td>Трёх буквенный код валюты (обязателен для комиссии в валюте)</td>
===== Ответ =====<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://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:BookFlightResponse> <ResponseBin> <Response> <BookFlight ID="262872" Status="booked" Code="LQHZWU"> <QueryPlace xsi:nil="true"/> <Flight FlightId="171430002"> <WebService>SABRE</WebService> <ValCompany>SU</ValCompany> <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D14290%26flight%3D171430002</URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA">SVO</DepAirp> <DepTerminal>D</DepTerminal> <ArrAirp CodeType="IATA">BCN</ArrAirp> <ArrTerminal>1</ArrTerminal> <OpAirline>SU</OpAirline> <MarkAirline>SU</MarkAirline> <FlightNumber>2512</FlightNumber> <AircraftType>321</AircraftType> <DepDateTime>2014-03-20T20:40:00</DepDateTime> <ArrDateTime>2014-03-20T22:20:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>280</FlightTime> <TimeZone Departure="4" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="2" SegGroupNum="0"> <DepAirp CodeType="IATA">BCN</DepAirp> <DepTerminal>1</DepTerminal> <ArrAirp CodeType="IATA">MAD</ArrAirp> <ArrTerminal>2 </ArrTerminaltr> <OpAirline>UX</OpAirlinetr> <MarkAirline>SU </MarkAirlinetd> <FlightNumber>3403</FlightNumber> <AircraftType>738</AircraftType> <DepDateTime>2014-03-21T12:05:00</DepDateTime> <ArrDateTime>2014-03-21T13:25:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>80</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="false"> <PassengerFare Type="ADT" Quantity="1"> <BaseFare Currency="EUR" Amount="165"/> <EquiveFare Currency="RUB" Amount="8335"/> <TotalFare Currency="RUB" Amount="14025"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="4242"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="374"/> <Tax CurCode="RUB" TaxCode="JD" Amount="844"/> <Tax CurCode="RUB" TaxCode="QV" Amount="230"/> </Taxes> <Tariffs/> <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission Currency="RUB">0</Commission> <Charges Currency="RUB">140.25</Charges> <TotalPrice Currency="RUB">14165.25</TotalPrice> </Flight> <Agency/> <ItinReceipts xsi:nil="true"/> <FareStored xsi:nil="true"/td> <Travellers> <Traveller Type="ADT" IsContact="true" Num="1"td> да <Meal/td> <Ticket/td> сложный <Seats/td> <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M"> <FirstName>PETR</FirstNametd> <LastName>IVANOV</LastName> <MiddleName/> </PersonalInfo> <LoyaltyCard/> <ContactInfo> <EmailID>TESTMAIL@MAIL.ru</EmailID> <Telephone Type="M"> <PhoneNumber>79051234567</PhoneNumber> <CountryAccessCode/> <AreaCityCode/> </Telephone> </ContactInfo> <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/> <VisaInfo/> <ArrAddress/> <PreferedPlace/> <DocStringFormats/> </Traveller> </Travellers> </BookFlight> <Requisites/> <RequestType xsi:nil="true"/> <UserID xsi:nil="true"/> <Errors xsi:nil="true"/> </Response> </ResponseBin> </ns1:BookFlightResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div>Информация об агентстве</divtd>
=== Общий формат запроса </ ответа отмены бронирования ===tr> <tr> <td>Name </td><td>да </td><td>строка </td><td>Название агентства</td> </tr> <tr> <td>Telephone </td><td>нет </td><td>сложный </td><td>Контактный телефон агентства</td>
После бронирования </tr> <tr> <td>Type</td><td>да </td><td>строка </td><td>Тип номера, если не истек таймлимит можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимитавозможные значения: M - мобильный, установленного для заказа система сама аннулирует заказ.H - домашний, B - рабочий, A - агентство</td> </tr> <tr> <td>PhoneNumber </td><td>да </td><td>строка </td><td>Номер телефона</td>
WSDL: http: </tr> <tr> <td>CountryAccessCode </CLIENT_DOMAINtd><td>нет </nemoflightstd><td>строка </wsdl.php?for=CancelBooktd><td>Код страны</td> </tr> <tr> <td>AreaCityCode </td><td>нет </td><td>строка</td><td>Код региона/города</td>
<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%3DCancelBook"> <soapenv:Header/> <soapenv:Body> <ver:CancelBooktr> <RequestBintr> <Requesttd> Address<CancelBook BookID="?"/td> <!--BookID — Id брони в системе Nemo, целое число--td> да </Request> <Sourcetd> <ClientIdtd>?сложный </ClientIdtd> <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? td class="Веб-служба. Авторизацияcol3".--> <APIKey>?Адрес агентства</APIKeytd> <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".--tr> <Language>?</Language> <!--Language — язык--tr> <Currencytd>?City</Currencytd> <!-- CUrrency — валюта--td> да </Sourcetd> </RequestBintd class="col2"> строка </ver:CancelBooktd> </soapenv:Bodytd></soapenv:Envelope></syntaxhighlight></div>Город, в котором расположено агентство</divtd>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Ответ ===== <div class="mw-collapsible-content"tr> <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"td>StreetAddress <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"td> <SOAP-ENV:Bodytd> нет <ns1:CancelBookResponse/td> <ResponseBintd> сложный <Response/td> <CancelBook BookID="?"td> <!--BookID — Id брони Адрес агентства в системе Nemoгороде (улица, дом, целое число--> <Result Success="?"/> <!--Success — результат отмены броникорпус, true или false--> офис и т.д.)</CancelBooktd> <Requisites/tr> <RequestType xsi:nil="true"/tr> <UserID xsi:nil="true"/td> PostalCode <Errors xsi:nil="true"/td> </Responsetd> нет </ResponseBintd> </ns1:CancelBookResponsetd> строка </SOAP-ENV:Bodytd></SOAP-ENV:Envelopetd></syntaxhighlight></div>Почтовый код, индекс.</divtd>
==API бронирования </tr> <tr> <td>CountryCode </td><td>нет </td><td>строка </td><td>Код страны (RU, отмены отелей==UA, US и т.д.)</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 - место для некурящих. Для отелей из Hotelbeds По умолчанию 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 - нет предпочтения (Supplier=HOTELBEDSNotSpecified) штрафы до бронирования получить невозможно.</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>
'''WSDL''' (тестовый сервер): http: </tr> <tr class="row33"> <td class="col0">SegNumber </td><td class="col1">да </td><td class="col2">строка </tst.nemo-ibe.comtd><td class="col3">Номер сегмента</wsdevtd> </wsdl.php?fortr> <tr class=Penalty"row34"> <td class="col0">DocumentInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Паспортные данные</td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Запрос ===== <div tr class="mw-collapsible-contentrow35"> <syntaxhighlight lang="xml" line enclose="div" styletd class="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">DocType <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vertd><td class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DPenaltycol1"> да <soapenv:Header/td> <soapenv:Bodytd class="col2"> строка <ver:penalty/td> <RequestBintd class="col3"> Тип документа, обязательный.<Request/td> <Penalty/tr> <Itemtr class="row36"> <Typetd class="col0">HOTELSDocNum </Typetd> <CacheIdtd class="col1">1867246да </CacheIdtd> <CategoryIdtd class="col2">1строка </CategoryIdtd> </Itemtd class="col3"> Номер документа</Penaltytd> </Requesttr> <Sourcetr class="row37"> <ClientIdtd class="col0">CountryCode </ClientIdtd> <APIKeytd class="col1">да </APIKeytd> <Languagetd class="col2">ruстрока </Languagetd> <Currencytd class="col3">RUBСтрана выдачи, двух буквенный код(RU, US и т.д.)</Currencytd> </Sourcetr> </RequestBintr class="row38"> <td class="col0">DocElapsedTime</ver:penaltytd> <td class="col1">да </soapenv:Bodytd><td class="col2">строка </soapenv:Envelopetd><td class="col3">Срок истечения срока действия паспорта в фирмате dd.mm.yyyy (например 31.12.2012)</syntaxhighlighttd>
Элемент '''Item''' </tr>{| style <tr class="width: 800pxrow39" > <td class="wikitablecol0"|-! scope>VisaInfo </td><td class="col1">нет </td><td class="col2">сложный </td><td class="colcol3" width>Информация о визе</td> </tr> <tr class="200row40" | Элемент>! scope <td class="colcol0" width>Num </td><td class="300col1" | Описание! scope>да </td><td class="colcol2" width>строка </td><td class="300col3" | Допустимые значения|-| Type| Обязательный. Тип объекта.| HOTELS|-| CacheId| Обязательный. Идентификатор результата поиска в системе Nemo.| Целое число|-| CategoryId| Обязательный. Идентификатор категории.| Целое число|}>Номер визы</td>
Элемент '''Source''' </tr>{| style <tr class="width: 800pxrow41" > <td class="wikitablecol0"|-! scope>IssueDate </td><td class="colcol1" width>да </td><td class="200col2" | Элемент! scope>строка </td><td class="colcol3" width>Дата выдачи визы в формате dd.mm.yyyy</td> </tr> <tr class="300row42" | Описание>! scope <td class="colcol0" width>IssueCountry </td><td class="300col1" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть>да </добавить в td><td class="Администрированиеcol2" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть>строка </добавить в "Администрированиеtd><td class=" ⇨ "Веб-служба. Авторизацияcol3".| Латинские буквы и цифры. Всего 32 символа.|}</div>Страна выдачи визы</divtd>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Ответ ===== <div tr class="mw-collapsible-contentrow43"> <syntaxhighlight langtd class="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">IssuePlace <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1td><td class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DPenaltycol1"> <SOAP-ENV:Body> <ns1:penaltyResponse> <ResponseBin> <Response> <Penalty> <ItemDateBegin>2013-10-15 00:00:00да </ItemDateBegintd> <CancelChargestd class="col2"> <Charge> <DateFrom>2013-10-12 00:00:00строка </DateFromtd> <DateTo>2013-10-15 23:59:59</DateTo> <Money Currencytd class="RUBcol3">74733.84Место выдачи визы</Moneytd> </Chargetr> <Chargetr class="row44"> <DateFromtd class="col0">2013-09-23 00:00:00BirthCountry </DateFromtd> <DateTotd class="col1">2013-10-11 00:00:00нет </DateTotd> <Money Currencytd class="RUBcol2">67260.46строка </Moneytd> </Charge> <Charge> <DateFrom>2013-08-01 17:59:00</DateFrom> <DateTo>2013-09-22 00:00:00</DateTo> <Money Currencytd class="RUBcol3">12455.64</Money> </Charge> </CancelCharges> <ModifyCharges/> </Penalty> </Response> </ResponseBin> </ns1:penaltyResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>Страна рождения (IATA код страны)</syntaxhighlighttd>
Элемент '''Penalty''' </tr>{| style <tr class="row45"> <td class="width: 800pxcol0" >BirthCity </td><td class="wikitablecol1"|-! scope>нет</td><td class="col2">строка</td><td class="colcol3" width>Город рождения (название)</td> </tr> <tr class="200row46" | Элемент>! scope <td class="colcol0" width>ArrAddress </td><td class="300col1" | Описание! scope>нет </td><td class="colcol2" width>сложный </td><td class="300col3" | Допустимые значения|-| ItemDateBegin| Обязательный. Дата начала услуги >Адрес прибытия, для въезжающих в США (дата заселения в отельне граждан США)информация является обязательной.| Формат гггг-мм-дд чч:мм:сс|-| CancelCharges| Необязательный. Содержит информацию о штрафах за аннуляцию.| Элемент Charge|-| ModifyCharges| НеобязательныйЕсли она не заполняется при оформлении брони, то её всё равно придётся заполнять при посадке на самолёт. Содержит информацию о штрафах за модификацию.| Элемент Charge|}</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>
Элемент '''Charge''' </tr>{| style <tr class="width: 800pxrow49" > <td class="wikitablecol0"|-! scope>PostalCode </td><td class="colcol1" width>да </td><td class="200col2" | Элемент! scope>строка </td><td class="colcol3" width>Почтовый код</td> </tr> <tr class="300row50" | Описание>! scope <td class="colcol0" width>City </td><td class="300col1" | Допустимые значения|-| DateFrom| Обязательный. Дата>да </время начала интервала.| Формат гггг-мм-дд чч:мм:сс|-| DateTo| Необязательный. Датаtd><td class="col2">строка </время окончания интервала.| Формат гггг-мм-дд чч:мм:сс|-| Money| Обязательный. Сумма штрафа.| Вещественное число.Атрибут: Currency - код валюты.|}td></divtd class="col3">Город</divtd>
</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><div td class="toccolours mwcol3">Пол пассажира, обязательный, возможные значения: M -collapsible mwмужской(Male); F -collapsed" styleженский(Female).</td> </tr> <tr class="width:1000pxrow58"> <td class="col0">FirstName </td><td class="col1">да </td><td class=== Запрос ====="col2">строка </td><div td class="mw-collapsible-contentcol3">Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в будущем при сохранении совместимости.Имя пассажира</td>
Сейчас же необходимо указывать только 1 услугу </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 -отель отсутствует (элемент Itemпо умолчанию) в запросе на бронирование; 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>#Услугу. В запросе не требуется перечислять все параметры из результатов поиска, достаточно указать уникальный ID результата. <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>
'''WSDL''' (тестовый сервер): http: </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</tst.nemo-ibe.comtd><td class="col1">да</wsdevtd><td class="col2">число</wsdl.php?fortd><td class=Booking"col3">Номер брони, которая будет отменяться (для которой будет производится выписка, отмена выписки)</td>
<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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DBooking"> <soapenv:Header/tr> <soapenv:Body> <ver:booking> <RequestBin> <Request> <Booking> <Items> <!--Zero or more repetitions:--> <Item> <!--You have a CHOICE of the next 3 items at this level--> <HotelBookData> <CacheId>1872666</CacheId> <CategoryId>1</CategoryId> <Rooms> <!--Zero or more repetitions:--> <Room Id="2"> <Persons> <!--Zero or more repetitions:--> <Person Numbertr class="1row70"/> <Person Numbertd class="2col0"/> </Persons> GetAirRules</Room> <Room Id="1"> <Persons> <!--Zero or more repetitions:--td> <Person Numbertd class="3col1"/> </Persons> </Room> </Rooms> да</HotelBookData> <Customertd> <Person Numbertd class="1col2"/> </Customer> </Item> сложный</Items> <Persons> <!--Zero or more repetitions:--td> <Person Number="1" Typetd class="ADTcol3"> <!--Optional:--> <Lastname>IVANOV</Lastname> <!--Optional:--> <Name>IVAN</Name> <!--Optional:--> <Middlename>IVANOVICH</Middlename> <!--Optional:--> <DateOfBirth>1987-12-12</DateOfBirth> <!--Optional:--> <Phone>+79871231212</Phone> <!--Optional:--> <Email>m.rudenko@mute-lab.comКонтейнер для тела запроса поиска тарифных правил</Email> <!--Optional:--td> <Gender>MR </Gender> <!--Optional:--tr> <Document Typetr class="Prow71"> <Series>1811</Series> <Number>912219</Number> <!--Optional:--> <IssueDate>2012-12-12</IssueDate> <!--Optional:--> <ExpiryDate>2014-12-12</ExpiryDate> </Document> </Person> <Person Number="2" Typetd class="CHDcol0"> <!--Optional:--> <Lastname>PETROV</Lastname> <!--Optional:--> <Name>IVANAirAvail</Nametd> <!--Optional:--> <Middlename>MIKHAILOVICH</Middlename> <!--Optional:--> <DateOfBirth>2008-12-12</DateOfBirth> <!--Optional:--> <Phone>+79871231212</Phone> <!--Optional:--> <Email>m.rudenko@mute-lab.com</Email> <!--Optional:--> <Gender>MR</Gender> <!--Optional:--> <Document Typetd class="Pcol1"> <Series>1866да</Series> <Numbertd>913319</Number> <!--Optional:--> <IssueDate>2012-12-12</IssueDate> <!--Optional:--> <ExpiryDate>2014-12-12</ExpiryDate> </Document> </Person> <Person Number="3" Typetd class="ADTcol2"> <!--Optional:--> <Lastname>SIDOROV</Lastname> <!--Optional:--> <Name>IVAN</Name> <!--Optional:--> <Middlename>SERGEEVICH</Middlename> <!--Optional:--> <DateOfBirth>1987-12-12сложный</DateOfBirthtd> <!--Optional:--> <Phone>+79871231212</Phone> <!--Optional:--> <Email>m.rudenko@mute-lab.com</Email> <!--Optional:--> <Gender>MR</Gender> <!--Optional:--> <Document Typetd class="Pcol3"> <Series>1866</Series> <Number>913319</Number> <!--Optional:--> <IssueDate>2012-12-12</IssueDate> <!--Optional:--> <ExpiryDate>2014-12-12</ExpiryDate> </Document> </Person> </Persons> </Booking> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:booking> </soapenv:Body></soapenv:Envelope>Контейнер для тела запроса проверки доступности перелёта</syntaxhighlighttd>
Элемент '''Booking''' </tr>{| style <tr class="width: 800pxrow72" > <td class="wikitablecol0"|-! scope>Ticketing</td><td class="col1">да</td><td class="col2">сложный</td><td class="colcol3" width>Контейнер для тела запроса выписки брони</td> </tr> <tr class="200row73" | Элемент>! scope <td class="colcol0" width>ValCompany</td><td class="300col1" | Описание! scope>нет</td><td class="colcol2" width>строка</td><td class="300col3" | Допустимые значения|-| Items| Обязательный. Массив элементов Item.| Элемент Item|-| Customer| Обязательный. Элемент установки заказчика.| &nbsp;|-| Persons| Обязательный. Массив клиентов.| &nbsp;|}>Валидирующий перевозчик, на бланке которого выписывается билет</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">Значение комиссии в элементы &lt;Item&gt;.валюте, если указано, то комиссия в процентах игнорируется</td>
Элемент '''Item''' </tr> <tr class="row76">{| style <td class="width: 800pxcol0" >Percent</td><td class="wikitablecol1"|-! scope>нет</td><td class="colcol2" width>число</td><td class="200col3" | Элемент>Комиссия в процентах</td> </tr>! scope <tr class="colrow77" width> <td class="300col0" | Описание! scope>VoidTicket</td><td class="colcol1" width>да</td><td class="300col2" | Допустимые значения|-| HotelBookData| Обязательный. В зависимости от типа объекта бронирования. В данный момент возможно указать только данные для отеля.| &nbsp;|-| Persons| Необязательный. Привязка клиентов к услуге. Если не указаны, будут привязаны все из указанных в главном элементе Booking.| [>сложный</td><Person Numbertd class=''"1col3"'' >Контейнер для тела запроса отмены выписки брони</td>]|}
<u/tr>Бронирование отеля. <tr class="row78"> <td class="col0">Search</utd><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса поиска</td>Для бронирования отеля необходимы следующие параметры: </tr># ID результата поиска - один отель <tr class="row79"># ID выбранной категории этого отеля# Распределение клиентов по комнатам. <td class="col0">ODPairs</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о перелёте</td>
Элемент '''HotelBookData''' </tr>{| style <tr class="width: 800pxrow80"> <td class="col0">Type</td><td class="col1" >да</td><td class="wikitablecol2"|-! scope>строка</td><td class="colcol3" width>Тип перелёта, возможные значения: OW - в одну сторону, RT - туда-обратно, CR - сложный маршрут</td> </tr> <tr class="200row81" | Элемент>! scope <td class="colcol0" width>Direct</td><td class="300col1" | Описание! scope>нет</td><td class="colcol2" width>булевский</td><td class="300col3" | Допустимые >Индикатор, указывающий какие перелёты искать, только прямые или с пересадками, возможные значения|: false - с пересадками, true -только прямые. Если не указан, значение по умолчанию false.</td>| CacheId </tr>| Обязательный <tr class="row82"> <td class="col0">AroundDates</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Включает поиск по окружным датам, количество дней +/- от даты заезда/возвращения. Идентификатор результата поиска Применим только для данного отеля типов перелёта в системе Nemoодну сторону(OW) и туда-обратно(RT).Возможные значения: 0, 1, 2, 3</td>| Целое число </tr>|- <tr class="row83">| CategoryId| Обязательный <td class="col0">ODPair</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о сегменте перелёта. Идентификатор категории.| Целое число|Может повторяться 1-| Rooms| Обязательный6 раз. Распределение клиентов Поиск по комнатам.| Список элементов Room|-| Room| Атрибут IdИд комнаты из результата поискарасписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается</td>
Элемент Persons </tr>| Целое число <tr class="row84">| <td class="col0">DepDate</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата вылета, Формат ГГГГ-| Persons| Обязательный.Список людей| Список элементов Person|MM-DDTЧЧ:ММ:СС</td>| Person </tr>| Обязательный. <tr class="row85">Атрибут NumberНомер пассажира из Booking - <td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td>Persons-<td class="col3">Person-Трёх буквенный код города отправления или конкретного аэропорта в городе отправления.</td>Number| Целое число|}
<u/tr> <tr class="row86"> <td class="col0">ArrAirp</td>Информация о клиентах<td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города прибытия или конкретного аэропорта в городе прибытия.</utd> </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">Предпочитаемый класс перелёта, возможные значения: LastnameAll - все, NameEconomy - эконом, DateOfBirthBusiness - бизнес, First - первый. Остальные обязательные параметры будут устанавливаться индивидуально при подключении к сервисуЕсли не указан, то по умолчанию All.</td>
Элемент '''Person''' </tr>{| style <tr class="row90"> <td class="width: 800pxcol0" >OnlyAvail</td><td class="wikitablecol1"|-! scope>нет</td><td class="colcol2" width>булевский</td><td class="200col3" | Элемент>Искать только доступные, возможные значения: true - только доступные, false - все. Если не указан, то по умолчанию false.</td> </tr>! scope <tr class="colrow91" width> <td class="col0">AirVPrefs</td><td class="300col1" | Описание! scope>нет</td><td class="colcol2" width>сложный</td><td class="300col3" | Допустимые значения|-| Атрибут Number| Обязательный. Номер клиента, необходим >Обёртка для правильной привязки к услугам.| Целое число|-| Type| Обязательный.Тип пассажира.| Строка.Возможные значения:ADTCLDINF|-| Lastname| Фамилия.| Строка в произвольном формате.|-| Name| Имя.| Строка в произвольном формате.|-| Middlename| Отчество.| Строка в произвольном формате.|-| DateOfBirth| Дата рождения.| Формат гггг-мм-дд.|-| Phone| Телефон.Рекомендуемый формат:+79871234567| Строка|-| Email| Электронный адрес.| Строка|-| Gender| Пол.| MR - мужчинасписка авиакомпаний,MS - женщинапо которым будет или не будет проводиться поиск.|-| Document| Документ| Элемент Document|}</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>
Элемент '''Document''' </tr>{| style <tr class="row94"> <td class="width: 800pxcol0" >IncludePrivateFare</td><td class="wikitablecol1"|-! scope>нет</td><td class="colcol2" width>булевский</td><td class="200col3" | Элемент>Включать приватные цены в результат или нет, возможные значения: true - включать, false - не включать. Если не указан, то по умолчанию false.</td>! scope </tr> <tr class="row95"> <td class="colcol0" width>ServiceTypes</td><td class="300col1" | Описание! scope>нет</td><td class="colcol2" width>сложный хмл</td><td class="300col3" | Допустимые значения|-| Атрибут Type| Обязательный. Тип документа.| P - загранпаспортC - внутренний гражданский паспортB - свидетельство о рождении|-| Series| Необязательный. Серия документа. Можно указать слитно с номером в Number.| Строка в произвольном формате|>Контейнер массива используемых веб-| Number| Обязательныйсервисов при поиске. Номер документа.| Строка в произвольном формате|-| IssueDate| Необязательный. Дата выдачи документа.| Формат гггг-мм-дд|-| ExpiryDate| Необязательный. Дата истечения срока действия документа.| Формат гггг-мм-дд|}</td>
Элемент '''Source''' </tr>{| style="width: 800px" <tr class="wikitablerow96">|-! scope <td class="colcol0" width>ServiceType</td><td class="200col1" | Элемент! scope>нет</td><td class="colcol2" width>строка</td><td class="300col3" | Описание! scope="col" width="300" | Допустимые >Тип веб-сервиса(поставщика). При указании нескольких элементов ServiceType поиск будет проведён для каждого сервиса. Возможные значения|: Sirena2000 - поиск в Сирене; SirenaSchedule -| ClientID| Обязательный. ID клиента поиск в системе Nemo.Можно посмотреть/добавить Сирене по расписанию; SabreLFS - поиск в "Администрирование" ⇨ "ВебСэйбр LFS; SabreBFM -служба. Авторизация".| Целое число.|поиск в Сэйбр BFM; SabreSchedule -| APIKey| Обязательный. APIKey поиск Сэйбр по расписанию; Galileo - секретный ключ доступа к API Nemo.Можно посмотреть/добавить поиск в "Администрирование" ⇨ "ВебГалилео; AmadeusMPTBS -служба. Авторизация"поиск в Амадеус.</td>| Латинские буквы и цифры. Всего 32 символа. </tr>|}</table>
</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Ответ =====
<div class="mw-collapsible-content">
После выполнения запроса сразу поступит информация о бронировании. В первую очередь нужно внимательно проверить статусы &lt;Status&gt; всех услуг в бронировании. Если бронировалась услуга со статусом в результатах поиска RQ (по запросу), то статус скорее всего будет не равен «booked». Через некоторое время проверять реальный статус бука отправляя запрос на чтение данных о бронировании.
 
<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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DBooking"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:bookingResponse>
<ResponseBin>
<Response>
<Booking>
<Items>
<Item Id="386610">
<Hotel Id="1872666">
<Supplier>GTA</Supplier>
<CityId>22046</CityId>
<DateBegin>2013-10-15</DateBegin>
<DateEnd>2013-10-18</DateEnd>
<CacheId>1872666</CacheId>
<Name>ADLON KEMPINSKI</Name>
<Categories>
<Category Id="1">
<Rooms>
<Room Count="1" Id="1" ServiceId="1"/>
<Room Count="1" Id="2" ServiceId="2"/>
</Rooms>
<TotalPrice Currency="RUB">74733.84</TotalPrice>
</Category>
</Categories>
<Services>
<Service Id="1" Status="OK">
<Desc>Standard Twin</Desc>
<Meal>Full Breakfast</Meal>
<Price Currency="RUB">37366.92</Price>
</Service>
<Service Id="2" Status="OK">
<Desc>Standard Twin</Desc>
<Meal>Full Breakfast</Meal>
<Price Currency="RUB">37366.92</Price>
</Service>
</Services>
<Rooms>
<Room Id="1" Type="TWIN"/>
<Room Id="2" Type="SNGL"/>
</Rooms>
</Hotel>
<Type>HOTELS</Type>
<Status>waiting</Status>
<Prices>
<Price Currency="RUB">74733.84</Price>
<Charges Currency="RUB">0</Charges>
<Commission Currency="RUB">0</Commission>
<Penalty Currency="RUB">0</Penalty>
<TotalPrice Currency="RUB">74733.84</TotalPrice>
</Prices>
<Dates>
<BookingDate>2013-08-01 19:49:56</BookingDate>
<UpdateDate>2013-08-01 19:49:57</UpdateDate>
<CancelDate xsi:nil="true"/>
<PenaltyDate>2013-07-31 19:10:37</PenaltyDate>
<AutoCancelDate>2013-08-01 19:51:56</AutoCancelDate>
<ConfirmationLimit/>
</Dates>
<Statuses>
<PaymentStatus>1</PaymentStatus>
<DocumentStatus>1</DocumentStatus>
<DeliveryStatus>1</DeliveryStatus>
<InvoiceStatus>1</InvoiceStatus>
<ProblemStatus>1</ProblemStatus>
</Statuses>
<Customer>
<Person Number="1"/>
</Customer>
<Persons>
<Person Number="1"/>
<Person Number="2"/>
<Person Number="3"/>
</Persons>
</Item>
</Items>
<Persons>
<Person Number="1">
<Lastname>IVANOV</Lastname>
<Name>IVAN</Name>
<Middlename>IVANOVICH</Middlename>
<DateOfBirth xsi:nil="true"/>
<Phone>+79871231212</Phone>
<Email>m.rudenko@mute-lab.com</Email>
<Gender xsi:nil="true"/>
<Document Type="P">
<Series>1811</Series>
<Number>912219</Number>
<IssueDate>2012-12-12 00:00:00</IssueDate>
<ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
</Document>
</Person>
<Person Number="2">
<Lastname>PETROV</Lastname>
<Name>IVAN</Name>
<Middlename>MIKHAILOVICH</Middlename>
<DateOfBirth xsi:nil="true"/>
<Phone>+79871231212</Phone>
<Email>m.rudenko@mute-lab.com</Email>
<Gender xsi:nil="true"/>
<Document Type="P">
<Series>1866</Series>
<Number>913319</Number>
<IssueDate>2012-12-12 00:00:00</IssueDate>
<ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
</Document>
</Person>
<Person Number="3">
<Lastname>SIDOROV</Lastname>
<Name>IVAN</Name>
<Middlename>SERGEEVICH</Middlename>
<DateOfBirth xsi:nil="true"/>
<Phone>+79871231212</Phone>
<Email>m.rudenko@mute-lab.com</Email>
<Gender xsi:nil="true"/>
<Document Type="P">
<Series>1866</Series>
<Number>913319</Number>
<IssueDate>2012-12-12 00:00:00</IssueDate>
<ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
</Document>
</Person>
</Persons>
</Booking>
</Response>
</ResponseBin>
</ns1:bookingResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
 
Структура ответа очень похожа на запрос. Выделяются те же основные элементы.
 
Элемент '''Booking'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| Items
| Обязательный. Содержит элемент(ы) Item.
| Элемент Item
|-
| Persons
| Обязательный. Здесь перечислены все клиенты заказа.
| Элемент Person
|}
 
В элементах Item раскрывается подробнейшая информация об одной услуге в бронировании.
 
Элемент '''Item'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| Атрибут Id
| Обязательный.
Номер заказа в системе Nemo.
| Целое число
|-
| Type
| Обязательный.
Тип объекта бронирования.
| HOTELS
|-
| Status
| Обязательный. Статус объекта бронирования .
| booked - забронирован
cancelled - аннулирован
pending confirmation - в процессе подтверждения
pending – произошла попытка бронирования, которое не было завершено
waiting – ожидается результат запроса на бронирование
|-
| Prices
| Обязательный. Данные о ценах.
| см. Элемент Prices
|-
| Dates
| Обязательный. Данные о датах.
| см. Элемент Dates
|-
| Statuses
| Обязательный. Различные дополнительные статусы заказанной услуги.
| см. Элемент Statuses
|-
| Persons
| Обязательный. Содержит клиентов привязанных к услуге.
| элементы Person
|-
| Hotel
| Необязательный. Элемент с данными об отеле.
| см. элемент Hotel (результат поиска отеля)
|}
 
Информация о цене услуги вынесена в отдельную ветку:
 
Элемент '''Prices'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| Price
| Обязательный. Базовая цена услуги.
| Вещественное число.
Атрибут Currency - код валюты.
|-
| Charges
| Необязательный. Сумма дополнительных сборов.
| Вещественное число.
Атрибут Currency - код валюты.
|-
| Commission
| Необязательный. Сумма комиссий (вычитается из общей стоимости).
| Вещественное число.
Атрибут Currency - код валюты.
|-
| Penalty
| Необязательный. Сумма штрафов.
| Вещественное число.
Атрибут Currency - код валюты.
|-
| TotalPrice
| Обязательный. Итоговая стоимость.
= Price + Charges + Commission
| Вещественное число.
Атрибут Currency - код валюты.
|}
 
Информация о датах услуги также вынесена в отдельную ветку:
 
Элемент '''Dates'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| BookingDate
| Обязательный. Дата бронирования.
| Формат гггг-мм-дд чч:мм:сс
|-
| UpdateDate
| Необязательный. Дата обновления.
| Формат гггг-мм-дд чч:мм:сс
|-
| CancelDate
| Необязательный. Дата аннуляции.
| Формат гггг-мм-дд чч:мм:сс
|-
| PenaltyDate
| Необязательный. Дата наступления штрафов.
| Формат гггг-мм-дд чч:мм:сс
|-
| AutoCancelDate
| Необязательный. Дата автоаннулирования.
| Формат гггг-мм-дд чч:мм:сс
|}
 
Дополнительные статусы:
 
Элемент '''Statuses'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| PaymentStatus
| Необязательный.
Статус оплаты.
| Целое число
1 - неоплачено
2 - частично оплачено
3 - оплачено
|-
| DocumentStatus
| Необязательный.
Статус ваучера.
| Целое число
1 - документ не сформирован
2 - документ сформирован
|-
| DeliveryStatus
| Необязательный.
Статус доставки.
| Целое число
1 - не доставлен
2 - доставлен
|-
| InvoiceStatus
| Необязательный.
Статус счета.
| Целое число
1 - счет выставлен.
2 - счет не выставлен.
|}
 
Информация о клиентах заказа полностью повторяет структуру запроса.
</div>
</div>
  ==== Подтверждение бронирования ====<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Запрос =Параметры, используемые в ответах ====
<div class="mw-collapsible-content">
Подтверждение бронирования заказа.<table border="1">
'''WSDL''' (тестовый сервер): http: <tr bgcolor="#CCCCCC"> <th class="col0 leftalign"> Имя элемента </th><th class="col1 leftalign"> Обязательный </th><th class="col2 leftalign"> Тип </th><th class="col3 centeralign"> Описание </th> </tst.nemo-ibe.comtr> <tr class="row1"> <td class="col0">BookFlightResult </wsdevtd><td class="col1">да </wsdl.php?fortd><td class=ConfirmBooking"col2">сложный </td><td class="col3">Контейнер для тела ответа бронирования</td>
<syntaxhighlight lang="xml" line enclose/tr> <tr class="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;row2"> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vertd class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DConfirmBookingcol0"> ID <soapenv:Header/td> <soapenv:Bodytd class="col1"> да <ver:confirm/td> <RequestBintd class="col2"> число<Request/td> <BookingIdtd class="col3">179547Номер бронирования в системе Nemo.</BookingIdtd> </Requesttr> <Sourcetr class="row3"> <ClientIdtd class="col0 leftalign">Status </ClientIdtd> <APIKeytd class="col1">да </APIKeytd> <Languagetd class="col2">ruстрока </Language> <Currencytd>RUB</Currencytd class="col3"> </Source> </RequestBin> </verСтатус брони, возможные значения:confirm> </soapenv:Body></soapenv:Envelope>booked - забронировано, canceled - бронь отменена, ticket - выписана; UNDEFINED - статус не определён.</syntaxhighlighttd>
Элемент '''Request''' </tr>{| style <tr class="width: 800pxrow4" > <td class="wikitablecol0"|-! scope>Code </td><td class="col1">да </td><td class="col2">строка </td><td class="colcol3" width>Номер бронирования в системе поставщика (в sabre, sirena и т.д.)/код тарифного правила</td> </tr> <tr class="200row5" | Элемент>! scope <td class="colcol0" width>QueryPlace </td><td class="300col1" | Описание! scope>нет </td><td class="colcol2" width>сложный </td><td class="300col3" | Допустимые значения|-| BookingID| Обязательный. Идентификатор заказа >Очередь, в системе Nemo.| Целое число|}которую помещено бронирование</td>
Элемент '''Source''' </tr>{| style <tr class="width: 800pxrow6" > <td class="wikitablecol0 leftalign"|-! scope>Number </td><td class="colcol1" width>да </td><td class="200col2" | Элемент! scope>число </td><td class="colcol3" width>Номер очереди</td> </tr> <tr class="300row7" | Описание>! scope <td class="colcol0" width>Flight </td><td class="300col1" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть>да </добавить в td><td class="Администрированиеcol2" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть>сложный </добавить в td><td class="Администрированиеcol3" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div>Перелёт, по которому была сделана бронь (Результаты проверки доступности для перелёта)</divtd>
<div /tr> <tr class="toccolours mw-collapsible mw-collapsedrow8" style> <td class="width:1000pxcol0">Agency </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация об агентстве</td> </tr> <tr class="row9"> <td class= Ответ "col0">ItinReceipts</td><td class="col1">нет </td><td class===="col2">сложный </td><div td class="mw-collapsible-contentcol3">Маршрут квитанция. Содержит строку в кодировки Encoding (как правило в base64), представляющую маршрут квитанцию в формате Format.</td>
<syntaxhighlight lang="xml" line enclose/tr> <tr class="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;row10"> <SOAP-ENV:Envelope xmlns:SOAP-ENVtd class="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DConfirmBookingcol0"> Encoding <SOAP-ENV:Body/td> <ns1:confirmResponsetd class="col1"> да <ResponseBin/td> <Response> <Books> <Book> <Idtd class="col2">179547строка </Idtd> <Statustd class="col3">bookedКодировка</Statustd> </Booktr> </Bookstr class="row11"> </Responsetd class="col0"> Format </ResponseBintd> </ns1:confirmResponsetd class="col1"> да </SOAP-ENV:Bodytd></SOAP-ENV:Envelopetd class="col2">строка</syntaxhighlighttd></divtd class="col3">Формат</divtd>
</tr>
<tr class="row12">
<td class="col0">Travellers</td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Контейнер для информации о пассажирах</td>
</tr>
<tr class="row13">
<td class="col0">Traveller </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация о пассажире</td>
</tr> <tr class="row14"> <td class="col0">Ticket </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Билет пассажира.</td> </tr> <tr class= Выгрузка актуальных данных по заказу(ам) "row15"> <td class="col0">TickectNum </td><td class="col1">да </td><td class="col2">строка </td><td class=Используется для экспорта бронирований и для обновления данных в локальной клиентской базе."col3">Номер билета</td>
'''WSDL''' (тестовый сервер): http: </tr> <tr class="row16"> <td class="col0">Seats</tsttd><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контейнер мест пассажира.nemo-ibe.com</td> </tr> <tr class="row17"> <td class="col0">Seat </td><td class="col1">да </wsdevtd><td class="col2">сложный </wsdl.php?fortd><td class=Export"col3">Место в самолёте</td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Запрос ===== <div tr class="mw-collapsible-contentrow18"> <syntaxhighlight lang="xml" line enclose="div" styletd class="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">Number <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vertd><td class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DExportcol1"> да <soapenv:Header/td> <soapenv:Body> <ver:export> <RequestBin> <Request> <Export> <Items> <!--Zero or more repetitions:--> <Item Idtd class="386621col2"/> строка</Itemstd> </Exporttd class="col3"> Номер места(ряд+номер в ряду)</Request> <Sourcetd> <ClientId> </ClientIdtr> <APIKey></APIKeytr class="row19"> <Languagetd class="col0">ruCharacteristic </Languagetd> <Currencytd class="col1">RUBнет</Currencytd> </Sourcetd class="col2"> строка </RequestBintd> </ver:exporttd class="col3"> </soapenv:Body></soapenv:Envelope>Характеристика места в соответствии со стандартом EDIFACT. См справочник “Таблица характеристик мест”.</syntaxhighlighttd>
Элемент '''Item''' </tr>{| style <tr class="width: 800pxrow20" > <td class="wikitablecol0"|-! scope>SmokingPreference </td><td class="col1">нет </td><td class="colcol2" width>строка </td><td class="200col3" | Элемент>Статус курения на этом месте, если Y - место для курящих, если N - место для некурящих.</td> </tr>! scope <tr class="colrow21" width> <td class="300col0" | Описание! scope>SegmentNumber </td><td class="colcol1" width>да </td><td class="300col2" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор заказа в системе Nemo.| Целое >число|}</td><td class="col3">Номер сегмента</td>
Элемент '''Source''' </tr>{| style <tr class="width: 800pxrow22" > <td class="wikitablecol0"|-! scope>PersonalInfo </td><td class="colcol1" width>да </td><td class="200col2" | Элемент! scope>сложный </td><td class="colcol3" width>Личные данные</td> </tr> <tr class="300row23" | Описание>! scope <td class="colcol0" width>LoyaltyCard </td><td class="300col1" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть>нет </добавить в td><td class="Администрированиеcol2" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть>сложный </добавить в td><td class="Администрированиеcol3" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div>Карточка часто летающего пассажира</divtd>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Ответ ===== <div tr class="mw-collapsible-contentrow24">Ответ содержит элементы результатов бронирований. См. описание выше. <syntaxhighlight langtd class="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">ContactInfo <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DExport" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"td> <SOAP-ENV:Body> <ns1:exportResponse> <ResponseBin> <Response> <Export> <Items> <Item Id="386621"> <Hotel Idtd class="1872666col1"> <Supplier>GTAнет </Suppliertd> <CityId>22046</CityId> <DateBegin>2013-10-15</DateBegin> <DateEnd>2013-10-18</DateEnd> <CacheId>1872666</CacheId> <Name>ADLON KEMPINSKI</Name> <Categories> <Category Idtd class="1col2"> <Rooms> сложный <Room Count="1" Id="1" ServiceId="1"/td> <Room Count="1" Id="2" ServiceIdtd class="2col3"/> Контактная информация для пассажира</Roomstd> <TotalPrice Currency="RUB">74733.84 </TotalPricetr> </Category> </Categories> <Services> <Service Id="1" Statustr class="OKrow25"> <Desc>Standard Twin</Desc> <Meal>Full Breakfast</Meal> <Price Currencytd class="RUBcol0">37366.92FareStored </Pricetd> </Service> <Service Idtd class="2" Status="OKcol1"> <Desc>Standard Twinнет </Desctd> <Meal>Full Breakfast</Meal> <Price Currency="RUB">37366.92</Price> </Service> </Services> <Rooms> <Room Id="1" Type="TWIN"/> <Room Id="2" Type="SNGL"/> </Rooms> </Hotel> <Type>HOTELS</Type> <Status>waiting</Status> <Prices> <Price Currency="RUB">74733.84</Price> <Charges Currencytd class="RUBcol2">0</Charges> <Commission Currency="RUB">0</Commission> <Penalty Currency="RUB">0</Penalty> <TotalPrice Currency="RUB">74733.84</TotalPrice> </Prices> <Dates> <BookingDate>2013-08-01 20:21срока:47<Yes/BookingDate> <UpdateDate>2013-08-01 20:35:01No </UpdateDatetd> <CancelDate xsi:nil="true"/> <PenaltyDate>2013-07-31 19:10:37</PenaltyDate> <AutoCancelDate>2013-08-01 20:23:47</AutoCancelDate> <ConfirmationLimit/> </Dates> <Statuses> <PaymentStatus>1</PaymentStatus> <DocumentStatus>1</DocumentStatus> <DeliveryStatus>1</DeliveryStatus> <InvoiceStatus>1</InvoiceStatus> <ProblemStatus>1</ProblemStatus> </Statuses> <Customer> <Person Number="1"/> </Customer> <Persons> <Person Number="1"/> <Person Number="2"/> <Person Number="3"/> </Persons> </Item> </Items> <Persons> <Person Number="1"> <Lastname>IVANOV</Lastname> <Name>IVAN</Name> <Middlename>IVANOVICH</Middlename> <DateOfBirth xsi:nil="true"/> <Phone>+79871231212</Phone> <Email>m.rudenko@mute-lab.com</Email> <Gender xsi:nil="true"/> <Document Type="P"> <Series>1811</Series> <Number>912219</Number> <IssueDate>2012-12-12 00:00:00</IssueDate> <ExpiryDate>2014-12-12 00:00:00</ExpiryDate> </Document> </Person> <Person Number="2"> <Lastname>PETROV</Lastname> <Name>IVAN</Name> <Middlename>MIKHAILOVICH</Middlename> <DateOfBirth xsi:nil="true"/> <Phone>+79871231212</Phone> <Email>m.rudenko@mute-lab.com</Email> <Gender xsi:nil="true"/> <Document Type="P"> <Series>1866</Series> <Number>913319</Number> <IssueDate>2012-12-12 00:00:00</IssueDate> <ExpiryDate>2014-12-12 00:00:00</ExpiryDate> </Document> </Person> <Person Number="3"> <Lastname>SIDOROV</Lastname> <Name>IVAN</Name> <Middlename>SERGEEVICH</Middlename> <DateOfBirth xsi:niltd class="truecol3"/> <Phone>+79871231212<Указывает установлена ли /Phone> <Email>mгарантируется ли цена у поставщика.rudenko@mute-labЕсли параметр отсутствует в ответе, то по умолчанию значение “Yes”.com</Email> <Gender xsi:nil="true"/> <Document Type="P"> <Series>1866</Series> <Number>913319</Number> <IssueDate>2012-12-12 00:00:00</IssueDate> <ExpiryDate>2014-12-12 00:00:00</ExpiryDate> </Document> </Person> </Persons> </Export> </Response> </ResponseBin> </ns1:exportResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlighttd>
Формат </tr> <tr class="row26"> <td class="col0">CancelBookResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа аналогичен результату бронирования.отмены брони</td> </divtr> <tr class="row27"> <td class="col0">BookID</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер брони, которая отменялась (Номер выписанной брони, выписка которой отменялась)</divtd>
</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>
==== Аннуляция заказа ===='''WSDL''' (тестовый сервер): http: <//tst.nemo-ibe.com/wsdev/wsdl.php?for=CancelBookingtr> <div tr class="toccolours mw-collapsible mw-collapsed" style="width:1000pxrow32">===== Запрос ===== <div td class="mw-collapsible-contentcol0">Rules<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"/td><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vertd class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCancelBookingcol1"> да<soapenv:Header/td> <soapenv:Body> <ver:cancel> <RequestBin> <Request> <CancelBooking> <Item Idtd class="386621col2"/> </CancelBooking> сложный</Requesttd> <Source> <ClientIdtd class="col3">Контейнер для правил</ClientIdtd> <APIKey> </APIKeytr> <Language>ru</Languagetr class="row33"> <Currencytd class="col0">RUBRule</Currencytd> </Sourcetd class="col1"> да</RequestBintd> </ver:canceltd class="col2"> сложный</soapenv:Bodytd></soapenv:Envelopetd class="col3">Правило</syntaxhighlighttd>
Элемент '''Item''' </tr>{| style <tr class="width: 800pxrow34" > <td class="wikitablecol0"|-! scope>Tarrif</td><td class="col1">да</td><td class="col2">строка</td><td class="colcol3" width>Код тарифа, для которого правило применяется</td> </tr> <tr class="200row35" | Элемент>! scope <td class="colcol0" width>Name</td><td class="300col1" | Описание! scope>да</td><td class="colcol2" width>строка</td><td class="300col3" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор заказа в системе Nemo.| Целое число|}>Имя правила</td>
Элемент '''Source''' </tr>{| style <tr class="width: 800pxrow36" > <td class="wikitablecol0"|-! scope>RuleText</td><td class="colcol1" width>да</td><td class="200col2" | Элемент! scope>строка</td><td class="colcol3" width>Текст правила</td> </tr> <tr class="300row37" | Описание>! scope <td class="colcol0" width>AirAvailResult</td><td class="300col1" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть>да</добавить в td><td class="Администрированиеcol2" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть>сложный</добавить в td><td class="Администрированиеcol3" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div>Контейнер для тела ответа помещения брони в очередь</divtd>
</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=Выгрузки статистики продаж через API"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 код авиакомпании. Валидирующий перевозчик, что API запросы на поиск отправляются на доменное имя, указанное бланках которого должен выписываться билет.</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> <syntaxhighlight langtr class="textrow49" enclose> <td class="divcol0" style>DepTerminal</td><td class="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col1">http:нет<//host/index.php?gotd><td class=settings"col2">строка</download_metasearch_stat&date1td><td class=2012-05-01&date2=2012-06-01&partner=aviasales&password=secret"col3">Код терминала отправления</syntaxhighlighttd>
Параметры запроса{| style="width: 800px" class="wikitable"|-! scope="col" | Параметр запроса! scope="col" | Описание|-| date1| YYYY-MM-DD дата.|-| date2| YYYY-MM-DD дата.|-| partner| Идентификатор партнёра - алиас источника переходов модуля метрики.|-| password| Пароль партнёра - пароль источника переходов модуля метрики.|} <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"/tr>===== Ответ ===== <div tr class="mw-collapsible-contentrow50"> <syntaxhighlight lang="xml" line enclosetd class="div" style=col0"font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><bookings> <booking> <nemo_id>123123ArrAirp</nemo_idtd> <idtd class="col1">JHKHVRда</idtd> <created_attd class="col2">2012-05-02 00:02:01строка</created_attd> <markertd class="col3">1232:1222.tIATA код аэропорта прибытия</markertd> <price>1199 </pricetr> <profit>200</profittr class="row51"> <currencytd class="col0">RUBArrTerminal</currencytd> <statetd class="col1">PAIDнет</statetd> <validatingCarriertd class="col2">UNстрока</validatingCarriertd> <segment> <flight> <operatingCarrier>UN</operatingCarrier> <number>3</number> <departure>DME</departure> <departureDate>2012-09-25</departureDate> <departureTime>09:55</departureTime> <arrival>LED</arrival> <arrivalDate>2012-09-25</arrivalDate> <arrivalTime>11:10</arrivalTime> <equipment>735</equipment> <cabin>Y</cabin> </flight> </segment> <adults>1</adults> <children>0</children> <infants>0</infantstd class="col3"> </booking> ...more bookings...</bookings>Код терминала прибытия</syntaxhighlighttd>
'''Описание параметров''' </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>
<syntaxhighlight lang/tr> <tr class="textrow54" enclose> <td class="divcol0" style>FlightNumber</td><td class="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col1"> да</bookings - корневой элемент содержащий информацию о бронированиях. td><td class="col2">число</td><td class="col3">Номер рейса</booking - информации об одном бронировании.td> nemo_id - ид заказа в системе Немо. id - уникальный идентификатор бронирования в системе поставщика (локатор). created_at - YYYY-MM-DD HH:MM время и дата бронирования в таймзоне UTC; если даты бронирования нет, то дата начала создания заказа. marker - маркер переданные в GET параметре marker при переходе на бронирование. price - цена билетов. profit - прибыль партнёра от данного бронирования. currency - валюта в которой указаны прибыль и цена билета. state - состояние брони. Допустимые значения PROCESSING </PAID/CANCELLED.tr> segment - информация о перелётах. <tr class="row55"> validatingCarrier - информация о бронировании. //flight - информация об одном перелёте. operatingCarrier - код авиакомпании осуществляющей рейс. number - номер рейса. departure - IATA код аэропорта отправления. departureDate - дата отправления, 'YYYY-MM-DD', местное время. departureTime - время отправления, 'HH:MM', местное время. arrival - IATA код аэропорта назначения. arrivalDate - дата прибытия, 'YYYY-MM-DD', местное время. arrivalTime - время прибытия, 'HH:MM', местное время. equipment - IATA транспортного средства осуществляющего перевозку. cabin - класс перелёта. <td class="Ycol0" - эконом , >AircraftType</td><td class="Ccol1" - бизнес, >да</td><td class="Fcol2" - первый. adults - кол-во взрослых пассажиров. children - кол-во детей. infants - кол-во детей до 2 лет.>строка</syntaxhighlighttd></divtd class="col3">Код типа самолёта</divtd>
Время </tr> <tr class="row56"> <td class="col0">DepDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и дата бронирования '''''created_at''''' передается в таймзоне UTC+4.время отправления, формат ГГГГ-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>
Состояние брони '''''state''''' может принимать </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">Тип питания, возможные значения:* '''''PROCESSING''''' UNDEFINED - неизвестно; N - Нет питания; P - Алкогольные напитки в продаже; B - Завтрак; O - Холодная еда; C - Бесплатные алкогольные напитки; K - Континтальный завтрак; D - Обед; F - Еда в продаже; G - Еда/напитки в продаже; H - Горячая еда; L - Ланч; M - Еда; R - забронированОсвежающие еда/напитки бесплатно;* '''''PAID''''' V - выписанОсвежающие еда/напитки за отдельную плату;* '''''CANCELLED''''' S - аннулирован (по любым причинам).Закуска</td>
Прибыль партнёра '''''profit''''' от данного бронирования в формате 00.99 (через точку). </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>
Количество детей до 2 лет '''''infants''''' относится только к младенцам без места. Количество младенцев с местом объединяются с количеством детей до 12 лет '''''children'''''. </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>'''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. </tr> <tr class="row65"> <td class="col0">Arrival</td><td class= Процесс выгрузки "col1">да</td><td class="col2">число</td><td class==Схематично процесс выгрузки заказов представлен на блок-схеме."col3">Часовой пояс прибытия, UTC (смещение относительно Гринвича)</td>
[[Файл:Export.png]] </tr> <tr class="row66"> <td class="col0">ETicket</td><td class= Статусы выгрузки заказа "col1">да</td><td class="col2">булевский</td><td class==Коды статусов выгрузки заказа соответствуют кодам состояния HTTP. Фактически указывается последний полученный код состояния HTTP"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>
{| style="width: 800px" </tr> <tr class="wikitablerow68">|-! scope <td class="colcol0" width>Measure</td><td class="20col1" | Код! scope>да</td><td class="colcol2" width>строка</td><td class="300col3" | Описание|-| 0| Неизвестный ответ. Адрес для выгрузки не доступен.|-| 200| OK — успешный запрос>Мера веса.|K -| 301| Запрошенный документ был окончательно перенесен на новый URIкилограммы, указанный в поле Location заголовка.|PC -сумки/клади</td>| 403 </tr>| Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу. <tr class="row69">|-| 404| Сервер понял запрос, но не нашёл соответствующего ресурса по указанному URI.|-| 422| Unprocessable Entity — сервер успешно принял запрос, может работать с указанным видом данных, в теле запроса XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка, из-за которой невозможно произвести операцию над ресурсом.|-| 500| Любая внутренняя ошибка сервера.|} <td class="col0">Value</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Количество багажа</td>
=== Выгрузка заказа для компонента «Авиабилеты»===Для компонента '''«Авиабилеты»''' доступна выгрузка заказов в форматах Nemo и </или Софи (при включенном модуле '''«Выгрузка заказов Софи»). tr> <div tr class="toccolours mw-collapsible mw-collapsed" style="width:1000pxrow70">==== Формат Nemo ==== <div td class="mw-collapsible-contentcol0">PricingInfo<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"/td><?xml versiontd class="1.0" encoding="UTF-8col1"?><PNR> <Common> <id>277749нет</idtd> <Typetd class="col2">FLIGHTSсложный</Typetd> <Servicetd class="col3">SABRE</Service> <Locator>SQLJNK</Locator> <ExternalId>1234567</ExternalId> <!-- Внешний идентификатор --> <Stamp>123456789</Stamp> <UtmSource>100</UtmSource> <!-- Источник перехода --> <BeginDateTime>2014Контейнер для информации о ценах.12Отсутствует в случае, если производится поиск по расписанию.18-10:45</BeginDateTimetd> <EndDateTime>2014.12.25-16:40 </EndDateTimetr> <TicketingDateTime>2014.12.09-15:02</TicketingDateTimetr class="row71"> <VoidDateTime/> <TotalPricetd class="col0"> <Amount>10773.8Refundable</Amounttd> <CurrencyCodetd class="col1">RUBда</CurrencyCodetd> </TotalPrice> <UserId>2964</UserIdtd class="col2"> булевский<EEUserId/td> <UserLogintd class="col3">userLogin</UserLogin> <GroupId>2963</GroupId> <CompanyId>2963</CompanyId> <UserStatus>Менеджер</UserStatus> <DateCreate>2014.12.09-14:59</DateCreate> <ExtServices> <!-- Дополнительные услуги --> <ExtService> <Type>AeroExpress</Type> <Price> <Amount>1440</Amount> <CurrencyCode>RUB</CurrencyCode> </Price> </ExtService> <ExtService> <Type>AlphaInsurance</Type> <Price> <Amount>480</Amount> <CurrencyCode>RUB</CurrencyCode> </Price> <Insurances> <Insurance> <Number>Z694.198TEST.2765282</Number> <Fio>IVANOV IVAN</Fio> </Insurance> <Insurance> <Number>Z694.198TEST.2765283</Number> <Fio>PETROV PETR</Fio> </Insurance> </Insurances> </ExtService> </ExtServices> </Common> <Payment> <Title>Testpay</Title> <Method>Testpay</Method> <BillingId>117607091</BillingId> <Date>2014-12-09 15:00:39</Date> <CreateDate>2014-12-09 15:00:34</CreateDate> <Status>ticket</Status> <PenaltyDate/> <Timelimit>2014-12-10 14:59:55</Timelimit> <PaymentCharge> <!-- Сбор платежного шлюза --> <Amount>313.8</Amount> <CurrencyCode>RUB</CurrencyCode> </PaymentCharge> <Charge> <!-- Общий сбор минус сбор платежного шлюза --> <Amount>1920</Amount> <CurrencyCode>RUB</CurrencyCode> </Charge> <BaseFare> <!-- Тариф --> <Amount>1600</Amount> <CurrencyCode>RUB</CurrencyCode> </BaseFare> <Book> <!-- Тариф плюс таксы --> <Amount>8540</Amount> <CurrencyCode>RUB</CurrencyCode> </Book> <Penalty> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </Penalty> <Total> <Amount>10773.8</Amount> <CurrencyCode>RUB</CurrencyCode> </Total> <Commission> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </Commission> <PaidValue> <Amount>10773.8</Amount> <CurrencyCode>RUB</CurrencyCode> </PaidValue> </Payment> <Client> <LastName/> <Name>SIDOROV PETR</Name> <MiddleName/> <Number/> <Birth/> <Email>mail@host.com</Email> <Phone>+74950000000</Phone> </Client> <PassengersCount>2</PassengersCount> <Passengers> <Passenger> <passenger_type>ADT</passenger_type> <lastname>IVANOV</lastname> <name>IVAN</name> <gender>F</gender> <date_of_birth>12.12.1987</date_of_birth> <doc_type>C</doc_type> <passport_number>1234567890</passport_number> <currency_of_passport>24.03.2023</currency_of_passport> <middlename/> <passenger_id>37667</passenger_id> <nationality>RU</nationality> <email>mail@host.com</email> <Tickets> <Active>0</Active> <Seg/> <Num>5553984070962</Num> <Date>2014-12-09 16Индикатор показывающий является ли билет возвратным или нет, возможные значения:01:00</Date> </Tickets> <Tickets> <Active>1</Active> <Seg/> <Num>5553984070964</Num> <Date>2014-12true -09 16:03:00</Date> </Tickets> <PriceInfo> <BaseFare> <Amount>800</Amount> <CurrencyCode>RUB</CurrencyCode> </BaseFare> <TotalFare> <Amount>4270</Amount> <CurrencyCode>RUB</CurrencyCode> </TotalFare> <Commission> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </Commission> <AirlineCommission> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </AirlineCommission> </PriceInfo> </Passenger> <Passenger> <passenger_type>ADT</passenger_type> <doc_type>C</doc_type> <middlename/> <passenger_id>37668</passenger_id> <lastname>PETROV</lastname> <name>PETR</name> <gender>M</gender> <date_of_birth>20.12.1984</date_of_birth> <passport_number>1234567899</passport_number> <currency_of_passport>20.12.2029</currency_of_passport> <nationality>RU</nationality> <email>mail@host.com</email> <Tickets> <Active>0</Active> <Seg/> <Num>5553984070963</Num> <Date>2014-12-09 16:01:00</Date> </Tickets> <Tickets> <Active>1</Active> <Seg/> <Num>5553984070965</Num> <Date>2014-12-09 16:03:00</Date> </Tickets> <PriceInfo> <BaseFare> <Amount>800</Amount> <CurrencyCode>RUB</CurrencyCode> </BaseFare> <TotalFare> <Amount>4270</Amount> <CurrencyCode>RUB</CurrencyCode> </TotalFare> <Commission> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </Commission> <AirlineCommission> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </AirlineCommission> </PriceInfo> </Passenger> </Passengers> <FlightType>Внутренний</FlightType> <OrderInfo> <Info> <Company>Аэрофлот - Российские авиалинии</Company> <CompanyCode>SU</CompanyCode> <OperatingCompanyCode>FV</OperatingCompanyCode> <StartDate>2014.12.18</StartDate> <StartTime>10:45</StartTime> <StartDayOfWeek>Thursday</StartDayOfWeek> <FlightNumber>6128 возвратный (FV6128нет штрафов за возврат)</FlightNumber> <StartAirportCode>VKO</StartAirportCode> <StartAirportName>Внуково, Москва</StartAirportName> <StartCountry>Россия</StartCountry> <StartCountryCode>RU</StartCountryCode> <EndAirportCode>LED</EndAirportCode> <EndAirportName>Санкт-Петербург, Пулково</EndAirportName> <EndCountry>Россия</EndCountry> <EndCountryCode>RU</EndCountryCode> <Time>1:30</Time> <Equip> <Name>Airbus 319</Name> <Type>319</Type> </Equip> <ClassType>economy</ClassType> <ClassTypeCode>R</ClassTypeCode> <Meal/> </Info> <Info> <Company>Аэрофлот false - Российские авиалинии</Company> <CompanyCode>SU</CompanyCode> <OperatingCompanyCode>FV</OperatingCompanyCode> <StartDate>2014.12.25</StartDate> <StartTime>15:10</StartTime> <StartDayOfWeek>Thursday</StartDayOfWeek> <FlightNumber>6153 невозвратный (FV6153могут быть штрафы за возврат)</FlightNumber> <StartAirportCode>LED</StartAirportCode> <StartAirportName>Санкт-Петербург, Пулково</StartAirportName> <StartCountry>Россия</StartCountry> <StartCountryCode>RU</StartCountryCode> <EndAirportCode>VKO</EndAirportCode> <EndAirportName>Внуково, Москва</EndAirportName> <EndCountry>Россия</EndCountry> <EndCountryCode>RU</EndCountryCode> <Time>1:30</Time> <Equip> <Name>Airbus 319</Name> <Type>319</Type> </Equip> <ClassType>economy</ClassType> <ClassTypeCode>R</ClassTypeCode> <Meal/> </Info> </OrderInfo> <Remarks>Debit</Remarks></PNR></syntaxhighlighttd>
Ремарка '' <Remarks/tr> <tr class="row72"> <td class="col0">PassengerFare</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">DebitИнформация о ценах для конкретного типа пассажиров.</Remarkstd>'' является не обязательной, означает что заказ был оплачен с помощью способа оплаты «Депозит»;если же заказ был оплачен с использованием депозитного кредита, и депозит ушел в минус даже на 1 руб., то будет '' </tr> <tr class="row73"> <td class="col0">Quantity</td><td class="col1">да</td><td class="col2">число</td><Remarkstd class="col3">CreditЧисло пассажиров данного типа</Remarkstd>''.
Элемент '' <TotalFare/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">Цена в эквивалентной валюте(за одного пассажира), но при поиске цены не оплачен, то значение будет 0 RUB.возвращается</td>
Элемент '' <CreateDate/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> </divtr> <tr class="row79"> <td class="col0">Taxes</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для такс, при поиске цены не возвращается</divtd>
<div /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="toccolours mw-collapsible mw-collapsedcol1" style>да</td><td class="width:1000pxcol2">строка</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"> <div td class="mw-collapsible-contentcol0">Amount</td><syntaxhighlight langtd class="xmlcol1" line enclose>да</td><td class="divcol2" style>число с плавающей точкой</td><td class="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col3">Значение таксы</td>
<?xml version="1.0" encoding="UTF-8"?><order_snapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"tr> <header currency="RUB" time_gmt="2015-01-13 08:10:54" time="2015-01-13 12:10:54" ord_id="279307" corp_ord_id="MKQFBZ" site="2806"/> <customer email="cepogilixe@lackmail.net" phone="XXXX9048" name="" corp_code="2806"/> <products> <product> <!--@stamp - валидатор. Парсится из заказа(Сирена и Галилео). Если получить из ГДС не удалось, то передаётся валидатор, настроенный в реквизитах подключения к ГДС.--> <air_ticket_prod prod_id="0" psg_type="A" title="Москва - Ленинград" taxes="1776" fare="400" origin="MOW" service_fee="100" form_owner="SU" validating_carrier="SU" destination="LED" comission="0.4" stamp="92354802"> <air_seg segment_id="0" carrier="SU" flight_number="6128" op_carrier="FV" departure_datetime="2015-01-16 10:45:00" arrival_datetime="2015-01-16 12:15:00" departure_airport="VKO" arrival_airport="LED" fare_basis="RPROWRF"/> </air_ticket_prod> </product> <product> <ral_ticket_prod rsrv_id="2496500" prod_id="200" origin="Киевский вокзал" destination="Внуково, Москва" departure_datetime="2015-01-16 06:45:00" cartype="standart" fare="360"/> </product> <product> <service_prod prod_id="300" provider_type="INSURANCE" provider_id="AlphaInsurance" offer_type="alpha_insurance" ext_id="Z694.198TEST.2774397" price="100" count="1" psgr_id="0"/> </product> <product> <payment_prod price="123"/> </product> </products> <reservations> <reservation rsrv_id="279307" crs="SABRE" rloc="MKQFBZ"/> <reservation rsrv_id="2496500" crs="AeroExpress" rloc="218812"/> </reservations> <passengers> <passenger doc_number="1234567890" psgr_id="0" doc_country="RU" psgr_type="A" doc_type="C" birth_date="1990-01-04" name="IVAN" gender="M" first_name="IVANOV"/> </passengers> <travel_docs> <travel_doc> <air_ticket_doc tkt_oper="TKT" tkt_number="5555871998698" tkt_date="2015-01-13 12:10:50" prod_id="0" psgr_id="0" issuingAgent="2807"/> </travel_doc> <travel_doc> <aex_doc rsrv_id="2496500" prod_id="200" psgr_id="0" tkt_oper="TKT" tkt_date="2015-01-13 12:10:54" tkt_number="394612"/> </travel_doc> <travel_doc> <insur_doc main_prod_id="0" prod_id="300" psgr_id="0" tkt_oper="TKT" tkt_date="2015-01-13 12:10:54" tkt_number="Z694.198TEST.2774397"/> </travel_doc> </travel_docs> <payments> <payment pay_id="117607839" pay_oper="PAY" pay_time="2015-01-13 12:09:52" psp_code="024" psp_name="Rapida" psp_pay_id="" pay_system="ES" amount="2859" fop="CA"/> </payments></order_snapshot></syntaxhighlight> *service_fee — сбор агентский (только сервисный сбор, '''не включает''' в себя сбор за эквайринг).*comission - комиссия АК*stamp - код Валидатора в ПСС, берется из настроек Немо, если в настройках он не указан, то не передается.*ord_id — идентификатор заказа в НЕМО*corp_ord_id — PNR из ГДС*site — идентификатор агентства в Немо*payment pay_id — номер биллинга Немо.*pay_system — код платежной системы**SB — для сбербанка**ES — для Рапиды**UNT — для Юнителлера*cardholder — держатель карты.*expire_date — срок действия карты, у тех ПШ, что не приходит в ответе — пустой.*card_number — номер карты, в формате: 415481XXXXXX1734*approval_code — код подтверждения.*payment_prod price — сбор за эквайринг.*main_prod_id - ID основного продукта (авиабилета).*tkt_number - номер полиса для пассажира;*tkt_date - дата и время операции; *tkt_oper - тип операции (TKT/REF).*provider_type - тип поставщика (INSURANCE).*provider_id - AlphaInsurance;*offer_type - название полиса;*price - цена полиса для пассажира;*rloc - номер заказа у поставщика. </div></div> === Выгрузка заказа для компонента «Отели» ===Для компонента '''«Отели»''' доступна выгрузка заказов в формате Nemo.  <div tr class="toccolours mw-collapsible mw-collapsed" style="width:1000pxrow84">==== Формат Nemo ==== <div td 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;"><?xml version="1.0" encoding="UTF-8"?><PNR> <Common> <id>263462</id> <Type>HOTELS</Type> <Service>ACADEM</Service> <Locator>3028655</Locator> <BeginDateTime>2014.04.15-00:00</BeginDateTime> <EndDateTime>2014.04.16-00:00</EndDateTime> <TotalPrice> <Amount>1950</Amount> <CurrencyCode>RUB</CurrencyCode> </TotalPrice> <UserId>123</UserId> <EEUserId /> <UserLogin>userLogin</UserLogin> <GroupId>332</GroupId> <UserStatus>Менеджер</UserStatus> <DateCreate>2014.03.21-16:11</DateCreate> </Common> <Payment> <Status>booked</Status> <PenaltyDate>2014.04.13-00:00</PenaltyDate> <Timelimit>2014-04-13 00:00:00</Timelimit> <Charge> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </Charge> <Book> <Amount>1950</Amount> <CurrencyCode>RUB</CurrencyCode> </Book> <Penalty> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </Penalty> <Total> <Amount>1950</Amount> <CurrencyCode>RUB</CurrencyCode> </Total> <Commission> <Amount>112</Amount> <CurrencyCode>RUB</CurrencyCode> </Commission> <PaidValue> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </PaidValue> </Payment> <Client> <LastName>Сидоров</LastName> <Name>Владимир</Name> <MiddleName>Константинович</MiddleName> <Number>1806326598</Number> <Birth>1987-05-20</Birth> <Email>mail@host.com</Email> <Phone>+79871234567</Phone> </Client> <Passengers> <Passenger> <nationality>RU</nationality> <lastname>IVANOV</lastname> <name>IVAN</name> </Passenger> </Passengers> <Info> <Name>Интурист</Name> <City> <Code>34</Code> <Name>Великий Новгород</Name> </City> <Location /> <StarRating>3</StarRating> <Days>2</Days> <Nights>1</Nights> <CheckInDate>2014.04.15</CheckInDate> <CheckOutDate>2014.04.16</CheckOutDate> <CheckInTime>14:00</CheckInTime> <CheckOutTime>12:00</CheckOutTime> <OnRequest>false</OnRequest> </Info> <Rooms> <Room> <Name>Двухместный стандарт (две кровати)</Name> <Type>SNGL</Type> <FareId>1</FareId> </Room> </Rooms> <Fares> <Fare> <Id>1</Id> <Price> <Amount>1950</Amount> <CurrencyCode>RUB</CurrencyCode> </Price> <Meals>Завтрак col0"Шведский стол",Отсутствует</Meals> <Description>Одноместный</Description> </Fare> Tariffs</Farestd> <CancelCharges> <Charge> <DateFrom>2014.04.13-00:00</DateFrom> <DateTo>2014.04.15-00:00</DateTo> <Amount>1488</Amount> <CurrencyCode>RUB</CurrencyCode> </Charge> </CancelCharges> <ModifyCharges /> <ModificationMethods> <Method>MOD_PASS_NAMES</Method> <Method>MOD_DATES</Method> </ModificationMethods></PNR></syntaxhighlight></div></div> === Выгрузка заказа для компонента «ЖД» ===Для компонента '''«ЖД»''' доступна выгрузка заказов в формате Nemo.  <div td class="toccolours mw-collapsible mw-collapsed" style="width:1000px">==== Формат Nemo ====<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;"><?xml version="1.0" encoding="UTF-8"?><PNR> <Common> <id>123456</id> <Type>TRAINS</Type> <Service>UFS</Service> <Locator>64345987</Locator> <BeginDateTime>2014.04.26-00:15</BeginDateTime> <EndDateTime>2014.04.26-13:33</EndDateTime> <TicketingDateTime>2014.06.06-15:10</TicketingDateTime> <VoidDateTime>2014.06.07-14:19</VoidDateTime> <TotalPrice> <Amount>57505.8</Amount> <CurrencyCode>RUB</CurrencyCode> </TotalPrice> <UserId>123</UserId> <EEUserId /> <UserLogin>mikhalevtur</UserLogin> <GroupId>122</GroupId> <UserStatus>Менеджер</UserStatus> <DateCreate>2014.04.24-15:03</DateCreate> </Common> <Payment> <Title>Testpay</Title> <Method>Testpay</Method> <BillingId>117603370</BillingId> <Date>2014-04-24 15:10:12</Date> <CreateDate>2014-06-06 15:10:00</CreateDate> <Status>cancelled</Status> <PenaltyDate /> <Timelimit>2014-04-24 15:18:01</Timelimit> <Charge> <Amount>52278</Amount> <CurrencyCode>RUB</CurrencyCode> </Charge> <Book> <Amount>5227.8</Amount> <CurrencyCode>RUB</CurrencyCode> </Book> <Penalty> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </Penalty> <TotalAgencyChargeForRefund> <Amount>100</Amount> <CurrencyCode>RUB</CurrencyCode> </TotalAgencyChargeForRefund> <Total> <Amount>57505.8</Amount> <CurrencyCode>RUB</CurrencyCode> </Total> <PaidValue> <Amount>0</Amount> <CurrencyCode>RUB</CurrencyCode> </PaidValue> </Payment> <Client> <LastName>Сидоров</LastName> <Name>Владимир</Name> <MiddleName>Константинович</MiddleName> <Number>1806326598</Number> <Birth>1987-05-20</Birth> <Email>mail@host.com</Email> <Phone>+79871234567</Phone> </Client> <Passengers> <Passenger> <name>Владимир</name> <middlename>Константинович</middlename> <phone> <country /> <city /> <number>+79271031610</number> <expansion /> </phone> <email>mlsdsar@gmail.com</email> <nationality>RU</nationality> <passenger_type>ADT</passenger_type> <lastname>Сидоров</lastname> <doc_type>C</doc_type> <passport_number>1806326598</passport_number> <passenger_id>1</passenger_id> <gender>M</gender> <date_of_birth>20.04.1984</date_of_birth> <TotalPrice>28752.9</TotalPrice> <FarePrice>2613.9</FarePrice> <Charge>26139</Charge> <RefundMoney>8649.3</RefundMoney> <ChargeForRefund>100</ChargeForRefund> <TicketNumber>74944708487545</TicketNumber> <SeatNumber>033</SeatNumber> <HasSeat>true</HasSeat> </Passenger> <Passenger> <nationality>RU</nationality> <middlename>Константинович</middlename> <passenger_type>ADT</passenger_type> <lastname>Сидоров</lastname> <name>Иван</name> <doc_type>C</doc_type> <passport_number>1806326554</passport_number> <passenger_id>2</passenger_id> <gender>M</gender> <date_of_birth>05.04.1984</date_of_birth> <TotalPrice>28752.9</TotalPrice> <FarePrice>2613.9</FarePrice> <Charge>26139</Charge> <TicketNumber /> <SeatNumber>034</SeatNumber> <HasSeat>true</HasSeat> </Passenger> </Passengers> <Info> <trainNumber>098ХА</trainNumber> <trainName /> <departureStation>МОСКВА КАЗ</departureStation> <arrivalStation>КАЗАНЬ ПАС</arrivalStation> <trainCategory>1</trainCategory> <beginStation>Москва</beginStation> <endStation>Казань</endStation> <startDate>2014-04-26 00:15:00</startDate> <endDate>2014-04-26 13:33:00</endDate> <timeInRoad>47880</timeInRoad> <carNumber>8</carNumber> <carType>4</carType> <choosenSeats> <type> <lower>1</lower> </type> <type> <upper>1</upper> </type> <type> <lower_side>0</lower_side> </type> <type> <upper_side>0</upper_side> </type> <type> <undefined>0</undefined> </type> </choosenSeats> <choosenRange> <start>0</start> <end>0</end> </choosenRange> <serviceClass>В стоимость входит - постельное белье. Наличие установки кондиционирования воздуха не гарантировано.</serviceClass> </Info></PNR></syntaxhighlight> '''Элемент PNR'''Элемент '''PNR''' — Passenger Name Record — запись, состоящая из группы отдельных элементов (полей), содержащих информацию об одном или более пассажирах, путешествующих вместе, и деталях путешествия.{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Common| Общая информация по заказу.| Элементы id, Type, Service, Locator, BeginDateTime, EndDateTime, TicketingDateTime, TotalPrice, UserId, EEUserId, UserLogin, GroupId, UserStatus, DateCreate.|-| Payment| Информация о стоимости, штрафах, статусе заказа.| Элементы Status, PenaltyDate, Timelimit, Charge, Book, Penalty, Total, PaidValue.|-| Client| Информация о заказчике.| Элементы Name, MiddleName, Number, Birth, Email, Phone.|-| Passengers| Записи о пассажирах.| Элементы Passenger.|-| Info| Типовая информация по заказу в контексте услуги.| Элементы trainNumber, trainName, departureStation, arrivalStation, trainCategory, beginStation, endStation, startDate, endDate, timeInRoad, carNumber, carType, choosenSeats, choosenRange, serviceClass.|} '''Элемент Common'''{| style=col1"width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| id| Номер заказа в Немо.| Число. Пример: 268281.|-| Type| Тип услуги.| Строка: Пример: FLIGHTS.<br/>Допустимые значения: <ul><li>FLIGHTS — авиа,да</litd><li>HOTELS — отели,</li><li>TRAINS — ЖД.</li></ul>|-| Service| Поставщик услуги.| Строка. Пример: UFS.|-| Locator| Идентификатор в системе поставщика.| Число. Пример: 65525140.|-| BeginDateTime| Дата и время отправления первого сегмента.| Дата и время. Пример: 2014.03.06-00:15.|-| EndDateTime| Дата и время прибытия последнего сегмента.| Дата и время. Пример: 2014.03.06-13:33.|-| TicketingDateTime| Дата и время выписки билета.| Дата и время. Пример: 2014.10.17-17:23|-| VoidDateTime| Дата и время возврата билета.| Дата и время. Пример: 2014.10.17-17:23|-| TotalPrice| Общая стоимость заказа.| Элементы Amount — номинал стоимости, CurrencyCode — валюта стоимости.|-| UserId| Идентификатор пользователя в системе Немо, оформившего заказ.| Число. Пример: 123.|-| UserLogin| Логин пользователя в системе Немо, оформившего заказ.| Строка. Пример: userLogin.|-| GroupId| Идентификатор группы пользователя в системе Немо, оформившего заказ.| Число. Пример: 122.|-| UserStatus| Тип пользователя в системе Немо.| Строка. Пример: Менеджер.|-| DateCreate| Дата и время резервирования в системе поставщика.| Дата и время. Пример: 2014.03.05-15:08|} '''Элемент TotalPrice'''{| style="width: 800px" td class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Amount| Номинал.| Число. Пример: 1884.|-| CurrencyCode| Валюта.| Строка (Код ISO 4217 alfa-3). Пример: RUB.|} '''Элемент Payment'''{| style="width: 800pxcol2" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Title| Название платежного шлюза<sup>*</sup>.| Строка. Пример: Testpay.|-| Method| Тип формы оплаты<sup>*</sup>.| Строка. Пример: Testpay.|-| BillingId| Идентификатор транзакции Немо.| Строка. Пример: 117603370.|-| Date| Дата и время оплаты платежной транзакции Немо.| Строка. Пример: 2014-04-24 15:10:12.|-| CreateDate| Дата и время создания платежной транзакции Немо.| Строка. Пример: 2014-06-06 15:10:00.|-| Status| Статус заказа в системе Немо.| Строка. Пример: booked.<br/>Допустимые значения: <ul><li>pending — в ожидании,сложный</litd><li>booked — зарезервирован,</li><li>ticket — выписан,</li><li>cancelled — отменен.</li></ul>|-| PenaltyDate| Дата и время наступления штрафных санкций.| Дата и время. Пример: 2014-03-05 15:23:40.|-| Timelimit| Таймлимит на оплату и подтверждение заказа.| Дата и время. Пример: 2014-03-05 15:23:40.|-| Charge| Сбор агентства.| См. элемент Common.TotalPrice.|-| Book| Тариф.| См. элемент Common.TotalPrice.|-| Penalty| Штраф. <br/><span style="background-color:#fff0f5;">'''<span style="color:#ff0000;">Внимание!</span>''' На данный момент параметр неактуален и при выгрузке всегда принимает нулевое значение.</span>| См. элемент Common.TotalPrice.|-| TotalAgencyChargeForRefund| Общий сбор агентства за возврат.| См. элемент Common.TotalPrice.|-| Total| Общая стоимость.| См. элемент Common.TotalPrice.|-| PaidValue| Оплачено.| См. элемент Common.TotalPrice.|} <sup>*</sup> — список возможный платежных шлюзов:<br/>Acquiro, Chronopay, Copayco, CourierNew, Deposit, EasyPay, GatelineNew, ITransfer, Invoice, Offices, PayU, Payture, Platron, PrivatBank, Qiwi, Rapida, Receipt, Sberbank, Sirena, Sirena2, UnitellerNew, WebMoney. '''Элемент Client'''{| style="width: 800px" td class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Name| Фамилия и имя заказчика.| Строка. Пример: Иванов Иван.|-| MiddleName| Отчество заказчика.| Строка. Пример: Иванович.|-| Number| Серия и номер документа.| Строка. Пример: 1806123456.|-| Birth| Дата рождения заказчика.| Дата. Пример: 1984-06-30.|-| Email| Адрес электронной почты заказчика.| Строка. Пример: client@host.com.|-| Phone| Номер телефона заказчика.| Строка. Пример: +74951234567|} '''Элемент Passenger'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| lastname| Фамилия пассажира.| Строка. Пример: Сидоров.|-| name| Имя пассажира.| Строка. Пример: Владимир.|-| middlename| Отчество пассажира.| Строка. Пример: Константинович.|-| doc_type| Тип документа.| Строка. Пример: C.<br/>Допустимые значения:<ul><li>C — Российский паспорт</li><li>P — Заграничный паспорт</li><li>A — Иностранный документ</li><li>S — Паспорт моряка</li><li>M — Военный билет</li><li>B — Свидетельство о рождении</li></ul>|-| passport_number| Серия и номер документа.| Строка. Пример: 1806123456. |-| gender| Пол пассажира.| Строка. Пример: M.<br/>Допустимые значения:<ul><li>M — мужской</li><li>F — женский</li></ul>|-| date_of_birth| Дата рождения пассажира.| Дата. Пример: 20.05.1987.|-| nationality| Гражданство пассажира.| Строка (ISO 3166-1 Alpha-2). Пример: RU.|-| passenger_type| Тип пассажира.| Строка. Пример: ADT.<br/>Допустимые значения:<ul><li>ADT — взрослый</li><li>CLD — ребенок до 10 лет<sup>*, **</sup></li><li>INF — ребенок до 5 лет<sup>*, ***</sup></li></ul>|-| passenger_id| Порядковый номер пассажира в заказе.| Число. Пример: 2.|-| TotalPrice| Общая стоимость билета со сборами для данного пассажира.| Число. Пример: 1934.|-| FarePrice| Стоимость по тарифу тарифу.| Число. Пример: 1884.|-| Charge| Сбор агентства.| Число. Пример: 50.|-| RefundMoney| Сумма к возврату. Значение, полученное от поставщика, уменьшенное на сумму сбора агентства за возврат.| Число. Пример: 1643.|-| ChargeForRefund| Cбор агентства за возврат.| Число. Пример: 100.|-| TicketNumber| Номер билета.| Число. Пример: 73944708472624.|-| SeatNumber| Номер места.| число. Пример: 21.|-| TariffType| Наименование тарифа.| Строка. Пример: ПОЛНЫЙ.|-| HasSeat| Занимает ли пассажир отдельное место.| Допустимые значения:<ul><li>true — с местом,</li><li>false — без места.</li></ul>|} <sup>*</sup> — Не включая верхний предел. Возраст ребенка определяется на день совершения поездки. <sup>**</sup> — Нижний и верхний пределы определяются видом сообщения:* от 5 до 10 лет — Внутригосударственное сообщение, а также международное сообщение со странами-участниками СНГ, Литовской, Латвийской, Эстонской Республиками, Республикой Абхазия.* от 6 до 17 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Россия-Финляндия.* от 4 до 12 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Восток-Запад. <sup>***</sup> — Верхний предел определяется видом сообщения:* до 5 лет — Внутригосударственное сообщение, а также международное сообщение со странами-участниками СНГ, Литовской, Латвийской, Эстонской Республиками, Республикой Абхазия.* до 6 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Россия-Финляндия.* до 4 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Восток-Запад. '''Элемент Passenger'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope=col3"col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| trainNumber| Номер поезда.| Строка. Пример: 098ХА.|-| trainName| Имя фирменного поезда. Приходит от поставщика.| Строка. Пример: Россия.|-| departureStation| Станция отправления пассажира.| Строка. Пример: МОСКВА КАЗ.|-| arrivalStation| Станция прибытия пассажира.| Строка. Пример: КАЗАНЬ ПАС.|-| trainCategory| Тип поезда.| Число. Пример: 1.<br/>Допустимые значения:<ul><li>0 — неизвестный тип поезда</li><li>1 — скорый поезд</li><li>2 — фирменный поезд</li><li>3 — скоростной поезд</li><li>4 — фирменный скоростной поезд</li></ul>|-| beginStation| Начальная станция в маршруте поезда.| Строка. Пример: Казань|-| endStation| Конечная станция в маршруте поезда.| Строка. Пример: Москва|-| startDate| Дата и время отправления со станции отправления пассажира.| Дата и время. Пример: 2014-03-06 00:15:00.|-| endDate| Дата и время прибытия со станции отправления пассажира.| Дата и время. Пример: 2014-03-06 13:33:00. |-| timeInRoad| Время в пути от станции отправления до станции прибытия пассажира.| Число (секунд). Пример: 47880.|-| carNumber| Номер вагона.| Число. Пример: 7.|-| carType| Тип вагона.| Число. Пример: 1.<br/>Допустимые значения:<ul><li>1 - общий вагон</li><li>2 - сидячий вагон</li><li>3 - плацкарта</li><li>4 - купе</li><li>5 - люкс</li><li>6 - мягкий</li><li>7 - неизвестный тип</li></ul>|-| choosenSeats| Элемент описывает количество нижних, нижних боковых, верхних, верхних боковых мест.| Элементы type.|-| choosenRange| Выбранный диапазон мест в вагоне.| Элементы start, end.|-| serviceClass| Описание услуг. Приходит от поставщика.| Текст. Пример: В стоимость входит - постельное белье. Наличие установки кондиционирования воздуха не гарантировано.|} '''Элемент type'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| lower| Количество нижних мест.| Число. Пример: 1.|-| upper| Количество верхних мест.| Число. Пример: 0.|-| lower_side| Количество нижних боковых мест.| Число. Пример: 1.|-| upper_side| Количество верхних боковых мест.| Число. Пример: 1.|-| undefined| Количество мест неопределенного типа.| Число. Пример: 0.|} '''Элемент choosenRange'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| start| Начало выбранного диапазон мест в вагоне<sup>*</sup>.| Число. Пример: 4.|-| end| Конец выбранного диапазон мест в вагоне<sup>*</sup>.| Число. Пример: 17.|} <sup>*</sup> — Если диапазон не был зада пользователем на этапе выбора мест, то поля start и end будут содержать нули. </div></div> === Пакетный экспорт заказов по категориям в формате Nemo ===Сервис выгрузки заказов позволяет экспортировать интересующие выборки по заказам в формате XML. Например, можно выбрать все заказы по дате бронирования и получить информацию по ним в XML-виде. ==== Экспорт заказов под авторизованным пользователем (в личном кабинете) ====[[Файл:Экспортировать_в_XML_(ЛК).png|400px|thumb|right|Фильтры пакетного экспорта заказов в личном кабинете]]Порядок пользования сервисом:# Перейти в личный кабинет# В адресной строке браузера к текущему адресу дописать параметр '''''&exportxml'''''. Должен получиться адрес вида: <syntaxhighlight lang="text" enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0; width: 800px;">http://DOMAIN/index.php?go=poffice/table&exportxml</syntaxhighlight># После обновления страницы под блоком фильтров должна появиться кнопка '''«Экспортировать в XML»'''. При ее нажатии на странице появляется предложение сохранить в XML-файл выборку отфильтрованных заказов. Выгружаются только заказы выбранного пользователя/компании с учетом примененных параметров фильтра. Пользователь может произвести выгрузку только своих заказов. === Пакетный экспорт заказов по категориям в формате СОФИ ===Для использования выгрузки заказов в формате СОФИ у агентства должен быть включен модуль "Выгрузка заказов Софи" и заданы настройки:* "Тип выгрузки СОФИ" должен иметь значение "Выгрузка заказов СОФИ" или должна быть включена настройка "Выгрузка одновременно и Nemo, и Софи",* Должен быть указан "Url скрипта Контейнер для выгрузки в формате СОФИ",* Должен быть указан "Код сайта в системе СОФИ". Выгрузка конкретного заказа: http://DOMAIN/booking__sofi_export_bookings&booking_id=123456 где booking_id — номер заказа в системе Немо. Выгрузка заказов забронированных за определенный период: http://DOMAIN/booking__sofi_export_bookings&date_begin=01.01.2014&date_end=01.01.2015 где [date_begin; date_end] — период бронирования заказа (забронированные заказы с датой бронирования совпадающей с началом/окончанием периода, заданного в запросе, попадают в экспорт), формат — дд.мм.гггг. ==Фиксация оплаты внешним запросом==!!! не нашел, есть просто фиксация оплаты, но это вроде немного не то !!! ==API универсального платежного шлюза==!!! сказано спросить у КШ, я спросил, у него нет информации !!! == API Синхронизации пользователей и субагентов ==Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей. Модуль является компонентом, включаемым и отключаемым из административной части.=== Авторизация B2B-пользователей === Все B2B-пользователи, загруженные через модуль взаимодействия со сторонней программой, будут иметь случайным образом сгенерированный криптостойкий [[пароль]]. Механизм авторизации работает следующим образом: 1.Система пытается авторизовать пользователя через собственную службу авторизации.2.В случае неудачи, но присутствия в системе введенного логина, она должна попытаться авторизовать пользователя во внешней службе авторизации («САМО-тур»), при включенном компоненте взаимодействия с «САМО-тур».3.В случае неудачного опознавания пользователя выводится соответствующее сообщение и процедура может быть повторена путем повторного ввода логина и пароля. Регистрация неудачных попыток входа производится только в двух случаях:*Компонент взаимодействия выключен.*Компонент взаимодействия включен и провалены обе попытки авторизации (внутренней и внешней). Для сторонней авторизации пользователей в системе Nemo внешняя программа должна иметь веб-службу, основанную на WSDL определенного формата. Ссылка на веб-службу прописывается в настройках системы Nemo на странице конфигурации интеграции с внешней системой. Для импортированных пользователей в Nemo имеется поле «Идентификатор внешней системы», который отвечает за сопоставление с ID пользователя в сторонней системе. Для менеджеров агентств оно равно номеру партнера (агента) во внешней системе, для пользователей — номеру пользователя в «САМО-туре». Для пользователей, имеющих какое-либо значение в поле «идентификатор во внешней системе», запрещен функционал смены пароля или его восстановления по электронной почте. Пример запросов и ответов на авторизацию:  '''Request'''<pre>тарифов<?xml version="1.0" encoding="utf-8"?><soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"td> <soap12:Body> <getAuthorization xmlns="http://tempuri.org/"> <login>string</login> <pass>string</pass> </getAuthorization> </soap12:Body></soap12:Envelope></pre> '''Response'''<pre><?xml version="1.0" encoding="utf-8"?><soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <getAuthorizationResponse xmlns="http://tempuri.org/"> <getAuthorizationResult> <session_id>string</session_id> <user_id>string</user_id> <login>string</login> <status>string</status> </getAuthorizationResult> </getAuthorizationResponse> </soap12:Body></soap12:Envelope></pre> Сервис реализует функцию «getAuthorization», на вход которой передается конструкция «getAuthorizationRequest»: *login (строка) - введенный пользователем логин*pass (строка) - введенный пользователем пароль Функция должна отдавать системе конструкцию getAuthorizationResponse: *session_id (строка) - пустое значение*user_id (строка) - идентификатор менеджера в системе «САМО-тур»*login (строка) - логин пользователя (для контроля)*status (строка) - может иметь значения:1. adm - администратор2. mgr - менеджер3. usr - пользователь (возвращается всегда это значение) === Импорт и синхронизация учетных записей === Со стороны внешней системы должно быть приложение, отправляющее в формате XML данные по учетным записям B2B-клиентов (агентств и пользователей). Со стороны Nemo имеется скрипт, который принимает XML в формате, приведенном в описании документов, передаваемых в Nemo, с ключом авторизации, определенным в Nemo в административной части модуля. Передаваемые элементы с описанием учетных записей и партнеров имеют аккаунт (Account ID) во внешней системе и атрибут action, который может быть в состоянии update или delete, т.е. обновления/добавления и удаления, соответственно. В административной части модуля в Nemo задается ключ авторизации для защиты от несанкционированного доступа. Значение не должно быть пустым. Скрипт получает данные об обновлении и добавлении (проходят как одно и то же действие) или удалении информации по аккаунту. XML-данные могут содержать несколько элементов. Описание передаваемых в Nemo XML-документов: <pre><?xml version="1.0" encoding="UTF-8" ?><changes key="ключ_авторизации"> <accounts> - список изменений по аккаунтам пользователей <item id=3 partnerId=10 action="update" admin="1"> <login>Логин пользователя</login> </item> <item id=6 partnerId=15 action="update"> ... </item> <item id=9 partnerId=30 action="delete" /> </accounts> <partners> - список изменений по партнерам <item id=140 action="update"> <name>Название агентства</name> <ofname>Официальное Название агентства</ofname> <phone>Телефон</phone> <tax>Форма налогообложения</tax> <group>123</group> <code>ABCD</item> </partners></changes></code></pre> При импорте информации об агентствах будут возвращаться следующие значения:  <table border="1"tr> <tr class="row0" bgcolor="#CCCCCCrow85"> <th td class="col0">Поле во внешней системе Tariff</thtd><th td class="col1"> Путь к элементу xml да</thtd><th td class="col2"> Тип данных сложный</thtd><th td class="col3"> Сопоставляемое поле в Nemo </th><th class="col4"> Примечание Контейнер для одного тарифа</thtd>
</tr>
<tr class="row1row86"> <td class="col0">Идентификатор партнераCode</td><td class="col1">/changes/partners/item[@id]да</td><td class="col2 leftalign">Целое число строка</td><td class="col3 leftalign">Идентификатор во внешней системе для менеджера / администратора </td><td class="col4">Код тарифа</td>
</tr>
<tr class="row2row87"> <td class="col0">Название юридического лицаSegNum</td><td class="col1">/changes/partners/item/ofnameда</td><td class="col2">Строкачисло</td><td class="col3">Полное официальное название юридического лица </td><td class="col4">Необходимо Номер сегмента для которого применяется тариф, если тариф применяется для выписки счетов юридическими лицамивсех сегментов, то возвращается 0.</td>
</tr>
<tr class="row3row88"> <td class="col0">Сокращенное названиеFareCalc</td><td class="col1">/changes/partners/item/nameнет</td><td class="col2">Строкастрока</td><td class="col3 leftalign">Имя агентства </td><td class="col4">Строка расчёта цены</td>
</tr>
<tr class="row4row89"> <td class="col0">Код агентстваLastTicketDateTime</td><td class="col1">/changes/partners/item/codeда</td><td class="col2">Строкастрока</td><td class="col3">Используется при создании логина администратора</td><td class="col4">Дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если бронирование не будет аннулировано или выписано до этого времени, то могут быть применены штрафы.</td>
</tr>
<tr class="row5">
<td class="col0">Номер группы в самотуре</td><td class="col1">/changes/partners/item/group</td><td class="col2">Целое число, либо пусто</td><td class="col3 leftalign">На основании таблицы сопоставлений (см. ниже) определяется, к какой группе агентство принадлежит в Nemo </td><td class="col4"></td>
</tr>
<tr class="row6">
<td class="col0">Форма налогообложения</td><td class="col1">/changes/partners/item/tax</td><td class="col2">Целое число, равное идентификатору во внешней системе</td><td class="col3"></td><td class="col4"></td>
</tr>
</table>
</div>
</div>
Для каждого возвращенного агентства Nemo проверяет наличие его в своей базе. Если [[агентство]] не найдено==API Отелей=='''Агентский API Отелей''' - система, то создается новоекоторая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, для него создается менеджер (админ) с логином ABCD-1234уникальной информации об отеле, где ABCD – буквенный идентификатор партнера во внешней системе, 1234 — id партнера во внешней системеполучение статической информации. Подробнее можно узнать в нашей специальной статье [http://support. Пароль генерируется случайный и криптостойкийnemo.travel/ru/%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D1%81%D0%BA%D0%B8%D0%B9_API_%D0%9E%D1%82%D0%B5%D0%BB%D0%B5%D0%B9 Агентский АПИ отелей]
Если агентство найдено, то в случае необходимости производится обновление всех полей на основании данных из внешней системы. Если изменился буквенный код агентства, то Nemo переименовывает менеджера в соответствии с новым кодом. При импорте информации о пользователях агентств в Nemo будут посылаться следующие поля:
<table border="1">
<tr class="row0" bgcolor="#CCCCCC">
<th class="col0">Поле во внешней системе</th><th class="col1">Путь к элементу xml</th><th class="col2">Тип данных</th><th class="col3">Сопоставляемое поле в Nemo</th><th class="col4">Примечание</th>
</tr> <tr class="row1"> <td class="col0">Идентификатор пользователя</td><td classВыгрузки статистики продаж через API (Метапоиск)="col1">/changes/accounts/item[@id]</td><td class="col2">Целое число</td><td class="col3">Идентификатор внешней системы</td><td class="col4">Храним как дополнительное поле </td> </tr> <tr class="row2"> <td class="col0">Идентификатор партнера</td><td class="col1">/changes/accounts/item[@partnerId]</td><td class="col2">Целое число</td><td class="col3">Идентификатор внешней системы менеджера агентства</td><td class="col4"></td>
</tr> <tr class="row3"> <td class="col0">Логин</td><td class="col1">/changes/accounts/item/login</td><td class="col2">Строка</td><td class="col3">Логин пользователя</td><td class="col4"></td> </tr> <tr class="row4"> <td class="col0">Администратор</td><td class="col1">/changes/accounts/item[@admin]</td><td class="col2">0 - нет'''Метапоисковая система''' (метапоисковая машина, 1 - да</td><td class="col3 leftalign">Эксперт по бронированию </td><td class="col4"></td>метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем.
В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) </tru>за определенный период бронирования заказов</tableu>в виде файла данных в формате XML.
Для каждого возвращенного пользователя Nemo проверяет наличие его в своей базе. Если пользователь не найденМожно получить список заказов с их статусом (забронирован, то создается новый. Пароль генерируется случайный и криптостойкийвыписан, аннулирован), сделанных через метапоисковую систему.
Если Подробнее можно узнать в статье посвященной взаимодействию с метопоисковиками [[пользовательВзаимодействие с метапоисковиками]] найден, то в случае необходимости производится обновление всех полей на основании данных из внешней системы. При запросе на удаление пользователя, в Nemo указанный логин удаляться не будет в целях сохранения целостности старых данных, а просто помечается как удаленный, и логин переименовывается и становится вида [логин_пользователя]_X_[числовой идентификатор_пользователя в Само].
<pre><item id==Выгрузка информации о заказах =='''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[идентификаторВыгрузка]] action="delete" /></pre>
=== Таблица сопоставлений групп =API Синхронизации пользователей и субагентов ==Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей.Модуль является компонентом, включаемым и отключаемым из административной части.
В административной части Nemo надо создать отдельную страницуО механизме авторизации B2B-пользователей, на которой синхронизации учетных записей можно сопоставить имеющиеся прочитать в статье [[Пользователь#Группы в Nemo|группы в NemoСинхронизация пользователей]] номерам групп в САМО-тур (поле group в XML). Выводится список существующих групп для текущего (корневого) агентства.
==API Кросс­авторизации==
'''Авторизация пользователей из внешних систем''' — Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п)
Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу:
</div></div>
==Передача параметров в форму поиска (FastSearch)==
==Передача параметров в форму поиска==
{{Contract}}
В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.
=== Применение ===Эта технология может использоватся к примеру для формирования ссылок с баннеров, при клике на которые пользователь попадает на форму, на которой уже могут быть заполнены пункты назначения, даты, количество пассажиров и прочие параметры. Также, при указании всех необходимых параметров, пользователя можно перебрасывать сразу на процесс поиска авиабилетов с указанными критериями. Для использования заполнения формы из URL следует включить опцию: '''Администрирование''' → '''Настройки системы''' → '''''Включить FastSearch (передачу параметров поиска)''''' После этого можно использовать ссылки на форму поиска вида <pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=BER&departure_date=21.10.2009&adults=1&children=0&input_vendors=SU,PS&param_by_get=on</pre> === Переменные Примеры FastSearch ===Имена полей - такие же как имена инпутов на поисковой форме. Следите за тем, чтобы значения соответствовали установленным в настройках ограничениям. Переменные, которые предполагают в качестве значения "true" можно просто не включать в запрос, чтобы их логика не отработала. ==== Форма поиска ====Чтобы перенаправить пользователя на страницу с заполненными параметрами поиска, необходимо указать get-параметр '''&param_by_get=on''', иначе сработают стандартные предустановки полей формы поиска. ==== Процесс поиска ====Если вы указываете все необходимые для поиска параметры, то для того чтобы отправить пользователя сразу на результаты поиска, нужно указать get-параметр '''&fast_search=on'''. ==== Маршрут «В одну сторону» и «Туда и обратно» ===={| style="width: 800px;" class="wikitable"|-! scope="col" width="300" | Элемент! scope="col" width="250" | Переменная! scope="col" width="250" | Допустимые значения|-| Тип маршрута| trip_type| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | OW| В одну сторону|-| RT| Туда запросов и обратно|-| CR| Сложный маршрут|} |-| Пункт вылета| out_iata| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | MOW| Код аэропорта ИАТА|} |-| Пункт прилета| in_iata| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | LED| Код аэропорта ИАТА|} |-| Дата вылета| departure_date| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 25.10.2013| Дата в формате ДД.ММ.ГГГГ|} |-| Дата обратного вылета| back_departure_date| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 27.10.2013| Дата в формате ДД.ММ.ГГГГ|} |-| Время вылета| prefered_departure_type| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | not_important| Любое время|-| morning| Утром|-| afternoon| Днем|-| evening| Вечером|-| night| Ночью|} |-| Время обратного вылета| prefered_back_departure_type| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | not_important| Любое время|-| morning| Утром|-| afternoon| Днем|-| evening| Вечером|-| night| Ночью|} |-| Поиск только среди прямых рейсов ("Без пересадок")| direct| true|} ===== Дополнительные параметры ====={| style="width: 800px" class="wikitable"|-! scope="col" width="300" | Элемент! scope="col" width="250" | Переменная! scope="col" width="250" | Допустимые значения|-| Нижнее ограничение по цене по умолчанию| money_from| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 0| Целое число большее либо равное 0|} |-| Верхнее ограничение по цене по умолчанию| money_to| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 10000| Целое число большее 0|} |-| Поиск в окружных датах| district_date| true|-| Диапазон соседних дат +(-) [дней]| date_range| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 1| Целое число большее [1..3]|} |-| Поиск по соседним аэропортам| district_airport| true|-| Класс обслуживания| class| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| econom| Перелет эконом-классом|-| business| Перелет бизнес-классом|-| first| Перелет первым-классом|} |-| Фильтр по авиакомпании | input_vendors| style="padding: 0;" |  {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | SU,PS| Коды авиакомпании ИАТА через запятую без пробелов|} |-| Сортировка| sort| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | price| По стоимости|-| out_date| По расписанию|-| company| По авиакомпании|-| fltduration| По длительности перелёта|} |} ==== Сложный маршрут ====<span style="font-size: large; color: rgb(255, 0, 0);">!&nbsp;</span><span style="background-color: rgb(255, 240, 245);">&nbsp;Данные используемые переменные применимы только для сложного маршрута ('''trip_type=CR''').</span> '''[X]''' - номера отдельных перелетов. Нумерация начинается с 0, что означает первый перелет.  Максимальное количество сегментов для сложного маршрута определяется одноименной настройкой подробно описаны в разделе '''Авиабилеты ⇨ Поиск ⇨ Ограничения поиска'''.  {| style="width: 800px;" class="wikitable"|-! scope="col" width="300" | Элемент! scope="col" width="250" | Переменная! scope="col" width="250" colspan="2" | Допустимые значения|-| Пункты вылета| cr_iataстатье [0]<br/>cr_iata[1]<br/>...<br/>cr_iata[8]| width="80" | MOW| Код аэропорта ИАТА|FastSearch -| Пункты прилета| cr_back_iata[0]<br/>cr_back_iata[1]<br/>...<br/>cr_back_iata[8]| width="80" | LED| Код аэропорта ИАТА|-| Дата вылета| cr_date[0]<br/>cr_date[1]<br/>...<br/>cr_date[8]| width="80" | 25.10.2013 | Дата передача параметров в формате ДД.ММ.ГГГГ |-| Время вылета| cr_pref_departure[0]<br/>cr_pref_departure[1]<br/>...<br/>cr_pref_departure[8]| colspan="2" style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | not_important| Любое время|-| morning| Утром|-| afternoon| Днем|-| evening| Вечером|-| night| Ночью|} |-| Класс обслуживания| cr_class[0]<br/>cr_class[1]<br/>...<br/>cr_class[8]| colspan="2" style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| econom| Перелет эконом-классом|-| business| Перелет бизнес-классом|-| first| Перелет первым классом|} |-| Окружные аэропорты (±XX км) | cr_district_airport[0форму]<br/>cr_district_airport[1]<br/>...<br/>cr_district_airport[8]| colspan="2" | true|} ==== Пассажиры ===={| style="width: 800px" class="wikitable"|-! scope="col" width="300" | Элемент! scope="col" width="250" | Переменная! scope="col" width="250" | Допустимые значения|-| Взрослых от 12 лет| adults| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 1| Целое число большее либо равное 0|} |-| Детей от 2 до 12 лет| children| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 1| Целое число большее либо равное 0|} |-| Младенцев до 2 лет| infants| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 1| Целое число большее либо равное 0|} |-| Младенцев с местом до 2 лет| infants_seat| style="padding: 0;" |
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 1| Целое число большее либо равное 0|} |-| Молодых от 12 до 24 лет <br/>| youths| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 1| Целое число большее либо равное 0<br/><span style="font-size: large; color: rgb(255, 0, 0);">!&nbsp;</span><span style="background-color: rgb(255, 240, 245);">&nbsp;Данный параметр доступен только в новой базовой теме.</span>|} |-| Пожилых от 65 лет| seniors| style="padding: 0;" | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"|-| width="80" | 1| Целое число большее либо равное 0<br/><span style="font-size: large; color: rgb(255, 0, 0);">!&nbsp;</span><span style="background-color: rgb(255, 240, 245);">&nbsp;Данный параметр доступен только в новой базовой теме.</span>|} |} ==== Примеры FastSearch запросов ==== <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"><u>'''В одну сторону (простой)'''</u><div class="mw-collapsible-content">'''Рейс в одну сторону из Москвы в Париж, дата вылета: 25.10.2013, без пересадок, 1 взрослый'''* '''''форма поиска'''''<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013&direct=true&adults=2&param_by_get=on</pre>* '''''процесс поиска'''''<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013&direct=true&adults=2&param_by_get=on&fast_search=on</pre></div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"><u>'''В одну сторону (с фильтрами по авиакомпаниям)'''</u><div class="mw-collapsible-content">'''Рейс в одну сторону из Москвы в Париж, дата вылета 25.10.2013, Пассажиры: пожилых - 2, Авиакомпании: Аэрофлот - Российские авиалинии, Международные Авиалинии Украины'''* '''''форма поиска'''''<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013&seniors=2&input_vendors=SU,PS&param_by_get=on</pre>* '''''процесс поиска'''''<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013&seniors=2&input_vendors=SU,PS&param_by_get=on&fast_search=on</pre></div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"><u>'''Туда-обратно'''</u><div class="mw-collapsible-content">'''Рейсы туда-обратно Москва ↔ Париж, дата вылета: 25.10.2013, обратно: 27.10.2013, класс перелета: Эконом, Пассажиры: взрослых - 2 младенцев - 1'''* '''''форма поиска'''''<pre>http://SITEMANE/?trip_type=RT&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013&back_departure_date=27.10.2013&class=econom&adults=2&infants=1&param_by_get=on</pre>* '''''процесс поиска'''''<pre>http://SITEMANE/?trip_type=RT&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013&back_departure_date=27.10.2013&class=econom&adults=2&infants=1&param_by_get=on&fast_search=on</pre></div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"><u>'''Сложный маршрут'''</u><div class="mw-collapsible-content">'''из Москвы в Париж, дата вылета 25.10.2013,'''<br/>'''из Парижа в Санкт-Петербург, дата вылета 26.10.2013,'''<br/>'''из Санкт-Петербурга в Москву, дата вылета 29.10.2013,'''<br/>'''1 взрослый'''* '''''форма поиска'''''<pre>http://SITEMANE/?trip_type=CR&cr_iata[0]=MOW&cr_back_iata[0]=PAR&cr_date[0]=25.10.2013&cr_iata[1]=PAR&cr_back_iata[1]=LED&cr_date[1]=26.10.2013&cr_iata[2]=LED&cr_back_iata[2]=MOW&cr_date[2]=29.10.2013&adults=1&param_by_get=on</pre>* '''''процесс поиска'''''<pre>http://SITEMANE/?trip_type=CR&cr_iata[0]=MOW&cr_back_iata[0]=PAR&cr_date[0]=25.10.2013&cr_iata[1]=PAR&cr_back_iata[1]=LED&cr_date[1]=26.10.2013&cr_iata[2]=LED&cr_back_iata[2]=MOW&cr_date[2]=29.10.2013&adults=1&param_by_get=on&fast_search=on</pre></div></div> === Взаимодействие FastSearch так же работает и Метрики ===Для тогодля отелей, чтобы переход был зарегистрирован системой как переход с определенного источника, необходимо передать подробности в запросе дополнительный параметр utm_source (Metrics Session ID). Например:<pre>http://SITEMANE/?(some_parameters=vals&)utm_source=source_alias</pre>где source_alias - алиас источника переходов. статье [[Модуль метрики | Дополнительная информация по использованию модуля МетрикиFast Search для отелей]]. ==== Пример FastSearch запроса с параметром для модуля Метрики ====<div class="toccolours mw-collapsible mw-collapsed" style="width:800px"><u>'''FastSearch (с учетом источника перехода для модуля Метрики)'''</u><div class="mw-collapsible-content">'''Рейс в одну сторону из Москвы в Париж, дата вылета: 25.10.2013, без пересадок, 1 взрослый (с учетом источника перехода для модуля Метрики).'''* '''''форма поиска'''''<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013&direct=true&adults=2&param_by_get=on&utm_source=source_alias</pre>* '''''процесс поиска'''''<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013&direct=true&adults=2&param_by_get=on&fast_search=on&utm_source=source_alias</pre></div></div>
<!-- Т.к. это внутренний формат обмена данными между Немо и одним клиентом, то данную инфу скроем в комментарии
==Проверка в сторонней системе возможности тикетинга==
При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, то в ответе будет
<pre><m:Opportunity>Да</m:Opportunity></pre>
Пример запроса "GetDebtCounterparty"
</pre>
</div></div>
 
-->
1382
правки

Навигация

'