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

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Информация)
(Информация)
 
(не показаны 42 промежуточные версии 12 участников)
Строка 1: Строка 1:
 +
{{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}}
 +
 +
[[Категория:Интеграция]]
 +
[[Категория:Агентский API]]
 +
<!-- -->
 
== Информация ==
 
== Информация ==
  
 
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета.
 
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета.
  
Как правило для выписки билета достаточно чтобы у заказа был статус "Оплачено". При включенной опции '''''«Для успешных бронирований производить оформление: автоматически после изменения статуса на "Оплачено"''''' из раздела '''«Заказы»''' ⇨ '''«Настройки бронирования»''' билет будет автоматически выписан после оплаты. Однако, это не является обязательным условием, т.к. реализован дополнительный функционал, предоставляющий возможность получения выписки билета, не требующей оплаты. Такая опция реализована настройкой '''''«Допустимые ip адреса»''''' в разделе '''''«Администрирование»''' ⇨ '''«Веб-сервисы»''''', определяющей диапазон ip-адресов, для которых будет доступно получение выписки без оплаты. IP-адреса имеют следующий допустимый формат: 125.125.25.5/8, т.е. возможно задавать с маской подсети. При этом если диапазон допустимых ip-адресов не задан, то выписка билета, не требующая оплаты, будет допустима всем.
+
Как правило для выписки билета достаточно чтобы у заказа был статус «Оплачено». При включенной опции {{Setting|Для успешных бронирований производить оформление: автоматически после изменения статуса на «Оплачено»}} из раздела '''Для техподдержки → Устаревшие настройки → Настройки бронирования''' билет будет автоматически выписан после оплаты. Однако, это является обязательным условием только для пользователей, имеется возможность получения выписки билета, не требующей оплаты, для этого необходимо чтобы у АПИ пользователя были соответствующие права. К примеру, АПИ учётка должна быть заведена на менеджера агентства.
 +
 
 +
Дополнительно была реализована настройка {{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 будет получено ненулевое значение.}}
  
В Nemo 2.0 в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет:
+
В {{NameProject2}} в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет:
 
   
 
   
*сообщать ВП (валидирующего перевозчика) по данной комбинации;
+
* сообщать ВП (валидирующего перевозчика) по данной комбинации
*сообщать комиссию по данной комбинации;
+
* сообщать комиссию по данной комбинации;
*сообщать эндорсменты по данной комбинации;
+
* сообщать эндорсменты по данной комбинации;
*принимать запрос на тикетинг;
+
* принимать запрос на тикетинг;
*проверять наличие брони в ГДС;
+
* проверять наличие брони в ГРС;
*синхронизировать бронь;
+
* синхронизировать бронь;
*выписывать билет;
+
* выписывать билет;
*войдировать билет.
+
* передавать дополнительную информацию в ремарках;
 +
* войдировать билет.
  
 
== Общий формат запроса / ответа выписки ==
 
== Общий формат запроса / ответа выписки ==
Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать неоплаченный заказ через Nemo возможности нет. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы, с истекшим таймлимитом выписать нельзя.
+
Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать не оплаченный заказ через {{NameSystem}} можно только с определенный IP-адресов, список которых настраивается в разделе настроек, описанном выше. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы с истекшим таймлимитом выписать нельзя.
  
 
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing
 
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing
Строка 33: Строка 44:
 
               <Ticketing>
 
               <Ticketing>
 
                   <BookID>?</BookID>
 
                   <BookID>?</BookID>
                   <!--BookID — Id заказа в системе Nemo-->
+
                   <!--BookID — Id заказа в системе nemo.travel-->
 
                   <ValCompany>?</ValCompany>
 
                   <ValCompany>?</ValCompany>
 
                   <!--ValCompany — валидирующий перевозчик (тот кто выписывает билет)-->
 
                   <!--ValCompany — валидирующий перевозчик (тот кто выписывает билет)-->
Строка 46: Строка 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 - Код преавторизации транзакции, по которой были заблокированы средства для выписки. Это НЕ CVV код. Необязательный. Если не указан, то он будет автоматически получен нашей системой через GDS/-->
+
                               <!--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-->
