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

Изменения

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

47 119 байт убрано, 18:55, 24 апреля 2015
API бронирования, аннуляции, войдирования авиабилетов
==API бронирования, аннуляции, войдирования авиабилетов==
=== Подключение ===
 
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр — «FlightId» — Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.
 
=== Общий формат запроса / ответа бронирования ===
 
<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%3DBookFlight">
<soapenv:Header/>
<soapenv:Body>
<ver:BookFlight>
<RequestBin>
<Request>
<BookFlight>
<FlightId>?</FlightId>
<!--FlightId — Id перелёта в системе Nemo-->
<!--Optional:-->
<ValidatingCompany>?</ValidatingCompany> <!--необязательный-->
<!--ValidatingCompany — валидирующий перевозчик (тот кто выписывает билет)-->
<!--Optional:-->
<BookingCodes>
<!--Zero or more repetitions:-->
<BookingCode Code="?" SegNumber="?"/>
<!--Code — код класса перелёта-->
<!--SegNumber — номер сегмента в перелёте (начинаются с 1)-->
</BookingCodes>
<!--Optional:-->
<CurrencyCode>?</CurrencyCode> <!--необязательный-->
<!--CurrencyCode — код валюты-->
<!--Optional:-->
<TicketTimeLimit>?</TicketTimeLimit> <!--необязательный-->
<!--TicketTimeLimit — таймлимит на оплату, формат: ГГГГ-ММ-ДДTЧЧ:ММ:СС-->
<!--Optional:-->
<Agency Name="?"> <!--необязательный-->
<!--Name — название агентства-->
<Telephone Type="?">
<!--Type — тип номера, обязательный, возможные значения:
M — мобильный, H — домашний, B — рабочий, A — агенство-->
<!--Optional:-->
<PhoneNumber>?</PhoneNumber>
<!--PhoneNumber — номер телефона-->
<!--Optional:-->
<CountryAccessCode>?</CountryAccessCode> <!--необязательный-->
<!--CountryAccessCode — код страны-->
<!--Optional:-->
<AreaCityCode>?</AreaCityCode> <!--необязательный-->
<!--AreaCityCode — код региона/города-->
</Telephone>
<Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
<!--City — город-->
<!--State — штат-->
<!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)-->
<!--PostalCode — почтовый индекс-->
<!--CountryCode — код страны (RU, UA и т.п.)-->
</Agency>
<Travellers>
<!--Zero or more repetitions:-->
<Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
<!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
CNN — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
<!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
может быть контактным лицом, по умолчанию false-->
<!--Num — порядковый номер пассажира, начинается с 1-->
<!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок--> <!--необязательный-->
<!--TravellerId — устаревший параметр, не используется-->
<Meal>?</Meal> <!--необязательный-->
<!--Meal — код типа питания, возможные значения:
NONE — отсутствует
AVML — Азиатская вегетарианская кухня
BLML — Блюда щадящей диеты
CHML — Детское питание
CHPC — Детский холодный завтрак
СНСС — Детский горячий завтрак
CHHC — Детский ланч, ветчина и сыр
PBJS — Детский ланч, ореховое масло
CHMC — Детский обед макароны с сыром
DBML — Диабетическое питание
FPML — Фрукты
GFML — Питание без клейковины
HFML — Питание богатое клетчаткой
HNML — Индусская кухня
BBML — Питание для младенцев
KSML — Кошерная кухня
SMKB — Кошерный завтрак
SMKL — Кошерный ланч
SMKD — Кошерный обед
LPML — Малобелковое питание
LCML — Низкокалорийное питание
LFML — Низкохолестериновое питание
PRML — Низкопуриновое питание
LSML — Малосоленое питание
MOML — Мюсли
NLML — Безмолочные продукты
ORML — Восточная кухня
RVML — Сырые овощи
SFML — Морепродукты
SPML — Особое питание
VLML — Вегетарианское, молоко и яйца
VGML — Строго вегетарианское питание
VJML — Джайнизское вегетарианское
VOML — Восточное вегетарианское питание-->
<PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
<!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
<!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
<!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)-->
<FirstName>?</FirstName>
<!--FirstName — имя пассажира-->
<LastName>?</LastName>
<!--LastName — фамилия пассажира-->
<!--Optional:-->
<MiddleName>?</MiddleName> <!--необязательный-->
<!--MiddleName — отчество пассажира-->
</PersonalInfo>
<LoyaltyCard OpCode="?" Number="?"/> <!--необязательный-->
<!--OpCode — код авиакомпании-->
<!--Number — номер карточки-->
<ContactInfo> <!--необязательный-->
<!--Optional:-->
<EmailID>?</EmailID>
<!--EmailID — контактный email-->
<!--Optional:-->
<Telephone Type="?">
<!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий-->
<!--Optional:-->
<PhoneNumber>?</PhoneNumber>
<!--PhoneNumber — номер телефона-->
<!--Optional:-->
<CountryAccessCode>?</CountryAccessCode>
<!--CountryAccessCode — код страны-->
<!--Optional:-->
<AreaCityCode>?</AreaCityCode>
<!--AreaCityCode — код региона/города-->
</Telephone>
</ContactInfo>
<DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
<!--DocType — тип документа, возможные значения:
Р — Паспорт
A – Паспорт иностранца
С — Внутренний гражданский паспорт
F – Документ заменяющий паспорт
М — Воинское удостоверение
N – Сертификат натурализации(специфичный документ США)
T – Док.повторного въезда, паспорт беженца
V – Документ для пересечения границы-->
<!--DocNum — номер документа-->
<!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
<!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
<VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
<!--необязательный-->
<!--Num — номер визы-->
<!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы-->
<!--IssueCountry — страна выдачи визы-->
<!--IssuePlace — место выдачи визы-->
<!--BirthCountry — страна рождения(IATA код страны)-->
<!--BirthCity — город рождения(название)-->
<ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
<!--City — город-->
<!--State — штат или область въезда-->
<!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.-->
<!--PostalCode — почтовый код-->
<!--CountryCode — код страны-->
<PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/>
<!--необязательный-->
<!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
<!--SmokingAllowed — булевское значение, true — место для курящих, false — место для некурящих-->
<!--Location — положение места в ряде, возможные значения:
W — у окна (Window)
M — где-то в середине ряда (Middle)
NPW — возле прохода (NearPassengerWay)
NS — нет предпочтения (NotSpecified)-->
<!--RowNumber — номер ряда-->
<!--PlaceNumber — номер места-->
<!--SegNumber — номер сегмента-->
<DocStringFormats>
<!--Zero or more repetitions:-->
<DocStringFormat>?</DocStringFormat>
<!--DocStringFormat — формат паспортной строки, возможные значения:
DOCS — строка формата DOCS, FOID — строка формата FOID-->
</DocStringFormats>
</Traveller>
</Travellers>
<!--Optional:-->
<QueueNum>?</QueueNum> <!--необязательный-->
<!--QueueNum — номер очереди, в которую необходимо поместить бронирование-->
</BookFlight>
</Request>
<Source>
<ClientId>?</ClientId>
<!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
"Администрирование" ? "Веб-служба. Авторизация".-->
<APIKey>?</APIKey>
<!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
"Администрирование" ? "Веб-служба. Авторизация".-->
<Language>?</Language>
<!--Language — язык-->
<Currency>?</Currency>
<!-- CUrrency — валюта-->
</Source>
</RequestBin>
</ver:BookFlight>
</soapenv:Body>
</soapenv:Envelope>
</syntaxhighlight>
</div>
</div>
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
===== Ответ =====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:BookFlightResponse>
<ResponseBin>
<Response>
<BookFlight ID="?" Status="?" Code="?">
<!--ID — Id брони в системе Nemo, целое число, обязательный-->
<!--Status — индикатор состояния брони, возможные значения:
booked — забронировано,
canceled — бронь отменена,
ticket — выписана
UNDEFINED — статус не определён-->
<!--Code — код брони в системе поставщика-->
<QueryPlace xsi:nil="true"/>
<!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
<Flight FlightId="?">
<!--FlightId — Id перелёта в системе Nemo-->
<WebService>?</WebService>
<!--WebService — поставщик перелёта-->
<ValCompany>?</ValCompany>
<!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
<URL>?</URL>
<!--URL — ссылка на бронирование конкретного перелета-->
<Segments>
<Segment SegNum="?" SegGroupNum="?">
<!--SegNum — номер сегмента в перелёте-->
<!--SegGroupNum – номер плеча перелёта-->
<DepAirp CodeType="IATA">?</DepAirp>
<!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
или SVO — Шереметьево-->
<DepTerminal>?</DepTerminal>
<!--DepTerminal — терминал пункта отправления, если пустое значение,
то в аэропорту всего 1 терминал-->
<ArrAirp CodeType="IATA">?</ArrAirp>
<!--ArrAirp — аэропорт прибытия-->
<ArrTerminal>?</ArrTerminal>
<!--ArrTerminal — терминал пункта прибытия, если пустое значение,
то в аэропорту всего 1 терминал-->
<OpAirline>?</OpAirline>
<!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
<MarkAirline>?</MarkAirline>
<!--MarkAirline — авиакомпания, продающая перелёт-->
<FlightNumber>?</FlightNumber>
<!--FlightNumber — номер рейса-->
<AircraftType>?</AircraftType>
<!--AircraftType — тип воздушного судна, код-->
<DepDateTime>?</DepDateTime>
<!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<ArrDateTime>?</ArrDateTime>
<!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<StopNum>?</StopNum>
<!--StopNum — количество остановок-->
<BookingCodes>
<BookingCode ClassType="?">
<!--ClassType — класс перелета, например: economy-->
<BookingCode>?</BookingCode>
<!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс
может записываться разными литерами, например: L-->
</BookingCode>
</BookingCodes>
<FlightTime>?</FlightTime>
<!--FlightTime — время перелёта в минутах-->
<TimeZone Departure="?" Arrival="?"/>
<!--Departure временная зона аэропорта отправления-->
<!--Arrival — временная зона аэропорта прибытия-->
<ETicket>?</ETicket>
<!--ETicket — признак электронного билета, значения: true / false-->
</Segment>
</Segments>
<PricingInfo Refundable="?">
<!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
<PassengerFare Type="?" Quantity="?">
<!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
INF — младенцы, INS — младенцы с местом-->
<!--Quantity — количество пассажиров данного типа-->
<BaseFare Currency="?" Amount="?"/>
<!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
<EquiveFare Currency="?" Amount="?"/>
<!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи).
Currency — код валюты, Amount — значение цены-->
<TotalFare Currency="?" Amount="?"/>
<!--TotalFare — суммарная стоимость, в эквивалентной валюте.
Currency — код валюты, Amount — значение цены-->
<Taxes>
<Tax CurCode="?" TaxCode="?" Amount="?"/>
<!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
</Taxes>
<Tariffs>
<Tariff Code="?" SegNum="?"/>
<!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
</Tariffs>
<FareCalc>?</FareCalc>
<!--FareCalc — строка расчёта цены-->
<LastTicketDateTime>?</LastTicketDateTime>
<!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
</PassengerFare>
</PricingInfo>
<Commission/>
<Charges Currency="?">?</Charges>
<!--Charges — сборы, Currency — код валюты-->
<TotalPrice Currency="?">?</TotalPrice>
<!--TotalPrice — итоговая цена, Currency — код валюты-->
</Flight>
<Agency Name="?">
<!--Name — название агентства-->
<Telephone Type="?">
<!--Type — тип номера, обязательный, возможные значения:
M — мобильный, H — домашний, B — рабочий, A — агенство-->
<!--Optional:-->
<PhoneNumber>?</PhoneNumber>
<!--PhoneNumber — номер телефона-->
<!--Optional:-->
<CountryAccessCode>?</CountryAccessCode>
<!--CountryAccessCode — код страны-->
<!--Optional:-->
<AreaCityCode>?</AreaCityCode>
<!--AreaCityCode — код региона/города-->
</Telephone>
<Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
<!--City — город-->
<!--State — штат-->
<!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)-->
<!--PostalCode — почтовый индекс-->
<!--CountryCode — код страны (RU, UA и т.п.)-->
</Agency>
<ItinReceipts Encoding="?" Format="?">
<!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат-->
<FareStored xsi:nil="true"/>
<Travellers>
<!--Zero or more repetitions:-->
<Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
<!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
CNN — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
<!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
может быть контактным лицом, по умолчанию false-->
<!--Num — порядковый номер пассажира, начинается с 1-->
<!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок-->
<!--TravellerId — устаревший параметр, не используется-->
<Meal>?</Meal>
<!--Meal — код типа питания, возможные значения:
NONE — отсутствует
AVML — Азиатская вегетарианская кухня
BLML — Блюда щадящей диеты
CHML — Детское питание
CHPC — Детский холодный завтрак
СНСС — Детский горячий завтрак
CHHC — Детский ланч, ветчина и сыр
PBJS — Детский ланч, ореховое масло
CHMC — Детский обед макароны с сыром
DBML — Диабетическое питание
FPML — Фрукты
GFML — Питание без клейковины
HFML — Питание богатое клетчаткой
HNML — Индусская кухня
BBML — Питание для младенцев
KSML — Кошерная кухня
SMKB — Кошерный завтрак
SMKL — Кошерный ланч
SMKD — Кошерный обед
LPML — Малобелковое питание
LCML — Низкокалорийное питание
LFML — Низкохолестериновое питание
PRML — Низкопуриновое питание
LSML — Малосоленое питание
MOML — Мюсли
NLML — Безмолочные продукты
ORML — Восточная кухня
RVML — Сырые овощи
SFML — Морепродукты
SPML — Особое питание
VLML — Вегетарианское, молоко и яйца
VGML — Строго вегетарианское питание
VJML — Джайнизское вегетарианское
VOML — Восточное вегетарианское питание-->
<PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
<!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
<!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
<!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)-->
<FirstName>?</FirstName>
<!--FirstName — имя пассажира-->
<LastName>?</LastName>
<!--LastName — фамилия пассажира-->
<!--Optional:-->
<MiddleName>?</MiddleName>
<!--MiddleName — отчество пассажира-->
</PersonalInfo>
<LoyaltyCard OpCode="?" Number="?"/>
<!--OpCode — код авиакомпании-->
<!--Number — номер карточки-->
<ContactInfo>
<!--Optional:-->
<EmailID>?</EmailID>
<!--EmailID — контактный email-->
<!--Optional:-->
<Telephone Type="?">
<!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий-->
<!--Optional:-->
<PhoneNumber>?</PhoneNumber>
<!--PhoneNumber — номер телефона-->
<!--Optional:-->
<CountryAccessCode>?</CountryAccessCode>
<!--CountryAccessCode — код страны-->
<!--Optional:-->
<AreaCityCode>?</AreaCityCode>
<!--AreaCityCode — код региона/города-->
</Telephone>
</ContactInfo>
<DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
<!--DocType — тип документа, возможные значения:
Р — Паспорт
A – Паспорт иностранца
С — Внутренний гражданский паспорт
F – Документ заменяющий паспорт
М — Воинское удостоверение
N – Сертификат натурализации(специфичный документ США)
T – Док.повторного въезда, паспорт беженца
V – Документ для пересечения границы-->
<!--DocNum — номер документа-->
<!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
<!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
<VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
<!--Num — номер визы-->
<!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы-->
<!--IssueCountry — страна выдачи визы-->
<!--IssuePlace — место выдачи визы-->
<!--BirthCountry — страна рождения(IATA код страны)-->
<!--BirthCity — город рождения(название)-->
<ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
<!--City — город-->
<!--State — штат или область въезда-->
<!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.-->
<!--PostalCode — почтовый код-->
<!--CountryCode — код страны-->
<PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/>
<!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
<!--SmokingAllowed — булевское значение, true — место для курящих, false — место для некурящих-->
<!--Location — положение места в ряде, возможные значения:
W — у окна (Window)
M — где-то в середине ряда (Middle)
NPW — возле прохода (NearPassengerWay)
NS — нет предпочтения (NotSpecified)-->
<!--RowNumber — номер ряда-->
<!--PlaceNumber — номер места-->
<!--SegNumber — номер сегмента-->
<DocStringFormats>
<!--Zero or more repetitions:-->
<DocStringFormat>?</DocStringFormat>
<!--DocStringFormat — формат паспортной строки, возможные значения:
DOCS — строка формата DOCS, FOID — строка формата FOID-->
</DocStringFormats>
</Traveller>
</Travellers>
</BookFlight>
<Requisites/>
<RequestType xsi:nil="true"/>
<UserID xsi:nil="true"/>
<Errors>
<Error Code="?">
<!--Code — код ошибки в системе Nemo-->
<ServiceErrorMessage>?</ServiceErrorMessage>
<!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика-->
<Message>?</Message>
<!--Message — сообщение об ошибке от системы Nemo-->
</Error>
</Errors>
</Response>
</ResponseBin>
</ns1:BookFlightResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
</div>
</div>
 
