Изменения

Перейти к навигации Перейти к поиску

Order Export

71 070 байт добавлено, 16:22, 13 мая 2020
[[Категория:Статистика и отчёты]]
[[Категория:Функции]]
[[Категория:Модули]]
[[Категория:Встроенные модули]]

'''Order export''' is export of order data or orders for various components of the Websky system.

== Description ==
The module allows the external system to obtain order data for further processing.

=== Export process ===
The process of order export is schematically presented on the block diagram.

[[файл:ВыгрузкаСофиИНемо.png]]

'''Attention!'''
* An order in SOFI format will be exported during synchronization only if there are changes in the order.
*An order in SOFI format will only be exported when cancelled if the order contains cancelled services.

== Settings ==
[[Файл:Выгрузка заказов.jpg|400px|thumb|right|Setting up the order uploading process for airline tickets]]
Order export settings are available via '''System settings → Integration → Export of bookings'''.
** '''''Nemo Backoffice''''' — the possibility to export orders in JSON format, which provides more complete and up-to-date data amount, uses international standards of data format, and is an improved version of data export protocol in Nemo format.
* '''Address for sending notifications about order changes''' — if specified, a GET-request is sent to this address when changes are received during the actualization. ('''Example''' ''http://127.0.0.1/?booking_id=ORDER_ID&nemo_id=NEMO_CONNECT_ORDER_ID&locator=LOCATOR''). The value format supports variables '''LOCATOR''', '''ORDER_ID''', '''NEMO_CONNECT_ORDER_ID''' - ('''LOCATOR''' - service identifier in service provider's system, '''ORDER_ID''' - Websky order identifier, '''NEMO_CONNECT_ORDER_ID''' - order identifier in NEMO Connect).
* '''Url of third party script for XML notifications in Websky format — URL to which the data will be uploaded.
* '''Url of third party script for XML notifications in SOFI format''' — URL to which the data will be uploaded.
Websky sends upload files to the http address specified in this field via a POST request (see https://ru.wikipedia.org/wiki/POST_(HTTP) ). The script for processing the received data must be written on the client's side. The script task is to accept the data and process them correctly. All data which can be received through a browser, also are possible to receive via alternative software means (automating export process). It is recommended to use CURL library (see https://ru.wikipedia.org/wiki/CURL). Websky staff does not provide ready-made sample scripts.
<br>If a subagent has a different URL script for export than the root agency URL, the export by order of this subagent will be directed to both addresses. The main agent receives information on all orders of all subagents, the subagent receives the export data only of its orders.<br/>
* '''Nemo Backoffice export url''' — URL to which the data will be uploaded.
* '''Website code in SOFI''' — agency ID on the SOFI side. The code is required to connect the agency in SOFI and Websky. If the agency is created in SOFI, its code is specified in this field. Then SOFI will identify orders from specified agency in SOFI unloading.
* '''Resending in case of failure''' — The setting allows you to retry exporting the order at a certain time interval (maximum 3 attempts).
* '''A list of addresses for notifications (separated by commas)''' — This setting allows you to specify one or more email addresses to which a problem order notification will be sent in case all export attempts fail.
* '''Export after payment''' — The setting allows you to additionally export orders after an order payment event.
* '''Export order access code''' — The setting enables you to display the export access code.
* '''Send a notification on the need to set a validator code in requisites''' — The setting allows you to automatically send a notification when an order is exported to SOFI without a validator code.
* '''Time zone for dates''' — The setting allows you to change the time zone in SOFI export. [[Файл:Временная зона для дат.jpg|500px|thumb|right|"Time zone for dates" setting]]
** '''Use time zone from system settings''', through which the time zone specified in "System Settings" will be used.
** '''Use time zone from requisites''' — The time zone is raised individually from each set of GDS connection requisites.
** '''Select other time zone''' enables you to select the time zone independently of other settings.

== Order export formats ==
The system supports order export in formats '''''Nemo''''', '''''SOFI''''' и '''''JSON'''''. It is recommended to use JSON export functionality.

=== Components supporting order export ===

{| style="text-align: center;" class="wikitable"
|-
! scope="col" style="width: 100px;" |
! scope="col" style="width: 100px;" | Air Tickets
! scope="col" style="width: 100px;" | Hotels
! scope="col" style="width: 100px;" | Rail
|-
! style="font-weight: bold;" | Websky format
! style="background-color: #99FF66;" | +
! style="background-color: #FF6666;" | −
! style="background-color: #99FF66;" | +
|-
! style="font-weight: bold;" | SOFI format
! style="background-color: #99FF66;" | +
! style="background-color: #FF6666;" | −
! style="background-color: #FF6666;" | −
|-
! style="font-weight: bold;" | JSON format
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
|}

=== Events supporting order export ===

{| style="text-align: center;" class="wikitable"
|-
! scope="col" style="width: 100px; font-style: italic; background-color: #CCCCCC;" | Авиабилеты
! scope="col" style="width: 100px;" | Booking
! scope="col" style="width: 100px;" | Payment<sup>*</sup>
! scope="col" style="width: 100px;" | Synchronization<sup>**</sup>
! scope="col" style="width: 100px;" | Ticketing
! scope="col" style="width: 100px;" | Voiding
! scope="col" style="width: 100px;" | Cancellation<sup>***</sup>
! scope="col" style="width: 100px;" | Exchange/Refund<sup>****</sup>
|-
! style="font-weight: bold;" | Websky format
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
|-
! style="font-weight: bold;" | SOFI format
! style="background-color: #FF6666;" | −
! style="background-color: #FF6666;" | −
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
|-
! style="font-weight: bold;" | JSON format
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
|}

{| style="text-align: center;" class="wikitable"
|-
! scope="col" style="width: 100px; font-style: italic; background-color: #CCCCCC;" | Отели
! scope="col" style="width: 100px;" | Booking
! scope="col" style="width: 100px;" | Payment<sup>*</sup>
! scope="col" style="width: 100px;" | Synchronization<sup>**</sup>
! scope="col" style="width: 100px;" | Ticketing
! scope="col" style="width: 100px;" | Voiding
! scope="col" style="width: 100px;" | Cancellation
|-
! style="font-weight: bold;" | JSON format
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #FF6666;" | −
! style="font-weight: normal;" | Voiding unavailable
! style="background-color: #99FF66;" | +
|}

{| style="text-align: center;" class="wikitable"
|-
! scope="col" style="width: 100px; font-style: italic; background-color: #CCCCCC;" | ЖД
! scope="col" style="width: 100px;" | Booking
! scope="col" style="width: 100px;" | Payment
! scope="col" style="width: 100px;" | Synchronization<sup>**</sup>
! scope="col" style="width: 100px;" | Ticketing
! scope="col" style="width: 100px;" | Voiding
! scope="col" style="width: 100px;" | Cancellation
|-
! style="font-weight: bold;" | Websky format
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
|-
! style="font-weight: bold;" | JSON format
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
! style="background-color: #99FF66;" | +
|}

&#42;&#160; A Websky order will be uploaded when paid only if the '''''«Export after payment»'''' setting is enabled в разделе '''«Orders»''' → '''«Order export»'''.<br/>
&#42;&#42; The order will be exported during synchronization only if there are changes in the order.<br/>
&#42;&#42;&#42;&#160; An order in SOFI format will be exported upon cancellation only if the order contains the cancelled ancillary services. <br/>
&#42;&#42;&#42;&#42;&#160; The order will be exported upon exchange or refund when the work with claim is finished (if PNR import is skipped).

=== Order export statuses ===
Order export status codes correspond to HTTP status codes. In fact, the last HTTP status code received when uploading data to the address specified in the upload settings is specified. The codes refer to the server to which the orders are exported.

{| style="width: 800px" class="wikitable"
|-
! scope="col" width="20" | Code
! scope="col" width="300" | Description
|-
| 0
| Unknown response. Export address not available.
|-
| 200
| OK - successful request.
|-
| 301
| The requested document was completely moved to the new URI specified in the Location field of the header.
|-
| 403
| The server has recognized the request, but it refuses to execute it because of the access restrictions to the specified resource for the client.
|-
| 404
| The server has recognized the request but did not find the required resource by the specified URI.
|-
| 422
| Unprocessable Entity - the server has successfully accepted the request, can work with the specified type of data, the XML document in the request body has the correct syntax, but there is some logical error that prevents operation on the resource.
|-
| 500
| Any internal server error.
|}

=== Order export for the Avia Tickets component ===
For the '''«Avia Tickets»''' component, orders in Nemo and/or SOFI formats are available for export (when '''«SOFI order export»''' module is enabled).

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Websky format ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<?xml version="1.0" encoding="UTF-8"?>
<PNR>
<Common>
<id>277749</id>
<Type>FLIGHTS</Type>
<Service>SABRE</Service>
<Locator>SQLJNK</Locator>
<ExternalId>1234567</ExternalId> <!-- External ID -->
<Stamp>123456789</Stamp>
<UtmSource>100</UtmSource> <!-- Source of transition -->
<BeginDateTime>2014.12.18-10:45</BeginDateTime>
<EndDateTime>2014.12.25-16:40</EndDateTime>
<TicketingDateTime>2014.12.09-15:02</TicketingDateTime>
<VoidDateTime/>
<TotalPrice>
<Amount>10773.8</Amount>
<CurrencyCode>RUB</CurrencyCode>
</TotalPrice>
<UserId>2964</UserId>
<EEUserId/>
<UserLogin>userLogin</UserLogin>
<GroupId>2963</GroupId>
<CompanyId>2963</CompanyId>
<UserStatus>Менеджер</UserStatus>
<DateCreate>2014.12.09-14:59</DateCreate>
<ExtServices> <!-- Ancillary services -->
<ExtService>
<Type>ServicePack</Type> <!-- Service packages -->
<Price>
<Amount>200</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Price>
</ExtService>
<ExtService>
<Type>AeroExpress</Type>
<Price>
<Amount>1440</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Price>
</ExtService>
<ExtService>
<Type>AlphaInsurance</Type>
<Price>
<Amount>480</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Price>
<Insurances>
<Insurance>
<Number>Z694.198TEST.2765282</Number>
<Fio>IVANOV IVAN</Fio>
</Insurance>
<Insurance>
<Number>Z694.198TEST.2765283</Number>
<Fio>PETROV PETR</Fio>
</Insurance>
</Insurances>
</ExtService>
</ExtServices>
<isManualStatus>0</isManualStatus> <!-- Manual ticketing attribute. 1 - manual fixing of the order. 0 - automatic. -->
</Common>
<Payment>
<Title>Testpay</Title>
<Method>Testpay</Method>
<BillingId>117607091</BillingId>
<Date>2014-12-09 15:00:39</Date>
<CreateDate>2014-12-09 15:00:34</CreateDate>
<Status>ticket</Status>
<PenaltyDate/>
<Timelimit>2014-12-10 14:59:55</Timelimit>
<PaymentCharge> <!-- Payment gateway charge -->
<Amount>313.8</Amount>
<CurrencyCode>RUB</CurrencyCode>
</PaymentCharge>
<Charge> <!-- Total charge minus payment gateway charge -->
<Amount>1920</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Charge>
<SubagentCharge> <!-- Subagent charge specified in "Pricing for Subagents" module -->
<Amount>500</Amount>
<CurrencyCode>RUB</CurrencyCode>
</SubagentCharge>
<BaseFare> <!-- Fare -->
<Amount>1600</Amount>
<CurrencyCode>RUB</CurrencyCode>
</BaseFare>
<Book> <!-- Fare plus taxes -->
<Amount>8540</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Book>
<Penalty>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Penalty>
<Total>
<Amount>10773.8</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Total>
<Commission>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Commission>
<PaidValue>
<Amount>10773.8</Amount>
<CurrencyCode>RUB</CurrencyCode>
</PaidValue>
</Payment>
<Client>
<LastName/>
<Name>SIDOROV PETR</Name>
<MiddleName/>
<Number/>
<Birth/>
<Email>mail@host.com</Email>
<Phone>+74950000000</Phone>
</Client>
<PassengersCount>2</PassengersCount>
<Passengers>
<Passenger>
<passenger_type>ADT</passenger_type>
<lastname>IVANOV</lastname>
<name>IVAN</name>
<gender>F</gender>
<date_of_birth>12.12.1987</date_of_birth>
<doc_type>C</doc_type>
<passport_number>1234567890</passport_number>
<currency_of_passport>24.03.2023</currency_of_passport>
<middlename/>
<passenger_id>37667</passenger_id>
<nationality>RU</nationality>
<email>mail@host.com</email>
<Tickets>
<Active>0</Active> <!-- Ticket status. 0 - ticket voided, 1 - ticket active-->
<Seg/>
<Num>5553984070962</Num>
<Date>2014-12-09 16:01:00</Date>
</Tickets>
<Tickets>
<Active>1</Active> <!-- Ticket status. 0 - ticket voided, 1 - ticket active-->
<Seg/>
<Num>5553984070964</Num>
<Date>2014-12-09 16:03:00</Date>
</Tickets>
<PriceInfo>
<BaseFare>
<Amount>800</Amount>
<CurrencyCode>RUB</CurrencyCode>
</BaseFare>
<TotalFare>
<Amount>4270</Amount>
<CurrencyCode>RUB</CurrencyCode>
</TotalFare>
<Commission>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Commission>
<AirlineCommission>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</AirlineCommission>
</PriceInfo>
</Passenger>
<Passenger>
<passenger_type>ADT</passenger_type>
<doc_type>C</doc_type>
<middlename/>
<passenger_id>37668</passenger_id>
<lastname>PETROV</lastname>
<name>PETR</name>
<gender>M</gender>
<date_of_birth>20.12.1984</date_of_birth>
<passport_number>1234567899</passport_number>
<currency_of_passport>20.12.2029</currency_of_passport>
<nationality>RU</nationality>
<email>mail@host.com</email>
<Tickets>
<Active>0</Active> <!-- Ticket status. 0 - ticket voided, 1 - ticket active -->
<Seg/>
<Num>5553984070963</Num>
<Date>2014-12-09 16:01:00</Date>
</Tickets>
<Tickets>
<Active>1</Active> <!-- Ticket status. 0 - ticket voided, 1 - ticket active -->
<Seg/>
<Num>5553984070965</Num>
<Date>2014-12-09 16:03:00</Date>
</Tickets>
<PriceInfo>
<BaseFare>
<Amount>800</Amount>
<CurrencyCode>RUB</CurrencyCode>
</BaseFare>
<TotalFare>
<Amount>4270</Amount>
<CurrencyCode>RUB</CurrencyCode>
</TotalFare>
<Commission>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Commission>
<AirlineCommission>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</AirlineCommission>
</PriceInfo>
</Passenger>
</Passengers>
<FlightType>Внутренний</FlightType>
<Marker/>
<BookingCode>4R72Z4</BookingCode>
<OrderInfo>
<Info>
<Company>Аэрофлот - Российские авиалинии</Company>
<CompanyCode>SU</CompanyCode>
<OperatingCompanyCode>FV</OperatingCompanyCode>
<StartDate>2014.12.18</StartDate>
<StartTime>10:45</StartTime>
<StartDayOfWeek>Thursday</StartDayOfWeek>
<FlightNumber>6128 (FV6128)</FlightNumber>
<StartAirportCode>VKO</StartAirportCode>
<StartAirportName>Внуково, Москва</StartAirportName>
<StartCountry>Россия</StartCountry>
<StartCountryCode>RU</StartCountryCode>
<EndAirportCode>LED</EndAirportCode>
<EndAirportName>Санкт-Петербург, Пулково</EndAirportName>
<EndCountry>Россия</EndCountry>
<EndCountryCode>RU</EndCountryCode>
<Time>1:30</Time>
<Equip>
<Name>Airbus 319</Name>
<Type>319</Type>
</Equip>
<ClassType>economy</ClassType>
<ClassTypeCode>R</ClassTypeCode>
<Meal/>
</Info>
<Info>
<Company>Аэрофлот - Российские авиалинии</Company>
<CompanyCode>SU</CompanyCode>
<OperatingCompanyCode>FV</OperatingCompanyCode>
<StartDate>2014.12.25</StartDate>
<StartTime>15:10</StartTime>
<StartDayOfWeek>Thursday</StartDayOfWeek>
<FlightNumber>6153 (FV6153)</FlightNumber>
<StartAirportCode>LED</StartAirportCode>
<StartAirportName>Санкт-Петербург, Пулково</StartAirportName>
<StartCountry>Россия</StartCountry>
<StartCountryCode>RU</StartCountryCode>
<EndAirportCode>VKO</EndAirportCode>
<EndAirportName>Внуково, Москва</EndAirportName>
<EndCountry>Россия</EndCountry>
<EndCountryCode>RU</EndCountryCode>
<Time>1:30</Time>
<Equip>
<Name>Airbus 319</Name>
<Type>319</Type>
</Equip>
<ClassType>economy</ClassType>
<ClassTypeCode>R</ClassTypeCode>
<Meal/>
</Info>
</OrderInfo>
<Remarks>Debit</Remarks>
<Returns> <!-- Refund claims block -->
<Return>
<ExpertUserId>2411</ExpertUserId>
<Id>458463</Id>
<Price>
<Amount>-5997.17</Amount> <!-- The amount to be refunded calculated in the refund request -->
<CurrencyCode>RUB</CurrencyCode>
</Price>
<PassengersData>
<Data>
<PassengerNum>2</PassengerNum>
<SegmentNums>
<SegmentNum>1</SegmentNum>
<SegmentNum>2</SegmentNum>
</SegmentNums>
</Data>
</PassengersData>
<IsFull>0</IsFull>
<IsCompelled>0</IsCompelled>
</Return>
</Returns>
<Exchanges> <!-- Exchange Request Block -->
<Exchange>
<ExpertUserId>2411</ExpertUserId>
<Id>458480</Id>
<Price>
<Amount>2279.06</Amount> <!-- Amount to the surcharge calculated in the exchange request -->
<CurrencyCode>RUB</CurrencyCode>
</Price>
<Text>Reason for creating the claim</Text>
</Exchange>
</Exchanges>
</PNR>
</syntaxhighlight>

<br/><span style="background-color:#fff0f5;">'''<span style="color:#ff0000;">Attention!</span>''' If the Service Package selected by the client has a zero value - it will not be displayed in the export.</span>

''<Remarks>Debit</Remarks>'' remark is not obligatory, means that the order was paid with the " Company Balance" payment method;
if the order was paid via deposit credit, and the balance was minus even by 1 rub., it will be
''<Remarks>Credit</Remarks>''.

''<TotalFare>'' element refunds an order already paid for. If the order is booked but not paid, the value will be 0 RUB.

''<CreateDate>'' element, depending on the condition of the booking, refunds the end time of the booking, if it was completed, otherwise returns the time of making the booking.

''<Returns>'' and ''<Exchanges>'' blocks contains data on exchange and/or refund claims that are linked to the order. Only the completed exchange and/or refund claims are exported. Note that the amount to be refunded on the claim is indicated with a "-" sign and the amount to be surcharged goes without additional signs.

The format supports the possibility of transmitting several e-ticket numbers per passenger (including those voided and cancelled).
</div>
</div>

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Websky format for composite bookings (MultiOW) ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<PNR>
<ParentBook>
<ID>508015</ID>
<Payment>
<Title>Testpay</Title>
<Method>Testpay</Method>
<PaymentGateway>testpay</PaymentGateway>
<BillingId>117916164</BillingId>
<Date>2018-05-28 13:03:17</Date>
<CreateDate>2018-05-28 13:02:51</CreateDate>
<Status>ticket</Status>
<PenaltyDate/>
<Timelimit>2018-05-31 13:00:00</Timelimit>
<PaymentCharge>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</PaymentCharge>
<Charge>
<Amount>1220</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Charge>
<AgentCharge>
<Amount>-300</Amount>
<CurrencyCode>RUB</CurrencyCode>
</AgentCharge>
<BaseFare>
<Amount>6950</Amount>
<CurrencyCode>RUB</CurrencyCode>
</BaseFare>
<Book>
<Amount>14382</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Book>
<Penalty>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Penalty>
<Total>
<Amount>15602</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Total>
<Commission>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Commission>
<AirlineCommission>
<Amount>38.25</Amount>
<CurrencyCode>RUB</CurrencyCode>
</AirlineCommission>
<PaidValue>
<Amount>15602</Amount>
<CurrencyCode>RUB</CurrencyCode>
</PaidValue>
</Payment>
<ChildBookIDs>
<ChildBookID>508019</ChildBookID>
<ChildBookID>508020</ChildBookID>
</ChildBookIDs>
<ExtServices>
<ExtService>
<Type>ServicePack</Type>
<Price>
<Amount>800</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Price>
</ExtService>
<ExtService>
<Type>AlphaInsurance</Type>
<Price>
<Amount>720</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Price>
<Insurances>
<Insurance>
<Number>Z694.198TEST.26725385</Number>
<Fio>BAGGINS BILBO</Fio>
</Insurance>
<Insurance>
<Number>Z694.198TEST.26725386</Number>
<Fio>IVANOV SEMYON</Fio>
</Insurance>
<Insurance>
<Number>Z694.198TEST.26725387</Number>
<Fio>ORK KIR</Fio>
</Insurance>
</Insurances>
</ExtService>
</ExtServices>
</ParentBook>
<Common>
<id>508019</id>
<Type>FLIGHTS</Type>
<Service>AMADEUS</Service>
<Locator>LOYYRD</Locator>
<UtmSource>66</UtmSource>
<BeginDateTime>2018.06.16-02:00</BeginDateTime>
<EndDateTime>2018.06.16-06:20</EndDateTime>
<TicketingDateTime>2018.05.28-13:04</TicketingDateTime>
<VoidDateTime/>
<TotalPrice>
<Amount>7057</Amount>
<CurrencyCode>RUB</CurrencyCode>
</TotalPrice>
<UserId>10312</UserId>
<EEUserId/>
<UserLogin>test_user_1</UserLogin>
<GroupId>10311</GroupId>
<CompanyId>10309</CompanyId>
<ExternalCompanyId/>
<UserStatus>Пользователь</UserStatus>
<DateCreate>2018.05.28-13:00</DateCreate>
<isManualStatus>0</isManualStatus>
</Common>
<Payment>
<Status>ticket</Status>
<PenaltyDate/>
<Timelimit>2018-06-01 20:59:00</Timelimit>
<PaymentCharge>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</PaymentCharge>
<Charge>
<Amount>150</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Charge>
<AgentCharge>
<Amount>150</Amount>
<CurrencyCode>RUB</CurrencyCode>
</AgentCharge>
<BaseFare>
<Amount>3625</Amount>
<CurrencyCode>RUB</CurrencyCode>
</BaseFare>
<Book>
<Amount>6907</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Book>
<Penalty>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Penalty>
<Total>
<Amount>7057</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Total>
<Commission>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Commission>
<AirlineCommission>
<Amount>36.25</Amount>
<CurrencyCode>RUB</CurrencyCode>
</AirlineCommission>
<PaidValue>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</PaidValue>
</Payment>
<Client>
<LastName/>
<Name> </Name>
<MiddleName/>
<Number/>
<Birth/>
<Email>qddednbavfta@dropmail.me</Email>
<Phone/>
</Client>
<PassengersCount>3</PassengersCount>
<Passengers>
<Passenger>
<name>BILBO</name>
<lastname>BAGGINS</lastname>
<passenger_type>CLD</passenger_type>
<doc_type>P</doc_type>
<date_of_birth>02.01.2015</date_of_birth>
<nationality>RU</nationality>
<gender>M</gender>
<passport_number>985478569</passport_number>
<currency_of_passport>28.05.2023</currency_of_passport>
<Tickets>
<Active>1</Active>
<Seg/>
<Num>5555966876471</Num>
<Date>2018-05-28 13:04:05</Date>
</Tickets>
<PriceInfo>
<BaseFare>
<Amount>1555</Amount>
<CurrencyCode>RUB</CurrencyCode>
</BaseFare>
<TotalFare>
<Amount>3149</Amount>
<CurrencyCode>RUB</CurrencyCode>
</TotalFare>
<Commission>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Commission>
<AirlineCommission>
<Amount>12.08</Amount>
<CurrencyCode>RUB</CurrencyCode>
</AirlineCommission>
</PriceInfo>
</Passenger>
<Passenger>
<name>SEMYON</name>
<lastname>IVANOV</lastname>
<passenger_type>ADT</passenger_type>
<doc_type>P</doc_type>
<date_of_birth>05.05.1945</date_of_birth>
<nationality>RU</nationality>
<gender>M</gender>
<passport_number>954563562</passport_number>
<currency_of_passport>25.03.2021</currency_of_passport>
<phone>
<number>+79998884444</number>
</phone>
<email>QDDEDNBAVFTA@DROPMAIL.ME</email>
<Tickets>
<Active>1</Active>
<Seg/>
<Num>5555966876472</Num>
<Date>2018-05-28 13:04:05</Date>
</Tickets>
<PriceInfo>
<BaseFare>
<Amount>2070</Amount>
<CurrencyCode>RUB</CurrencyCode>
</BaseFare>
<TotalFare>
<Amount>3758</Amount>
<CurrencyCode>RUB</CurrencyCode>
</TotalFare>
<Commission>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Commission>
<AirlineCommission>
<Amount>12.08</Amount>
<CurrencyCode>RUB</CurrencyCode>
</AirlineCommission>
</PriceInfo>
</Passenger>
<Passenger>
<name>KIR</name>
<lastname>ORK</lastname>
<passenger_type>INF</passenger_type>
<doc_type>P</doc_type>
<date_of_birth>08.09.2017</date_of_birth>
<nationality>RU</nationality>
<gender>M</gender>
<passport_number>859654125</passport_number>
<currency_of_passport>28.05.2023</currency_of_passport>
<Tickets>
<Active>1</Active>
<Seg/>
<Num>5555966876473</Num>
<Date>2018-05-28 13:04:05</Date>
</Tickets>
<PriceInfo>
<BaseFare>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</BaseFare>
<TotalFare>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</TotalFare>
<Commission>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Commission>
<AirlineCommission>
<Amount>12.08</Amount>
<CurrencyCode>RUB</CurrencyCode>
</AirlineCommission>
</PriceInfo>
</Passenger>
</Passengers>
<FlightType>Внутренний</FlightType>
<Marker/>
<OrderInfo>
<Info>
<Id>0</Id>
<Company>Аэрофлот</Company>
<CompanyCode>SU</CompanyCode>
<OperatingCompanyCode>SU</OperatingCompanyCode>
<StartDate>2018.06.16</StartDate>
<StartTime>02:00</StartTime>
<StartDayOfWeek>Saturday</StartDayOfWeek>
<FlightNumber>1436 (SU1436)</FlightNumber>
<StartAirportCode>SVO</StartAirportCode>
<StartAirportName>Шереметьево, Москва</StartAirportName>
<StartCountry>Россия</StartCountry>
<StartCountryCode>RU</StartCountryCode>
<EndAirportCode>SVX</EndAirportCode>
<EndAirportName>Екатеринбург</EndAirportName>
<EndCountry>Россия</EndCountry>
<EndCountryCode>RU</EndCountryCode>
<Time>2:20</Time>
<Equip>
<Name>Airbus A320 (with Sharklets)</Name>
<Type>32A</Type>
</Equip>
<ClassType>economy</ClassType>
<ClassTypeCode>N</ClassTypeCode>
<Meal/>
</Info>
</OrderInfo>
<Returns/>
<Exchanges/>
</PNR>
</syntaxhighlight>

<br/><span style="background-color:#fff0f5;">'''<span style="color:#ff0000;">Attention!</span>''' The data in the ParentBook block is the same for both real bookings that are part of a composite one. But since a composite booking is a formal one, it cannot be reflected in the XML export.</span>
*ParentBook - general block, reflects information about the payment for the composite booking; the additional services purchased in the composite booking; and the numbers of both real orders of the composite booking.

</div>
</div>

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">

==== SOFI format ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<?xml version="1.0" encoding="UTF-8"?>
<order_snapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<header currency="RUB" time_gmt="2018-01-24 13:23:45" time="2018-01-24 16:23:45" ord_id="496571" corp_ord_id="1P2BK4" site="2410" corp_code="2440"/>
<customer email="airjul2404@gmail.com" phone="XXXX0005" name="" corp_code="2440" bonus_card="200200200"/>
<products>
<product>
<air_ticket_prod psg_type="A" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="0" taxes="3005" fare="0" service_fee="356.5" commission="30" origin="SVX" destination="MOW">
<air_seg segment_id="0" carrier="NN" flight_number="200" op_carrier="NN" departure_datetime="2018-03-22 06:00:00" arrival_datetime="2018-03-22 09:00:00" departure_airport="SVX" arrival_airport="DME" fare_basis="YCH">
<air_tax amount="2085" code="YQ"/>
<air_tax amount="70" code="RU"/>
<air_tax amount="850" code="RI"/>
</air_seg>
<fees>
<fee type="commission" code="commission_vcarrier" amount="7.5"/>
</fees>
</air_ticket_prod>
</product>
<product>
<air_ticket_prod psg_type="A" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="1" taxes="698" fare="6100" service_fee="356.5" commission="30" origin="SVX" destination="MOW">
<air_seg segment_id="1" carrier="U6" flight_number="161" op_carrier="U6" departure_datetime="2018-03-24 11:20:00" arrival_datetime="2018-03-24 15:30:00" departure_airport="DME" arrival_airport="SVX" fare_basis="KPROW">
<air_tax amount="185" code="ZZ"/>
<air_tax amount="513" code="RI"/>
</air_seg>
<fees>
<fee type="commission" code="commission_vcarrier" amount="7.5"/>
</fees>
</air_ticket_prod>
</product>
<product>
<air_ticket_prod psg_type="A" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="2" taxes="500" fare="" service_fee="0" commission="0" origin="SVX" destination="MOW"/>
</product>
<product>
<air_ticket_prod psg_type="A" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="3" taxes="3005" fare="0" service_fee="356.5" commission="30" origin="SVX" destination="MOW">
<air_seg segment_id="0" carrier="NN" flight_number="200" op_carrier="NN" departure_datetime="2018-03-22 06:00:00" arrival_datetime="2018-03-22 09:00:00" departure_airport="SVX" arrival_airport="DME" fare_basis="YCH">
<air_tax amount="2085" code="YQ"/>
<air_tax amount="70" code="RU"/>
<air_tax amount="850" code="RI"/>
</air_seg>
<fees>
<fee type="commission" code="commission_vcarrier" amount="7.5"/>
</fees>
</air_ticket_prod>
</product>
<product>
<air_ticket_prod psg_type="A" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="4" taxes="698" fare="6100" service_fee="356.5" commission="30" origin="SVX" destination="MOW">
<air_seg segment_id="1" carrier="U6" flight_number="161" op_carrier="U6" departure_datetime="2018-03-24 11:20:00" arrival_datetime="2018-03-24 15:30:00" departure_airport="DME" arrival_airport="SVX" fare_basis="KPROW">
<air_tax amount="185" code="ZZ"/>
<air_tax amount="513" code="RI"/>
</air_seg>
<fees>
<fee type="commission" code="commission_vcarrier" amount="7.5"/>
</fees>
</air_ticket_prod>
</product>
<product>
<air_ticket_prod psg_type="A" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="5" taxes="500" fare="" service_fee="0" commission="0" origin="SVX" destination="MOW"/>
</product>
<product>
<air_ticket_prod psg_type="C" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="6" taxes="3005" fare="0" service_fee="356.5" commission="30" origin="SVX" destination="MOW">
<air_seg segment_id="0" carrier="NN" flight_number="200" op_carrier="NN" departure_datetime="2018-03-22 06:00:00" arrival_datetime="2018-03-22 09:00:00" departure_airport="SVX" arrival_airport="DME" fare_basis="YCH/CN0">
<air_tax amount="2085" code="YQ"/>
<air_tax amount="70" code="RU"/>
<air_tax amount="850" code="RI"/>
</air_seg>
<fees>
<fee type="commission" code="commission_vcarrier" amount="7.5"/>
</fees>
</air_ticket_prod>
</product>
<product>
<air_ticket_prod psg_type="C" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="7" taxes="698" fare="4575" service_fee="356.5" commission="30" origin="SVX" destination="MOW">
<air_seg segment_id="1" carrier="U6" flight_number="161" op_carrier="U6" departure_datetime="2018-03-24 11:20:00" arrival_datetime="2018-03-24 15:30:00" departure_airport="DME" arrival_airport="SVX" fare_basis="KPROW/CH25">
<air_tax amount="185" code="ZZ"/>
<air_tax amount="513" code="RI"/>
</air_seg>
<fees>
<fee type="commission" code="commission_vcarrier" amount="7.5"/>
</fees>
</air_ticket_prod>
</product>
<product>
<air_ticket_prod psg_type="C" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="8" taxes="250" fare="" service_fee="0" commission="0" origin="SVX" destination="MOW"/>
</product>
<product>
<air_ticket_prod psg_type="I" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="9" taxes="3005" fare="0" service_fee="356.5" commission="30" origin="SVX" destination="MOW">
<air_seg segment_id="0" carrier="NN" flight_number="200" op_carrier="NN" departure_datetime="2018-03-22 06:00:00" arrival_datetime="2018-03-22 09:00:00" departure_airport="SVX" arrival_airport="DME" fare_basis="YCH/IN0">
<air_tax amount="2085" code="YQ"/>
<air_tax amount="70" code="RU"/>
<air_tax amount="850" code="RI"/>
</air_seg>
<fees>
<fee type="commission" code="commission_vcarrier" amount="7.5"/>
</fees>
</air_ticket_prod>
</product>
<product>
<air_ticket_prod psg_type="I" title="Екатеринбург - Москва - Екатеринбург" form_owner="NN" validating_carrier="NN" prod_id="10" taxes="513" fare="0" service_fee="356.5" commission="30" origin="SVX" destination="MOW">
<air_seg segment_id="1" carrier="U6" flight_number="161" op_carrier="U6" departure_datetime="2018-03-24 11:20:00" arrival_datetime="2018-03-24 15:30:00" departure_airport="DME" arrival_airport="SVX" fare_basis="KPROW/IN00">
<air_tax amount="513" code="RI"/>
</air_seg>
<fees>
<fee type="commission" code="commission_vcarrier" amount="7.5"/>
</fees>
</air_ticket_prod>
</product>
<product>
<ral_ticket_prod rsrv_id="4965710200" prod_id="4965710200200" origin="Домодедово, Москва" destination="Павелецкий вокзал" departure_datetime="2018-03-22 10:00:00" cartype="standart" fare="420"/>
</product>
<product>
<ral_ticket_prod rsrv_id="4965710200" prod_id="4965710200201" origin="Домодедово, Москва" destination="Павелецкий вокзал" departure_datetime="2018-03-22 10:00:00" cartype="standart" fare="420"/>
</product>
<product>
<ral_ticket_prod rsrv_id="4965710200" prod_id="4965710200202" origin="Домодедово, Москва" destination="Павелецкий вокзал" departure_datetime="2018-03-22 10:00:00" cartype="standart" fare="420"/>
</product>
<product>
<ral_ticket_prod rsrv_id="4965710200" prod_id="4965710200203" origin="Павелецкий вокзал" destination="Домодедово, Москва" departure_datetime="2018-03-24 07:20:00" cartype="standart" fare="420"/>
</product>
<product>
<ral_ticket_prod rsrv_id="4965710200" prod_id="4965710200204" origin="Павелецкий вокзал" destination="Домодедово, Москва" departure_datetime="2018-03-24 07:20:00" cartype="standart" fare="420"/>
</product>
<product>
<ral_ticket_prod rsrv_id="4965710200" prod_id="4965710200205" origin="Павелецкий вокзал" destination="Домодедово, Москва" departure_datetime="2018-03-24 07:20:00" cartype="standart" fare="420"/>
</product>
<product>
<payment_prod price="150"/>
</product>
</products>
<reservations>
<reservation rsrv_id="496571" crs="SIRENA2000" rloc="1P2BK4" ticketing_pcc=""/>
<reservation rsrv_id="4965710200" crs="AeroExpress" rloc="A01XFSZH"/>
</reservations>
<passengers>
<passenger doc_number="1206547892" psgr_id="0" doc_country="RU" psgr_type="A" doc_type="C" birth_date="1974-07-01" name="ALEKSEI" gender="M" first_name="SMIRNOV"/>
<passenger doc_number="7896541230" psgr_id="1" doc_country="RU" psgr_type="A" doc_type="C" birth_date="1984-02-02" name="ROMAN" gender="M" first_name="IVANOV"/>
<passenger doc_number="IVШЯ224111" psgr_id="2" doc_country="RU" psgr_type="C" doc_type="B" birth_date="2010-07-10" name="ANTON" gender="M" first_name="SMIRNOV"/>
<passenger doc_number="IVЕТ789456" psgr_id="3" doc_country="RU" psgr_type="I" doc_type="B" birth_date="2017-02-01" name="ANTON" gender="M" first_name="ROMANOV"/>
</passengers>
<travel_docs>
<travel_doc>
<air_ticket_doc tkt_oper="TKT" tkt_number="8236100037848" tkt_date="2018-01-24 16:23:26" prod_id="0" psgr_id="0" issuingAgent="2615" rsrv_id="496571"/>
</travel_doc>
<travel_doc>
<air_ticket_doc tkt_oper="TKT" tkt_number="2626100037849" tkt_date="2018-01-24 16:23:26" prod_id="1" psgr_id="0" issuingAgent="2615" rsrv_id="496571"/>
</travel_doc>
<travel_doc>
<emd_ticket_doc tkt_oper="TKT" tkt_number="99C6160149267" tkt_date="2018-01-24 16:23:26" prod_id="2" psgr_id="0" issuingAgent="2615" rsrv_id="496571" main_prod_id="1" rfic="D"/>
</travel_doc>
<travel_doc>
<air_ticket_doc tkt_oper="TKT" tkt_number="8236100037850" tkt_date="2018-01-24 16:23:26" prod_id="3" psgr_id="1" issuingAgent="2615" rsrv_id="496571"/>
</travel_doc>
<travel_doc>
<air_ticket_doc tkt_oper="TKT" tkt_number="2626100037851" tkt_date="2018-01-24 16:23:26" prod_id="4" psgr_id="1" issuingAgent="2615" rsrv_id="496571"/>
</travel_doc>
<travel_doc>
<emd_ticket_doc tkt_oper="TKT" tkt_number="99C6160149268" tkt_date="2018-01-24 16:23:26" prod_id="5" psgr_id="1" issuingAgent="2615" rsrv_id="496571" main_prod_id="4" rfic="D"/>
</travel_doc>
<travel_doc>
<air_ticket_doc tkt_oper="TKT" tkt_number="8236100037852" tkt_date="2018-01-24 16:23:26" prod_id="6" psgr_id="2" issuingAgent="2615" rsrv_id="496571"/>
</travel_doc>
<travel_doc>
<air_ticket_doc tkt_oper="TKT" tkt_number="2626100037853" tkt_date="2018-01-24 16:23:26" prod_id="7" psgr_id="2" issuingAgent="2615" rsrv_id="496571"/>
</travel_doc>
<travel_doc>
<emd_ticket_doc tkt_oper="TKT" tkt_number="99C6160149269" tkt_date="2018-01-24 16:23:26" prod_id="8" psgr_id="2" issuingAgent="2615" rsrv_id="496571" main_prod_id="7" rfic="D"/>
</travel_doc>
<travel_doc>
<air_ticket_doc tkt_oper="TKT" tkt_number="8236100037854" tkt_date="2018-01-24 16:23:26" prod_id="9" psgr_id="3" issuingAgent="2615" rsrv_id="496571"/>
</travel_doc>
<travel_doc>
<air_ticket_doc tkt_oper="TKT" tkt_number="2626100037855" tkt_date="2018-01-24 16:23:26" prod_id="10" psgr_id="3" issuingAgent="2615" rsrv_id="496571"/>
</travel_doc>
<travel_doc>
<aex_doc rsrv_id="4965710200" prod_id="4965710200200" psgr_id="0" tkt_oper="TKT" tkt_date="2018-01-24 16:23:44" tkt_number="427309"/>
</travel_doc>
<travel_doc>
<emd_ticket_doc tkt_oper="TKT" tkt_number="23K6160148822" tkt_date="16:23 24.01.2018" prod_id="4965710200200" psgr_id="0" issuingAgent="2615" rsrv_id="4965710200"/>
</travel_doc>
<travel_doc>
<aex_doc rsrv_id="4965710200" prod_id="4965710200201" psgr_id="1" tkt_oper="TKT" tkt_date="2018-01-24 16:23:44" tkt_number="427310"/>
</travel_doc>
<travel_doc>
<emd_ticket_doc tkt_oper="TKT" tkt_number="23K6160148823" tkt_date="16:23 24.01.2018" prod_id="4965710200201" psgr_id="1" issuingAgent="2615" rsrv_id="4965710200"/>
</travel_doc>
<travel_doc>
<aex_doc rsrv_id="4965710200" prod_id="4965710200202" psgr_id="2" tkt_oper="TKT" tkt_date="2018-01-24 16:23:44" tkt_number="427311"/>
</travel_doc>
<travel_doc>
<emd_ticket_doc tkt_oper="TKT" tkt_number="23K6160148824" tkt_date="16:23 24.01.2018" prod_id="4965710200202" psgr_id="2" issuingAgent="2615" rsrv_id="4965710200"/>
</travel_doc>
<travel_doc>
<aex_doc rsrv_id="4965710200" prod_id="4965710200203" psgr_id="0" tkt_oper="TKT" tkt_date="2018-01-24 16:23:44" tkt_number="427312"/>
</travel_doc>
<travel_doc>
<emd_ticket_doc tkt_oper="TKT" tkt_number="23K6160148826" tkt_date="16:23 24.01.2018" prod_id="4965710200203" psgr_id="0" issuingAgent="2615" rsrv_id="4965710200"/>
</travel_doc>
<travel_doc>
<aex_doc rsrv_id="4965710200" prod_id="4965710200204" psgr_id="1" tkt_oper="TKT" tkt_date="2018-01-24 16:23:44" tkt_number="427313"/>
</travel_doc>
<travel_doc>
<emd_ticket_doc tkt_oper="TKT" tkt_number="23K6160148825" tkt_date="16:23 24.01.2018" prod_id="4965710200204" psgr_id="1" issuingAgent="2615" rsrv_id="4965710200"/>
</travel_doc>
<travel_doc>
<aex_doc rsrv_id="4965710200" prod_id="4965710200205" psgr_id="2" tkt_oper="TKT" tkt_date="2018-01-24 16:23:44" tkt_number="427314"/>
</travel_doc>
<travel_doc>
<emd_ticket_doc tkt_oper="TKT" tkt_number="23K6160148827" tkt_date="16:23 24.01.2018" prod_id="4965710200205" psgr_id="2" issuingAgent="2615" rsrv_id="4965710200"/>
</travel_doc>
</travel_docs>
<payments>
<payment pay_id="117911895" pay_oper="PAY" pay_time="2018-01-24 16:22:41" site="2440" psp_code="011" psp_name="Testpay" psp_pay_id="" amount="38174" fop="CA"/>
</payments>
</order_snapshot>
</syntaxhighlight>

<br/><span style="background-color:#fff0f5;">'''<span style="color:#ff0000;">Attention!</span>''' If the Service Package selected by the client has a zero value - it will not be displayed in the export..</span>
*bonus_card - the number of the bonus card entered by the buyer of the ticket in numerical format.
*service_fee — agency charge (only service charge, '''does not include''' acquiring charge), is displayed on the first ticket only (separately for each passenger).
*comission - airline comission
*stamp - Validator code in PCC taken from Websky settings, if it is not specified in the settings, it is not transmitted..
*ord_id — order identifier in Websky
*corp_ord_id — PNR from GDS
*site — agency identifier in Websky
*payment pay_id — billing number from Websky
*pay_system — payment system code
**SB — for Sberbank
**ES — for Rapida
**UNT — for Uniteller
*psp_name — shows the division of the payment gateway fee amount and ticket price
**Uniteller — Uniteller payment (bank)
**Uniteller_GDS — payment via GDS processing (Uniteller)
*cardholder — card holder.
*expire_date — card expiration date of the card, it is empty for payment gateways that are not received in the response.
*card_number — card number, in the 415481XXXXXX1734 format
*approval_code — approval code.
*payment_prod price — the acquiring fee.
*main_ticket_prod_id - ticket ID in export, formed as an offset for air tickets (200) + passenger ID;
*prod_id - id of the service package in export, is formed as offset (400) + number in order;
*tkt_number - passenger policy number;
*tkt_date - operation date and time;
*tkt_oper - operation type (TKT - ticketing/CANX - ticketing cancellation).
*provider_type - supplier type (INSURANCE).
*provider_id - AlphaInsurance;
*offer_type - policy name;
*price - passenger policy price;
*rsrv_id - order identifier;
*rloc - supplier order number;
*currency - primary currency of the site (currency of settlement, currency of payment);
*crs_currency - currency of supplier settlements (with GDS);
*crs_currency_rate - supplier's currency rate;
*no_conj_tickets – number of additional tickets (displayed when the number of segments exceeds 4 inclusive);
*surface_seg - transfer of the ground section (if the arrival airport of one segment is not the same as the departure airport of the next one);
*supplier - PCC number (drawn if specified in the connection details);
*time_gmt - GMT time;
*time - date and time of sending information to SOFI (MSC);
*corp_code - corporate client code;
*email - client's e-mail address;
*phone - client's phone number;
*psg_type - passenger category as a letter: A - adult, C - child, I - infant;
*title - brief description of the route;
*form_owner - owner of IATA form;
*validating_carrier - validating carrier;
*prod_id - product identifier;
*taxes - taxes;
*fare - fare price;
*origin/destination - point of departure/destination;
*segment_id - segment identifier in air_ticket_prod corresponding to the service;
*carrier - marketing carrier;
*flight_number - flight number;
*op_carrier - operating carrier;
*departure_date time - date, time of departure;
*arrival_datetime - date, time of arrival;
*departure_airport - airport of departure;
*arrival_airport - airport of arrival;
*fare_basis - fare code;
*amount - tax price;
*code - tax code;
*departure_datetime - date, time of departure;
*cartype - car type;
*crs - code of the booking system (supplier);
*doc_number - document number;
*psgr_id - passenger number;
*doc_country - nationality;
*psgr_type - passenger category;
*doc_type - type of the identity document;
*doc_date - date of birth of the passenger;
*name - passenger's name;
*gender - gender of the passenger;
*first_name - passenger's surname;
*issuingAgent - ID of the user who issued the ticket;
*pay_time - date, time of payment
*psp_code - code of the payment system through which the payment is made;
*psp_pay_id - payment identifier in the payment system;
*amount - amount of the payment;
*fop - form of payment.

</div>
</div>

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">

==== JSON format ====
<div class="mw-collapsible-content">
see. http://docs.nemo.travel/en/nemo-backoffice-api/json_api/order_export
</div>
</div>

=== Order export for "Hotels" component ===
For the '''«Hotels»''' component, order export is available in Nemo and/or JSON formats.

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Формат JSON ====
<div class="mw-collapsible-content">
see https://docs.nemo.travel/en/hotels/hotelsbackoffice
</div>
</div>

=== Order export for "Rail" component ===
For '''«Rai»''' component, order export is available in Nemo and/or JSON formats.

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Websky format ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<?xml version="1.0" encoding="UTF-8"?>
<PNR>
<Common>
<id>123456</id>
<Type>TRAINS</Type>
<Service>UFS</Service>
<Locator>64345987</Locator>
<BeginDateTime>2014.04.26-00:15</BeginDateTime>
<EndDateTime>2014.04.26-13:33</EndDateTime>
<TicketingDateTime>2014.06.06-15:10</TicketingDateTime>
<VoidDateTime>2014.06.07-14:19</VoidDateTime>
<TotalPrice>
<Amount>57505.8</Amount>
<CurrencyCode>RUB</CurrencyCode>
</TotalPrice>
<UserId>123</UserId>
<EEUserId />
<UserLogin>mikhalevtur</UserLogin>
<GroupId>122</GroupId>
<UserStatus>Менеджер</UserStatus>
<DateCreate>2014.04.24-15:03</DateCreate>
</Common>
<Payment>
<Title>Testpay</Title>
<Method>Testpay</Method>
<BillingId>117603370</BillingId>
<Date>2014-04-24 15:10:12</Date>
<CreateDate>2014-06-06 15:10:00</CreateDate>
<Status>cancelled</Status>
<PenaltyDate />
<Timelimit>2014-04-24 15:18:01</Timelimit>
<Charge>
<Amount>52278</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Charge>
<Book>
<Amount>5227.8</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Book>
<Penalty>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Penalty>
<TotalAgencyChargeForRefund>
<Amount>100</Amount>
<CurrencyCode>RUB</CurrencyCode>
</TotalAgencyChargeForRefund>
<Total>
<Amount>57505.8</Amount>
<CurrencyCode>RUB</CurrencyCode>
</Total>
<PaidValue>
<Amount>0</Amount>
<CurrencyCode>RUB</CurrencyCode>
</PaidValue>
</Payment>
<Client>
<LastName>Сидоров</LastName>
<Name>Владимир</Name>
<MiddleName>Константинович</MiddleName>
<Number>1806326598</Number>
<Birth>1987-05-20</Birth>
<Email>mail@host.com</Email>
<Phone>+79871234567</Phone>
</Client>
<Passengers>
<Passenger>
<name>Владимир</name>
<middlename>Константинович</middlename>
<phone>
<country />
<city />
<number>+79271031610</number>
<expansion />
</phone>
<email>mlsdsar@gmail.com</email>
<nationality>RU</nationality>
<passenger_type>ADT</passenger_type>
<lastname>Сидоров</lastname>
<doc_type>C</doc_type>
<passport_number>1806326598</passport_number>
<passenger_id>1</passenger_id>
<gender>M</gender>
<date_of_birth>20.04.1984</date_of_birth>
<TotalPrice>28752.9</TotalPrice>
<FarePrice>2613.9</FarePrice>
<Charge>26139</Charge>
<RefundMoney>8649.3</RefundMoney>
<ChargeForRefund>100</ChargeForRefund>
<TicketNumber>74944708487545</TicketNumber>
<SeatNumber>033</SeatNumber>
<HasSeat>true</HasSeat>
</Passenger>
<Passenger>
<nationality>RU</nationality>
<middlename>Константинович</middlename>
<passenger_type>ADT</passenger_type>
<lastname>Сидоров</lastname>
<name>Иван</name>
<doc_type>C</doc_type>
<passport_number>1806326554</passport_number>
<passenger_id>2</passenger_id>
<gender>M</gender>
<date_of_birth>05.04.1984</date_of_birth>
<TotalPrice>28752.9</TotalPrice>
<FarePrice>2613.9</FarePrice>
<Charge>26139</Charge>
<TicketNumber />
<SeatNumber>034</SeatNumber>
<HasSeat>true</HasSeat>
</Passenger>
</Passengers>
<Info>
<trainNumber>098ХА</trainNumber>
<trainName />
<departureStation>МОСКВА КАЗ</departureStation>
<arrivalStation>КАЗАНЬ ПАС</arrivalStation>
<trainCategory>1</trainCategory>
<beginStation>Москва</beginStation>
<endStation>Казань</endStation>
<startDate>2014-04-26 00:15:00</startDate>
<endDate>2014-04-26 13:33:00</endDate>
<timeInRoad>47880</timeInRoad>
<carNumber>8</carNumber>
<carType>4</carType>
<choosenSeats>
<type>
<lower>1</lower>
</type>
<type>
<upper>1</upper>
</type>
<type>
<lower_side>0</lower_side>
</type>
<type>
<upper_side>0</upper_side>
</type>
<type>
<undefined>0</undefined>
</type>
</choosenSeats>
<choosenRange>
<start>0</start>
<end>0</end>
</choosenRange>
<serviceClass>В стоимость входит - постельное белье. Наличие установки кондиционирования воздуха не гарантировано.</serviceClass>
</Info>
</PNR>
</syntaxhighlight>

'''PNR element'''
'''PNR'' element' — Passenger Name Record — a record consisting of a group of individual elements (fields) containing information about one or more passengers travelling together and travel details.
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Element
! scope="col" width="300" | Description
! scope="col" width="300" | Acceptable values
|-
| Common
| General information by the order.
| Elements: id, Type, Service, Locator, BeginDateTime, EndDateTime, TicketingDateTime, TotalPrice, UserId, EEUserId, UserLogin, GroupId, UserStatus, DateCreate.
|-
| Payment
| Information about prices, penalties, order status.
| Elements: Status, PenaltyDate, Timelimit, Charge, Book, Penalty, Total, PaidValue.
|-
| Client
| Customer information.
| Elements: Name, MiddleName, Number, Birth, Email, Phone.
|-
| Passengers
| Passenger records.
| Passenger elements.
|-
| Info
| Standard order information in the context of the service.
| Elements: trainNumber, trainName, departureStation, arrivalStation, trainCategory, beginStation, endStation, startDate, endDate, timeInRoad, carNumber, carType, choosenSeats, choosenRange, serviceClass.
|}

