ПОДПИСЫВАЙТЕСЬ НА НАШ ТЕЛЕГРАМ-КАНАЛ @nemo_travel_official

Веб-служба выписки: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Ответ)
(Информация)
 
(не показано 47 промежуточных версий 13 участников)
Строка 1: Строка 1:
 +
{{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}}
 +
 +
[[Категория:Интеграция]]
 +
[[Категория:Агентский API]]
 +
<!-- -->
 
== Информация ==
 
== Информация ==
  
 
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета.
 
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета.
  
<span style="background-color:#fff0f5;"><span style="font-size:large;"><span style="color:#ff0000;">!</span></span> Как правило для выписки билета достаточно чтобы у заказа был статус "Оплачено". При включенной опции '''''«Для успешных бронирований производить оформление: автоматически после изменения статуса на "Оплачено"»''''' из раздела '''«Заказы»''' ⇨ '''«Настройки бронирования»''' билет будет автоматически выписан после оплаты.
+
Как правило для выписки билета достаточно чтобы у заказа был статус «Оплачено». При включенной опции {{Setting|Для успешных бронирований производить оформление: автоматически после изменения статуса на «Оплачено»}} из раздела '''Для техподдержки → Устаревшие настройки → Настройки бронирования''' билет будет автоматически выписан после оплаты. Однако, это является обязательным условием только для пользователей, имеется возможность получения выписки билета, не требующей оплаты, для этого необходимо чтобы у АПИ пользователя были соответствующие права. К примеру, АПИ учётка должна быть заведена на менеджера агентства.
  
В Nemo 2.0 в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет:
+
Дополнительно была реализована настройка {{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 1 будет получено ненулевое значение.}}
 +
 
 +
В {{NameProject2}} в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет:
 
   
 
   
*сообщать ВП (валидирующего перевозчика) по данной комбинации;
+
* сообщать ВП (валидирующего перевозчика) по данной комбинации
*сообщать комиссию по данной комбинации;
+
* сообщать комиссию по данной комбинации;
*сообщать эндорсменты по данной комбинации;
+
* сообщать эндорсменты по данной комбинации;
*принимать запрос на тикетинг;
+
* принимать запрос на тикетинг;
*проверять наличие брони в ГДС;
+
* проверять наличие брони в ГРС;
*синхронизировать бронь;
+
* синхронизировать бронь;
*выписывать билет;
+
* выписывать билет;
*войдировать билет.
+
* передавать дополнительную информацию в ремарках;
 
+
* войдировать билет.
  
 
== Общий формат запроса / ответа выписки ==
 
== Общий формат запроса / ответа выписки ==
Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать неоплаченный заказ через Nemo возможности нет. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы, с истекшим таймлимитом выписать нельзя.
+
Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать не оплаченный заказ через {{NameSystem}} можно только с определенный IP-адресов, список которых настраивается в разделе настроек, описанном выше. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы с истекшим таймлимитом выписать нельзя.
  
 
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing
 
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing
Строка 34: Строка 44:
 
               <Ticketing>
 
               <Ticketing>
 
                   <BookID>?</BookID>
 
                   <BookID>?</BookID>
                   <!--BookID — Id заказа в системе Nemo-->
+
                   <!--BookID — Id заказа в системе nemo.travel-->
 
                   <ValCompany>?</ValCompany>
 
                   <ValCompany>?</ValCompany>
 
                   <!--ValCompany — валидирующий перевозчик (тот кто выписывает билет)-->
 
                   <!--ValCompany — валидирующий перевозчик (тот кто выписывает билет)-->
Строка 47: Строка 57:
 
                     <PassengerFop>
 
                     <PassengerFop>
 
                         <PassengerId>?</PassengerId>
 
                         <PassengerId>?</PassengerId>
                         <!--PassengerId - порядковый номер пассажира в перелете-->
+
                         <!--PassengerId порядковый номер пассажира в перелете-->
 
                         <Fops>
 
                         <Fops>
 
                           <!--Zero or more repetitions:-->
 
                           <!--Zero or more repetitions:-->
 
                           <Fop>
 
                           <Fop>
 
                               <Type>?</Type>
 
                               <Type>?</Type>
                               <!--Type - форма оплаты: CC (по кредитной карте) или СА (наличными)-->