Строка 108: Строка 132:
 
             <Response>
 
             <Response>
 
               <Ticketing ID="?" Status="?" Code="?">
 
               <Ticketing ID="?" Status="?" Code="?">
               <!--ID — Id брони в системе Nemo, целое число, обязательный-->
+
               <!--ID — Id брони в системе nemo.travel, целое число, обязательный-->
 
               <!--Status — индикатор состояния брони, возможные значения:
 
               <!--Status — индикатор состояния брони, возможные значения:
 
                                                 booked — забронировано,
 
                                                 booked — забронировано,
Строка 118: Строка 142:
 
                   <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
 
                   <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
 
                   <Flight FlightId="?">
 
                   <Flight FlightId="?">
                   <!--FlightId — Id перелёта в системе Nemo-->
+
                   <!--FlightId — Id перелёта в системе nemo.travel-->
 
                     <WebService>?</WebService>
 
                     <WebService>?</WebService>
 
                     <!--WebService — поставщик перелёта-->
 
                     <!--WebService — поставщик перелёта-->
Строка 129: Строка 153:
 
                         <!--SegNum — номер сегмента в перелёте-->
 
                         <!--SegNum — номер сегмента в перелёте-->
 
                         <!--SegGroupNum – номер плеча перелёта-->
 
                         <!--SegGroupNum – номер плеча перелёта-->
 +
                          <SupplierCode>?</SupplierCode>
 +
                          <!--SupplierCode – номер заказа в системе АК-->
 
                           <DepAirp CodeType="IATA">?</DepAirp>
 
                           <DepAirp CodeType="IATA">?</DepAirp>
 
                           <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
 
                           <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
Строка 149: Строка 175:
 
                           <!--FlightNumber — номер рейса-->
 
                           <!--FlightNumber — номер рейса-->
 
                           <AircraftName>?</AircraftName>
 
                           <AircraftName>?</AircraftName>
                           <!--AircraftName - наименование воздушного судна-->
+
                           <!--AircraftName наименование воздушного судна-->
 
                           <AircraftType>?</AircraftType>
 
                           <AircraftType>?</AircraftType>
 
                           <!--AircraftType — тип воздушного судна, код-->
 
                           <!--AircraftType — тип воздушного судна, код-->
Строка 158: Строка 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="?">
Строка 173: Строка 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>
Строка 178: Строка 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="?"/>
Строка 200: Строка 251:
 
                           <!--FareCalc — строка расчёта цены-->
 
                           <!--FareCalc — строка расчёта цены-->
 
                           <LastTicketDateTime>?</LastTicketDateTime>
 
                           <LastTicketDateTime>?</LastTicketDateTime>
                           <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
+
                           <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.-->
 
                         </PassengerFare>
 
                         </PassengerFare>
 
                     </PricingInfo>
 
                     </PricingInfo>
Строка 237: Строка 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 — оплачено, частично
Строка 261: Строка 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 — код типа питания, возможные значения:
Строка 350: Строка 401:
 
                         <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
 
                         <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
 
                         <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
 
                         <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
                         <AcquiredDocuments TicketNumber="?">
+
                         <Ticket TicketNum="?">
                         <!-- TicketNumber — номер выписанного билета-->
+
                         <!-- TicketNum — номер выписанного билета-->
 
                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
 
                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
 
                         <!--Num — номер визы-->
 
                         <!--Num — номер визы-->
Строка 384: Строка 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>
Строка 423: Строка 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-->
Строка 456: Строка 511:
 
             <Response>
 
             <Response>
 
               <VoidTicket BookID="?">
 
               <VoidTicket BookID="?">
               <!--BookID — Id брони в системе Nemo, целое число-->
+
               <!--BookID — Id брони в системе nemo.travel, целое число-->
 
                   <Result Success="?"/>
 
                   <Result Success="?"/>
 
                   <!--Sucscess — результат отмены выписки, true или false-->
 
                   <!--Sucscess — результат отмены выписки, true или false-->
Строка 463: Строка 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>
Строка 475: Строка 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