=== Пример использования ===
 
Пример одностороннего перелета Москва — Мадрид.
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Запрос =====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight">
<soapenv:Header/>
<soapenv:Body>
<ver:BookFlight>
<RequestBin>
<Request>
<BookFlight>
<FlightId>171430002</FlightId>
<BookingCodes>
<!--Zero or more repetitions:-->
<BookingCode Code="E" SegNumber="2"/>
</BookingCodes>
<Travellers>
<!--Zero or more repetitions:-->
<Traveller Type="ADT" IsContact="true" Num="1">
<PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
<FirstName>Petr</FirstName>
<LastName>Ivanov</LastName>
</PersonalInfo>
<ContactInfo>
<!--Optional:-->
<EmailID>testmail@mail.ru</EmailID>
<!--Optional:-->
<Telephone Type="M">
<!--Optional:-->
<PhoneNumber>79051234567</PhoneNumber>
</Telephone>
</ContactInfo>
<DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/>
</Traveller>
</Travellers>
</BookFlight>
</Request>
<Source>
<ClientId>---</ClientId>
<APIKey>---</APIKey>
<Language>RU</Language>
<Currency>RUB</Currency>
</Source>
</RequestBin>
</ver:BookFlight>
</soapenv:Body>
</soapenv:Envelope>
</syntaxhighlight>
</div>
</div>
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
 