'''“Common” element'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Element
! scope="col" width="300" | Description
! scope="col" width="300" | Acceptable values
|-
| id
| Order number in Websky.
| A number. Example: 268281.
|-
| Type
| Service type.
| String: Example: FLIGHTS.<br/>Acceptable values: <ul><li>FLIGHTS — авиа,</li><li>HOTELS — hotels,</li><li>TRAINS — rail.</li></ul>
|-
| Service
| Service Provider.
| String. Example: UFS.
|-
| Locator
| Identifier in the supplier system.
| Number. Example: 65525140.
|-
| BeginDateTime
| Date and time of departure of the first segment.
| Date and time. Example: 2014.03.06-00:15.
|-
| EndDateTime
| Date and time of arrival of the last segment.
| Date and time. Example: 2014.03.06-13:33.
|-
| TicketingDateTime
| Date and time of ticketing.
| Date and time. Example: 2014.10.17-17:23
|-
| VoidDateTime
| Date and time of ticket refund.
| Date and time. Example: 2014.10.17-17:23
|-
| TotalPrice
| Total order value.
| "Amount" elements - nominal value, "CurrencyCode" - currency of value.
|-
| UserId
| Identifier of the user who placed the order in Websky system.
| Number. Example: 123.
|-
| UserLogin
| Login of the user who placed the order in Websky system.
| String. Example: userLogin.
|-
| GroupId
| Identifier of the user who placed the order in Websky system.
| Number. Example: 122.
|-
| UserStatus
| User type in the Websky system.
| String. Example: Manager.
|-
| DateCreate
| Date and time of reservation in the supplier system.
| Date and time. Example: 2014.03.05-15:08
|}

'''TotalPrice element'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Element
! scope="col" width="300" | Description
! scope="col" width="300" | Acceptable values
|-
| Amount
| Nominal.
| Number. Example: 1884.
|-
| CurrencyCode
| Currency.
| String (ISO code 4217 alfa-3). Example: RUB.
|}