Запрос

 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.travel-->
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                   <DataItems>
52                      <!--Zero or more repetitions:-->
53                      <DataItem>
54                         <Type>Remark</Type>
55                         <!--Type — тип контента в данном блоке, например: Meal, Remark-->
56                         <Remark>
57                            <Type>?</Type>
58                            <!--Type — тип ремарки, например: General, Historical-->
59                            <Text>?</Text>
60                            <!--Text — содержание ремарки-->
61                         </Remark>
62                      </DataItem>
63                   </DataItems>
64                </Ticketing>
65             </Request>
66             <Source>
67                <ClientId>?</ClientId>
68                <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе
69                «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
70                <APIKey>?</APIKey>
71                <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе
72                «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
73                <Language>?</Language>
74                <!--Language — язык, например: RU-->
75                <Currency>?</Currency>
76                <!-- Currency — валюта, например: RUB, EUR-->
77             </Source>
78          </RequestBin>
79       </ver:Ticketing>
80    </soapenv:Body>
81 </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.travel, целое число, обязательный-->
  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.travel-->
 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                            <SupplierCode>?</SupplierCode>
 29                            <!--SupplierCode – номер заказа в системе АК--> 
 30                            <DepAirp CodeType="IATA">?</DepAirp>
 31                            <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
 32                            или SVO — Шереметьево-->
 33                            <DepTerminal>?</DepTerminal>
 34                            <!--DepTerminal — терминал пункта отправления, если пустое значение,
 35                            то в аэропорту всего 1 терминал-->
 36                            <ArrAirp CodeType="IATA">?</ArrAirp>
 37                            <!--ArrAirp — аэропорт прибытия-->
 38                            <ArrTerminal>?</ArrTerminal>
 39                            <!--ArrTerminal — терминал пункта прибытия, если пустое значение,
 40                            то в аэропорту всего 1 терминал-->
 41                            <OpAirline>?</OpAirline>
 42                            <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
 43                            <MarkAirline>?</MarkAirline>
 44                            <!--MarkAirline — авиакомпания, продающая перелёт-->
 45                            <MarkAirlineName>?</MarkAirlineName>
 46                            <!--MarkAirlineName - полное наименование АК на кириллице-->
 47                            <FlightNumber>?</FlightNumber>
 48                            <!--FlightNumber — номер рейса-->
 49                            <AircraftName>?</AircraftName>
 50                            <!--AircraftName — наименование воздушного судна-->
 51                            <AircraftType>?</AircraftType>
 52                            <!--AircraftType — тип воздушного судна, код-->
 53                            <DepDateTime>?</DepDateTime>
 54                            <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 55                            <ArrDateTime>?</ArrDateTime>
 56                            <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 57                            <StopNum>?</StopNum>
 58                            <!--StopNum — количество остановок-->
 59                            <StopPoints>
 60                            <!--StopPoints — информация о технических остановках, если они есть-->
 61                               <StopPoint>
 62                                  <AirportCode>?</AirportCode>
 63                                  <!--AirportCode — код аэропорта остановки, трех символьный iata код-->
 64                                  <UTC>?</UTC>
 65                                  <!--UTC — сдвиг часового пояса аэропорта-->
 66                                  <ArrDateTime>?</ArrDateTime>
 67                                  <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 68                                  <DepDateTime>?</DepDateTime>
 69                                  <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
 70                               </StopPoint>
 71                            </StopPoints>
 72                            <BookingCodes>
 73                               <BookingCode ClassType="?">
 74                               <!--ClassType — класс перелета, например: economy-->
 75                                  <BookingCode>?</BookingCode>
 76                                  <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс
 77                                  может записываться разными литерами, например: L-->
 78                               </BookingCode>
 79                            </BookingCodes>
 80                            <FlightTime>?</FlightTime>
 81                            <!--FlightTime — время перелёта в минутах-->
 82                            <TimeZone Departure="?" Arrival="?"/>
 83                            <!--Departure временная зона аэропорта отправления-->
 84                            <!--Arrival — временная зона аэропорта прибытия-->
 85                            <ETicket>?</ETicket>
 86                            <!--ETicket — признак электронного билета, значения: true / false-->
 87                            <isCharter>?</isCharter>
 88                            <!--isCharter — признак чартерного перелета, значения: true / false-->
 89                            <BaggageAllowances>
 90                            <!--BaggageAllowances — информация о багаже-->
 91                               <BaggageAllowance>
 92                                  <PassengerType>?</PassengerType>
 93                                  <!--PassengerType — тип пассажира, соответстует типу тарифа в PricingInfo -->
 94                                  <Value>?</Value>
 95                                  <!--Value — количество-->
 96                                  <Measurement>?</Measurement>
 97                                  <!--Measurement — мера измерения, может принимать значения: kg — килограмм, pc — багажное место, lb — фунт-->
 98                               </BaggageAllowance>
 99                            </BaggageAllowances>
