Веб-служба выписки: различия между версиями
(→Запрос) |
(→Информация) |
||
(не показаны 44 промежуточные версии 13 участников) | |||
Строка 1: | Строка 1: | ||
+ | {{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}} | ||
+ | |||
+ | [[Категория:Интеграция]] | ||
+ | [[Категория:Агентский API]] | ||
+ | <!-- --> | ||
== Информация == | == Информация == | ||
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. | Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. | ||
− | + | Как правило для выписки билета достаточно чтобы у заказа был статус «Оплачено». При включенной опции {{Setting|Для успешных бронирований производить оформление: автоматически после изменения статуса на «Оплачено»}} из раздела '''Для техподдержки → Устаревшие настройки → Настройки бронирования''' билет будет автоматически выписан после оплаты. Однако, это является обязательным условием только для пользователей, имеется возможность получения выписки билета, не требующей оплаты, для этого необходимо чтобы у АПИ пользователя были соответствующие права. К примеру, АПИ учётка должна быть заведена на менеджера агентства. | |
− | В Nemo | + | Дополнительно была реализована настройка {{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}} в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет: | ||
− | *сообщать ВП (валидирующего перевозчика) по данной комбинации | + | * сообщать ВП (валидирующего перевозчика) по данной комбинации |
− | *сообщать комиссию по данной комбинации; | + | * сообщать комиссию по данной комбинации; |
− | *сообщать эндорсменты по данной комбинации; | + | * сообщать эндорсменты по данной комбинации; |
− | *принимать запрос на тикетинг; | + | * принимать запрос на тикетинг; |
− | *проверять наличие брони в | + | * проверять наличие брони в ГРС; |
− | *синхронизировать бронь; | + | * синхронизировать бронь; |
− | *выписывать билет; | + | * выписывать билет; |
− | *войдировать билет. | + | * передавать дополнительную информацию в ремарках; |
− | + | * войдировать билет. | |
== Общий формат запроса / ответа выписки == | == Общий формат запроса / ответа выписки == | ||
− | Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать | + | Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать не оплаченный заказ через {{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 заказа в системе | + | <!--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 | + | <!--Type — форма оплаты: CC (по кредитной карте) или СА (наличными)--> |
<Money Currency="?">?</Money> | <Money Currency="?">?</Money> | ||
− | <!--Money | + | <!--Money — сумма платежа--> |
− | <!--Currency | + | <!--Currency — код валюты--> |
<VendorCode>?</VendorCode> | <VendorCode>?</VendorCode> | ||
− | <!--VendorCode | + | <!--VendorCode — код типа карты: (например, VI — Visa, |
− | MC | + | MC — MasterCard, |
− | AX | + | AX — American Express |
− | DC | + | DC — DCL, |
− | CA | + | CA — EURO, |
− | IK | + | IK — EURO, |
− | JB | + | JB — JCB, |
− | JC | + | JC — JCB, |
− | BA | + | BA — Visa)--> |
<Number>?</Number> | <Number>?</Number> | ||
− | <!--Number | + | <!--Number — номер карты--> |
<ExpireDate>?</ExpireDate> | <ExpireDate>?</ExpireDate> | ||
− | <!--ExpireDate | + | <!--ExpireDate — срок действия карты, например 12.2020--> |
<ManualApprovalCode>?</ManualApprovalCode> | <ManualApprovalCode>?</ManualApprovalCode> | ||
− | <!--ManualApprovalCode - Код преавторизации транзакции, по которой были заблокированы средства для выписки. Это НЕ CVV код.--> | + | <!--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 клиента в системе | + | <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе |
− | + | «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> | |
<APIKey>?</APIKey> | <APIKey>?</APIKey> | ||
− | <!--APIKey — секретный ключ доступа к API | + | <!--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 брони в системе | + | <!--ID — Id брони в системе nemo.travel, целое число, обязательный--> |
<!--Status — индикатор состояния брони, возможные значения: | <!--Status — индикатор состояния брони, возможные значения: | ||
booked — забронировано, | booked — забронировано, | ||
Строка 119: | Строка 142: | ||
<!--QueryPlace — положение брони в очереди, Number — номер брони в очереди--> | <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди--> | ||
<Flight FlightId="?"> | <Flight FlightId="?"> | ||
− | <!--FlightId — Id перелёта в системе | + | <!--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 — тип | + | <!--Type — тип тарифа--> |
− | |||
<!--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 — дети | + | CNN — дети, UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом--> |
<!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является, | <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является, | ||
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них | контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них | ||
может быть контактным лицом, по умолчанию false--> | может быть контактным лицом, по умолчанию false--> | ||
<!--Num — порядковый номер пассажира, начинается с 1--> | <!--Num — порядковый номер пассажира, начинается с 1--> | ||
− | <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок--> | + | <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)--> |
− | + | <!--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 — номер визы--> | ||
Строка 385: | Строка 435: | ||
</Traveller> | </Traveller> | ||
</Travellers> | </Travellers> | ||
− | </ | + | <AutoCancelDate>?</AutoCancelDate> |
+ | <!--AutoCancelDate — дата и время таймлимита автоаннуляции в формате ГГГГ-MM-ДДTЧЧ:ММ:СС определяемые по настройкам агентства--> | ||
+ | <TimeLimits> | ||
+ | <TicketingTimeLimit>?</TicketingTimeLimit> | ||
+ | <!--TicketingTimeLimit — Таймлимит на выписку в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <PriceTimeLimit>?</PriceTimeLimit> | ||
+ | <!--PriceTimeLimit — Таймлимит цены из ГРС в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <AdvancedPurchaseTimeLimit>?</AdvancedPurchaseTimeLimit> | ||
+ | <!--AdvancedPurchaseTimeLimit — Таймлимит цены из тарифных правил в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <AgencyTimeLimit>?</AgencyTimeLimit> | ||
+ | <!--AgencyTimeLimit - Таймлимит по настройкам в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | </TimeLimits> | ||
+ | </Ticketing> | ||
<Requisites/> | <Requisites/> | ||
<RequestType xsi:nil="true"/> | <RequestType xsi:nil="true"/> | ||
<UserID xsi:nil="true"/> | <UserID xsi:nil="true"/> | ||
− | + | <Error Code="?">Сообщение об ошибке</Error> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</Response> | </Response> | ||
</ResponseBin> | </ResponseBin> | ||
Строка 424: | Строка 478: | ||
<VoidTicket> | <VoidTicket> | ||
<BookID>?</BookID> | <BookID>?</BookID> | ||
− | <!--BookID — Id брони в системе | + | <!--BookID — Id брони в системе nemo.travel, целое число--> |
</VoidTicket> | </VoidTicket> | ||
</Request> | </Request> | ||
<Source> | <Source> | ||
<ClientId>?</ClientId> | <ClientId>?</ClientId> | ||
− | <!--ClientId — ID клиента в системе | + | <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе |
− | + | «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> | |
<APIKey>?</APIKey> | <APIKey>?</APIKey> | ||
− | <!--APIKey — секретный ключ доступа к API | + | <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе |
− | + | «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> | |
<Language>?</Language> | <Language>?</Language> | ||
<!--Language — язык, например: RU--> | <!--Language — язык, например: RU--> | ||
Строка 457: | Строка 511: | ||
<Response> | <Response> | ||
<VoidTicket BookID="?"> | <VoidTicket BookID="?"> | ||
− | <!--BookID — Id брони в системе | + | <!--BookID — Id брони в системе nemo.travel, целое число--> |
<Result Success="?"/> | <Result Success="?"/> | ||
<!--Sucscess — результат отмены выписки, true или false--> | <!--Sucscess — результат отмены выписки, true или false--> | ||
Строка 464: | Строка 518: | ||
<RequestType xsi:nil="true"/> | <RequestType xsi:nil="true"/> | ||
<UserID xsi:nil="true"/> | <UserID xsi:nil="true"/> | ||
− | < | + | <Error Code="?">Сообщение об ошибке</Error> |
</Response> | </Response> | ||
</ResponseBin> | </ResponseBin> | ||
Строка 476: | Строка 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>