'''Payment element'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Element
! scope="col" width="300" | Description
! scope="col" width="300" | Acceptable values
|-
| Title
| Name of the payment gateway<sup>*</sup>.
| String. Example: Testpay.
|-
| Method
| Type of payment form<sup>*</sup>.
| String. Example: Testpay.
|-
| BillingId
| Transaction identifier in Websky.
| String. Example: 117603370.
|-
| Date
| Date and time of payment transaction in Websky.com
| String. Example: 2014-04-24 15:10:12.
|-
| CreateDate
| Date and time of payment transaction creation {{{NameSystem}}.
| String. Example: 2014-06-06 15:10:00.
|-
| Status
| Order status in in Websky.
| String. Example: booked.<br/>Acceptable values:
<ul>
<li>pending</li>
<li>booked</li>
<li>ticket - ticketed,</li>
<li>cancelled</li>
</ul>
|-
| PenaltyDate
| Date and time of the penalty.
| Date and time. Example: 2014-03-05 15:23:40.
|-
| Timelimit
| Time limit for payment and order confirmation.
| Date and time. Example: 2014-03-05 15:23:40.
|-
| Charge
| Agency charge.
| See Common.TotalPrice element.
|-
| Book
| Fare.
| See Common.TotalPrice element.
|-
| Penalty
| Penalty.
<br/><span style="background-color:#fff0f5;">''"<span style="color:#ff0000;"> Attention!</span>''' At present the parameter is inactive and always takes zero value during the export.
| See Common.TotalPrice element.
|-
| TotalAgencyChargeForRefund
| The agency's total refund charge.
| See Common.TotalPrice element.
|-
| Total
| Total price.
| See Common.TotalPrice element.
|-
| PaidValue
| Paid.
| See Common.TotalPrice element.
|}