+
                               <!--Type форма оплаты: CC (по кредитной карте) или СА (наличными)-->
 
                               <Money Currency="?">?</Money>
 
                               <Money Currency="?">?</Money>
                               <!--Money - сумма платежа-->
+
                               <!--Money сумма платежа-->
                               <!--Currency - код валюты-->
+
                               <!--Currency код валюты-->
 
                               <VendorCode>?</VendorCode>
 
                               <VendorCode>?</VendorCode>
                               <!--VendorCode - код типа карты: (например, VI - Visa,  
+
                               <!--VendorCode код типа карты: (например, VI Visa,  
                                                                           MC - MasterCard,  
+
                                                                           MC MasterCard,  
                                                                           AX - American Express
+
                                                                           AX American Express
                                                                           DC - DCL,
+
                                                                           DC DCL,
                                                                           CA - EURO,
+
                                                                           CA EURO,
                                                                           IK - EURO,
+
                                                                           IK EURO,
                                                                           JB - JCB,
+
                                                                           JB JCB,
                                                                           JC - JCB,
+
                                                                           JC JCB,
                                                                           BA - Visa)-->
+
                                                                           BA Visa)-->
 
                               <Number>?</Number>
 
                               <Number>?</Number>
                               <!--Number - номер карты-->
+
                               <!--Number номер карты-->
 
                               <ExpireDate>?</ExpireDate>
 
                               <ExpireDate>?</ExpireDate>
                               <!--ExpireDate - срок действия карты, например 12.2020-->
+
                               <!--ExpireDate срок действия карты, например 12.2020-->
 
                               <ManualApprovalCode>?</ManualApprovalCode>
 
                               <ManualApprovalCode>?</ManualApprovalCode>
                               <!--ManualApprovalCode - код проверки подлинности карты платёжной системы, например, 123-->
+
                               <!--ManualApprovalCode - Код преавторизации транзакции, по которой были заблокированы средства для выписки. Это НЕ CVV код. Необязательный. Если не указан, то он будет автоматически получен нашей системой через ГРС/-->
 
                           </Fop>
 
                           </Fop>
 
                         </Fops>
 
                         </Fops>
 
                     </PassengerFop>
 
                     </PassengerFop>
 
                   </PassengerFops>
 
                   </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>
 
               </Ticketing>
 
             </Request>
 
             </Request>
 
             <Source>
 
             <Source>
 
               <ClientId>?</ClientId>
 
               <ClientId>?</ClientId>
               <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
+
               <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе
               "Администрирование" ⇨ "Веб-служба. Авторизация".-->
+
               «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
 
               <APIKey>?</APIKey>
 
               <APIKey>?</APIKey>
               <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
+
               <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе
               "Администрирование" ⇨ "Веб-служба. Авторизация".-->
+
               «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
 
               <Language>?</Language>
 
               <Language>?</Language>
 
               <!--Language — язык, например: RU-->
 
               <!--Language — язык, например: RU-->
Строка 109: Строка 132:
 
             <Response>
 
             <Response>
 
               <Ticketing ID="?" Status="?" Code="?">
 
               <Ticketing ID="?" Status="?" Code="?">
               <!--ID — Id брони в системе Nemo, целое число, обязательный-->
+
               <!--ID — Id брони в системе nemo.travel, целое число, обязательный-->
 
               <!--Status — индикатор состояния брони, возможные значения:
 
               <!--Status — индикатор состояния брони, возможные значения:
 
                                                 booked — забронировано,
 
                                                 booked — забронировано,
Строка 119: Строка 142:
 
                   <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
 
                   <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
 
                   <Flight FlightId="?">
 
                   <Flight FlightId="?">
                   <!--FlightId — Id перелёта в системе Nemo-->
+
                   <!--FlightId — Id перелёта в системе nemo.travel-->
 
                     <WebService>?</WebService>
 
                     <WebService>?</WebService>
 
                     <!--WebService — поставщик перелёта-->
 
                     <!--WebService — поставщик перелёта-->
