Веб-служба выписки
Содержание
Информация
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета.
! Как правило для выписки билета достаточно чтобы у заказа был статус "Оплачено". При включенной опции «Для успешных бронирований производить оформление: автоматически после изменения статуса на "Оплачено"» из раздела «Заказы» ⇨ «Настройки бронирования» билет будет автоматически выписан после оплаты.
В Nemo 2.0 в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет:
- сообщать ВП (валидирующего перевозчика) по данной комбинации;
- сообщать комиссию по данной комбинации;
- сообщать эндорсменты по данной комбинации;
- принимать запрос на тикетинг;
- проверять наличие брони в ГДС;
- синхронизировать бронь;
- выписывать билет;
- войдировать билет.
Общий формат запроса / ответа выписки
Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать неоплаченный заказ через Nemo возможности нет. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы, с истекшим таймлимитом выписать нельзя.
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DTicketing">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:Ticketing>
5 <RequestBin>
6 <Request>
7 <Ticketing>
8 <BookID>?</BookID>
9 <!--BookID — Id заказа в системе Nemo-->
10 <ValCompany>?</ValCompany>
11 <!--ValCompany — валидирующий перевозчик (тот кто выписывает билет)-->
12 <Comission Amount="?" Percent="?" CurrencyCode="?"/>
13 <!--Comission Amount — комиссии, указываются или в валюте, или в процентах, для валюты обязательным является
14 код валюты. Если указана и в валюте и в процентах, то у поставщика комиссия устанавливается в валюте-->
15 <!--Amount — комиссия в валюте-->
16 <!--Percent — комиссия в процентах-->
17 <!--CurrencyCode — код валюты комиссии-->
18 <PassengerFops>
19 <!--Zero or more repetitions:-->
20 <PassengerFop>
21 <PassengerId>?</PassengerId>
22 <!--PassengerId - порядковый номер пассажира в перелете-->
23 <Fops>
24 <!--Zero or more repetitions:-->
25 <Fop>
26 <Type>?</Type>
27 <!--Type - форма оплаты: CC (по кредитной карте) или СА (наличными)-->
28 <Money Currency="?">?</Money>
29 <!--Money - сумма платежа-->
30 <!--Currency - код валюты-->
31 <VendorCode>?</VendorCode>
32 <!--VendorCode - код типа карты: (например, VI - Visa,
33 MC - MasterCard,
34 AX - American Express
35 DC - DCL,
36 CA - EURO,
37 IK - EURO,
38 JB - JCB,
39 JC - JCB,
40 BA - Visa)-->
41 <Number>?</Number>
42 <!--Number - номер карты-->
43 <ExpireDate>?</ExpireDate>
44 <!--ExpireDate - срок действия карты, например 12.2020-->
45 <ManualApprovalCode>?</ManualApprovalCode>
46 <!--ManualApprovalCode - Код преавторизации транзакции, по которой были заблокированы средства для выписки. Это НЕ CVV код.-->
47 </Fop>
48 </Fops>
49 </PassengerFop>
50 </PassengerFops>
51 </Ticketing>
52 </Request>
53 <Source>
54 <ClientId>?</ClientId>
55 <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
56 "Администрирование" ⇨ "Веб-служба. Авторизация".-->
57 <APIKey>?</APIKey>
58 <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
59 "Администрирование" ⇨ "Веб-служба. Авторизация".-->
60 <Language>?</Language>
61 <!--Language — язык, например: RU-->
62 <Currency>?</Currency>
63 <!-- Currency — валюта, например: RUB, EUR-->
64 </Source>
65 </RequestBin>
66 </ver:Ticketing>
67 </soapenv:Body>
68 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DTicketing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:TicketingResponse>
4 <ResponseBin>
5 <Response>
6 <Ticketing ID="?" Status="?" Code="?">
7 <!--ID — Id брони в системе Nemo, целое число, обязательный-->
8 <!--Status — индикатор состояния брони, возможные значения:
9 booked — забронировано,
10 canceled — бронь отменена,
11 ticket — выписана
12 UNDEFINED — статус не определён-->
13 <!--Code — код брони в системе поставщика-->
14 <QueryPlace xsi:nil="true"/>
15 <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
16 <Flight FlightId="?">
17 <!--FlightId — Id перелёта в системе Nemo-->
18 <WebService>?</WebService>
19 <!--WebService — поставщик перелёта-->
20 <ValCompany>?</ValCompany>
21 <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
22 <URL>?</URL>
23 <!--URL — ссылка на бронирование конкретного перелета-->
24 <Segments>
25 <Segment SegNum="?" SegGroupNum="?">
26 <!--SegNum — номер сегмента в перелёте-->
27 <!--SegGroupNum – номер плеча перелёта-->
28 <DepAirp CodeType="IATA">?</DepAirp>
29 <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
30 или SVO — Шереметьево-->
31 <DepTerminal>?</DepTerminal>
32 <!--DepTerminal — терминал пункта отправления, если пустое значение,
33 то в аэропорту всего 1 терминал-->
34 <ArrAirp CodeType="IATA">?</ArrAirp>
35 <!--ArrAirp — аэропорт прибытия-->
36 <ArrTerminal>?</ArrTerminal>
37 <!--ArrTerminal — терминал пункта прибытия, если пустое значение,
38 то в аэропорту всего 1 терминал-->
39 <OpAirline>?</OpAirline>
40 <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
41 <MarkAirline>?</MarkAirline>
42 <!--MarkAirline — авиакомпания, продающая перелёт-->
43 <MarkAirlineName>?</MarkAirlineName>
44 <!--MarkAirlineName - полное наименование АК на кириллице-->
45 <FlightNumber>?</FlightNumber>
46 <!--FlightNumber — номер рейса-->
47 <AircraftName>?</AircraftName>
48 <!--AircraftName - наименование воздушного судна-->
49 <AircraftType>?</AircraftType>
50 <!--AircraftType — тип воздушного судна, код-->
51 <DepDateTime>?</DepDateTime>
52 <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
53 <ArrDateTime>?</ArrDateTime>
54 <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
55 <StopNum>?</StopNum>
56 <!--StopNum — количество остановок-->
57 <BookingCodes>
58 <BookingCode ClassType="?">
59 <!--ClassType — класс перелета, например: economy-->
60 <BookingCode>?</BookingCode>
61 <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс
62 может записываться разными литерами, например: L-->
63 </BookingCode>
64 </BookingCodes>
65 <FlightTime>?</FlightTime>
66 <!--FlightTime — время перелёта в минутах-->
67 <TimeZone Departure="?" Arrival="?"/>
68 <!--Departure временная зона аэропорта отправления-->
69 <!--Arrival — временная зона аэропорта прибытия-->
70 <ETicket>?</ETicket>
71 <!--ETicket — признак электронного билета, значения: true / false-->
72 </Segment>
73 </Segments>
74 <PricingInfo Refundable="?">
75 <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
76 <PassengerFare Type="?" Quantity="?">
77 <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
78 INF — младенцы, INS — младенцы с местом-->
79 <!--Quantity — количество пассажиров данного типа-->
80 <BaseFare Currency="?" Amount="?"/>
81 <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
82 <EquiveFare Currency="?" Amount="?"/>
83 <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи).
84 Currency — код валюты, Amount — значение цены-->
85 <TotalFare Currency="?" Amount="?"/>
86 <!--TotalFare — суммарная стоимость, в эквивалентной валюте.
87 Currency — код валюты, Amount — значение цены-->
88 <Taxes>
89 <Tax CurCode="?" TaxCode="?" Amount="?"/>
90 <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
91 </Taxes>
92 <Tariffs>
93 <Tariff Code="?" SegNum="?"/>
94 <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
95 </Tariffs>
96 <FareCalc>?</FareCalc>
97 <!--FareCalc — строка расчёта цены-->
98 <LastTicketDateTime>?</LastTicketDateTime>
99 <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
100 </PassengerFare>
101 </PricingInfo>
102 <Commission Currency="?">?</Commission>
103 <Charges Currency="?">?</Charges>
104 <!--Charges — сборы, Currency — код валюты-->
105 <TotalPrice Currency="?">?</TotalPrice>
106 <!--TotalPrice — итоговая цена, Currency — код валюты-->
107 </Flight>
108 <Agency Name="?">
109 <!--Name — название агентства-->
110 <Telephone Type="?">
111 <!--Type — тип номера, обязательный, возможные значения:
112 M — мобильный, H — домашний, B — рабочий, A — агенство-->
113 <!--Optional:-->
114 <PhoneNumber>?</PhoneNumber>
115 <!--PhoneNumber — номер телефона-->
116 <!--Optional:-->
117 <CountryAccessCode>?</CountryAccessCode>
118 <!--CountryAccessCode — код страны-->
119 <!--Optional:-->
120 <AreaCityCode>?</AreaCityCode>
121 <!--AreaCityCode — код региона/города-->
122 </Telephone>
123 <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
124 <!--City — город-->
125 <!--State — штат-->
126 <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)-->
127 <!--PostalCode — почтовый индекс-->
128 <!--CountryCode — код страны (RU, UA и т.п.)-->
129 </Agency>
130 <ItinReceipts Encoding="?" Format="?">
131 <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат-->
132 <FareStored xsi:nil="true"/>
133 <PaymentTransactions>
134 <Transaction>
135 <Id>?</Id>
136 <!--Id - номер транзакции в Немо-->
137 <Status>?</Status>
138 <!--Status - статус транзакции-->
139 <GatewayName>?</GatewayName>
140 <!--GatewayName - название платежного шлюза-->
141 <MoneyPaid Currency="?">?</MoneyPaid>
142 <!--MoneyPaid - сумма оплаты-->
143 <!--Currency - валюта-->
144 <PaymentDateTime>?</PaymentDateTime>
145 <!--PaymentDateTime - дата и время оплаты-->
146 <CreateDateTime>?</CreateDateTime>
147 <!--CreateDateTime - дата и время создания платежной транзакции-->
148 <Description/>
149 </Transaction>
150 </PaymentTransactions>
151 <PaymentStatus>?</PaymentStatus>
152 <!--PaymentStatus - статус оплаты:
153 not_paid — не оплачено
154 partly_paid — оплачено, частично
155 fully_paid — оплачено, полностью-->
156 <Travellers>
157 <!--Zero or more repetitions:-->
158 <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
159 <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
160 CNN — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
161 <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
162 контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
163 может быть контактным лицом, по умолчанию false-->
164 <!--Num — порядковый номер пассажира, начинается с 1-->
165 <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок-->
166 <!--TravellerId — устаревший параметр, не используется-->
167 <Meal>?</Meal>
168 <!--Meal — код типа питания, возможные значения:
169 NONE — отсутствует
170 AVML — Азиатская вегетарианская кухня
171 BLML — Блюда щадящей диеты
172 CHML — Детское питание
173 CHPC — Детский холодный завтрак
174 СНСС — Детский горячий завтрак
175 CHHC — Детский ланч, ветчина и сыр
176 PBJS — Детский ланч, ореховое масло
177 CHMC — Детский обед макароны с сыром
178 DBML — Диабетическое питание
179 FPML — Фрукты
180 GFML — Питание без клейковины
181 HFML — Питание богатое клетчаткой
182 HNML — Индусская кухня
183 BBML — Питание для младенцев
184 KSML — Кошерная кухня
185 SMKB — Кошерный завтрак
186 SMKL — Кошерный ланч
187 SMKD — Кошерный обед
188 LPML — Малобелковое питание
189 LCML — Низкокалорийное питание
190 LFML — Низкохолестериновое питание
191 PRML — Низкопуриновое питание
192 LSML — Малосоленое питание
193 MOML — Мюсли
194 NLML — Безмолочные продукты
195 ORML — Восточная кухня
196 RVML — Сырые овощи
197 SFML — Морепродукты
198 SPML — Особое питание
199 VLML — Вегетарианское, молоко и яйца
200 VGML — Строго вегетарианское питание
201 VJML — Джайнизское вегетарианское
202 VOML — Восточное вегетарианское питание-->
203 <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
204 <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
205 <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
206 <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)-->
207 <FirstName>?</FirstName>
208 <!--FirstName — имя пассажира-->
209 <LastName>?</LastName>
210 <!--LastName — фамилия пассажира-->
211 <!--Optional:-->
212 <MiddleName>?</MiddleName>
213 <!--MiddleName — отчество пассажира-->
214 </PersonalInfo>
215 <LoyaltyCard OpCode="?" Number="?"/>
216 <!--OpCode — код авиакомпании-->
217 <!--Number — номер карточки-->
218 <ContactInfo>
219 <!--Optional:-->
220 <EmailID>?</EmailID>
221 <!--EmailID — контактный email-->
222 <!--Optional:-->
223 <Telephone Type="?">
224 <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий-->
225 <!--Optional:-->
226 <PhoneNumber>?</PhoneNumber>
227 <!--PhoneNumber — номер телефона-->
228 <!--Optional:-->
229 <CountryAccessCode>?</CountryAccessCode>
230 <!--CountryAccessCode — код страны-->
231 <!--Optional:-->
232 <AreaCityCode>?</AreaCityCode>
233 <!--AreaCityCode — код региона/города-->
234 </Telephone>
235 </ContactInfo>
236 <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
237 <!--DocType — тип документа, возможные значения:
238 Р — Паспорт
239 A – Паспорт иностранца
240 С — Внутренний гражданский паспорт
241 F – Документ заменяющий паспорт
242 М — Воинское удостоверение
243 N – Сертификат натурализации(специфичный документ США)
244 T – Док.повторного въезда, паспорт беженца
245 V – Документ для пересечения границы-->
246 <!--DocNum — номер документа-->
247 <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
248 <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
249 <AcquiredDocuments TicketNumber="?">
250 <!-- TicketNumber — номер выписанного билета-->
251 <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
252 <!--Num — номер визы-->
253 <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы-->
254 <!--IssueCountry — страна выдачи визы-->
255 <!--IssuePlace — место выдачи визы-->
256 <!--BirthCountry — страна рождения(IATA код страны)-->
257 <!--BirthCity — город рождения(название)-->
258 <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
259 <!--City — город-->
260 <!--State — штат или область въезда-->
261 <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.-->
262 <!--PostalCode — почтовый код-->
263 <!--CountryCode — код страны-->
264 <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/>
265 <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
266 <!--SmokingAllowed — булевское значение, true — место для курящих, false — место для некурящих-->
267 <!--Location — положение места в ряде, возможные значения:
268 W — у окна (Window)
269 M — где-то в середине ряда (Middle)
270 NPW — возле прохода (NearPassengerWay)
271 NS — нет предпочтения (NotSpecified)-->
272 <!--RowNumber — номер ряда-->
273 <!--PlaceNumber — номер места-->
274 <!--SegNumber — номер сегмента-->
275 <DocStringFormats>
276 <!--Zero or more repetitions:-->
277 <DocStringFormat>?</DocStringFormat>
278 <!--DocStringFormat — формат паспортной строки, возможные значения:
279 DOCS — строка формата DOCS, FOID — строка формата FOID-->
280 </DocStringFormats>
281 </Traveller>
282 </Travellers>
283 </BookFlight>
284 <Requisites/>
285 <RequestType xsi:nil="true"/>
286 <UserID xsi:nil="true"/>
287 <Errors>
288 <Error Code="?">
289 <!--Code — код ошибки в системе Nemo-->
290 <ServiceErrorMessage>?</ServiceErrorMessage>
291 <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика-->
292 <Message>?</Message>
293 <!--Message — сообщение об ошибке от системы Nemo-->
294 </Error>
295 </Errors>
296 </Response>
297 </ResponseBin>
298 </ns1:TicketingResponse>
299 </SOAP-ENV:Body>
300 </SOAP-ENV:Envelope>
Общий формат запроса / ответа войдирования
Данный запрос запускается после выписки билета, если необходимо его отменить.
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=VoidTicket
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DVoidTicket">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:VoidTicket>
5 <RequestBin>
6 <Request>
7 <VoidTicket>
8 <BookID>?</BookID>
9 <!--BookID — Id брони в системе Nemo, целое число-->
10 </VoidTicket>
11 </Request>
12 <Source>
13 <ClientId>?</ClientId>
14 <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
15 "Администрирование" ⇨ "Веб-служба. Авторизация".-->
16 <APIKey>?</APIKey>
17 <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
18 "Администрирование" ⇨ "Веб-служба. Авторизация".-->
19 <Language>?</Language>
20 <!--Language — язык, например: RU-->
21 <Currency>?</Currency>
22 <!-- Currency — валюта, например: RUB, EUR-->
23 </Source>
24 </RequestBin>
25 </ver:VoidTicket>
26 </soapenv:Body>
27 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DVoidTicket" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:VoidTicketResponse>
4 <ResponseBin>
5 <Response>
6 <VoidTicket BookID="?">
7 <!--BookID — Id брони в системе Nemo, целое число-->
8 <Result Success="?"/>
9 <!--Sucscess — результат отмены выписки, true или false-->
10 </VoidTicket>
11 <Requisites/>
12 <RequestType xsi:nil="true"/>
13 <UserID xsi:nil="true"/>
14 <Errors xsi:nil="true"/>
15 </Response>
16 </ResponseBin>
17 </ns1:VoidTicketResponse>
18 </SOAP-ENV:Body>
19 </SOAP-ENV:Envelope>