<sup>*</sup> — a list of possible payment gateways:<br/>
Acquiro, Chronopay, Copayco, CourierNew, Deposit, EasyPay, GatelineNew, ITransfer, Invoice, Offices, PayU, Payture, Platron, PrivatBank, Qiwi, Rapida, Receipt, Sberbank, Sirena, Sirena2, UnitellerNew, WebMoney.

'''Client element'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Element
! scope="col" width="300" | Description
! scope="col" width="300" | Acceptable values
|-
| Name
| Name and surname of the customer.
| String. Example: Ivanov Ivan.
|-
| MiddleName
| Customer's middle name.
| String. Example: Ivanovich.
|-
| Number
| Document series and number.
| Line. Example: 1806123456.
|-
| Birth
| Customer's date of birth.
| Date. Example: 1984-06-30.
|-
| Email
| E-mail address of the customer.
| String. Example: client@host.com.
|-
| Phone
| Customer phone number.
| String. Example: +74951234567
|}

'''Passenger element'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Element
! scope="col" width="300" | Description
! scope="col" width="300" | Acceptable values
|-
| lastname
| Last name of the passenger.
| String. Example: Sidorov.
|-
| name
| Passenger name.
| String. Example: Vladimir.
|-
| middlename
| Passenger's middle name.
| String. Example: Konstantinovich.
|-
| doc_type
| Document type.
| String. Example: C.<br/>Permissible values:
<ul>
<li>C - Russian passport</li>
<li>P - Foreign passport</li>
<li>A - Foreign document</li>
<li>S - Sailor's passport</li>
<li>M - Military ticket</li>
<li>B - Birth Certificate</li>
</ul>
|-
| passport_number
| Document series and number.
| Line. Example: 1806123456.
|-
| gender
| Half a passenger.
| Line. Example: M.<br/>Permissible values:
<ul>
<li>M - male</li>
<li>F - female</li>
</ul>
|-
| date_of_birth
| Passenger's date of birth.
| Date. Example: 20.05.1987.
|-
|
| Nationality of the passenger.
| String (ISO 3166-1 Alpha-2). Example: RU.
|-
| passenger_type
| Passenger type.
| Line. Example: ADT.<br/>Permissible values:
<ul>
<li>ADT - adult</li>
<li>CLD - child under 10 years<sup>*, **</sup></li>.
<li>INF - child under 5 years<sup>*, ***</sup></li>.
</ul>
|-
| passenger_id
| Passenger order number in the order.
| Number. Example: 2.
|-
| TotalPrice
| The total price of the ticket with charges for this passenger.
| Number. Example: 1934.
|-
| FarePrice
| Fare price.
| Number. Example: 1884.
|-
| Charge
| Agency charge.
| Number. Example: 50.
|-
| RefundMoney
| Amount to refund. The value received from the supplier is reduced by the agency's refund charge.
| Number. Example: 1643.
|-
| ChargeForRefund
| Agency refund charge.
| Number. Example: 100.
|-
| TicketNumber
| Ticket number.
| Number. Example: 73944708472624.
|-
| SeatNumber
| Seat number.
| number. Example: 21.
|-
| TariffType
| Fare name.
| String. Example: FULL.
|-
| HasSeat
| Whether a passenger occupies a separate seat.
| Permissible values:<ul><li>true - with seat,</li><li>false - without seat.
|}