100                         </Segment>
101                      </Segments>
102                      <PricingInfo Refundable="?">
103                      <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
104                         <PassengerFare Type="?" Quantity="?">
105                         <!--Type — тип тарифа-->
106                         <!--Quantity — количество пассажиров данного типа-->
107                            <BaseFare Currency="?" Amount="?"/>
108                            <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
109                            <EquiveFare Currency="?" Amount="?"/>
110                            <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи).
111                            Currency — код валюты, Amount — значение цены-->
112                            <TotalFare Currency="?" Amount="?"/>
113                            <!--TotalFare — суммарная стоимость, в эквивалентной валюте.
114                            Currency — код валюты, Amount — значение цены-->
115                            <Taxes>
116                               <Tax CurCode="?" TaxCode="?" Amount="?"/>
117                               <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
118                            </Taxes>
119                            <Tariffs>
120                               <Tariff Code="?" SegNum="?"/>
121                               <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
122                            </Tariffs>
123                            <FareCalc>?</FareCalc>
124                            <!--FareCalc — строка расчёта цены-->
125                            <LastTicketDateTime>?</LastTicketDateTime>
126                            <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.-->
127                         </PassengerFare>
128                      </PricingInfo>
129                      <Commission Currency="?">?</Commission>
130                      <Charges Currency="?">?</Charges>
131                      <!--Charges — сборы, Currency — код валюты-->
132                      <TotalPrice Currency="?">?</TotalPrice>
133                      <!--TotalPrice — итоговая цена, Currency — код валюты-->
134                   </Flight>
135                   <Agency Name="?">
136                   <!--Name — название агентства-->
137                      <Telephone Type="?">
138                      <!--Type — тип номера, обязательный, возможные значения:
139                      M — мобильный, H — домашний, B — рабочий, A — агенство-->
140                         <!--Optional:-->
141                         <PhoneNumber>?</PhoneNumber>
142                         <!--PhoneNumber — номер телефона-->
143                         <!--Optional:-->
144                         <CountryAccessCode>?</CountryAccessCode>
145                         <!--CountryAccessCode — код страны-->
146                         <!--Optional:-->
147                         <AreaCityCode>?</AreaCityCode>
148                         <!--AreaCityCode — код региона/города-->
149                      </Telephone>
150                      <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
151                      <!--City — город-->
152                      <!--State — штат-->
153                      <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)-->
154                      <!--PostalCode — почтовый индекс-->
155                      <!--CountryCode — код страны (RU, UA и т.п.)-->
156                   </Agency>
157                   <ItinReceipts Encoding="?" Format="?">
158                   <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат-->
159                   <FareStored xsi:nil="true"/>
160                    <PaymentTransactions>
161                      <Transaction>
162                         <Id>?</Id>
163                         <!--Id — номер транзакции в Немо-->
164                         <Status>?</Status>
165                         <!--Status — статус транзакции-->
166                         <GatewayName>?</GatewayName>
167                         <!--GatewayName — название платежного шлюза-->
168                         <MoneyPaid Currency="?">?</MoneyPaid>
169                         <!--MoneyPaid — сумма оплаты-->
170                         <!--Currency — валюта-->
171                         <PaymentDateTime>?</PaymentDateTime>
172                         <!--PaymentDateTime — дата и время оплаты-->
173                         <CreateDateTime>?</CreateDateTime>
174                         <!--CreateDateTime — дата и время создания платежной транзакции-->
175                         <Description/>
176                      </Transaction>
177                   </PaymentTransactions>
178                   <PaymentStatus>?</PaymentStatus>
179                   <!--PaymentStatus — статус оплаты:
180                                          not_paid — не оплачено
181                                          partly_paid — оплачено, частично
182                                          fully_paid — оплачено, полностью-->
183                   <Travellers>
184                      <!--Zero or more repetitions:-->
185                      <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
186                      <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые,
187                      CNN — дети, UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом-->
188                      <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является,
189                       контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
190                      может быть контактным лицом, по умолчанию false-->
191                      <!--Num — порядковый номер пассажира, начинается с 1-->
192                      <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)-->
193                     <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра-->
194                         <Meal>?</Meal>
195                         <!--Meal — код типа питания, возможные значения:
196                                                 NONE — отсутствует
197                                                 AVML — Азиатская вегетарианская кухня
198                                                 BLML — Блюда щадящей диеты
199                                                 CHML — Детское питание
200                                                 CHPC — Детский холодный завтрак
201                                                 СНСС — Детский горячий завтрак
202                                                 CHHC — Детский ланч, ветчина и сыр
203                                                 PBJS — Детский ланч, ореховое масло
204                                                 CHMC — Детский обед макароны с сыром
205                                                 DBML — Диабетическое питание
206                                                 FPML — Фрукты
207                                                 GFML — Питание без клейковины
208                                                 HFML — Питание богатое клетчаткой
209                                                 HNML — Индусская кухня
210                                                 BBML — Питание для младенцев
211                                                 KSML — Кошерная кухня
212                                                 SMKB — Кошерный завтрак
213                                                 SMKL — Кошерный ланч
214                                                 SMKD — Кошерный обед
215                                                 LPML — Малобелковое питание
216                                                 LCML — Низкокалорийное питание
217                                                 LFML — Низкохолестериновое питание
218                                                 PRML — Низкопуриновое питание
219                                                 LSML — Малосоленое питание
220                                                 MOML — Мюсли
221                                                 NLML — Безмолочные продукты
222                                                 ORML — Восточная кухня
223                                                 RVML — Сырые овощи
224                                                 SFML — Морепродукты
225                                                 SPML — Особое питание
226                                                 VLML — Вегетарианское, молоко и яйца
227                                                 VGML — Строго вегетарианское питание
228                                                 VJML — Джайнизское вегетарианское
229                                                 VOML — Восточное вегетарианское питание-->
230                         <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
231                         <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
232                         <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
233                         <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)-->
234                            <FirstName>?</FirstName>
235                            <!--FirstName — имя пассажира-->
236                            <LastName>?</LastName>
237                            <!--LastName — фамилия пассажира-->
238                            <!--Optional:-->
239                            <MiddleName>?</MiddleName>
240                            <!--MiddleName — отчество пассажира-->
241                         </PersonalInfo>
242                         <LoyaltyCard OpCode="?" Number="?"/>
243                         <!--OpCode — код авиакомпании-->
244                         <!--Number — номер карточки-->
245                         <ContactInfo>
246                            <!--Optional:-->
247                            <EmailID>?</EmailID>
248                            <!--EmailID — контактный email-->
249                            <!--Optional:-->
250                            <Telephone Type="?">
251                            <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий-->
252                               <!--Optional:-->
253                               <PhoneNumber>?</PhoneNumber>
254                               <!--PhoneNumber — номер телефона-->
255                               <!--Optional:-->
256                               <CountryAccessCode>?</CountryAccessCode>
257                               <!--CountryAccessCode — код страны-->
258                               <!--Optional:-->
259                               <AreaCityCode>?</AreaCityCode>
260                               <!--AreaCityCode — код региона/города-->
261                            </Telephone>
262                         </ContactInfo>
263                         <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
264                         <!--DocType — тип документа, возможные значения:
265                                                                 Р — Паспорт
266                                                                 A – Паспорт иностранца
267                                                                 С — Внутренний гражданский паспорт
268                                                                 F – Документ заменяющий паспорт
269                                                                 М — Воинское удостоверение
270                                                                 N – Сертификат натурализации(специфичный документ США)
271                                                                 T – Док.повторного въезда, паспорт беженца
272                                                                 V – Документ для пересечения границы-->
273                         <!--DocNum — номер документа-->
274                         <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
275                         <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
276                         <Ticket TicketNum="?">
277                         <!-- TicketNum — номер выписанного билета-->
278                         <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
279                         <!--Num — номер визы-->
280                         <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы-->
281                         <!--IssueCountry — страна выдачи визы-->
282                         <!--IssuePlace — место выдачи визы-->
283                         <!--BirthCountry — страна рождения(IATA код страны)-->
284                         <!--BirthCity — город рождения(название)-->
285                         <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
286                         <!--City — город-->
287                         <!--State — штат или область въезда-->
288                         <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.-->
289                         <!--PostalCode — почтовый код-->
290                         <!--CountryCode — код страны-->
291                         <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/>
292                         <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
293                         <!--SmokingAllowed — булевское значение, true — место для курящих, false — место для некурящих-->
294                         <!--Location — положение места в ряде, возможные значения:
295                                                         W — у окна (Window)
296                                                         M — где-то в середине ряда (Middle)
297                                                         NPW — возле прохода (NearPassengerWay)
298                                                         NS — нет предпочтения (NotSpecified)-->
299                         <!--RowNumber — номер ряда-->
300                         <!--PlaceNumber — номер места-->
301                         <!--SegNumber — номер сегмента-->
302                         <DocStringFormats>
303                            <!--Zero or more repetitions:-->
304                            <DocStringFormat>?</DocStringFormat>
305                            <!--DocStringFormat — формат паспортной строки, возможные значения:
306                            DOCS — строка формата DOCS, FOID — строка формата FOID-->
307                         </DocStringFormats>
308                      </Traveller>
309                   </Travellers>
310                   <AutoCancelDate>?</AutoCancelDate>
311                   <!--AutoCancelDate — дата и время таймлимита автоаннуляции в формате ГГГГ-MM-ДДTЧЧ:ММ:СС определяемые по настройкам агентства-->
312                   <TimeLimits>
313                     <TicketingTimeLimit>?</TicketingTimeLimit>
314                     <!--TicketingTimeLimit — Таймлимит на выписку в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
315                     <PriceTimeLimit>?</PriceTimeLimit>
316                     <!--PriceTimeLimit — Таймлимит цены из ГРС в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
317                     <AdvancedPurchaseTimeLimit>?</AdvancedPurchaseTimeLimit>
318                     <!--AdvancedPurchaseTimeLimit — Таймлимит цены из тарифных правил в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
319                     <AgencyTimeLimit>?</AgencyTimeLimit>
320                     <!--AgencyTimeLimit - Таймлимит по настройкам в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
321                   </TimeLimits>
322                </Ticketing>
323                <Requisites/>
324                <RequestType xsi:nil="true"/>
325                <UserID xsi:nil="true"/>
326                <Error Code="?">Сообщение об ошибке</Error>
327             </Response>
328          </ResponseBin>
329       </ns1:TicketingResponse>
330    </SOAP-ENV:Body>
331 </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.travel, целое число-->
10                </VoidTicket>
11             </Request>
12             <Source>
13                <ClientId>?</ClientId>
14                <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе
15                «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
16                <APIKey>?</APIKey>
17                <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе
18                «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
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.travel, целое число-->
 8                   <Result Success="?"/>
 9                   <!--Sucscess — результат отмены выписки, true или false-->
10                </VoidTicket>
11                <Requisites/>
12                <RequestType xsi:nil="true"/>
13                <UserID xsi:nil="true"/>
14                <Error Code="?">Сообщение об ошибке</Error>
15             </Response>
16          </ResponseBin>
17       </ns1:VoidTicketResponse>
18    </SOAP-ENV:Body>
19 </SOAP-ENV:Envelope>

См. также