===== Ответ =====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:BookFlightResponse>
<ResponseBin>
<Response>
<BookFlight ID="262872" Status="booked" Code="LQHZWU">
<QueryPlace xsi:nil="true"/>
<Flight FlightId="171430002">
<WebService>SABRE</WebService>
<ValCompany>SU</ValCompany>
<URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D14290%26flight%3D171430002</URL>
<Segments>
<Segment SegNum="1" SegGroupNum="0">
<DepAirp CodeType="IATA">SVO</DepAirp>
<DepTerminal>D</DepTerminal>
<ArrAirp CodeType="IATA">BCN</ArrAirp>
<ArrTerminal>1</ArrTerminal>
<OpAirline>SU</OpAirline>
<MarkAirline>SU</MarkAirline>
<FlightNumber>2512</FlightNumber>
<AircraftType>321</AircraftType>
<DepDateTime>2014-03-20T20:40:00</DepDateTime>
<ArrDateTime>2014-03-20T22:20:00</ArrDateTime>
<StopNum>0</StopNum>
<BookingCodes>
<BookingCode ClassType="economy">
<BookingCode>E</BookingCode>
</BookingCode>
</BookingCodes>
<FlightTime>280</FlightTime>
<TimeZone Departure="4" Arrival="1"/>
<ETicket>true</ETicket>
</Segment>
<Segment SegNum="2" SegGroupNum="0">
<DepAirp CodeType="IATA">BCN</DepAirp>
<DepTerminal>1</DepTerminal>
<ArrAirp CodeType="IATA">MAD</ArrAirp>
<ArrTerminal>2</ArrTerminal>
<OpAirline>UX</OpAirline>
<MarkAirline>SU</MarkAirline>
<FlightNumber>3403</FlightNumber>
<AircraftType>738</AircraftType>
<DepDateTime>2014-03-21T12:05:00</DepDateTime>
<ArrDateTime>2014-03-21T13:25:00</ArrDateTime>
<StopNum>0</StopNum>
<BookingCodes>
<BookingCode ClassType="economy">
<BookingCode>E</BookingCode>
</BookingCode>
</BookingCodes>
<FlightTime>80</FlightTime>
<TimeZone Departure="1" Arrival="1"/>
<ETicket>true</ETicket>
</Segment>
</Segments>
<PricingInfo Refundable="false">
<PassengerFare Type="ADT" Quantity="1">
<BaseFare Currency="EUR" Amount="165"/>
<EquiveFare Currency="RUB" Amount="8335"/>
<TotalFare Currency="RUB" Amount="14025"/>
<Taxes>
<Tax CurCode="RUB" TaxCode="YQF" Amount="4242"/>
<Tax CurCode="RUB" TaxCode="YRI" Amount="374"/>
<Tax CurCode="RUB" TaxCode="JD" Amount="844"/>
<Tax CurCode="RUB" TaxCode="QV" Amount="230"/>
</Taxes>
<Tariffs/>
<FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
<LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime>
</PassengerFare>
</PricingInfo>
<Commission Currency="RUB">0</Commission>
<Charges Currency="RUB">140.25</Charges>
<TotalPrice Currency="RUB">14165.25</TotalPrice>
</Flight>
<Agency/>
<ItinReceipts xsi:nil="true"/>
<FareStored xsi:nil="true"/>
<Travellers>
<Traveller Type="ADT" IsContact="true" Num="1">
<Meal/>
<Ticket/>
<Seats/>
<PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
<FirstName>PETR</FirstName>
<LastName>IVANOV</LastName>
<MiddleName/>
</PersonalInfo>
<LoyaltyCard/>
<ContactInfo>
<EmailID>TESTMAIL@MAIL.ru</EmailID>
<Telephone Type="M">
<PhoneNumber>79051234567</PhoneNumber>
<CountryAccessCode/>
<AreaCityCode/>
</Telephone>
</ContactInfo>
<DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/>
<VisaInfo/>
<ArrAddress/>
<PreferedPlace/>
<DocStringFormats/>
</Traveller>
</Travellers>
</BookFlight>
<Requisites/>
<RequestType xsi:nil="true"/>
<UserID xsi:nil="true"/>
<Errors xsi:nil="true"/>
</Response>
</ResponseBin>
</ns1:BookFlightResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
</div>
</div>
 