<sup>*</sup> — Not including the upper limit. The age of the child is determined on the day of travel.

<sup>**</sup> - Lower and upper limits are determined by the type of traffic:
* from 5 to 10 years - Domestic traffic, as well as international communication with the CIS member states, Lithuania, Latvia, Estonia and the Republic of Abkhazia.
* from 6 to 17 years - International traffic in non-CIS countries at global prices. Russia-Finland direction.
* from 4 to 12 years - International traffic in the Far Abroad at global prices. East-West direction.

<sup>***</sup> - The upper limit is determined by the type of traffic:
* up to 5 years - Domestic traffic , as well as international communication with the CIS member states, Lithuanian, Latvian, Estonian, Republic of Abkhazia.
* up to 6 years - International traffic with non-CIS countries at global prices. Direction Russia-Finland.
* up to 4 years - International traffic with non-CIS countries at global prices. East-West direction.



'''Passenger element'''.
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Element
! scope="col" width="300" | Description
! scope="col" width="300" | Acceptable values
|-
| trainNumber
| Train number.
| String. Example: 098XA.
|-
| trainName
| The name of the branded train. Comes from a supplier.
| String. Example: Russia.
|-
| departureStation
| Passenger departure station.
| String. Example: MOSCOW KAZ.
|-
| arrivalStation
| Passenger arrival station.
| String. Example: KAZAN PAS.
|-
| trainCategory
| Train type.
| Integer. Example: 1.<br/>Permissible values:
<ul>
<li>0 - unknown train type</li>
<li>1 - fast train</li>
<li>2 - branded train</li>
<li>3 - high-speed train</li>
<li>4 - branded high-speed train</li>
</ul>
|-
| beginStation
| Start station on the train route.
| String. Example: Kazan
|-
| endStation
| End station on the train route.
| String. Example: Moscow
|-
| startDate
| Date and time of departure from the passenger departure station.
| Date and time. Example: 2014-03-06 00:15:00.
|-
| endDate
| Date and time of arrival from the passenger departure station.
| Date and time. Example: 2014-03-06 13:33:00.
|-
| timeInRoad
| Travel time from the departure station to the passenger arrival station.
| Integer (seconds). Example: 47880.
|-
| carNumber
| Wagon number.
| Integer . Example: 7.
|-
| carType
| Wagon type.
| Integer . Example: 1.<br/>Permissible values:
<ul>
<li>1 - shared car</li>
<li>2 - seat car</li>
<li>3 - springboard</li>
<li>4 - coupe</li>
<li>5 - luxury</li>
<li>6 - soft</li>
<li>7 - unknown type</li>
</ul>
|-
| choosenSeats
| The element describes the number of lower, lower side, upper, upper side seats.
| Type elements.
|-
| choosenRange
| Selected range of seats in the car.
| Start, end elements.
|-
| serviceClass
| Description of services. Comes from a supplier.
| Text. Example: The price includes - bed linen. Availability of air-conditioning installation is not guaranteed.
|}