Строка 130: Строка 153:
 
                         <!--SegNum — номер сегмента в перелёте-->
 
                         <!--SegNum — номер сегмента в перелёте-->
 
                         <!--SegGroupNum – номер плеча перелёта-->
 
                         <!--SegGroupNum – номер плеча перелёта-->
 +
                          <SupplierCode>?</SupplierCode>
 +
                          <!--SupplierCode – номер заказа в системе АК-->
 
                           <DepAirp CodeType="IATA">?</DepAirp>
 
                           <DepAirp CodeType="IATA">?</DepAirp>
 
                           <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
 
                           <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
Строка 150: Строка 175:
 
                           <!--FlightNumber — номер рейса-->
 
                           <!--FlightNumber — номер рейса-->
 
                           <AircraftName>?</AircraftName>
 
                           <AircraftName>?</AircraftName>
                           <!--AircraftName - наименование воздушного судна-->
+
                           <!--AircraftName наименование воздушного судна-->
 
                           <AircraftType>?</AircraftType>
 
                           <AircraftType>?</AircraftType>
 
                           <!--AircraftType — тип воздушного судна, код-->
 
                           <!--AircraftType — тип воздушного судна, код-->
Строка 159: Строка 184:
 
                           <StopNum>?</StopNum>
 
                           <StopNum>?</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>
 
                           <BookingCodes>
 
                               <BookingCode ClassType="?">
 
                               <BookingCode ClassType="?">
Строка 174: Строка 212:
 
                           <ETicket>?</ETicket>
 
                           <ETicket>?</ETicket>
 
                           <!--ETicket — признак электронного билета, значения: true / false-->
 
                           <!--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>
 
                         </Segment>
 
                     </Segments>
 
                     </Segments>
Строка 179: Строка 230:
 
                     <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
 
                     <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
 
                         <PassengerFare Type="?" Quantity="?">
 
                         <PassengerFare Type="?" Quantity="?">
                         <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
+
                         <!--Type — тип тарифа-->
                        INF — младенцы, INS — младенцы с местом-->
 
 
                         <!--Quantity — количество пассажиров данного типа-->
 
                         <!--Quantity — количество пассажиров данного типа-->
 
                           <BaseFare Currency="?" Amount="?"/>
 
                           <BaseFare Currency="?" Amount="?"/>
Строка 201: Строка 251:
 
                           <!--FareCalc — строка расчёта цены-->
 
                           <!--FareCalc — строка расчёта цены-->
 
                           <LastTicketDateTime>?</LastTicketDateTime>
 
                           <LastTicketDateTime>?</LastTicketDateTime>
                           <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
+
                           <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.-->
 
                         </PassengerFare>
 
                         </PassengerFare>
 
                     </PricingInfo>
 
                     </PricingInfo>
Строка 238: Строка 288:
 
                     <Transaction>
 
                     <Transaction>
 
                         <Id>?</Id>
 
                         <Id>?</Id>
                         <!--Id - номер транзакции в Немо-->
+
                         <!--Id номер транзакции в Немо-->
 
                         <Status>?</Status>
 
                         <Status>?</Status>
                         <!--Status - статус транзакции-->
+
                         <!--Status статус транзакции-->
 
                         <GatewayName>?</GatewayName>
 
                         <GatewayName>?</GatewayName>
                         <!--GatewayName - название платежного шлюза-->
+
                         <!--GatewayName название платежного шлюза-->
 
                         <MoneyPaid Currency="?">?</MoneyPaid>
 
                         <MoneyPaid Currency="?">?</MoneyPaid>
                         <!--MoneyPaid - сумма оплаты-->
+
                         <!--MoneyPaid сумма оплаты-->
                         <!--Currency - валюта-->
+
                         <!--Currency валюта-->
 
                         <PaymentDateTime>?</PaymentDateTime>
 
                         <PaymentDateTime>?</PaymentDateTime>
                         <!--PaymentDateTime - дата и время оплаты-->
+
                         <!--PaymentDateTime дата и время оплаты-->
 
                         <CreateDateTime>?</CreateDateTime>
 
                         <CreateDateTime>?</CreateDateTime>
                         <!--CreateDateTime - дата и время создания платежной транзакции-->
