727
правок
Изменения
→Информация
{{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}} [[Категория:Интеграция]][[Категория:Агентский API]]<!-- -->== Информация = Агентский АПИ выписки =
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета.
Дополнительно была реализована настройка {{Setting|Допустимые IP адреса}} в разделе '''Настройки системы → Интеграция → Nemo 1.0 (SOAP API)''' , определяющая диапазон IP-адресов для дополнительной защиты учётных записей, под которыми происходит выписка билета без оплаты или фиксации оплаты. IP-адреса имеют следующий допустимый формат: <syntaxhighlight lang="text" enclose="none" style="font-size: 1em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">125.125.25.5/8</syntaxhighlight>, то есть возможно задавать с маской подсети. Выполнение запроса Ticketing без оплаты возможно только при работе под менеджером головного агентства, либо в случае использования значения "CC" в элементе PassengerFops. {{Attention|При отсутствии в нашей системе данных о локаторе брони в системе авиакомпании операция выписки невозможна. Поэтому в ответе на запрос Ticketing может возвращаться ошибка вида «Запрошенная операция не разрешена для данного объекта».В случае отсутствия на стороне GDS данных о локаторе брони в системе авиакомпании, в параметре Segments.Segment.SupplierCode в ответе на запрос BookFlight будет возвращено пустое значение. В этом случае необходимо произвести отправку запроса [[Дополнительные_запросы_АПИ_авиабилетов#.D0.97.D0.B0.D0.BF.D1.80.D0.BE.D1.81_.D0.BD.D0.B0_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B7.D0.B0.D0.BA.D0.B0.D0.B7.D0.B0 | UpdateBook]] несколько раз, пока на стороне GDS информация не будет получена о локаторе брони в системе авиакомпании. После этого наша система получит от GDS данное значение. Запрос выписки билетов может быть отправлен только после того, как в параметре Segments.Segment.SupplierCode в ответе от Агентского API Nemo 21 будет получено ненулевое значение.0 }} В {{NameProject2}} в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет:
*сообщать ВП (валидирующего перевозчика) по данной комбинации;*сообщать комиссию по данной комбинации;*сообщать эндорсменты по данной комбинации;*принимать запрос на тикетинг;*проверять наличие брони в ГДСГРС;*синхронизировать бронь;*выписывать билет;* передавать дополнительную информацию в ремарках;*войдировать билет.
== Общий формат запроса / ответа выписки ==Данный запрос запускается после оплаты заказа, может быть запущен как в ручную - ручном режиме — пользователем, у которого есть на это права, так и автоматически при использовании соответствующей опции. Выписать неоплаченный не оплаченный заказ через Nemo возможности нет{{NameSystem}} можно только с определенный IP-адресов, список которых настраивается в разделе настроек, описанном выше. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы, с истекшим таймлимитом выписаны через Nemo быть не могутвыписать нельзя.
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing
<Ticketing>
<BookID>?</BookID>
<!--BookID - — Id заказа в системе Nemonemo.travel-->
<ValCompany>?</ValCompany>
<!--ValCompany - — валидирующий перевозчик (тот кто выписывает билет)-->
<Comission Amount="?" Percent="?" CurrencyCode="?"/>
<!--Comission Amount - — комиссии, указываются или в валюте, или в процентах, для валюты обязательным является
код валюты. Если указана и в валюте и в процентах, то у поставщика комиссия устанавливается в валюте-->
<!--Amount - — комиссия в валюте--> <!--Percent - — комиссия в процентах--> <!--CurrencyCode — код валюты комиссии-- > <PassengerFops> <!--Zero or more repetitions:--> <PassengerFop> <PassengerId>?</PassengerId> <!--PassengerId — порядковый номер пассажира в перелете--> <Fops> <!--Zero or more repetitions:--> <Fop> <Type>?</Type> <!--Type — форма оплаты: CC (по кредитной карте) или СА (наличными)--> <Money Currency="?">?</Money> <!--Money — сумма платежа--> <!--Currency — код валюты комиссии--> <VendorCode>?</VendorCode> <!--VendorCode — код типа карты: (например, VI — Visa, MC — MasterCard, AX — American Express DC — DCL, CA — EURO, IK — EURO, JB — JCB, JC — JCB, BA — Visa)--> <Number>?</Number> <!--Number — номер карты--> <ExpireDate>?</ExpireDate> <!--ExpireDate — срок действия карты, например 12.2020--> <ManualApprovalCode>?</ManualApprovalCode> <!--ManualApprovalCode - Код преавторизации транзакции, по которой были заблокированы средства для выписки. Это НЕ CVV код. Необязательный. Если не указан, то он будет автоматически получен нашей системой через ГРС/--> </Fop> </Fops> </PassengerFop> </PassengerFops> <DataItems> <!--Zero or more repetitions:--> <DataItem> <Type>Remark</Type> <!--Type — тип контента в данном блоке, например: Meal, Remark--> <Remark> <Type>?</Type> <!--Type — тип ремарки, например: General, Historical--> <Text>?</Text> <!--Text — содержание ремарки--> </Remark> </DataItem> </DataItems>
</Ticketing>
</Request>
<Source>
<ClientId>?</ClientId>
<!--ClientId - — ID клиента в системе Nemonemo.travel. Можно посмотреть/добавить в разделе "Администрирование" ⇨ "Веб-служба«Настройки системы» → «Интеграция» → «Nemo 1. Авторизация"0 (SOAP API)».-->
<APIKey>?</APIKey>
<!--APIKey - — секретный ключ доступа к API Nemonemo.travel. Можно посмотреть/добавить в разделе "Администрирование" ⇨ "Веб-служба«Настройки системы» → «Интеграция» → «Nemo 1. Авторизация"0 (SOAP API)».-->
<Language>?</Language>
<!--Language - — язык, например: RU-->
<Currency>?</Currency>
<!-- Currency - — валюта, например: RUB, EUR-->
</Source>
</RequestBin>
<Response>
<Ticketing ID="?" Status="?" Code="?">
<!--ID - — Id брони в системе немоnemo.travel, целое число, обязательный--> <!--Status - — индикатор состояния брони, возможные значения: booked - — забронировано, canceled - — бронь отменена, ticket - — выписана UNDEFINED - — статус не определён--> <!--Code - — код брони в системе поставщика-->
<QueryPlace xsi:nil="true"/>
<!--QueryPlace - — положение брони в очереди, Number - — номер брони в очереди-->
<Flight FlightId="?">
<!--FlightId - — Id перелёта в системе Nemonemo.travel-->
<WebService>?</WebService>
<!--WebService - — поставщик перелёта-->
<ValCompany>?</ValCompany>
<!--ValCompany - — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
<URL>?</URL>
<!--URL - — ссылка на бронирование конкретного перелета-->
<Segments>
<Segment SegNum="?" SegGroupNum="?">
<!--SegNum - — номер сегмента в перелёте-->
<!--SegGroupNum – номер плеча перелёта-->
<SupplierCode>?</SupplierCode>
<!--SupplierCode – номер заказа в системе АК-->
<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 - — авиакомпания, продающая перелёт--> <MarkAirlineName>?</MarkAirlineName> <!--MarkAirlineName - полное наименование АК на кириллице-->
<FlightNumber>?</FlightNumber>
<!--FlightNumber - — номер рейса--> <AircraftName>?</AircraftName> <!--AircraftName — наименование воздушного судна-->
<AircraftType>?</AircraftType>
<!--AircraftType - — тип воздушного судна, код-->
<DepDateTime>?</DepDateTime>
<!--DepDateTime - — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<ArrDateTime>?</ArrDateTime>
<!--ArrDateTime - — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<StopNum>?</StopNum>
<!--StopNum - — количество остановок--> <StopPoints> <!--StopPoints — информация о технических остановках, если они есть--> <StopPoint> <AirportCode>?</AirportCode> <!--AirportCode — код аэропорта остановки, трех символьный iata код--> <UTC>?</UTC> <!--UTC — сдвиг часового пояса аэропорта--> <ArrDateTime>?</ArrDateTime> <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> <DepDateTime>?</DepDateTime> <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> </StopPoint> </StopPoints>
<BookingCodes>
<BookingCode ClassType="?">
<!--ClassType - — класс перелета, например: economy-->
<BookingCode>?</BookingCode>
<!--BookingCode - — код класса бронирования, у разных авиакомпаний один и тот же класс
может записываться разными литерами, например: L-->
</BookingCode>
</BookingCodes>
<FlightTime>?</FlightTime>
<!--FlightTime - — время перелёта в минутах-->
<TimeZone Departure="?" Arrival="?"/>
<!--Departure временная зона аэропорта отправления-->
<!--Arrival - — временная зона аэропорта прибытия-->
<ETicket>?</ETicket>
<!--ETicket - — признак электронного билета, значения: true / false--> <isCharter>?</isCharter> <!--isCharter — признак чартерного перелета, значения: true / false--> <BaggageAllowances> <!--BaggageAllowances — информация о багаже--> <BaggageAllowance> <PassengerType>?</PassengerType> <!--PassengerType — тип пассажира, соответстует типу тарифа в PricingInfo --> <Value>?</Value> <!--Value — количество--> <Measurement>?</Measurement> <!--Measurement — мера измерения, может принимать значения: kg — килограмм, pc — багажное место, lb — фунт--> </BaggageAllowance> </BaggageAllowances>
</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ЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.-->
</PassengerFare>
</PricingInfo>
<CommissionCurrency="?">?</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"/>
<PaymentTransactions>
<Transaction>
<Id>?</Id>
<!--Id — номер транзакции в Немо-->
<Status>?</Status>
<!--Status — статус транзакции-->
<GatewayName>?</GatewayName>
<!--GatewayName — название платежного шлюза-->
<MoneyPaid Currency="?">?</MoneyPaid>
<!--MoneyPaid — сумма оплаты-->
<!--Currency — валюта-->
<PaymentDateTime>?</PaymentDateTime>
<!--PaymentDateTime — дата и время оплаты-->
<CreateDateTime>?</CreateDateTime>
<!--CreateDateTime — дата и время создания платежной транзакции-->
<Description/>
</Transaction>
</PaymentTransactions>
<PaymentStatus>?</PaymentStatus>
<!--PaymentStatus — статус оплаты:
not_paid — не оплачено
partly_paid — оплачено, частично
fully_paid — оплачено, полностью-->
<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)--> <Ticket TicketNum="?"> <!-- TicketNum — номер выписанного билета-->
<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>
<AutoCancelDate>?</AutoCancelDate> <!--AutoCancelDate — дата и время таймлимита автоаннуляции в формате ГГГГ-MM-ДДTЧЧ:ММ:СС определяемые по настройкам агентства--> <TimeLimits> <TicketingTimeLimit>?</TicketingTimeLimit> <!--TicketingTimeLimit — Таймлимит на выписку в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> <PriceTimeLimit>?</PriceTimeLimit> <!--PriceTimeLimit — Таймлимит цены из ГРС в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> <AdvancedPurchaseTimeLimit>?</AdvancedPurchaseTimeLimit> <!--AdvancedPurchaseTimeLimit — Таймлимит цены из тарифных правил в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> <AgencyTimeLimit>?</AgencyTimeLimit> <!--AgencyTimeLimit - Таймлимит по настройкам в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> </TimeLimits> </BookFlightTicketing>
<Requisites/>
<RequestType xsi:nil="true"/>
<UserID xsi:nil="true"/>
</Response>
</ResponseBin>
</div>
== Общий формат запроса / ответа войдирования ==
Данный запрос запускается после выписки билета, если необходимо его отменить.
<VoidTicket>
<BookID>?</BookID>
<!--BookID - — Id брони в системе Nemonemo.travel, целое число-->
</VoidTicket>
</Request>
<Source>
<ClientId>?</ClientId>
<!--ClientId - — ID клиента в системе Nemonemo.travel. Можно посмотреть/добавить в разделе "Администрирование" ⇨ "Веб-служба«Настройки системы» → «Интеграция» → «Nemo 1. Авторизация"0 (SOAP API)».-->
<APIKey>?</APIKey>
<!--APIKey - — секретный ключ доступа к API Nemonemo.travel. Можно посмотреть/добавить в разделе "Администрирование" ⇨ "Веб-служба«Настройки системы» → «Интеграция» → «Nemo 1. Авторизация"0 (SOAP API)».-->
<Language>?</Language>
<!--Language - — язык, например: RU-->
<Currency>?</Currency>
<!-- Currency - — валюта, например: RUB, EUR-->
</Source>
</RequestBin>
<Response>
<VoidTicket BookID="?">
<!--BookID - — Id брони в системе Nemonemo.travel, целое число-->
<Result Success="?"/>
<!--Sucscess - — результат отмены выписки, true или false-->
</VoidTicket>
<Requisites/>
<RequestType xsi:nil="true"/>
<UserID xsi:nil="true"/>
<Errors xsi:nilError Code="true?">Сообщение об ошибке</Error>
</Response>
</ResponseBin>
== См. также ==
*[[Агентский АПИAPI Авиабилеты]]*[[Бронирование]] * [[Категория:ИнтеграцияДополнительные запросы АПИ авиабилетов]]