'''Type element'''.
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Element
! scope="col" width="300" | Description
! scope="col" width="300" | Acceptable values
|-
| lower
| Number of bottom seats.
| Integer. Example: 1.
|-
| upper
| Number of top seats.
| Integer. Example: 0.
|-
| lower_side
| Number of lower side seats.
| Integer. Example: 1.
|-
| upper_side
| Number of topside seats.
| Integer. Example: 1.
|-
| undefined
| Number of seats of uncertain type.
| Integer. Example: 0.
|}

'''choosenRange element'''.
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Element
! scope="col" width="300" | Description
! scope="col" width="300" | Acceptable values
|-
| start
| Start of the selected range of seats in the car<sup>*</sup>.
| Integer. Example: 4.
|-
| end
| End of selected range of seats in the car<sup>*</sup>.
| Integer. Example: 17.
|}
<sup>*</sup> - If the range was not defined by the user at the seat selection stage, the start and end fields will contain zeros.

</div>
</div>

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== JSON format ====
<div class="mw-collapsible-content">
see http://docs.nemo.travel/en/nemo-backoffice-api/json_api/order_export
</div>
</div>

== Package order export in Nemo format==
Order export service allows you to export the necessary samples by orders in XML, XLS(X) format. For example, you can select orders by date of booking and get information on them in the desired format. Export in XLS(X) format will upload a maximum of 1000 orders at a time. If more orders need to be exported (to get complete statistics on all orders), you need to export orders for successive periods.