+
                         <!--CreateDateTime дата и время создания платежной транзакции-->
 
                         <Description/>
 
                         <Description/>
 
                     </Transaction>
 
                     </Transaction>
 
                   </PaymentTransactions>
 
                   </PaymentTransactions>
 
                   <PaymentStatus>?</PaymentStatus>
 
                   <PaymentStatus>?</PaymentStatus>
                   <!--PaymentStatus - статус оплаты:
+
                   <!--PaymentStatus статус оплаты:
 
                                         not_paid — не оплачено
 
                                         not_paid — не оплачено
 
                                         partly_paid — оплачено, частично
 
                                         partly_paid — оплачено, частично
Строка 262: Строка 312:
 
                     <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
 
                     <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
 
                     <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
 
                     <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
                     CNN — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
+
                     CNN — дети, UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
 
                     <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
 
                     <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
 
                       контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
 
                       контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
 
                     может быть контактным лицом, по умолчанию false-->
 
                     может быть контактным лицом, по умолчанию false-->
 
                     <!--Num — порядковый номер пассажира, начинается с 1-->
 
                     <!--Num — порядковый номер пассажира, начинается с 1-->
                     <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок-->
+
                     <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)-->
                    <!--TravellerId — устаревший параметр, не используется-->
+
                    <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра-->
 
                         <Meal>?</Meal>
 
                         <Meal>?</Meal>
 
                         <!--Meal — код типа питания, возможные значения:
 
                         <!--Meal — код типа питания, возможные значения:
Строка 351: Строка 401:
 
                         <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
 
                         <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
 
                         <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
 
                         <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
 +
                        <Ticket TicketNum="?">
 +
                        <!-- TicketNum — номер выписанного билета-->
 
                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
 
                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
 
                         <!--Num — номер визы-->
 
                         <!--Num — номер визы-->
Строка 383: Строка 435:
 
                     </Traveller>
 
                     </Traveller>
 
                   </Travellers>
 
                   </Travellers>
               </BookFlight>
+
                  <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>
 +
               </Ticketing>
 
               <Requisites/>
 
               <Requisites/>
 
               <RequestType xsi:nil="true"/>
 
               <RequestType xsi:nil="true"/>
 
               <UserID xsi:nil="true"/>
 
               <UserID xsi:nil="true"/>
               <Errors>
+
               <Error Code="?">Сообщение об ошибке</Error>
                  <Error Code="?">
 
                  <!--Code — код ошибки в системе Nemo-->
 
                    <ServiceErrorMessage>?</ServiceErrorMessage>
 
                    <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика-->
 
                    <Message>?</Message>
 
                    <!--Message — сообщение об ошибке от системы Nemo-->
 
                  </Error>
 
              </Errors>
 
 
             </Response>
 
             </Response>
 
         </ResponseBin>
 
         </ResponseBin>
Строка 422: Строка 478:
 
               <VoidTicket>
 
               <VoidTicket>
 
                   <BookID>?</BookID>
 
                   <BookID>?</BookID>
                   <!--BookID — Id брони в системе Nemo, целое число-->
+
                   <!--BookID — Id брони в системе nemo.travel, целое число-->
 
               </VoidTicket>
 
               </VoidTicket>
 
             </Request>
 
             </Request>
 
             <Source>
 
             <Source>
 
               <ClientId>?</ClientId>
 
               <ClientId>?</ClientId>
               <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
+
               <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе
               "Администрирование" ⇨ "Веб-служба. Авторизация".-->
+
               «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
 
               <APIKey>?</APIKey>
 
               <APIKey>?</APIKey>
               <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
+
               <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе
               "Администрирование" ⇨ "Веб-служба. Авторизация".-->
+
               «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
 
               <Language>?</Language>
 
               <Language>?</Language>
 
               <!--Language — язык, например: RU-->
 
               <!--Language — язык, например: RU-->
Строка 455: Строка 511:
 
             <Response>
 
             <Response>
 
               <VoidTicket BookID="?">
 
               <VoidTicket BookID="?">
               <!--BookID — Id брони в системе Nemo, целое число-->