=== Общий формат запроса / ответа отмены бронирования ===
 
После бронирования, если не истек таймлимит можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимита, установленного для заказа система сама аннулирует заказ.
 
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Запрос =====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook">
<soapenv:Header/>
<soapenv:Body>
<ver:CancelBook>
<RequestBin>
<Request>
<CancelBook BookID="?"/>
<!--BookID — Id брони в системе Nemo, целое число-->
</Request>
<Source>
<ClientId>?</ClientId>
<!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
"Администрирование" ? "Веб-служба. Авторизация".-->
<APIKey>?</APIKey>
<!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
"Администрирование" ? "Веб-служба. Авторизация".-->
<Language>?</Language>
<!--Language — язык-->
<Currency>?</Currency>
<!-- CUrrency — валюта-->
</Source>
</RequestBin>
</ver:CancelBook>
</soapenv:Body>
</soapenv:Envelope>
</syntaxhighlight>
</div>
</div>
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Ответ =====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:CancelBookResponse>
<ResponseBin>
<Response>
<CancelBook BookID="?">
<!--BookID — Id брони в системе Nemo, целое число-->
<Result Success="?"/>
<!--Success — результат отмены брони, true или false-->
</CancelBook>
<Requisites/>
<RequestType xsi:nil="true"/>
<UserID xsi:nil="true"/>
<Errors xsi:nil="true"/>
</Response>
</ResponseBin>
</ns1:CancelBookResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
</div>
</div>
==API бронирования, отмены отелей==
'