When you export order data in XLS(X) format, price parameters will be converted into agency currency at the rates recorded at the time of payment for a particular order.

The export panel is always available for managers and experts.

=== Exporting orders under an authorized user (in a personal account) ===
[[File:exportxmlxxxlsx.jpg|600px|thumb|right|Filters for package export orders in personal account]].
The "Show Export Panel" pseudo link opens a form that allows you to export your orders to an XML, XLS or XLSX file format.

The orders of the selected user/company and their subagents/users are uploaded based on the applied filter parameters.

The order data export request will be displayed in the log system with an XML file containing the upload data.

To export postponed orders in XLS(X) format, the "Booking status" parameter must be set to "Postponed" in order filters.

At the moment the limit for the number of single orders uploaded is set to 1000. In case it is necessary to upload more orders (to get complete statistics on all orders), it is possible to do it by uploading orders for certain periods.

==== Package Export parameters ====

{| class="wikitable mw-collapsible mw-uncollapsed"
|-
! scope="col" | Parameter
! scope="col" | XLS - export
! scope="col" | XML - export
|-
| Ticket number
| n/a
| Passengers->Passenger->Tickets->Ticket->Num
|-
|Route
| service_summary
| OrderInfo
|-
| Ticketing date
| ticketing_date
| Common->TicketingDateTime
|-
| Departure date
| date_begin
| OrderInfo->Info->StartDate,StartTime
|-
|Fare in the currency of the site (for each ticket)
|only total for all passengers
| n/a
|-
|Taxes in the currency of the site (for each ticket)
|только total for all passengers
| n/a
|-
|Fare in the currency of ticketing (for each ticket)
| n/a
| n/a
|-
| passenger second name (for each ticket)
| no
| Passengers->Passenger->lastname
|-
|}


=== Order re-export ===
If the order export was not successful, the system provides the possibility to export it again. To do this, the manager of the agency needs to go to the page of the problem order in the "Service Information" section, where the link "Re-export order", after clicking on which the order will be re-exported.

Moreover, if the setting of '''export both Nemo and Sophie''' in the ''System Settings → Integration → Export of bookings'' section is enabled, the order will be re-exported in both Nemo and SOFI formats.

It is also possible to re-export orders from your Personal Account. To do this, in the "Orders" section, you need to click on the link "Re-export order" for the desired order in the column "Actions".


== See also ==
*[[User]]
*[[Авторизованный пользователь Authorised user]]
*[[Агентство Agency]]
*[[Заказы Orders]]
*[[Booking]]
*[[Cancellation]]
*[[Ticketing]]
*[[Voiding]]
*[http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP HTTP Status Code List].
1382
правки

Навигация

'