+
               <!--BookID — Id брони в системе nemo.travel, целое число-->
 
                   <Result Success="?"/>
 
                   <Result Success="?"/>
 
                   <!--Sucscess — результат отмены выписки, true или false-->
 
                   <!--Sucscess — результат отмены выписки, true или false-->
Строка 462: Строка 518:
 
               <RequestType xsi:nil="true"/>
 
               <RequestType xsi:nil="true"/>
 
               <UserID xsi:nil="true"/>
 
               <UserID xsi:nil="true"/>
               <Errors xsi:nil="true"/>
+
               <Error Code="?">Сообщение об ошибке</Error>
 
             </Response>
 
             </Response>
 
         </ResponseBin>
 
         </ResponseBin>
Строка 474: Строка 530:
 
== См. также ==
 
== См. также ==
  
*[[Агентский АПИ]]
+
* [[Агентский API Авиабилеты]]
*[[Бронирование]]
+
* [[Бронирование]]
 
+
* [[Дополнительные запросы АПИ авиабилетов]]
[[Категория:Интеграция]]
 

Текущая версия на 17:09, 20 сентября 2022

Внимание! В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по ссылке

Информация

Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета.

Как правило для выписки билета достаточно чтобы у заказа был статус «Оплачено». При включенной опции Для успешных бронирований производить оформление: автоматически после изменения статуса на «Оплачено» из раздела Для техподдержки → Устаревшие настройки → Настройки бронирования билет будет автоматически выписан после оплаты. Однако, это является обязательным условием только для пользователей, имеется возможность получения выписки билета, не требующей оплаты, для этого необходимо чтобы у АПИ пользователя были соответствующие права. К примеру, АПИ учётка должна быть заведена на менеджера агентства.

Дополнительно была реализована настройка Допустимые IP адреса в разделе Настройки системы → Интеграция → Nemo 1.0 (SOAP API) , определяющая диапазон IP-адресов для дополнительной защиты учётных записей, под которыми происходит выписка билета без оплаты или фиксации оплаты. IP-адреса имеют следующий допустимый формат: 125.125.25.5/8, то есть возможно задавать с маской подсети. Выполнение запроса Ticketing без оплаты возможно только при работе под менеджером головного агентства, либо в случае использования значения "CC" в элементе PassengerFops.

Внимание! При отсутствии в нашей системе данных о локаторе брони в системе авиакомпании операция выписки невозможна. Поэтому в ответе на запрос Ticketing может возвращаться ошибка вида «Запрошенная операция не разрешена для данного объекта». В случае отсутствия на стороне GDS данных о локаторе брони в системе авиакомпании, в параметре Segments.Segment.SupplierCode в ответе на запрос BookFlight будет возвращено пустое значение. В этом случае необходимо произвести отправку запроса UpdateBook несколько раз, пока на стороне GDS информация не будет получена о локаторе брони в системе авиакомпании. После этого наша система получит от GDS данное значение. Запрос выписки билетов может быть отправлен только после того, как в параметре Segments.Segment.SupplierCode в ответе от Агентского API Nemo 1 будет получено ненулевое значение.

В Nemo Connect в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет:

  • сообщать ВП (валидирующего перевозчика) по данной комбинации
  • сообщать комиссию по данной комбинации;
  • сообщать эндорсменты по данной комбинации;
  • принимать запрос на тикетинг;
  • проверять наличие брони в ГРС;
  • синхронизировать бронь;
  • выписывать билет;
  • передавать дополнительную информацию в ремарках;
  • войдировать билет.

Общий формат запроса / ответа выписки

Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать не оплаченный заказ через Nemo.Travel можно только с определенный IP-адресов, список которых настраивается в разделе настроек, описанном выше. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы с истекшим таймлимитом выписать нельзя.

WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing

развернуть

Запрос

развернуть

Ответ

Общий формат запроса / ответа войдирования

Данный запрос запускается после выписки билета, если необходимо его отменить.

WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=VoidTicket

развернуть

Запрос

развернуть

Ответ

См. также