Изменения

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

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

93 739 байт убрано, 14:43, 28 ноября 2018
м
API Авиабилетов
==API Поиска авиабилетов===== Подключение =Авиабилетов==
Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ.
 
=== API Поиска авиабилетов ===
Это сервис внутри Nemo, который позволяет получить результаты поиска.
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''.
После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.Подробнее можно узнать в специальной статье [[Веб-служба поиска авиабилетов]]
WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights ==API Бронирования авиабилетов = Общий формат запроса / ответа поиска === <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Запрос =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> <soapenv:Header/> <soapenv:Body> <ver:search> <RequestBin> <Request> <SearchFlights LinkOnly="?"> <!--LinkOnly — Позволяет управлять выдачей результатов. true — вернуть только ссылку на результаты поиска, без перелётов (занимает меньше времени), false — полная выдача, ссылки и перелёты.--> <ODPairs Type="?" Direct="?" AroundDates="?"> <!--Type — тип перелёта, возможные значения: OW — туда, RT — туда-обратно, CR — сложный маршрут. Для перелета туда-обратно или сложного маршрута необходимо добавить еще один или несколько тэгов ODPair, примеры далее--> <!--Direct — искать только прямые перелёты, возможные значения: true/false--> <!--AroundDates — поиск по окружным датам, количество дней +/- от даты заезда/возвращения, значения: 0, 1, 3. Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT)--> <!--Zero or more repetitions:--> <ODPair> <DepDate>?</DepDate> <!--DepDate — дата вылета, в формате ГГГГ-MM-ДД--> <DepAirp CodeType="IATA">?</DepAirp> <!--DepAirp — аэропорт вылета, IATA код--> <ArrAirp CodeType="IATA">?</ArrAirp> <!--ArrAirp — аэропорт прилёта, IATA код--> </ODPair> </ODPairs> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="?" Count="?"Сервис позволяет забронировать/> <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, INF — младенцы, INS — младенцы войдировать авиабилет с местом--> <!--Count — количество пассажиров--> </Travellers> <Restrictions> <ClassPref>?</ClassPref> <!--необязательный--> <!--ClassPref — предпочитаемый класс поискаиспользованием API, возможные значения: economyописание подключения, businessзапроса, first. Если не заполнять, то будет произведен поиск эконом класса--> <OnlyAvail>?</OnlyAvail> <!--необязательный--> <!--OnlyAvail — искать только доступные, возможные значения: true/false--> <AirVPrefs> <!--Zero or more repetitions:--> <AirVPref Code="?" Include="?" Type="IATA"/> <!--необязательный--> <!--Code — код авиакомпании, SU, FV и т.п.--> <!--Include — включить или исключить авиакомпанию из результатов: true — включить, false — исключить--> </AirVPrefs> <IncludePrivateFare>?</IncludePrivateFare> <!--необязательный--> <!--IncludePrivateFare — искать цены для агентства, если true — то включаем приватные, false — публичные--> <CurrencyCode>?</CurrencyCode> <!--необязательный--> <!--CurrencyCode — код валюты, например: RUB, EUR--> </Restrictions> </SearchFlights> </Request> <Source> <ClientId>?</ClientId> <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".--> <APIKey>?</APIKey> <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить ответов находится в разделе "Администрирование" ? "этой статье [[Веб-служба. Авторизация".--> <Language>?</Language> <!--Language — язык, например: RU--> <Currency>?</Currency> <!-- Currency — валюта, например: RUB, EUR--> <ShowNames>?</ShowNames> <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. --> </Source> </RequestBin> </ver:search> </soapenv:Body></soapenv:Envelope></syntaxhighlight></div></div>бронирования]]
<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;"><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:searchResponse> <ResponseBin> <Response> <SearchFlights> <Flights SearchId="?" ResultURL="?"> <!--SearchId — номер процесса поиска в Nemo--> <!--ResultURL — ссылка на страницу просмотра результатов на сайте агентства--> <Flight FlightId="?"> <!--FlightId — Id перелёта в системе Nemo--> <WebService>?</WebService> <!--WebService — поставщик перелёта--> <ValCompany>?</ValCompany> <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA--> <URL>?</URL> <!--URL — ссылка на бронирование конкретного перелета--> <Segments> <Segment SegNum="?" SegGroupNum="?"> <!--SegNum — номер сегмента в перелёте--> <!--SegGroupNum – номер плеча перелёта--> <DepAirp CodeType="IATA" Name="?">?</DepAirp> <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево. Name - название аэропорта отправления--> <DepTerminal>?</DepTerminal> <!--DepTerminal — терминал пункта отправления, если пустое Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение, то в аэропорту всего 1 терминал--> <ArrAirp CodeType="IATA" Name="?">?</ArrAirp> <!--ArrAirp — аэропорт прибытия. Name - название аэропорта прибытия--> <ArrTerminal>?</ArrTerminal> <!--ArrTerminal — терминал пункта прибытия, если пустое значение, то в аэропорту всего 1 терминал--> <OpAirline>?</OpAirline> <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот--> <OpAirlineName>?</OpAirlineName> <!--OpAirlineName — название комиссии от авиакомпании перевозчика, например: Аэрофлот - Российские авиалинии --> <MarkAirline>?</MarkAirline> <!--MarkAirline — авиакомпания, продающая перелёт--> <MarkAirlineName>?</MarkAirlineName> <!--MarkAirlineName — название авиакомпании, продающей перелёт--> <FlightNumber>?</FlightNumber> <!--FlightNumber — номер рейса--> <AircraftName>?</AircraftName> <!--AircraftName — название воздушного судна. Например: Airbus 320--> <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> <Flight>...</Flight> .................... <Flight>...</Flight> </Flights> <Errors> <Error Code="?"> <!--Code — код ошибки в системе Nemo--> <ServiceErrorMessage>?</ServiceErrorMessage> <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика--> <Message>?</Message> <!--Message — сообщение об ошибке от системы Nemo--> </Error> </Errors> </SearchFlights> </Response> </ResponseBin> </ns1:searchResponse> </SOAP-ENV:Body></SOAP[[Веб-ENV:Envelope></syntaxhighlight></div></div>служба выписки]]
В ссылках на просмотр страницы результата поиска и на бронирование конкретного перелета, домен агентства/субагентства определяется следующим образом:* Если текущий домен агентства/субагентства есть в настройках ('''Администрирование''' ⇨ '''Настройки агентства''' ⇨ '''Доменное имя сайта для загрузки настроек'''), то этот домен используется в ссылках.* Если текущего домена нет в настройках, то используется первый домен из настроек.* Если в настройках не прописано ни одного домена, то используется текущий домен.=== API Оплаты ===
На поиск действуют ограничения заданные в настройках агентстваСервис внутри Nemo, в частности ограничения по пассажирам и ограничение ближайшей разрешенной даты поиска билетов.* Если дата поиска меньше ближайшей разрешенной даты который предназначен для поиска билетоввыполнения различных операций, то выводится сообщение об ошибке Invalid search param: Неверная дата вылета: слишком близкая* Если количество взрослых пассажиров превышает допустимое ограничение - Invalid search param: Слишком много взрослых* Если количество детей в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много детей* Если количество младенцев в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов* Если количество младенцев с местом в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантовотносящихся к оплате заказов. [[Агентские АПИ оплаты]]
=== Примеры использования API Дополнительных запросов авиабилетов ===
==== Односторонний перелет ====К дополнительных запросам относятся проверка на доступность, запрос на обновление заказа, чтение тарифных правил. [[Дополнительные запросы АПИ авиабилетов]]
Пример одностороннего перелета: Москва — Мадрид, 1 взрослый, 1 ребенок, эконом класс, предпочитаемая авиакомпания — Аэрофлот. === Используемые параметры ===
<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%3DSearchFlights"> <soapenv:Header/> <soapenv:Body> <ver:search> <RequestBin> <Request> <SearchFlights LinkOnly="false"> <ODPairs Type="OW" Direct="false" AroundDates="0"> <!--Zero or more repetitions:--> <ODPair> <DepDate>2014-03-20</DepDate> <DepAirp CodeType="IATA">MOW</DepAirp> <ArrAirp CodeType="IATA">MAD</ArrAirp> </ODPair> </ODPairs> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="ADT" Count="1"/> <Traveller Typetr bgcolor="CNN" Count="1#CCCCCC"/> </Travellersth> <Restrictions> <ClassPref>economyИмя элемента </ClassPrefth> <OnlyAvailth>false</OnlyAvail> <AirVPrefs> <!--Zero or more repetitions:--> <AirVPref Code="SU" Include="true" Type="IATA"/> </AirVPrefs> <IncludePrivateFare>false</IncludePrivateFare> <CurrencyCode>RUB</CurrencyCode> Обязательный </Restrictionsth> </SearchFlightsth> Тип </Request> <Sourceth> <ClientIdth>---</ClientId> <APIKey>---</APIKey> <Language>RU</Language> <Currency>RUB</Currency> <ShowNames>true</ShowNames> </Source> </RequestBin> </ver:search> Описание </soapenv:Body></soapenv:Envelopeth> </syntaxhighlighttr> </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://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:searchResponse> <ResponseBin> <Response> <SearchFlights> <Flights SearchId="13949" ResultURL="http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D13949"> <Flight FlightId="168090001"> <WebService>SABRE</WebService> <ValCompany/> <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090001</URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirp> <DepTerminal/> <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp> <ArrTerminal/> <OpAirline>SU</OpAirline> <OpAirlineName>Аэрофлот - Российские авиалинии</OpAirlineName> <MarkAirline>SU</MarkAirline> <MarkAirlineName>Аэрофлот - Российские авиалинии</MarkAirlineName> <FlightNumber>2500</FlightNumber> <AircraftName>Airbus 320</AircraftName> <AircraftType>320</AircraftType> <DepDateTime>2014-03-20T08:05:00</DepDateTime> <ArrDateTime>2014-03-20T10:15:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>310</FlightTime> <TimeZone Departure="4" Arrival="1"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="false"> <PassengerFare Type="ADT" Quantity="1"> <BaseFare Currency="EUR" Amount="165"/> <EquiveFare Currency="RUB" Amount="8250"/> <TotalFare Currency="RUB" Amount="10535"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> </Taxes> <Tariffs/> <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime> </PassengerFare> <PassengerFare Type="CNN" Quantity="1"> <BaseFare Currency="EUR" Amount="124"/> <EquiveFare Currency="RUB" Amount="6200"/> <TotalFare Currency="RUB" Amount="8485"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> </Taxestr> <Tariffs/tr> <FareCalctd>MOW SU MAD169.08NUC169.08END ROE0.731857Agency </FareCalc> <LastTicketDateTimetd>2014-03-09T23:59:59</LastTicketDateTimetd> да </PassengerFaretd> </PricingInfotd> сложный <Commission/td> <Charges Currency="RUB"td>0</Charges> <TotalPrice Currency="RUB">19020</TotalPrice> </Flight> <Flight FlightId="168090002"> <WebService>SABRE</WebService> <ValCompany/> <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090002</URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA">SVO</DepAirp> <DepTerminal/> <ArrAirp CodeType="IATA">MAD</ArrAirp> <ArrTerminal/> <OpAirline>SU</OpAirline> <MarkAirline>SU</MarkAirline> <FlightNumber>2604</FlightNumber> <AircraftType>320</AircraftType> <DepDateTime>2014-03-20T20:30:00</DepDateTime> <ArrDateTime>2014-03-20T22:40:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>310</FlightTime> <TimeZone Departure="4" Arrival="1"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="false"> <PassengerFare Type="ADT" Quantity="1"> <BaseFare Currency="EUR" Amount="165"/> <EquiveFare Currency="RUB" Amount="8250"/> <TotalFare Currency="RUB" Amount="10535"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> </Taxes> <Tariffs/> <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime> </PassengerFare> <PassengerFare Type="CNN" Quantity="1"> <BaseFare Currency="EUR" Amount="124"/> <EquiveFare Currency="RUB" Amount="6200"/> <TotalFare Currency="RUB" Amount="8485"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> </Taxes> <Tariffs/> <FareCalc>MOW SU MAD169.08NUC169.08END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="RUB">0</Charges> <TotalPrice Currency="RUB">19020</TotalPrice> </Flight> <Flight FlightId="168090003"> <WebService>SABRE</WebService> <ValCompany/> <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090003</URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA">SVO</DepAirp> <DepTerminal/> <ArrAirp CodeType="IATA">BCN</ArrAirp> <ArrTerminal/> <OpAirline>SU</OpAirline> <MarkAirline>SU</MarkAirline> <FlightNumber>2638</FlightNumber> <AircraftType>321</AircraftType> <DepDateTime>2014-03-20T09:10:00</DepDateTime> <ArrDateTime>2014-03-20T10:40:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>270</FlightTime> <TimeZone Departure="4" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="2" SegGroupNum="0"> <DepAirp CodeType="IATA">BCN</DepAirp> <DepTerminal/> <ArrAirp CodeType="IATA">MAD</ArrAirp> <ArrTerminal/> <OpAirline>UX</OpAirline> <MarkAirline>SU</MarkAirline> <FlightNumber>3403</FlightNumber> <AircraftType>738</AircraftType> <DepDateTime>2014-03-20T12:05:00</DepDateTime> <ArrDateTime>2014-03-20T13:25:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>80</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="false"> <PassengerFare Type="ADT" Quantity="1"> <BaseFare Currency="EUR" Amount="165"/> <EquiveFare Currency="RUB" Amount="8250"/> <TotalFare Currency="RUB" Amount="13681"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> <Tax CurCode="RUB" TaxCode="JD" Amount="675"/> <Tax CurCode="RUB" TaxCode="QV" Amount="186"/> </Taxes> <Tariffs/> <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime> </PassengerFare> <PassengerFare Type="CNN" Quantity="1"> <BaseFare Currency="EUR" Amount="124"/> <EquiveFare Currency="RUB" Amount="6200"/> <TotalFare Currency="RUB" Amount="11631"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> <Tax CurCode="RUB" TaxCode="JD" Amount="675"/> <Tax CurCode="RUB" TaxCode="QV" Amount="186"/> </Taxes> <Tariffs/> <FareCalc>MOW SU X/BCN SU MAD169.08NUC169.08END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="RUB">0</Charges> <TotalPrice Currency="RUB">25312</TotalPrice> </Flight> ......... <Flight>...</Flight> </Flights> <Errors xsi:nil="true"/> </SearchFlights> </Response> </ResponseBin> </ns1:searchResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></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>Тип номера, возможные значения: M -обратно: Москва — Парижмобильный, 2 взрослыхH - домашний, бизнес класс. '''Выдача с именами авиакомпанийB - рабочий, воздушных судов, аэропортов.'''A - агентство</td> </tr> <tr> <td>PhoneNumber </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%3DSearchFlights"> <soapenv:Header/> <soapenv:Body> <ver:search> <RequestBin> <Request> <SearchFlights LinkOnly="false"> <ODPairs Type="RT" Direct="false" AroundDates="0"> <!--Zero or more repetitions:--> <ODPair> <DepDate>2014-12-20</DepDate> <DepAirp CodeType="IATA">MOW</DepAirp> <ArrAirp CodeType="IATA">PAR</ArrAirp> </ODPair> <ODPair> <DepDate>2014-12-21</DepDate> <DepAirp CodeType="IATA">PAR </DepAirptr> <ArrAirp CodeType="IATA">MOW </ArrAirptr> </ODPairtd> CountryAccessCode </ODPairs> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="ADT" Count="2"/> </Travellers> <Restrictionstd> <ClassPreftd>businessнет </ClassPreftd> <OnlyAvailtd>falseстрока </OnlyAvailtd> <AirVPrefs/td> <IncludePrivateFare>falseКод страны</IncludePrivateFaretd> <CurrencyCode>RUB </CurrencyCodetr> </Restrictionstr> </SearchFlightstd> AreaCityCode </Request> <Sourcetd> <ClientIdtd>---нет </ClientIdtd> <APIKeytd>---строка</APIKeytd> <Languagetd>RU<Код региона/Language> <Currency>RUB</Currency> <ShowNames>true</ShowNames> </Source> </RequestBin> </ver:search> </soapenv:Body></soapenv:Envelope></syntaxhighlight></div>города</divtd>
<div /tr> <tr> <td>Address</td><td>да </td><td>сложный </td><td class="toccolours mw-collapsible mw-collapsedcol3" style>Адрес агентства</td> </tr> <tr> <td>City</td><td>да </td><td class="width:1000pxcol2">строка </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://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:searchResponse> <ResponseBin> <Response> <SearchFlights> <Flights SearchId="190484987" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190484987"tr> <Flight FlightId="372384680001"tr> <WebService>SABRE </WebServicetd> StreetAddress <ValCompany/td> <URLtd>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190484987%26flight%3D372384680001%26utm_source%3Dalias1нет </URL> <Segmentstd> <Segment SegNum="1" SegGroupNum="0"td> <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVOсложный </DepAirptd> <DepTerminal xsi:nil="true"/td> <ArrAirp CodeType="IATA" Name="БелградАдрес агентства в городе (улица, Никола Тесла">BEG</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>JU</OpAirline> <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName> <MarkAirline>JU</MarkAirline> <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName> <FlightNumber>657</FlightNumber> <AircraftName>Airbus 319</AircraftName> <AircraftType>319</AircraftType> <DepDateTime>2014-12-20T05:05:00</DepDateTime> <ArrDateTime>2014-12-20T06:05:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="business"> <BookingCode>W</BookingCode> </BookingCode> </BookingCodes> <FlightTime>180</FlightTime> <TimeZone Departure="3" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="2" SegGroupNum="0"> <DepAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDG</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>JU</OpAirline> <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName> <MarkAirline>JU</MarkAirline> <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName> <FlightNumber>314</FlightNumber> <AircraftName>Airbus 320</AircraftName> <AircraftType>320</AircraftType> <DepDateTime>2014-12-20T17:10:00</DepDateTime> <ArrDateTime>2014-12-20T19:50:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="business"> <BookingCode>W</BookingCode> </BookingCode> </BookingCodes> <FlightTime>160</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="3" SegGroupNum="1"> <DepAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDG</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>JU</OpAirline> <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName> <MarkAirline>JU</MarkAirline> <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName> <FlightNumber>311</FlightNumber> <AircraftName>Airbus 320</AircraftName> <AircraftType>320</AircraftType> <DepDateTime>2014-12-21T10:10:00</DepDateTime> <ArrDateTime>2014-12-21T12:30:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="business"> <BookingCode>W</BookingCode> </BookingCode> </BookingCodes> <FlightTime>140</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="4" SegGroupNum="1"> <DepAirp CodeType="IATA" Name="Белграддом, Никола Тесла">BEG</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Шереметьевокорпус, Москва">SVO</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>JU</OpAirline> <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName> <MarkAirline>JU</MarkAirline> <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName> <FlightNumber>656</FlightNumber> <AircraftName>Airbus 319</AircraftName> <AircraftType>319</AircraftType> <DepDateTime>2014-12-21T23:20:00</DepDateTime> <ArrDateTime>2014-12-22T04:10:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="business"> <BookingCode>W</BookingCode> </BookingCode> </BookingCodes> <FlightTime>170</FlightTime> <TimeZone Departure="1" Arrival="3"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="true"> <PassengerFare Type="ADT" Quantity="2"> <BaseFare Currency="EUR" Amount="620"/> <EquiveFare Currency="RUB" Amount="34720"/> <TotalFare Currency="RUB" Amount="44430"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/> <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/> <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/> <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/> <Tax CurCode="RUB" TaxCode="RI" Amount="428"/> <Tax CurCode="RUB" TaxCode="RI" Amount="428"/> <Tax CurCode="RUB" TaxCode="UH" Amount="304"/> <Tax CurCode="RUB" TaxCode="LG" Amount="185"/> <Tax CurCode="RUB" TaxCode="LG" Amount="185"/> <Tax CurCode="RUB" TaxCode="RS" Amount="224"/> <Tax CurCode="RUB" TaxCode="RS" Amount="224"/> <Tax CurCode="RUB" TaxCode="RF" Amount="55"/> <Tax CurCode="RUB" TaxCode="RF" Amount="55"/> <Tax CurCode="RUB" TaxCode="FR1" Amount="434"/> <Tax CurCode="RUB" TaxCode="FR4" Amount="714"/> <Tax CurCode="RUB" TaxCode="QX3" Amount="1546"/> <Tax CurCode="RUB" TaxCode="IZ4" Amount="224"/> </Taxes> <Tariffs> <Tariff Code="WRTRU" SegNum="4"/> </Tariffs> <FareCalc>MOW JU X/BEG JU PAR401офис и т.57JU X/BEG JU MOW401д.57NUC803.14END ROE0.771963)</FareCalctd> <LastTicketDateTime>2014-12-20T04:05:00 </LastTicketDateTimetr> </PassengerFaretr> </PricingInfotd> PostalCode <Commission/td> <Charges Currency="RUB"td>0нет </Chargestd> <TotalPrice Currency="RUB"td>88860строка </TotalPricetd> </Flighttd> Почтовый код, индекс......... <Flight>...</Flight> </Flights> <Errors xsi:nil="true"/> </SearchFlights> </Response> </ResponseBin> </ns1:searchResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></divtd>
==== Сложный маршрут ==== </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 - взрослые, 1 взрослыйCNN - дети, 1 младенецUNN - дети без сопровождения взрослых, эконом класс. '''Выдача INF - младенцы, INS - младенцы с именами авиакомпаний, воздушных судов, аэропортов.'''местом</td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Запрос ===== <div tr class="mw-collapsible-contentrow25"> <syntaxhighlight lang="xml" line enclose="div" styletd class="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">IsContact <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> <soapenv:Header/td> <soapenv:Body> <ver:search> <RequestBin> <Request> <SearchFlights LinkOnlytd class="falsecol1"> <ODPairs Type="CR" Direct="false" AroundDates="0"> <!--Zero or more repetitions:--> <ODPair> <DepDate>2014-12-20нет</DepDatetd> <DepAirp CodeTypetd class="IATAcol2">PRGбулевский </DepAirptd> <ArrAirp CodeTypetd class="IATAcol3">MOWИндикатор показывающий является ли данное лицо контактным, возможные значение: true - пассажир является контактным лицом, false - не является. Контактное лицо может быть только одно, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом. Если не указано, то по умолчанию false.</ArrAirptd> </ODPairtr> <ODPair> <DepDate>2014-12-23</DepDate> <DepAirp CodeTypetr class="IATArow26">MOW</DepAirp> <ArrAirp CodeTypetd class="IATAcol0">MIL</ArrAirp> LinkedTo </ODPairtd> <ODPair> <DepDate>2014-12-27</DepDate> <DepAirp CodeTypetd class="IATAcol1">MILнет </DepAirptd> <ArrAirp CodeTypetd class="IATAcol2">MADцелое число </ArrAirptd> </ODPair> </ODPairs> <Travellers> <!--Zero or more repetitions:--> <Traveller Typetd class="ADTcol3" Count="1"/> <Traveller Type="INF" Count="1"Номер взрослого, к которому привязан младенец/> ребёнок (привязка ребёнка ко взрослому является опциональной)</Travellers> <Restrictions> <ClassPref>economy</ClassPref> <OnlyAvail>false</OnlyAvail> <AirVPrefs/> <IncludePrivateFare>false</IncludePrivateFare> <CurrencyCode>RUB</CurrencyCode> </Restrictions> </SearchFlights> </Request> <Source> <ClientId>134</ClientId> <APIKey>93632C10DA299034C03D742FB160C2D6</APIKey> <Language>RU</Language> <Currency>RUB</Currency> <ShowNames>true</ShowNames> </Source> </RequestBin> </ver:search> </soapenv:Body></soapenv:Envelope></syntaxhighlight></div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"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://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"tr> <SOAP-ENV:Body> <ns1:searchResponse> <ResponseBin> <Response> <SearchFlights> <Flights SearchId="190491108" ResultURLtr class="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190491108row27"> <Flight FlightIdtd class="372394480001col0"> <WebService>SABRE</WebService> Num <ValCompany/td> <URL>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190491108%26flight%3D372394480001%26utm_source%3Dalias1</URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA" Nametd class="Прагаcol1">PRGда </DepAirptd> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Nametd class="Цюрихcol2">ZRHчисло </ArrAirptd> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1485</FlightNumber> <AircraftName>Avro RJ100</AircraftName> <AircraftType>AR1</AircraftType> <DepDateTime>2014-12-20T10:05:00</DepDateTime> <ArrDateTime>2014-12-20T11:30:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>K</BookingCode> </BookingCode> </BookingCodes> <FlightTime>85</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="2" SegGroupNum="0"> <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Домодедово, Москва">DME</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1326</FlightNumber> <AircraftName>Airbus 321</AircraftName> <AircraftType>321</AircraftType> <DepDateTime>2014-12-20T12:20:00</DepDateTime> <ArrDateTime>2014-12-20T17:50:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>K</BookingCode> </BookingCode> </BookingCodes> <FlightTime>210</FlightTime> <TimeZone Departure="1" Arrival="3"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="3" SegGroupNum="1"> <DepAirp CodeType="IATA" Name="Домодедово, Москва">DME</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1325</FlightNumber> <AircraftName>Airbus 321</AircraftName> <AircraftType>321</AircraftType> <DepDateTime>2014-12-23T09:05:00</DepDateTime> <ArrDateTime>2014-12-23T10:50:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>V</BookingCode> </BookingCode> </BookingCodes> <FlightTime>225</FlightTime> <TimeZone Departure="3" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="4" SegGroupNum="1"> <DepAirp CodeType="IATA" Nametd class="Цюрихcol3">ZRH</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1628</FlightNumber> <AircraftName>Avro RJ100</AircraftName> <AircraftType>AR1</AircraftType> <DepDateTime>2014-12-23T12:25:00</DepDateTime> <ArrDateTime>2014-12-23T13:20:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>K</BookingCode> </BookingCode> </BookingCodes> <FlightTime>55</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="5" SegGroupNum="2"> <DepAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1639</FlightNumber> <AircraftName>Avro RJ100</AircraftName> <AircraftType>AR1</AircraftType> <DepDateTime>2014-12-27T07:05:00</DepDateTime> <ArrDateTime>2014-12-27T08:05:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>K</BookingCode> </BookingCode> </BookingCodes> <FlightTime>60</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="6" SegGroupNum="2"> <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>2026</FlightNumber> <AircraftName/> <AircraftType>32A</AircraftType> <DepDateTime>2014-12-27T12:30:00</DepDateTime> <ArrDateTime>2014-12-27T14:50:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>V</BookingCode> </BookingCode> </BookingCodes> <FlightTime>140</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="false"> <PassengerFare Type="ADT" Quantity="1"> <BaseFare Currency="CZK" Amount="8440"/> <EquiveFare Currency="RUB" Amount="17305"/> <TotalFare Currency="RUB" Amount="31456"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/> <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/> <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/> <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/> <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/> <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/> <Tax CurCode="RUB" TaxCode="RI" Amount="378"/> <Tax CurCode="RUB" TaxCode="RI" Amount="378"/> <Tax CurCode="RUB" TaxCode="UH" Amount="284"/> <Tax CurCode="RUB" TaxCode="CZ" Amount="1159"/> <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/> <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/> <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/> <Tax CurCode="RUB" TaxCode="EX" Amount="56"/> <Tax CurCode="RUB" TaxCode="IT1" Amount="707"/> <Tax CurCode="RUB" TaxCode="VT" Amount="142"/> <Tax CurCode="RUB" TaxCode="HB" Amount="364"/> <Tax CurCode="RUB" TaxCode="MJ" Amount="67"/> </Taxes> <Tariffs> <Tariff Code="KNC29F3S" SegNum="2"/> <Tariff Code="VNC28G2S" SegNum="6"/> <Tariff Code="KNN2SSR" SegNum="5"/> </Tariffs> <FareCalc>PRG LX X/ZRH LX MOW28.06LX ZRH*LX MIL31.13LX ZRH31.13*LX MAD175.52 1S129.53NUC395.37END ROE21Номер пассажира.3469</FareCalctd> <LastTicketDateTime>2014-12-20T11:05:00 </LastTicketDateTimetr> </PassengerFare> <PassengerFare Type="INF" Quantitytr class="1row28"> <BaseFare Currency="CZK" Amounttd class="3333col0"/> PreferedPlace <EquiveFare Currency="RUB" Amount="6835"/td> <TotalFare Currency="RUB" Amounttd class="6835col1"/> нет <Taxes/td> <Tariffs> <Tariff Code="KNC29F3S/IN90" SegNumtd class="2col2"/> сложный <Tariff Code="VNC28G2S/IN90" SegNum="6"/td> <Tariff Code="KNN2SSR/IN90" SegNumtd class="5col3"/> </Tariffs> <FareCalc>PRG LX X/ZRH LX MOW2Информация о предпочитаемом месте.80LX ZRH*LX MIL3.11LX ZRH3.11*LX MAD17.55 1S129.53NUC156Если указаны номер ряда и номер места, то параметры Smoking и Location игнорируются и могут быть не указаны.10END ROE21.3469</FareCalc> <LastTicketDateTime>2014-12-20T11:05:00</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="RUB">765.82</Charges> <TotalPrice Currency="RUB">39056.82</TotalPrice> </Flight> ......... <Flight>...</Flight> </Flights> <Errors xsi:nil="true"/> </SearchFlights> </Response> </ResponseBin> </ns1:searchResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></divtd>
</tr>
<tr class="row29">
<td class="col0">SmokingAllowed </td><td class="col1">нет </td><td class="col2">булевский </td><td class="col3">true - место для курящих, false - место для некурящих. По умолчанию false.</td>
</tr>
<tr class="row30">
<td class="col0">Location </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Расположение места, возможные значения: W - у окна (Window); M - где-то в середине ряда (Middle); NPW - возле прохода (NearPassengerWay); NS - нет предпочтения (NotSpecified).</td>
</tr>
<tr class="row31">
<td class="col0">RowNumber</td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Номер ряда</td>
</tr>
<tr class="row32">
<td class="col0">PlaceNumber </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Номер места</td>
</tr>
<tr class="row33">
<td class="col0">SegNumber </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер сегмента</td>
</tr>
<tr class="row34">
<td class="col0">DocumentInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Паспортные данные</td>
</tr> <tr class="row35"> <td class=API Поиска отелей"col0">DocType </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Тип документа, обязательный.</td> </tr> <tr class="row36">'''Агентский API Отелей''' - система <td class="col0">DocNum </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер документа</td> </tr> <tr class="row37"> <td class="col0">CountryCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Страна выдачи, которая предоставляет возможность поиска двух буквенный код(RU, US и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информациит.д.)</td> </tr> <tr class="row38"> <td class="col0">DocElapsedTime</td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Срок истечения срока действия паспорта в фирмате dd.mm.yyyy (например 31.12.2012)</td>
</tr> <tr class="row39"> <td class="col0">VisaInfo </td><td class= Динамические данные "col1">нет </td><td class="col2">сложный </td><td class="col3">Информация о визе</td> </tr> <tr class="row40"> <td class="col0">Num </td><td class="col1">да </td><td class="col2">строка </td><td class= Поиск ===="col3">Номер визы</td>
Сервис предназначен для получения списка отелей, удовлетворяющих условиям запроса. В условия запроса входят: идентификатор города, где будет вестись поиск; дата заезда и дата выезда; информация о количестве людей и способе их размещения </tr> <tr class="row41"> <td class="col0">IssueDate </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Дата выдачи визы в комнатахформате dd. Так же указываются дополнительные необязательные поля фильтровmm.yyyy</td> </tr> <tr class="row42"> <td class="col0">IssueCountry </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Страна выдачи визы</td>
Для получения списка доступных городов, воспользуйтесь запросом на выгрузку статики </tr> <tr class="row43"> <td class="col0">IssuePlace </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Место выдачи визы</td> </tr> <tr class="row44"> <td class="col0">BirthCountry </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Страна рождения (см. ССЫЛКАIATA код страны). Список допустимых отелей для фильтра также доступен через сервис (см. ССЫЛКА). Рекомендуется выгрузить все данные по отелям, городам и странам в локальную базу, для экономии времени и запросов.</td>
'''WSDL''' </tr> <tr class="row45"> <td class="col0">BirthCity </td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Город рождения (тестовый серверназвание): [http:</td> </tst.nemo-ibe.comtr> <tr class="row46"> <td class="col0">ArrAddress </wsdevtd><td class="col1">нет </wsdl.php?fortd><td class=HotelsSearch http:"col2">сложный <//tsttd><td class="col3">Адрес прибытия, для въезжающих в США (не граждан США) информация является обязательной.nemo-ibeЕсли она не заполняется при оформлении брони, то её всё равно придётся заполнять при посадке на самолёт.com</wsdev/wsdl.php?for=HotelsSearch]td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Запрос ===== <div tr class="mw-collapsible-contentrow47"> <syntaxhighlight lang="xml" line enclose="div" styletd class="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">CountryCode <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vertd><td class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearchcol1"> да <soapenv:Header/td> <soapenv:Body> <ver:search> <RequestBin> <Request> <HotelSearch> <CityIdtd class="col2">22046строка </CityIdtd> <DateBegintd class="col3">2013-10-15IATA код страны</DateBegintd> <DateEnd>2013-10-18 </DateEndtr> <Rooms> <!--Zero or more repetitions:--> <Room> <Persons> <!--Zero or more repetitions:--> <Person Idtr class="1row48" Type="ADT" Age="30"/> <Person Id="2" Type="CLD" Agetd class="10col0"/> State </Personstd> <!--Optional:--> <DoubleBedtd class="col1">falseда </DoubleBedtd> </Room> <Room> <Persons> <!--Zero or more repetitions:--> <Person Idtd class="1col2" Type="ADT" Age="30"/> строка </Personstd> </Roomtd class="col3"> </Rooms> <!--Optional:--> <Filters> <Hotels> <!--Zero or more repetitions:--> <!--<Id>123</Id>--> </Hotels> </Filters> </HotelSearch> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:search> </soapenv:Body></soapenv:Envelope>Штат или область въезда</syntaxhighlighttd>
Элемент '''HotelSearch''' </tr>{| style <tr class="width: 800pxrow49" > <td class="col0">PostalCode </td><td class="col1">да </td><td class="wikitablecol2"|-! scope>строка </td><td class="colcol3" width>Почтовый код</td> </tr> <tr class="200row50" | Элемент>! scope <td class="colcol0" width>City </td><td class="300col1" | Описание! scope>да </td><td class="colcol2" width>строка </td><td class="300col3" | Допустимые значения|-| CityId| Обязательный. Идентификатор города в системе Nemo.| Целое число|-| DateBegin| Обязательный. Дата заселения.| Формат гггг-мм-дд.|-| DateEnd| Обязательный. Дата выезда.| Формат гггг-мм-дд.|-| Rooms| Обязательный. Содержит массив запрашиваемых номеров>Город</апартаментов.| Элемент Room. Максимум 4 элемента Room.|-| Filters| Необязательный. Содержит различные фильтры поиска отелей.| Элемент Hotels.|}td>
Элемент '''Room''' </tr>{| style <tr class="row51"> <td class="width: 800pxcol0">StreetAddress </td><td class="col1" >да </td><td class="wikitablecol2"|-! scope>строка </td><td class="colcol3" width>Адрес: улица, номер дома, квартиры и тп</td> </tr> <tr class="200row52" | Элемент>! scope <td class="colcol0" width>DocStringFormats </td><td class="300col1" | Описание! scope>нет </td><td class="colcol2" width>сложный </td><td class="300col3" | Допустимые значения|-| Persons| Обязательный. Содержит данные о клиентах в номерах.| Элемент Person|-| DoubleBed| Необязательный. Может быть использован только если сумма количества детей и взрослых равна 2-м>Список форматов строк паспортных данных, а такжеЕсли которые будут отправлены в запросе сумма детей и взрослых не равна 2, то данный элемент будет проигнорировандополнение к стандартным.| true</falsetrue означает, что номер должен иметь двуспальную кровать|}td>
Элемент '''Person''' </tr>{| style <tr class="row53"> <td class="col0">DocStringFormat </td><td class="width: 800pxcol1" >да </td><td class="wikitablecol2"|-! scope>строка </td><td class="colcol3" width>Формат данных, возможные значения: DOCS - строка формата DOCS, FOID - строка формата FOID. Установка данных в формате DOCS как правило необходима для последующей выписки в BSP среде. Установка FOID - всреде ТКП.</td> </tr> <tr class="200row54" | Элемент>! scope <td class="colcol0" width>PersonalInfo </td><td class="300col1" | Описание! scope>да </td><td class="colcol2" width>сложный </td><td class="300col3" | Допустимые значения>Персональные данные пассажира</td>|- </tr>| Атрибут Id <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">| Атрибут Type| Тип клиента.Если не указан <td class="col0">Nationality </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Национальность/гражданство, двух буквенный код страны (RU, UA, будет определен по возрасту AgeUS и т.| Константы:ADT - взрослыйCLD - ребенок 2-12 летINF - младенец до 2х лет|-| Атрибут Age| Возрастд. Обязателен для детей (CLD).| Целое число. Количество лет.|}</td>
Элемент '''Filters''' </tr>{| style <tr class="width: 800pxrow57" > <td class="wikitablecol0"|-! scope>Gender </td><td class="colcol1" width>да </td><td class="200col2" | Элемент>строка </td><td class="col3">Пол пассажира, обязательный, возможные значения: M - мужской(Male); F - женский(Female).</td>! scope </tr> <tr class="colrow58" width> <td class="300col0" | Описание! scope>FirstName </td><td class="col1">да </td><td class="colcol2" width>строка </td><td class="300col3" | Допустимые значения|-| Hotels| Необязательный. Набор идентификаторов отелей в системе Nemo.Результаты поиска будут ограничены только этими отелями. Данная опция может существенно ускорить поиск - рекомендуется всегда устанавливать при поиске конкретных отелей.| Элемент Id – целое число|}>Имя пассажира</td>
Элемент '''Source''' </tr>{| style <tr class="width: 800pxrow59" > <td class="wikitablecol0"|-! scope>LastName </td><td class="colcol1" width>да </td><td class="200col2" | Элемент>строка </td><td class="col3">Фамилия пассажира</td> </tr>! scope <tr class="colrow60" width> <td class="300col0" | Описание! scope>BMiddleName </td><td class="col1">да </td><td class="colcol2" width>строка </td><td class="300col3" | Допустимые значения>Отчество пассажира</td>|- </tr>| ClientID <tr class="row61">| Обязательный. ID клиента в системе Nemo.Можно посмотреть <td class="col0">Meal </добавить в td><td class="Администрированиеcol1" >нет</td><td class="Вебcol2">строка </td><td class="col3">Код типа питания, возможные значения: NONE - отсутствует (по умолчанию); AVML - Азиатская вегетарианская кухня; BLML - Блюда щадящей диеты; CHML - Детское питание; CHPC - Детский холодный завтрак; СНСС - Детский горячий завтрак; CHHC - Детский ланч, ветчина и сыр; PBJS - Детский ланч, ореховое масло; CHMC - Детский обед макароны с сыром; DBML - Диабетическое питание; FPML - Фрукты; GFML - Питание без клейковины; HFML - Питание богатое клетчаткой; HNML - Индусская кухня; BBML - Питание для младенцев; KSML - Кошерная кухня; SMKB - Кошерный завтрак; SMKL - Кошерный ланч; SMKD - Кошерный обед; LPML - Малобелковое питание; LCML - Низкокалорийное питание; LFML - Низкохолестериновое питание; PRML - Низкопуриновое питание; LSML - Малосоленое питание; MOML - Мюсли; NLML - Безмолочные продукты; ORML - Восточная кухня; RVML - Сырые овощи; SFML -служба. Авторизация"Морепродукты; SPML - Особое питание; VLML - Вегетарианское, молоко и яйца; VGML - Строго вегетарианское питание; VJML - Джайнизское вегетарианское; VOML - Восточное вегетарианское питание.</td>| Целое число. </tr>|- <tr class="row62">| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть <td class="col0">LoyaltyCard </добавить в td><td class="Администрированиеcol1" >нет </td><td class="Веб-служба. Авторизацияcol2".| Латинские буквы и цифры. Всего 32 символа.|}>сложный </divtd><td class="col3">Карточка часто летающего пассажира</divtd>
<div /tr> <tr class="toccolours mw-collapsible mw-collapsedrow63" style> <td class="width:1000pxcol0">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> <div /tr> <tr class="mw-collapsible-contentrow66">Система по заданным параметрам ищет отели и возвращает результаты поиска. Все результаты поиска хранятся в базе Nemo определенный срок и доступны для бронирования по идентификатору CacheId. <td class="col0">EmailID </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Контактный email</td>
Структура ответа - это набор уникальных отелей. У каждого указан Id - это идентификатор из базы Nemo. По нему можно получить дополнительную статичную информацию из путеводителя Nemo. </tr> <tr class="row67"> <td class="col0">Telephone </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактный телефон пассажира, описание аналогично описанию телефона агентства</td> </tr> <tr class="row68"> <td class="col0">CancelBook</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса отмены брони</td> </tr> <tr class="row69"> <td class="col0">BookID</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер брони, которая будет отменяться (для которой будет производится выписка, отмена выписки)</td>
Каждый отель содержит: </tr>* Набор номеров &lt;Rooms&gt;. Типы номеров (одноместный, двухместный и т.д.)&nbsp;: устанавливается автоматически по количеству клиентов из <tr class="row70"> <td class="col0">GetAirRules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса.поиска тарифных правил</td>* Сервисы &lt;Services&gt;. Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться. </tr>* Категория &lt;Categories&gt;. Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий. <tr class="row71"> <td class="col0">AirAvail</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса проверки доступности перелёта</td>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"/tr> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1tr class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearchrow72"> <SOAP-ENV:Body> <ns1:searchResponse> <ResponseBin> <Response> <HotelSearch> <Hotels> <Hotel Idtd class="1872666col0"> <Supplier>GTA</Supplier> <CityId>22046</CityId> <DateBegin>2013-10-15</DateBegin> <DateEnd>2013-10-18</DateEnd> <CacheId>1872666Ticketing</CacheId> <Name>ADLON KEMPINSKI</Name> <Categoriestd> <Category Idtd class="1col1"> да<Rooms> <Room Count="1" Id="1" ServiceId="1"/td> <Room Counttd class="1" Id=col2"2" ServiceId="2"/> сложный</Roomstd> <TotalPrice Currencytd class="RUBcol3">74733.84Контейнер для тела запроса выписки брони</TotalPricetd> </Categorytr> </Categoriestr class="row73"> <Services> <Service Idtd class="1col0" Status="OK"> <Desc>Standard Twin</Desc> <Meal>Full Breakfast</Meal> <Price/> ValCompany</Servicetd> <Service Id="2" Statustd class="OKcol1"> <Desc>Standard Twin</Desc> <Meal>Full Breakfast</Meal> нет<Price/td> </Service> </Services> <Rooms> <Room Idtd class="1" Type="TWINcol2">строка</td> <Room Id="2" Typetd class="SNGLcol3"/> </Rooms> </Hotel> ... </Hotels> </HotelSearch> </Response> </ResponseBin> </ns1:searchResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>Валидирующий перевозчик, на бланке которого выписывается билет</syntaxhighlighttd>
Элемент '''Hotel''' </tr>{| style <tr class="row74"> <td class="width: 800pxcol0" >Comission</td><td class="wikitablecol1"|-! scope>нет</td><td class="col2">сложный</td><td class="colcol3" width>Комиссия</td> </tr> <tr class="200row75" | Элемент>! scope <td class="colcol0" width>Amount</td><td class="300col1" | Описание! scope>нет</td><td class="colcol2" width>число с плавающей точкой</td><td class="300col3" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор отеля как одного из результатов поиска >Значение комиссии в системе Nemo.| Целое число.|-| Supplier| Обязательный. Тип поставщикавалюте, в котором найден отель.| Строка.Возможные значения:GTAHOTELBEDSDOTWSERHSMIKITRAVCOACADEMTOURICO|-| CityId| Обязательный. Идентификатор города в системе Nemo.| Целое число.|-| CacheId| Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.| Целое число.|-| Name| Обязательный. Название отеля.| Строка в произвольном формате.|-| Services| Обязательный. Услуги в отеле.| Элемент Service|-| Rooms| Обязательный. Комнаты в отеле.| Элемент Room|-| Categories| Обязательный. Категорииесли указано, доступные для бронирования то комиссия в отеле.| Элемент Category|}процентах игнорируется</td>
Элемент '''Service''' </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" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор услуги.| Целое число|-| Атрибут Status| Обязательный. Доступность отеля. ОК означает доступен (мгновенное подтверждение).RQ - недоступен (по запросу).| ОК>сложный</RQ|-| Desc| Необязательный. Описание отеля.| Строка в произвольном формате.|-| Meal| Обязательный. Питание td><td class="col3">Контейнер для данного сервиса.| Строка в произвольном формате.|-| Price| Необязательный. Указывает на стоимость номера с данной услугой.| Вещественное число.Атрибут Currency - код валюты.|}тела запроса отмены выписки брони</td>
Элемент '''Room''' </tr>{| style <tr class="row78"> <td class="col0">Search</td><td class="width: 800pxcol1" >да</td><td class="wikitablecol2"|-! scope>сложный</td><td class="colcol3" width>Контейнер для тела запроса поиска</td> </tr> <tr class="200row79" | Элемент>! scope <td class="colcol0" width>ODPairs</td><td class="300col1" | Описание! scope>да</td><td class="colcol2" width>сложный</td><td class="300col3" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор комнаты в отеле.| Целое число.|-| Type| Обязательный. Тип номера.| Строка. Возможные значения:SNGL – одноместныйDBL – двухместный с двухспальной кроватьюTWIN – двухместный с двумя кроватямиTRIP – трёхместныйQUAD – четырёхместный|}>Контейнер для информации о перелёте</td>
Элемент '''Category''' </tr>{| style <tr class="row80"> <td class="col0">Type</td><td class="width: 800pxcol1" >да</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>| Атрибут Id </tr>| Обязательный. Идентификатор категории. <tr class="row82">| Целое <td class="col0">AroundDates</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Включает поиск по окружным датам, количество дней +/- от даты заезда/возвращения.|Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT). Возможные значения: 0, 1, 2, 3</td>| Rooms </tr>| Обязательный. Массив комнат с соответствием услуг. <tr class="row83">| Целое число <td class="col0">ODPair</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о сегменте перелёта.|Может повторяться 1-| Room| Атрибут: Count6 раз. Поиск по расписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается</td>
Обязательный. </tr> <tr class="row84"> <td class="col0">DepDate</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата вылета, Формат ГГГГ-MM-DDTЧЧ:ММ:СС</td> </tr> <tr class="row85">Количество комнат данного типа <td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города отправления или конкретного аэропорта в городе отправления.</td>
Атрибут: Id </tr> <tr class="row86"> <td class="col0">ArrAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города прибытия или конкретного аэропорта в городе прибытия.</td> </tr> <tr class="row87"> <td class="col0">Count</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число пассажиров данного типа. Общее количество пассажиров всех типов должно быть не более 9.</td>
Обязательный </tr> <tr class="row88"> <td class="col0">Restrictions</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер дополнительной информации для поиска. Идентификатор комнаты из атрибута Id в элементе Hotel</td> </tr> <tr class="row89"> <td class="col0">ClassPref</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Предпочитаемый класс перелёта, возможные значения: All - все, Economy -> Roomsэконом, Business - бизнес, First -первый. Если не указан, то по умолчанию All.</td> Room.
Атрибут </tr> <tr class="row90"> <td class="col0">OnlyAvail</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Искать только доступные, возможные значения: ServiceIdtrue - только доступные, false - все. Если не указан, то по умолчанию false.</td> </tr> <tr class="row91"> <td class="col0">AirVPrefs</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Обёртка для списка авиакомпаний, по которым будет или не будет проводиться поиск.</td>
</tr> <tr class="row92"> <td class="col0">AirVPref</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Информация об авиакомпании.</td> </tr> <tr class="row93"> <td class="col0">Include</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий включить или исключить в результатах поиска перелёты данной авиакомпании: true - включить, false - Идентификатор услуги из атрибута Id элемента Serviceисключить.| Целое числоЕсли не указан, то по умолчанию false.</td>
Целое число </tr> <tr class="row94"> <td class="col0">IncludePrivateFare</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Включать приватные цены в результат или нет, возможные значения: true - включать, false - не включать.Если не указан, то по умолчанию false.</td> </tr> <tr class="row95"> <td class="col0">ServiceTypes</td><td class="col1">нет</td><td class="col2">сложный хмл</td><td class="col3">Контейнер массива используемых веб-сервисов при поиске.</td>
Целое число.|- </tr>| TotalPrice <tr class="row96">| Обязательный. Суммарная стоимость бронируемого сочетания “Комнаты <td class="col0">ServiceType</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Тип веб- услуги”сервиса(поставщика).| Вещественное числоПри указании нескольких элементов ServiceType поиск будет проведён для каждого сервиса.Атрибут Currency Возможные значения: Sirena2000 - поиск в Сирене; SirenaSchedule - поиск в Сирене по расписанию; SabreLFS - поиск в Сэйбр LFS; SabreBFM - поиск в Сэйбр BFM; SabreSchedule - поиск Сэйбр по расписанию; Galileo - поиск в Галилео; AmadeusMPTBS - код валютыпоиск в Амадеус.</td> </tr>|}</table>
</div>
</div>
 
====== Ошибки ======
 
==== Расширенная информация по одному отелю ====
Сервис получения дополнительной информации об отеле требует указания идентификатора отеля в системе Nemo и категории.
 
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelExtInfo
<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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelExtInfo">
<soapenv:Header/>
<soapenv:Body>
<ver:extInfo>
<RequestBin>
<Request>
<HotelExtInfo>
<Item>
<CacheId>1867246</CacheId>
<!--Optional:-->
<CategoryId>1</CategoryId>
</Item>
</HotelExtInfo>
</Request>
<Source>
<ClientId></ClientId>
<APIKey></APIKey>
<Language>ru</Language>
<Currency>RUB</Currency>
</Source>
</RequestBin>
</ver:extInfo>
</soapenv:Body>
</soapenv:Envelope>
</syntaxhighlight>
Элемент '''Item'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| CacheId| Обязательный. Идентификатор результата поиска.| Целое число|-| CategoryId| ID выбранной категории.| Целое число|} Элемент '''Source'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить Параметры, используемые в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</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;"><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelExtInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:extInfoResponse> <ResponseBin> <Response> <HotelExtInfo> <CategoryId>1</CategoryId> <PriceInfo> <PriceBreakDown> <Date> <From>2013-10-15</From> <To>2013-10-18</To> <Price Currency="RUB">12455.64</Price> </Date> <Date> <From>2013-10-15</From> <To>2013-10-18</To> <Price Currency="RUB">12455.64</Price> </Date> </PriceBreakDown> <Netto Currency="EUR">1821</Netto> <Gross xsi:nil="true"/> </PriceInfo> </HotelExtInfo> </Response> </ResponseBin> </ns1:extInfoResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight>
Элемент '''HotelExtInfo''' <tr bgcolor="#CCCCCC">{| style <th class="width: 800pxcol0 leftalign" > Имя элемента </th><th class="wikitablecol1 leftalign"|-! scope> Обязательный </th><th class="colcol2 leftalign" width> Тип </th><th class="200col3 centeralign" | Элемент> Описание </th> </tr>! scope <tr class="colrow1" width> <td class="300col0">BookFlightResult </td><td class=" | Описание! scopecol1">да </td><td class="colcol2" width>сложный </td><td class="300col3" | Допустимые значения|-| CategoryId| Обязательный. Идентификатор категории.| Целое число|-| PriceInfo| Обязательный. Элемент содержащий информацию о цене| см. Элемент PriceInfo|}>Контейнер для тела ответа бронирования</td>
Элемент '''PriceInfo''' </tr>{| style <tr class="width: 800pxrow2" > <td class="wikitablecol0"|-! scope>ID </td><td class="colcol1" width>да </td><td class="200col2" | Элемент! scope>число</td><td class="colcol3" width>Номер бронирования в системе Nemo.</td> </tr> <tr class="300row3" | Описание>! scope <td class="colcol0 leftalign" width>Status </td><td class="300col1" | Допустимые значения|-| style>да </td><td class="width:208px; height:35pxcol2" | PriceBreakDown| style>строка </td><td class="width:208px; height:35pxcol3" | Необязательный. Информация о ценах>Статус брони, расписанная по каждому дню.| style="width:208px; heightвозможные значения:35px" | Список элементов Date|booked -| Netto| Обязательный. Стоимость от поставщика.| Вещественное число.Атрибут Currency забронировано, canceled - код валюты.|бронь отменена, ticket -| Gross| Обязательный. Общая стоимость.| Вещественное число.Атрибут Currency выписана; UNDEFINED - код валютыстатус не определён.|}</td>
Элемент '''Date''' </tr>{| style <tr class="width: 800pxrow4" > <td class="wikitablecol0"|-! scope>Code </td><td class="col1">да </td><td class="colcol2" width>строка </td><td class="200col3" | Элемент>Номер бронирования в системе поставщика (в sabre, sirena и т.д.)/код тарифного правила</td>! scope </tr> <tr class="colrow5" width> <td class="300col0" | Описание! scope>QueryPlace </td><td class="colcol1" width>нет </td><td class="300col2" | Допустимые значения|-| From| Обязательный. Дата начала действия тарифа| Формат гггг-мм-дд|-| To| Обязательный. Дата окончания действия тарифа| Формат гггг-мм-дд|-| Price| Цена за одну ночь.| Вещественное число.Атрибут Currency - код валюты.|}>сложный </divtd><td class="col3">Очередь, в которую помещено бронирование</divtd>
</tr> <tr class="row6"> <td class="col0 leftalign">Number </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер очереди</td> </tr> <tr class= Ошибки =="row7"> <td class="col0">Flight </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Перелёт, по которому была сделана бронь (Результаты проверки доступности для перелёта)</td>
</tr> <tr class="row8"> <td class="col0">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><td class="col3">Маршрут квитанция. Содержит строку в кодировки Encoding (как правило в base64), представляющую маршрут квитанцию в формате Format.</td>
Всегда в явном виде нужно указывать пользователю информацию о штрафах за аннуляцию до бронирования. </tr> <tr class="row10"> <td class="col0">Encoding </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Кодировка</td> </tr> <tr class="row11"> <td class="col0">Format </td><td class="col1">да </td><td class="col2">строка</td><td class="col3">Формат</td>
Штрафы получаются по каждой услуге отдельным запросом. Нужно указать тип услуги, идентификатор результата поиска и выбранную категорию. </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">Билет пассажира. Для отелей из Hotelbeds (Supplier</td> </tr> <tr class="row15"> <td class=HOTELBEDS) штрафы до бронирования получить невозможно."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=Penalty"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%3DPenaltycol1"> да <soapenv:Header/td> <soapenv:Bodytd class="col2"> <ver:penalty> <RequestBin> <Request> <Penalty> <Item> <Type>HOTELSстрока</Typetd> <CacheIdtd class="col3">1867246Номер места(ряд+номер в ряду)</CacheIdtd> <CategoryId>1 </CategoryIdtr> </Itemtr class="row19"> </Penaltytd class="col0"> Characteristic </Requesttd> <Source> <ClientIdtd class="col1">нет</ClientIdtd> <APIKeytd class="col2">строка </APIKeytd> <Languagetd class="col3">ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:penalty> </soapenv:Body></soapenv:Envelope>Характеристика места в соответствии со стандартом EDIFACT. См справочник “Таблица характеристик мест”.</syntaxhighlighttd>
Элемент '''Item''' </tr>{| style <tr class="row20"> <td class="width: 800pxcol0" >SmokingPreference </td><td class="wikitablecol1"|-! scope>нет </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" | Допустимые значения|-| Type| Обязательный. Тип объекта.| HOTELS|-| CacheId| Обязательный. Идентификатор результата поиска в системе Nemo.| Целое >число|-| CategoryId| Обязательный. Идентификатор категории.| Целое число|}</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: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="row25"> <DateFromtd class="col0">2013-09-23 00:00:00FareStored </DateFromtd> <DateTo>2013-10-11 00:00:00</DateTo> <Money Currencytd class="RUBcol1">67260.46нет </Moneytd> </Charge> <Charge> <DateFrom>2013-08-01 17:59:00</DateFrom> <DateTo>2013-09-22 00:00:00</DateTo> <Money Currencytd class="RUBcol2">12455.64</Money> </Charge> </CancelCharges> <ModifyCharges/> </Penalty> </Response> </ResponseBin> </ns1срока:penaltyResponse> <Yes/SOAP-ENV:Body>No </SOAP-ENV:Envelopetd></syntaxhighlight> Элемент '''Penalty'''{| style="width: 800px" td class="wikitablecol3"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ItemDateBegin| Обязательный>Указывает установлена ли / гарантируется ли цена у поставщика. Дата начала услуги (дата заселения Если параметр отсутствует в отель)ответе, то по умолчанию значение “Yes”.| Формат гггг-мм-дд чч:мм:сс|-| CancelCharges| Необязательный. Содержит информацию о штрафах за аннуляцию.| Элемент Charge|-| ModifyCharges| Необязательный. Содержит информацию о штрафах за модификацию.| Элемент Charge|}</td>
Штрафы разбиваются по временным интервалам. На каждом интервале указывается значение штрафа. </tr> <tr class="row26"> <td class="col0">CancelBookResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа отмены брони</td> </tr> <tr class="row27"> <td class="col0">BookID</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер брони, которая отменялась (Номер выписанной брони, выписка которой отменялась)</td>
Элемент '''Charge''' </tr>{| style <tr class="width: 800pxrow28" > <td class="wikitablecol0"|-! scope>Result</td><td class="colcol1" width>да</td><td class="200col2" | Элемент! scope>сложный</td><td class="colcol3" width>Результат отмены (войдирования)</td> </tr> <tr class="300row29" | Описание>! scope <td class="colcol0" width>Success</td><td class="300col1" | Допустимые значения|-| DateFrom| Обязательный. Дата>да</время начала интервала.| Формат гггг-мм-дд чч:мм:сс|-| DateTo| Необязательный. Датаtd><td class="col2">булевский</время окончания интервала.| Формат гггг-мм-дд чч:ммtd><td class="col3">Индикатор, показывающий успешно или нет прошла отмена, возможные значения:сс|true -| Money| Обязательный. Сумма штрафа.| Вещественное число.Атрибут: Currency успешно отменена (войдирование); false - код валюты.|}</div>не отменена</divtd>
</tr> <tr class="row30"> <td class="col0">GetAirRulesResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа поиска тарифных правил</td> </tr> <tr class= Ошибки =="row31"> <td class="col0">FlightId</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер перелёта, для которого найдены тарифные правила (будет проводилась проверка доступности)</td>
</tr> <tr class="row32"> <td class="col0">Rules</td><td class="col1">да</td><td class= Бронирование =="col2">сложный</td><td class="col3">Контейнер для правил</td> </tr> <tr class="row33"> <div td class="toccolours mw-collapsible mw-collapsedcol0" style>Rule</td><td class="width:1000pxcol1">да</td><td class====== Запрос ======"col2">сложный</td><div td class="mw-collapsible-contentcol3">Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в будущем при сохранении совместимости.Правило</td>
Сейчас же необходимо указывать только 1 услугу-отель (элемент Item) в запросе на бронирование. </tr> <tr class="row34"> <td class="col0">Tarrif</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код тарифа, для которого правило применяется</td> </tr> <tr class="row35"> <td class="col0">Name</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Имя правила</td>
Для успешного запроса нужно указать: </tr>#Услугу. В запросе не требуется перечислять все параметры из результатов поиска, достаточно указать уникальный ID результата. <tr class="row36">#Информация о клиентах. Все клиенты перечисляются <td class="col0">RuleText</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Текст правила</td> </tr> <tr class="row37"> <td class="col0">AirAvailResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа помещения брони в отдельной ветке и нумеруются по порядку. Указатели (элементы с номером клиента), также добавляются в описание услуги.#Заказчик. Указатель на одну персону.очередь</td>
'''WSDL''' (тестовый сервер): http </tr> <tr class="row38"> <td class="col0">IsAvail</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий доступность перелёта, возможные значения:true - доступен; false - недоступен</td> </tst.nemo-ibe.comtr> <tr class="row39"> <td class="col0">VoidTicketResult</td><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 Idtr class="2row40"> <Persons> <!--Zero or more repetitions:--> <Person Numbertd class="1col0"/> SearchResult<Person Number="2"/td> </Persons> </Room> <Room Id="1"> <Persons> <!--Zero or more repetitions:--> <Person Numbertd class="3col1"/> </Persons> </Room> </Rooms> нет</HotelBookData> <Customertd> <Person Numbertd class="1col2"/> сложный</Customertd> </Item> </Items> <Persons> <!--Zero or more repetitions:--> <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</Emailtd> <!--Optional:--> <Gender>MR </Gender> <!--Optional:--tr> <Document Typetr class="Prow41"> <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>IVAN</Name> <!--Optional:--> <Middlename>MIKHAILOVICH</Middlename> <!--Optional:--> <DateOfBirth>2008-12-12</DateOfBirth> <!--Optional:--> <Phone>+79871231212Flights</Phonetd> <!--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="row42"> <td class="width: 800pxcol0" >Flight</td><td class="wikitablecol1"|-! scope>нет</td><td class="colcol2" width>сложный</td><td class="200col3" | Элемент>Представляет информацию о перелёте. Отсутствует если перелётов не найдено (используется в поисковом ответе)</td>! scope </tr> <tr class="colrow43" width> <td class="300col0" | Описание! scope>WebService</td><td class="colcol1" width>да</td><td class="300col2" | Допустимые значения|>строка</td><td class="col3">Веб-| Items| Обязательныйсервис (поставщик) от которого был получен перелёт. Массив элементов Item.| Элемент Item|-| Customer| Обязательный. Элемент установки заказчика.| &nbsp;|-| Persons| Обязательный. Массив клиентов.| &nbsp;|}</td>
Данные об услугах записываются в элементы &lt;Item&gt; </tr> <tr class="row44"> <td class="col0">ValCompany</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">IATA код авиакомпании.Валидирующий перевозчик, на бланках которого должен выписываться билет.</td> </tr> <tr class="row45"> <td class="col0">Segments</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для сегментов перелёта</td>
Элемент '''Item''' </tr>{| style <tr class="width: 800pxrow46" > <td class="wikitablecol0"|-! scope>Segment</td><td class="col1">да</td><td class="colcol2" width>сложный</td><td class="200col3" | Элемент>Представляет информацию о сегменте</td> </tr>! scope <tr class="colrow47" width> <td class="300col0" | Описание! scope>SegNum</td><td class="colcol1" width>да</td><td class="300col2" | Допустимые значения|-| HotelBookData| Обязательный. В зависимости от типа объекта бронирования. В данный момент возможно указать только данные для отеля.| &nbsp;|-| Persons| Необязательный. Привязка клиентов к услуге. Если не указаны, будут привязаны все из указанных в главном элементе Booking.| [>число</td><Person Numbertd class=''"1col3"'' >Номер сегмента в перелёте</td>]|}
<u/tr> <tr class="row48"> <td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Бронирование отеля.IATA код аэропорта отправления</utd>Для бронирования отеля необходимы следующие параметры: </tr># ID результата поиска - один отель <tr class="row49"># ID выбранной категории этого отеля# Распределение клиентов по комнатам. <td class="col0">DepTerminal</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Код терминала отправления</td>
Элемент '''HotelBookData''' </tr>{| style <tr class="row50"> <td class="width: 800pxcol0" >ArrAirp</td><td class="wikitablecol1"|-! scope>да</td><td class="col2">строка</td><td class="colcol3" width>IATA код аэропорта прибытия</td> </tr> <tr class="200row51" | Элемент>! scope <td class="colcol0" width>ArrTerminal</td><td class="300col1" | Описание! scope>нет</td><td class="colcol2" width>строка</td><td class="300col3" | Допустимые значения|-| CacheId| Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.| Целое число|-| CategoryId| Обязательный. Идентификатор категории.| Целое число|-| Rooms| Обязательный. Распределение клиентов по комнатам.| Список элементов Room|-| Room| Атрибут IdИд комнаты из результата поиска>Код терминала прибытия</td>
Элемент Persons </tr>| Целое число <tr class="row52">|- <td class="col0">OpAirline</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код авиакомпании, выполняющей рейс</td>| Persons </tr>| Обязательный. <tr class="row53">Список людей| Список элементов Person|-| Person| Обязательный.Атрибут NumberНомер пассажира из Booking - <td class="col0">MarkAirline</td><td class="col1">да</td><td class="col2">строка</td>Persons-<td class="col3">Person-Код авиакомпании, продающей билет</td>Number| Целое число|}
<u/tr> <tr class="row54"> <td class="col0">FlightNumber</td><td class="col1">да</td>Информация о клиентах.<td class="col2">число</utd><td class="col3">Номер рейса</td>Для успешного завершения бронирования нужно указать как минимум одного клиента. Максимальное число клиентов в текущей версии не ограничено. </tr> <tr class="row55"> <td class="col0">AircraftType</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код типа самолёта</td>
Набор обязательных данных может меняться в зависимости от типов услуг в бронировании. Рекомендуемый набор обязательных параметров </tr> <tr class="row56"> <td class="col0">DepDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время отправления, формат ГГГГ-MM-ДДTЧЧ: LastnameММ:СС</td> </tr> <tr class="row57"> <td class="col0">ArrDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время прибытия, Name, DateOfBirth. Остальные обязательные параметры будут устанавливаться индивидуально при подключении к сервису.формат ГГГГ-MM-ДДTЧЧ:ММ:СС</td>
Элемент '''Person''' </tr>{| style <tr class="width: 800pxrow58" > <td class="wikitablecol0"|-! scope>StopNum</td><td class="colcol1" width>да</td><td class="200col2">число</td><td class=" | Элементcol3">Число остановок</td>! scope </tr> <tr class="colrow59" width> <td class="300col0" | Описание! scope>Meal</td><td class="colcol1" width>да</td><td class="300col2" | Допустимые >строка</td><td class="col3">Тип питания, возможные значения|: UNDEFINED -| Атрибут Number| Обязательный. Номер клиента, необходим для правильной привязки к услугам.| Целое число|неизвестно; N -| Type| Обязательный.Тип пассажира.| Строка.Возможные значения:ADTCLDINF|Нет питания; P -| Lastname| Фамилия.| Строка Алкогольные напитки в произвольном формате.|продаже; B - Завтрак; O - Холодная еда; C -| Name| Имя.| Строка в произвольном формате.|Бесплатные алкогольные напитки; K -| Middlename| Отчество.| Строка в произвольном формате.|Континтальный завтрак; D -| DateOfBirth| Дата рождения.| Формат ггггОбед; F -ммЕда в продаже; G -дд.|Еда/напитки в продаже; H -| Phone| Телефон.Рекомендуемый формат:+79871234567| Строка|Горячая еда; L -| Email| Электронный адрес.| Строка|Ланч; M -| Gender| Пол.| MR Еда; R - мужчина,MS Освежающие еда/напитки бесплатно; V - женщина.|Освежающие еда/напитки за отдельную плату; S -| Document| Документ| Элемент Document|}Закуска</td>
Для некоторых услуг </tr> <tr class="row60"> <td class="col0">BookingCodes</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для классов перелёта</td> </tr> <tr class="row61"> <td class="col0">BookingCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код класса перелёта. Если производится поиск по расписанию, то может потребоваться информация о документахвстречаться несколько раз.</td>
Элемент '''Document''' </tr>{| style <tr class="row62"> <td class="col0">FlightTime</td><td class="width: 800pxcol1" >нет</td><td class="wikitablecol2"|-! scope>число</td><td class="colcol3" width>Время перелёта в минутах</td> </tr> <tr class="200row63" | Элемент>! scope <td class="colcol0" width>TimeZone</td><td class="300col1" | Описание! scope>нет</td><td class="colcol2 rightalign" width> сложный</td><td class="300col3" | Допустимые значения|-| Атрибут Type| Обязательный. Тип документа.| P - загранпаспортC - внутренний гражданский паспортB - свидетельство >Информация о рождении|-| Series| Необязательный. Серия документа. Можно указать слитно с номером в Number.| Строка в произвольном формате|-| Number| Обязательный. Номер документа.| Строка в произвольном формате|-| IssueDate| Необязательный. Дата выдачи документа.| Формат гггг-мм-дд|-| ExpiryDate| Необязательный. Дата истечения срока действия документа.| Формат гггг-мм-дд|}временных зона прибытия и отправления</td>
Элемент '''Source''' </tr>{| style <tr class="width: 800pxrow64" > <td class="wikitablecol0"|-! scope>Departure</td><td class="colcol1" width>да</td><td class="200col2" | Элемент! scope>число</td><td class="colcol3" width>Часовой пояс отправления, UTC (смещение относительно Гринвича)</td> </tr> <tr class="300row65" | Описание>! scope <td class="colcol0" width>Arrival</td><td class="300col1" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть>да</добавить в td><td class="Администрированиеcol2" ⇨ "Веб-служба. Авторизация".| Целое >число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть</добавить в td><td class="Администрированиеcol3" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div>Часовой пояс прибытия, UTC (смещение относительно Гринвича)</divtd>
<div /tr> <tr class="toccolours mw-collapsible mw-collapsedrow66" style> <td class="width:1000pxcol0">ETicket</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3 rightalign"> Индикатор электронного билета, возможные значения: true - билет является электронным, false - билет не является электронным.</td> </tr> <tr class="row67"> <td class="col0">Baggage</td><td class= Ответ "col1">нет</td><td class======"col2">сложный</td><div td class="mw-collapsible-contentcol3">После выполнения запроса сразу поступит информация Информация о бронировании. В первую очередь нужно внимательно проверить статусы &lt;Status&gt; всех услуг в бронировании. Если бронировалась услуга со статусом в результатах поиска RQ (по запросу), то статус скорее всего будет не равен «booked». Через некоторое время проверять реальный статус бука отправляя запрос на чтение данных о бронировании.багаже</td>
<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> <Categoriestr> <Category Idtr class="1row68"> <Rooms> <Room Counttd class="1col0" Id="1" ServiceId="1"/> <Room Count="1" Id="2" ServiceId="2"/> Measure</Roomstd> <TotalPrice Currencytd class="RUBcol1">74733.84да</TotalPricetd> </Category> </Categories> <Services> <Service Idtd class="1col2" Status="OK"> <Desc>Standard Twin</Desc> <Meal>Full Breakfastстрока</Mealtd> <Price Currencytd class="RUBcol3">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>2013K -08килограммы, PC -01 19:49:56<сумки/BookingDate> <UpdateDate>2013-08-01 19:49:57клади</UpdateDatetd> <CancelDate xsi:nil="true"/tr> <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:niltr class="truerow69"/> <Document Typetd class="Pcol0"> <Series>1866Value</Seriestd> <Number>913319</Number> <IssueDate>2012-12-12 00:00:00</IssueDate> <ExpiryDate>2014-12-12 00:00:00</ExpiryDate> </Document> </Person> <Person Numbertd class="3col1"> <Lastname>SIDOROVда</Lastname> <Nametd>IVAN</Name> <Middlename>SERGEEVICH</Middlename> <DateOfBirth xsi:niltd class="truecol2"/> <Phone>+79871231212строка</Phone> <Emailtd>m.rudenko@mute-lab.com</Email> <Gender xsi:niltd class="truecol3"/> <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>Количество багажа</syntaxhighlighttd>
Структура ответа очень похожа на запрос </tr> <tr class="row70"> <td class="col0">PricingInfo</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о ценах. Выделяются те же основные элементыОтсутствует в случае, если производится поиск по расписанию.</td> </tr> <tr class="row71"> <td class="col0">Refundable</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор показывающий является ли билет возвратным или нет, возможные значения: true - возвратный (нет штрафов за возврат), false - невозвратный (могут быть штрафы за возврат)</td>
Элемент '''Booking''' </tr>{| style <tr class="width: 800pxrow72" > <td class="wikitablecol0"|-! scope>PassengerFare</td><td class="col1">да</td><td class="colcol2" width>сложный</td><td class="200col3" | Элемент>Информация о ценах для конкретного типа пассажиров.</td>! scope </tr> <tr class="colrow73" width> <td class="300col0">Quantity</td><td class=" | Описание! scopecol1">да</td><td class="colcol2" width>число</td><td class="300col3" | Допустимые значения|-| Items| Обязательный. Содержит элемент(ы) Item.| Элемент Item|-| Persons| Обязательный. Здесь перечислены все клиенты заказа.| Элемент Person|}>Число пассажиров данного типа</td>
В элементах Item раскрывается подробнейшая информация об одной услуге </tr> <tr class="row74"> <td class="col0">BaseFare</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Цена в бронировании.базовой валюте(за одного пассажира)</td> </tr> <tr class="row75"> <td class="col0">EquiveFare</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Цена в эквивалентной валюте(за одного пассажира), при поиске цены не возвращается</td>
Элемент '''Item''' </tr>{| style <tr class="row76"> <td class="width: 800pxcol0" >TotalFare</td><td class="wikitablecol1"|-! scope>нет</td><td class="col2">сложный</td><td class="colcol3" width>Полная стоимость для пассажиров данного типа включая таксы (за одного пассажира), при поиске цены не возвращается</td> </tr> <tr class="200row77" | Элемент>! scope <td class="colcol0" width>Currency</td><td class="300col1" | Описание! scope>да</td><td class="colcol2" width>строка</td><td class="300col3" | Допустимые значения|-| Атрибут Id| Обязательный.Номер заказа в системе Nemo.| Целое число|-| Type| Обязательный.Тип объекта бронирования>Трёх буквенный код валюты.| HOTELS|-| Status| Обязательный. Статус объекта бронирования .| booked - забронированcancelled - аннулированpending confirmation - в процессе подтвержденияpending – произошла попытка бронирования, которое не было завершеноwaiting – ожидается результат запроса на бронирование|-| Prices| Обязательный. Данные о ценах.| см. Элемент Prices|-| Dates| Обязательный. Данные о датах.| см. Элемент Dates|-| Statuses| Обязательный. Различные дополнительные статусы заказанной услуги.| см. Элемент Statuses|-| Persons| Обязательный. Содержит клиентов привязанных к услуге.| элементы Person|-| Hotel| Необязательный. Элемент с данными об отеле.| см. элемент Hotel (результат поиска отеля)|}</td>
Информация о цене услуги вынесена в отдельную ветку: </tr> <tr class="row78"> <td class="col0">Amount</td><td class="col1">да</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение стоимости.</td> </tr> <tr class="row79"> <td class="col0">Taxes</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для такс, при поиске цены не возвращается</td>
Элемент '''Prices''' </tr>{| style <tr class="width: 800pxrow80" > <td class="wikitablecol0"|-! scope>Tax</td><td class="col1">да</td><td class="colcol2" width>сложный</td><td class="200col3" | Элемент>Одна такса</td>! scope </tr> <tr class="colrow81" width> <td class="300col0" | Описание! scope>CurCode</td><td class="colcol1" width>да</td><td class="300col2" | Допустимые значения|-| Price| Обязательный. Базовая цена услуги.| Вещественное число.Атрибут Currency - код валюты.|-| Charges| Необязательный. Сумма дополнительных сборов.| Вещественное число.Атрибут Currency - код валюты.|-| Commission| Необязательный. Сумма комиссий (вычитается из общей стоимости).| Вещественное число.Атрибут Currency - код валюты.|-| Penalty| Необязательный. Сумма штрафов.| Вещественное число.Атрибут Currency - код валюты.|-| TotalPrice| Обязательный. Итоговая стоимость.>строка</td><td class= Price + Charges + Commission| Вещественное число.Атрибут Currency - "col3">Трёх буквенный код валюты.|}для таксы</td>
Информация о датах услуги также вынесена в отдельную ветку: </tr> <tr class="row82"> <td class="col0">TaxCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код таксы</td> </tr> <tr class="row83"> <td class="col0">Amount</td><td class="col1">да</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение таксы</td>
Элемент '''Dates''' </tr>{| style <tr class="row84"> <td class="width: 800pxcol0" >Tariffs</td><td class="wikitablecol1"|-! scope>да</td><td class="col2">сложный</td><td class="colcol3" width>Контейнер для тарифов</td> </tr> <tr class="200row85" | Элемент>! scope <td class="colcol0" width>Tariff</td><td class="300col1" | Описание! scope>да</td><td class="colcol2" width>сложный</td><td class="300col3" | Допустимые значения|-| BookingDate| Обязательный. Дата бронирования.| Формат гггг-мм-дд чч:мм:сс|-| UpdateDate| Необязательный. Дата обновления.| Формат гггг-мм-дд чч:мм:сс|-| CancelDate| Необязательный. Дата аннуляции.| Формат гггг-мм-дд чч:мм:сс|-| PenaltyDate| Необязательный. Дата наступления штрафов.| Формат гггг-мм-дд чч:мм:сс|-| AutoCancelDate| Необязательный. Дата автоаннулирования.| Формат гггг-мм-дд чч:мм:сс|}>Контейнер для одного тарифа</td>
Дополнительные статусы: </tr> <tr class="row86"> <td class="col0">Code</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код тарифа</td> </tr> <tr class="row87"> <td class="col0">SegNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер сегмента для которого применяется тариф, если тариф применяется для всех сегментов, то возвращается 0.</td>
Элемент '''Statuses''' </tr>{| style <tr class="row88"> <td class="width: 800pxcol0">FareCalc</td><td class="col1" >нет</td><td class="wikitablecol2"|-! scope>строка</td><td class="colcol3" width>Строка расчёта цены</td> </tr> <tr class="200row89" | Элемент>! scope <td class="colcol0" width>LastTicketDateTime</td><td class="300col1" | Описание! scope>да</td><td class="colcol2" width>строка</td><td class="300col3" | Допустимые значения|>Дата и время таймлимита по выписке в формате ГГГГ-| PaymentStatus| Необязательный.Статус оплаты.| Целое число1 MM- неоплачено2 - частично оплачено3 - оплачено|-| DocumentStatus| Необязательный.Статус ваучера.| Целое число1 - документ не сформирован2 - документ сформирован|-| DeliveryStatus| Необязательный.Статус доставки.| Целое число1 - не доставлен2 - доставлен|-| InvoiceStatus| НеобязательныйДДTЧЧ:ММ:СС.Статус счета.| Целое число1 - счет выставлен.2 - счет Если бронирование не выставленбудет аннулировано или выписано до этого времени, то могут быть применены штрафы.|}</td>
Информация о клиентах заказа полностью повторяет структуру запроса. </tr></table>
</div>
</div>
==API Отелей==== Ошибки ======'''Агентский API Отелей''' - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации. Подробнее можно узнать в нашей специальной статье [http://support.nemo.travel/ru/%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D1%81%D0%BA%D0%B8%D0%B9_API_%D0%9E%D1%82%D0%B5%D0%BB%D0%B5%D0%B9 Агентский АПИ отелей]
==== Подтверждение бронирования ====
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<div class="mw-collapsible-content">
Подтверждение бронирования заказа.
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=ConfirmBooking
<syntaxhighlight lang="xml" line enclose="div" styleВыгрузки статистики продаж через API (Метапоиск)="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%3DConfirmBooking"> <soapenv:Header/> <soapenv:Body> <ver:confirm> <RequestBin> <Request> <BookingId>179547</BookingId> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:confirm> </soapenv:Body></soapenv:Envelope></syntaxhighlight>
Элемент '''RequestМетапоисковая система'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| BookingID| Обязательный. Идентификатор заказа (метапоисковая машина, метапоисковик) — это поисковая система, которая в системе Nemoотличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем.| Целое число|}
Элемент '''Source'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) </divu>за определенный период бронирования заказов</divu>в виде файла данных в формате XML.
<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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DConfirmBooking"> <SOAP-ENV:Body> <ns1:confirmResponse> <ResponseBin> <Response> <Books> <Book> <Id>179547</Id> <Status>booked</Status> </Book> </Books> </Response> </ResponseBin> </ns1:confirmResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></div>Подробнее можно узнать в статье посвященной взаимодействию с метопоисковиками [[Взаимодействие с метапоисковиками]]
==Выгрузка информации о заказах ==== Ошибки ======'''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]]
==API Синхронизации пользователей и субагентов == Выгрузка актуальных данных по заказуНазначение данного модуля — обеспечение взаимодействия между сторонней программой (амнапример, системой автоматизации туроператора "САМО-тур") ====и Nemo в части синхронизации списка B2B-пользователей.Используется для экспорта бронирований Модуль является компонентом, включаемым и для обновления данных в локальной клиентской базеотключаемым из административной части.
'''WSDL''' (тестовый сервер): http://tst.nemoО механизме авторизации B2B-ibe.com/wsdev/wsdl.php?for=Exportпользователей, синхронизации учетных записей можно прочитать в статье [[Синхронизация пользователей]]
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">====== Запрос ======<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" styleAPI Кросс­авторизации="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'''Авторизация пользователей из внешних систем''' — Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.0%26for%3DExport"> <soapenv:Header/> <soapenv:Body> <ver:export> <RequestBin> <Request> <Export> <Items> <!--Zero or more repetitions:--> <Item Id="386621"/> </Items> </Export> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:export> </soapenv:Body></soapenv:Envelope></syntaxhighlight>п)
Элемент '''Item'''{| style="width: 800px" class="wikitable"|Для этого нужно подключиться к веб-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|службе авторизации, WSDL-| Атрибут Id| Обязательный. Идентификатор заказа в системе Nemo.| Целое число|}описание которой располагается по адресу:
Элемент '''Source'''{| style="width[http: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба/hostname/authorization_reol. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотретьwsdl http:/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div><hostname/div>authorization_reol.wsdl]
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
====== Ответ =Запрос =====
<div class="mw-collapsible-content">
Ответ содержит элементы результатов бронирований. См. описание выше.
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<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">
<SOAP-ENV:Body>
<ns1:exportResponse>
<ResponseBin>
<Response>
<Export>
<Items>
<Item Id="386621">
<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 20:21:47</BookingDate>
<UpdateDate>2013-08-01 20:35:01</UpdateDate>
<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: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>
</Export>
</Response>
</ResponseBin>
</ns1:exportResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
Формат ответа аналогичен результату бронирования<pre>?xml version ='1.0' encoding ='UTF-8' ?><definitions name='Authorization' targetNamespace='http://example.org/Authorization' xmlns:tns=' http://example.org/Authorization ' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns='http://schemas.xmlsoap.org/wsdl/'> <message name='getAuthorizationRequest'> <part name='login' type='xsd:string'/> <part name='pass' type='xsd:string'/></message><message name='getAuthorizationResponse'> <part name='session_id' type='xsd:string'/> <part name='user_id' type='xsd:string'/> <part name='login' type='xsd:string'/> <part name='status' type='xsd:string'/></message> <portType name='AuthorizationPortType'> <operation name='getAuthorization'> <input message='tns:getAuthorizationRequest'/> <output message='tns:getAuthorizationResponse'/> </operation></portType> <binding name='AuthorizationBinding' type='tns:AuthorizationPortType'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='getAuthorization'> <soap:operation soapAction='urn:xmethods-delayed-quotes#getAuthorization'/> <input> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </input> <output> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </output> </operation></binding> <service name='AuthorizationService'> <port name='AuthorizationPort' binding='AuthorizationBinding'> <soap:address location='http://nemo.local/controllers/authorization/auth_server.php'/> </port></service></definitions></pre></div></div>
====== Ошибки ====Передача параметров в форму поиска (FastSearch)==
==== Аннуляция заказа ===='''WSDL''' (тестовый сервер): http://tstВ системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.nemo-ibe.com/wsdev/wsdl.php?for=CancelBooking<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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCancelBooking"> <soapenv:Header/> <soapenv:Body> <ver:cancel> <RequestBin> <Request> <CancelBooking> <Item Id="386621"/> </CancelBooking> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:cancel> </soapenv:Body></soapenv:Envelope></syntaxhighlight>
Элемент '''Item'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|Примеры FastSearch запросов и используемые переменные подробно описаны в статье [[FastSearch -| Атрибут Id| Обязательный. Идентификатор заказа передача параметров в системе Nemo.| Целое число|}форму]]
Элемент '''Source'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить FastSearch так же работает и для отелей, подробности в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div></div>статье [[Fast Search для отелей]]
====== Ответ ======см. результаты бронирования.====== Ошибки ======* '''You can cancel only booked order''' <!- возникает при попытке аннулировать незабронированный заказ.* '''Invalid Booking Id N''' - заказ с номером N отсутствуетТ= Статические данные =Для работы с веб-сервисом Nemo необходимо выгрузить статичные данныек. Это данные о странахэто внутренний формат обмена данными между Немо и одним клиентом, городах и отелях.==== Страна ===='''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CountryStatic<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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic"> <soapenv:Header/> <soapenv:Body> <ver:countries> <RequestBin> <Request> <CountryStatic> </CountryStatic> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:countries> </soapenv:Body></soapenv:Envelope></syntaxhighlight>
Элемент '''Request'''{| style="width: 800pxПри выписки билета через стороннюю систему 1С, отправляется запрос " class="wikitableGetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, то в ответе будет |-<pre><m:Opportunity>Да</m:Opportunity></pre>! scope=Пример запроса "colGetDebtCounterparty" width="200" | Элемент! scope="col" width="300" | Описание<pre>! scope<?xml version="col1.0" widthencoding="300UTF-8" | Допустимые значения|-| CountryStatic| Пустой элемент| <br/?>|}
Элемент '''Source'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|} </div></div> <div class="toccolours mwSOAP-collapsible mw-collapsed" style="widthENV:1000px"Body>====== Ответ ====== <div class="mw-collapsible-content"ns1:GetDebtCounterparty> <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; borderns1: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"ExternalUserId>00000001<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic" ExternalUserId>xmlns:xsi="http <ns1://www.w3.org/2001/XMLSchema-instance"ExternalPaymentId> 00000001<SOAP-ENV/ns1:BodyExternalPaymentId> <ns1:countriesResponseBaseFare> 2490<ResponseBin/ns1:BaseFare> <Responsens1:Tax> 643<CountryStatic/ns1:Tax> <Countriesns1:ValVendorCommission> 49.8<Country Id="4"/ns1:ValVendorCommission> <Codens1:Locator>AF0X97T6</Codens1:Locator> <Continentns1:Discount>asia0</Continentns1:Discount> <Datans1:Charge> 0<Info Language="RU"/ns1:Charge> <Namens1:Sum>Афганистан3133</Namens1:Sum> </Infons1:TotalPrice> 3658.1<Info Language="EN"/ns1:TotalPrice> <Namens1:GDSCurrency>AfghanistanRUB</Namens1:GDSCurrency> </Infons1:OrderCurrency> RUB</Datans1:OrderCurrency> </Countryns1:OrderCurrencyRate> 1</Countriesns1:OrderCurrencyRate> </CountryStaticns1:beginDate> 2014-08-30T11:05:00</Response> </ResponseBinns1:beginDate> </ns1:countriesResponseGetDebtCounterparty> </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
Элемент '''CountryStatic'''</pre>{| style=Пример ответа "width: 800px" class="wikitableGetDebtCounterparty"|-<pre>! scope<?xml version="col1.0" width?><soap:Envelope xmlns:soap="200http://schemas.xmlsoap.org/soap/envelope/" | Элемент>! scope <soap:Header/> <soap:Body> <m:GetDebtCounterpartyResponse xmlns:m="colhttp://DOMEN_NAME/avia" width> <m:return xmlns:xs="300http://www.w3.org/2001/XMLSchema" | Описание! scopexmlns:xsi="colhttp://www.w3.org/2001/XMLSchema-instance" widthxsi:type="300m:AnswerDebt" | Допустимые значения>|- <m:Opportunity>Да</m:Opportunity>| Countries <m:Message1/>| Обязательный </m:return>| Набор элементов Country </m:GetDebtCounterpartyResponse> </soap:Body>|}</soap:Envelope>
Элемент '''Country'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор страны (ISO).| Целое число|-| Code| Обязательный. Код страны ISO.| Строка из 2-х латинских букв|-| Continent| Обязательный. Название континента.| Строка.|-| Data| Обязательный. Информация требующая перевода.| Набор элементов Info.|} Элемент '''Info'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Атрибут Language| Обязательный. Язык в котором представлена информация.| Строка из 2-х латинских букв.|-| Name| Обязательный. Наименование страны.| Строка в произвольном формате.|}</div></divpre>
====== Ошибки ====Загрузка счетов из сторонней системы ==
==== Город ====Параметры поиска всех услуг требуют указания ID городаПри взаимодействии с веб-сервисом 1С, на этапе бронирования отправляется запрос, на создание аккаунта 1С, содержащий в себе данные счета. Города выгружаются по каждой стране следующим запросом:В системе логирования этот запрос можно найти под именем «[GDS] Запрос "NewAccount"» и ответ «[GDS] Ответ "NewAccount"»
'''WSDL''' (тестовый сервер): http://tst.nemo<div class="toccolours mw-collapsible mw-ibe.com/wsdev/wsdl.php?forcollapsed" style=CityStatic"width:800px">
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">====== Запрос ===Пример запроса ===
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic">
<soapenv:Header/>
<soapenv:Body>
<ver:cities>
<RequestBin>
<Request>
<CityStatic>
<CountryId>4</CountryId>
</CityStatic>
</Request>
<Source>
<ClientId></ClientId>
<APIKey></APIKey>
<Language>ru</Language>
<Currency>RUB</Currency>
</Source>
</RequestBin>
</ver:cities>
</soapenv:Body>
</soapenv:Envelope>
</syntaxhighlight>
Элемент '''CityStatic'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| CountryId| Обязательный. Идентификатор страны.| Целое число|}<pre>
Элемент '''Source'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">====== Ответ ======<div class="mw-collapsible-content"><syntaxhighlight lang="?xml" line encloseversion="div1.0" styleencoding="fontUTF-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tstDOMEN_NAME" xmlns:xsi="http://www.nemo-ibew3.comorg/wsdev2001/?version%3D1.0%26for%3DCityStaticXMLSchema-instance"> <SOAP-ENV:Body> <ns1:NewAccount> <ns1:citiesResponseInput> <ns1:CompanyID>0001<ResponseBin/ns1:CompanyID> <Responsens1:ID>123321</ns1:ID> <ns1:ExternalUserId>00123321<CityStatic/ns1:ExternalUserId> <Citiesns1:Locator>11KW22</ns1:Locator> <ns1:ExternalPaymentId>0<City Id="1"/ns1:ExternalPaymentId> <ns1:Tickets> <Namens1:IATAValidator>Кабул92222616</Namens1:IATAValidator> <CountryIdns1:ValVendor>4UT</CountryIdns1:ValVendor> <ns1:GDSCurrency>RUB<Data/ns1:GDSCurrency> <Info Language="EN"ns1:OrderCurrency>RUB</ns1:OrderCurrency> <Namens1:OrderCurrencyRate>Kabul1</Namens1:OrderCurrencyRate> <ns1:BaseFare>8990</Infons1:BaseFare> <ns1:Tax> <Info Language="RU"ns1:Code>YQ</ns1:Code> <ns1:Amount>975<Name/ns1:Amount>Кабул </Namens1:Tax> <ns1:Tax> <ns1:Code>YR</Infons1:Code> <ns1:Amount>75</Datans1:Amount> </Cityns1:Tax> <City Id="204793"ns1:Segment> <Namens1:StartDate>Aibak2015-02-17T20:20:00</Namens1:StartDate> <CountryIdns1:StartAirportCode>4VKO</CountryIdns1:StartAirportCode> <ns1:EndAirportCode>SGC<Data/ns1:EndAirportCode> <Info Language="EN"ns1:CompanyCode>UT</ns1:CompanyCode> <Namens1:Tariffs>AibakOSSOW</Namens1:Tariffs> <ns1:FlightNumber>295</Infons1:FlightNumber> <ns1:StopOver>O<Info Language="RU"/ns1:StopOver> <Namens1:ClassTypeCode>AibakO</Namens1:ClassTypeCode> </Infons1:Segment> <ns1:FullName>PASSANGER NAME</Datans1:FullName> </Cityns1:Tickets> <City Id="204785"ns1:Options> <ns1:Name>Anar DarahService</ns1:Name> <CountryIdns1:StringValue>4GALILEO</CountryIdns1:StringValue> <Datans1:NumericValue xsi:nil="true"/> <Info Languagens1:DateValue xsi:nil="ENtrue"/> </ns1:Options> <ns1:Options> <ns1:Name>Anar DarahAAA</ns1:Name> <ns1:StringValue>000A</Infons1:StringValue> <Info Languagens1:NumericValue xsi:nil="RUtrue"/> <Namens1:DateValue xsi:nil="true"/>Anar Darah </Namens1:Options> </Infons1:Options> <ns1:Name>Checkbox</Datans1:Name> <ns1:StringValue>YES</Cityns1:StringValue> ... <ns1:NumericValue xsi:nil="true"/Cities> <ns1:DateValue xsi:nil="true"/CityStatic> </Responsens1:Options> </ResponseBinns1:Input> </ns1:citiesResponseNewAccount> </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
Элемент '''CityStatic'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| Cities
| Обязательный. Массив городов.
| Набор элементов City
|}
Элемент '''City'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Атрибут '''Id'''| Обязательный. Идентификатор города.| Целое число|-| Name| Название города.| |-| Data| Названия городов на разных языках. В данный момент поддерживаются названия на русском и английском.| См. описание элемента Data в ответе получения информации о стране.|}</pre></div></div>
====== Ошибки ====== ==== Статика по отелям и апартаментам ====Этот запрос будет использоваться для выгрузки статичной информации по одному или нескольким отелям. '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelStatic <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px800px">====== Запрос ===Пример ответа ===
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStatic"> <soapenv:Header/> <soapenv:Body> <ver:hotels> <RequestBin> <Request> <HotelStatic> <CityId>58166</CityId> </HotelStatic> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:hotels> </soapenv:Body></soapenv:Envelope></syntaxhighlightpre>
Элемент '''Hotels'''{| style<?xml version="width1.0"?><soap: 800px" classEnvelope xmlns:soap="wikitablehttp://schemas.xmlsoap.org/soap/envelope/">|- <soap:Header/> <soap:Body>! scope <m:NewAccountResponse xmlns:m="colhttp://DOMEN_NAME" width> <m:return xmlns:xs="200http://www.w3.org/2001/XMLSchema" | Элемент! scopexmlns:xsi="colhttp://www.w3.org/2001/XMLSchema-instance" widthxsi:type="300m:outInvoice" | Описание>! scope="col" width="300" | Допустимые значения <m:NoDoc>00015365</m:NoDoc>| <m:DateInvoice>2015-02-04T00:00:00</m:DateInvoice> <m:ExternalUserId>00017483</m:ExternalUserId> <m:TicketsSum> <m:Price>10040</m:Price>| CityId <m:Discount>0</m:Discount>| Обязательный. Идентификатор города из которого необходимо получить отели. <m:Charge>0</m:Charge> <m:Sum>10040</m:Sum> </m:TicketsSum> </m:return> </m:NewAccountResponse>| Целое число </soap:Body>|}</soap:Envelope>
Элемент '''Source'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| ClientID
| Обязательный. ID клиента в системе Nemo.
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| Целое число.
|-
| APIKey
| Обязательный. APIKey - секретный ключ доступа к API Nemo.
Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| Латинские буквы и цифры. Всего 32 символа.
|}
</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://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStatic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Bodypre> <ns1:hotelsResponse> <ResponseBin> <Response> <HotelStatic> <Hotels> <Hotel Id="271714" Apartment="false"> <CityId>58166</CityId> <CountryIddiv>643</CountryId> <Latitude xsi:nil="true"/> <Longitude xsi:nil="true"/> <Rating>3</Rating> <Floors xsi:nil="true"/> <Data> <Info> <Name>* Azimut (business)</Name> <Area xsi:nil="true"/> <Location>Within city</Location> <Desc>This 3 star hotel is located within the city of St Petersburg.</Desc> <Address>43/1 Lermoutovsky Prospect, St Petersburg, 190103</Address> </Info> </Data> <Phones> <Phone>812 7402640</Phone> </Phones> <Fax>812 2518890</Fax> <Images/> </Hotel> <Hotel Id="159535" Apartment="false"> <CityId>58166</CityId> <CountryId>643</CountryId> <Latitude>59.935011</Latitude> <Longitude>30.309284</Longitude> <Rating>5</Rating> <Floors xsi:nil="true"/> <Data> <Info> <Name>W St.petersburg</Name> <Area xsi:nil="true"/> <Location>City centre</Location> <Desc>This 5 star hotel is located in the city centre of St Petersburg and was established in 2011. It is close to the St.Isaac's Cathedral and the nearest station is Admiralteyskaya station. The Hotel has a restaurant, 2 bars, a conference room, a coffee shop, an indoor swimming pool and a fitness centre/gym. All 137 rooms are equipped with minibar, hairdryer, safe, trouser press and air conditioning.</Desc> <Address>6 Voznesensky Prospect, St. Petersburg, 190000, St Petersburg, Russia</Address> </Info> </Data> <Phones/> <Fax>+7 812 6106160</Fax> <Images> <Image> <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/ext.jpg</Path> <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/ext-t.jpg</Icon> </Image> <Image> <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/unknown.jpg</Path> <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/unknown-t.jpg</Icon> </Image> <Image> <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/bed room.jpg</Path> <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/bed room-t.jpg</Icon> </Image> </Images> </Hotel> ... </Hotels> </HotelStatic> </Response> </ResponseBin> </ns1:hotelsResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlightdiv>
Элемент '''Hotel'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор отеля в системе Nemo.| Целое число.|-| CityId| Обязательный. Идентификатор города.| Целое число.|-| CountryId| Обязательный. Идентификатор страны .| Целое число.|-| Latitude| Необязательный. Широта.| Вещественное число.|-| Longitude| Необязательный. Долгота.| Вещественное число.|-| Rating| Необязательный. Рейтинг.| Вещественное число.|-| Floors| Необязательный. Количество этажей| Целое число.|-| Data| Необязательный.| Набор элементов Info.|-| Phones| Необязательный. Массив телефонов.| Набор элементов Phone.|-| Fax| Необязательный. Факс.| Строка в произвольном формате.|-| Images| Необязательный. Маcсив изображений.| Набор элементов Image.|} Элемент '''Info'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Name| Обязательный. Наименование отеля.| Строка в произвольном формате.|-| Area| Необязательный. Описание места расположения отеля.| Строка в произвольном формате.|-| Location| Необязательный. Район города.| Строка в произвольном формате.|-| Desc| Необязательный. Описание отеля.| Строка в произвольном формате.|-| Address| Необязательный. Адрес отеля.| Строка в произвольном формате.|} Элемент '''Phones'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Phone| Обязательный. Телефон.| Строка в произвольном формате.|} Элемент '''Image'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Path| Необязательный. Путь к полному изображению.| Строка в произвольном формате.|-| Icon| Необязательный. Путь к миниатюре, иконке.| Строка в произвольном формате.|}</div></div====== Ошибки ====== ==API бронирования, аннуляции, войдирования авиабилетов====API бронирования, отмены отелей====API Выгрузки статистики продаж через API====Выгрузка информации о продажах в формате Nemo XML====Выгрузка информации о продажах в формате СОФИ XML====Фиксация оплаты внешним запросом====Выгрузка заказов по критериям в формате Nemo XML====Выгрузка определенного заказа по критериям в формате Nemo XML====API универсального платежного шлюза====API Синхронизации пользователей и субагентов====API Кросс­авторизации====Передача параметров в форму поиска====Проверка в сторонней системе возможности тикетинга====API загрузки счетов из сторонней системы====API загрузки сальдо компаний из СОФИ==
1382
правки

Навигация

'