Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

42 KiB

Введение

Версия документа: 1.2 Дата изменения: 16.09.2016

Для возможности продажи с использованием протокола AVS5RS необходимо реализовать сервис с использованием протокола HTTP. Все запросы оправляются методом POST. Методы включают в себя справочные методы и методы продажи. Продажа состоит из двух этапов резервирование и подтверждение продажи. Протокол должен быть защищен авторизацией через логин и пароль. Так же необходимо чтобы трафик передавался по защищенному каналу связи с использованием SSL или VPN.

Методы сервиса

Все запросы должны передаваться по протоколу HTTP методом пост. В теле POST запроса и ответа передается XML фиксированного формата. Каждый метод имеет отдельный URL. Через HTTP заголовок Content-Type передается значение application/xml; charset=UTF-8. Этот заголовок указывает на тип содержимого запроса и его кодировку. Необходимо использовать только кодировку UTF-8.

Формат ответа

Корневой тег XML ответа Response. У него есть обязательный атрибут success, который указывает корректно выполнился запрос или нет, значения true - корректно, false - нет. Если ответ корректный, то данные ответа содержатся во вложенном теге Body. Если ответ не корректный, тег Body будет проигнорирован, а информация об ошибке должна находиться во вложенном теге Error. Который состоит из кода ошибки и описания. Коды ошибок не регламентируются. Описание это произвольные тест, поясняющий причину ошибки. Регистр названий тегов и атрибутов должен совпадать с регистром из примеров. Все ответы должны приходить с HTTP кодом 200. Все XML ответы должны начинаться с объявления <?xml version="1.0" encoding="UTF-8"?> в котором указана кодировка содержимого. Формат даты yyyy-MM-dd, формат даты и времени yyyy-MM-dd'T'HH:mm:ss, пример 2016-09-07T13:10:00 (символ T латинский, обязательный) (секунды обязательны). Время указано в часовом поясе сервера который предоставляет контент. Все идентификаторы сущностей (id) это строки, произвольного формата, длинной до 36 символов.

Корректный ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
    <Body>
        <message>Test</message>
    </Body>
</Response>

Не корректный ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="false">
    <Error>
        <code>ERROR</code>
        <message>Место 5 занято</message>
    </Error>
</Response>

echo

Метод принимает в параметра произвольную строку и возвращает её в теле ответа. Не выполняет ни какой логики. Необходим для проверки доступен ли сервис.

URL: /sales/echo

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<EchoRequest>
    <!-- Сообщение которое будет возвращено в ответ. Обязательно. -->
    <message>Test</message>
</EchoRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
    <Body>
        <!-- Сообщение переданное в запросе -->
        <message>Test</message>
    </Body>
</Response>

getDispatchStations

Метод получения станций отправления. Продажа происходит от станции отправления до станции назначения, поэтому метод должен вернуть хотя бы один элемент. Обычно станциями отправления являются автовокзалы или автоматизированные остановочные пункты с функцией продажи билетов.

URL: /sales/getDispatchStations

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<GetDispatchStationsRequest>
</GetDispatchStationsRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
    <Body>
        <!-- Станция -->
        <Station>
            <!-- Идентификатор станции. Обязателен. -->
            <id>983</id>
            <!-- Наименование станции. Обязателен. Используется для отображения в интерфейсе пользователя -->
            <name>ВДНХ АС</name>
            <!-- Название региона станции. Не обязателен. Используется для отображения в интерфейсе пользователя -->
            <region>Москва</region>
            <!-- ОКАТО станции. Не обязателен. Используется для поиска одинаковых станций и отображения в интерфейсе пользователя -->
            <okato>45000000000</okato>
        </Station>
        <Station>
            <id>853</id>
            <name>Варшавская АС</name>
            <region>Москва</region>
            <okato>45000000000</okato>
        </Station>
        <Station>
            <id>6</id>
            <name>Красногвардейская АС</name>
            <region>Москва</region>
            <okato>45000000000</okato>
        </Station>
    </Body>
</Response>

getArrivalStations

Метод получения станций назначения от станции отправления. В параметра принимает идентификатор станции отправления. Станциями назначения могут быть любые остановочные пункты до которых есть хотя бы один рейс. Если станций назначения нет вернуть пустой список.

URL: /sales/getArrivalStations

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<GetArrivalStationsRequest>
    <!-- Идентификатор станции отправления. Обязательно. -->
    <dispatchStationId>983</dispatchStationId>
</GetArrivalStationsRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
    <Body>
        <Station>
            <id>1069</id>
            <name>Рыбинск</name>
            <region>Ярославская область</region>
            <okato>78415000000</okato>
        </Station>
        <Station>
            <id>1018</id>
            <name>Сергиев Посад</name>
            <region>Московская область</region>
            <okato>46215501000</okato>
        </Station>
        <Station>
            <id>1084</id>
            <name>Углич</name>
            <region>Ярославская область</region>
            <okato>78420000000</okato>
        </Station>
        <Station>
            <id>1078</id>
            <name>Утена</name>
            <region>Литва</region>
        </Station>
    </Body>
</Response>

searchTrips

Метод возвращает список рейсов от станции отправления до станции назначения на заданную дату. В параметрах передается идентификатор станции отправления, идентификатор станции назначения и дата.

URL: /sales/searchTrips

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<SearchTripsRequest>
    <!-- Идентификатор станции отправления. Обязательно.-->
    <dispatchStationId>983</dispatchStationId>
    <!-- Идентификатор станции назначения. Обязательно. -->
    <arrivalStationId>678</arrivalStationId>
    <!-- Дата на которую выполняется поиск рейса. Обязательно. -->
    <date>2016-07-12</date>
</SearchTripsRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
    <Body>
         <!-- Рейс-->
        <Trip>
            <!-- Идентификатор рейса. Обязательно. -->
            <id>570104</id>
            <!-- Номер маршрута. Не обязателен. -->
            <num>000</num>
            <!-- Название маршрута. Обязателен. -->
            <name>ВДНХ АС - Пенза</name>
            <!-- Дата и время отправления. Обязателен. -->
            <dispatchDate>2016-07-13T19:30:00</dispatchDate>
            <!-- Дата и время прибытия. Обязателен. -->
            <arrivalDate>2016-07-14T05:30:00</arrivalDate>
            <!-- ID станции отправления. Обязателен. -->
            <dispatchStationId>983</dispatchStationId>
            <!-- Станция отправления рейса. Обязателен. -->
            <dispatchStationName>ВДНХ АС</dispatchStationName>
            <!-- ID станции назначения. Обязателен. -->
            <arrivalStationId>744</arrivalStationId>
            <!-- Станция назначения рейса. Обязателен. -->
            <arrivalStationName>Пенза</arrivalStationName>
            <!-- Цена полного проездного билета (включая сборы). Обязателен. -->
            <price>1391</price>
            <!-- Название перевозчика. Не Обязателен. -->
            <carrierName>ИП Ерашова Валентина Анатольевна</carrierName>
            <!-- ИНН перевозчика. Обязателен. -->
            <carrierInn>ИНН 582700056092</carrierInn>
            <!-- Описание автобуса. Обязателен. -->
            <busInfo>49 Мест Категория ТС &quot;М3&quot;  </busInfo>
            <!--
            Флаг обязательности ввода дополнительных персональных данных покупателя.
            Основые персональные данные: Имя, Фамилия, Тип документа, Номер документа.
            Дополнительные персональные данные: Отчество, Пол, Дата рождения, Гражданство.
            Ввод дополнительных данных требуется во исполнение статьи 11 закона "О транспортной безопасности"
            (с изменениями на 3 февраля 2014 года).
            <p>
            См. http://docs.cntd.ru/document/902027326

            Обязателен. Если система не поддерживает, возвращать всегда true.
             -->
            <extDataRequired>true</extDataRequired>
            <!-- 
            тип рейса. Обязателен.
            Междугородный - INTERURBAN
            Пригородный - SUBURBAN
            Международный - INTERNATIONAL
            Внутриобластной - INTRAREGIONAL
            Межобластной - INTERREGIONAL
            Межреспубликанский - INTERREPUBLICAN
            Внутрирайонный - INTRADISTRICT
            -->
            <type>INTERREGIONAL</type>
            <!--
            статус рейса. Обязателен.
            ON_SALE - В продаже. На рейса доступны все опрерации.,
            SUSPENDED - Приостановка остановка продажи. Рейс не доступен для продажи.
            CANCELED - Рейс отменен. Рейс не доступен для продажи.
            UNKNOWN - Неопределенный статус. Рейс не доступен для продажи.
            -->
            <status>ON_SALE</status>
            <!-- Количество мест в автобусе. Обязателен. -->
            <seatCount>49</seatCount>
            <!-- Кол-во мест, доступных для продажи. Обязателен.-->
            <freeSeatCount>49</freeSeatCount>
        </Trip>
        <Trip>
            <id>570105</id>
            <num>000</num>
            <name>ВДНХ АС - Пенза</name>
            <dispatchDate>2016-07-13T21:30:00</dispatchDate>
            <arrivalDate>2016-07-14T07:30:00</arrivalDate>
            <dispatchStationId>983</dispatchStationId>
            <dispatchStationName>ВДНХ АС</dispatchStationName>
            <arrivalStationId>744</arrivalStationId>
            <arrivalStationName>Пенза</arrivalStationName>
            <price>1391</price>
            <carrierName>ИП Ерашова Валентина Анатольевна</carrierName>
            <carrierInn>ИНН 582700056092</carrierInn>
            <busInfo>49 Мест Категория ТС &quot;М3&quot;  </busInfo>
            <extDataRequired>true</extDataRequired>
            <type>INTERREGIONAL</type>
            <status>ON_SALE</status>
            <seatCount>49</seatCount>
            <freeSeatCount>49</freeSeatCount>
        </Trip>
    </Body>
</Response>

getFreeSeats

Получение списка свободных мест для рейса. В параметра принимает идентификатор рейса, идентификтор станции отправления и идентификатор станции назначения.

URL: /sales/getFreeSeats

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<GetFreeSeatsRequest>
    <!-- Идентификатор рейса. Обязательный. -->
    <tripId>570101</tripId>
    <!-- Идентификатор станции отправления. Обязательный. -->
    <dispatchStationId>983</dispatchStationId>
    <!-- Идентификатор станции назначения. Обязательный. -->
    <arrivalStationId>1080</arrivalStationId>   
</GetFreeSeatsRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
    <Body>
        <!-- Место-->
        <Seat>
            <!-- Идентификатор места. Обязателен. Может совпадать с названием.-->
            <id>17926</id>
            <!-- Название места. Обязателен. Отображается в интерфейсе пользователя. -->
            <name>Место 1</name>
            <!-- Тип места. Не обязателен -->
            <type>Сидячее</type>
        </Seat>
        <Seat>
            <id>17927</id>
            <name>Место 2</name>
            <type>Сидячее</type>
        </Seat>
        <Seat>
            <id>17928</id>
            <name>Место 3</name>
            <type>Сидячее</type>
        </Seat>
    </Body>
</Response>

getTicketTypes

Получение списка типов билетов, доступных для продажи. В параметра принимает идентификатор рейса, идентификатор станции отправления и идентификатор станции назначения.

URL: /sales/getTicketTypes

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<GetTicketTypesRequest>
    <!-- Идентификатор рейса. Обязательный. -->
    <tripId>570101</tripId>
    <!-- Идентификатор станции отправления. Обязательный. -->
    <dispatchStationId>983</dispatchStationId>
    <!-- Идентификатор станции назначения. Обязательный. -->
    <arrivalStationId>1080</arrivalStationId>
/GetTicketTypesRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
    <Body>
        <TicketType>
            <!-- Идентификатор типа билета. Обязателен. Может совпадать с названием. -->
            <id>1#1#0</id>
            <!-- Название типа билета. Обязателен. -->
            <name>Полный</name>
            <!-- Цена для заданного типа билета (со сборами). Обязателен. -->
            <price>1391</price>
            <!-- 
            Класс билета. Обязателен.
            PASSENGER Пассажирский билет, с выделением места
            BAGGAGE Багажный билет, без выделения места
            -->
            <ticketClass>PASSENGER</ticketClass>
        </TicketType>
        <TicketType>
            <id>38#6#0</id>
            <name>Детский</name>
            <price>696</price>
            <ticketClass>PASSENGER</ticketClass>
        </TicketType>
        <TicketType>
            <id>0#0#0</id>
            <name>Багажный</name>
            <price>40</price>
            <ticketClass>BAGGAGE</ticketClass>
        </TicketType>
    </Body>
</Response>

getDocumentTypes

Получение списка типов документов, допустимых при оформлении билетов. Система должна предоставить хотя бы один тип документа. Рекомендуется использовать документы из (приказа)[http://base.garant.ru/70229008/] в Таблице 1. В параметра принимает идентификатор рейса, идентификатор станции отправления и идентификатор станции назначения.

URL: /sales/getDocumentTypes

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<GetDocumentTypesRequest>
    <!-- Идентификатор рейса. Обязательный. -->
    <tripId>570101</tripId>
    <!-- Идентификатор станции отправления. Обязательный. -->
    <dispatchStationId>983</dispatchStationId>
    <!-- Идентификатор станции назначения. Обязательный. -->
    <arrivalStationId>1080</arrivalStationId>
</GetDocumentTypesRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
<Body>
    <DocumentType>
        <!-- ID типа документа. Обязателен. Может совпадать с названием. -->
        <id>1</id>
        <!-- Название типа документа. Обязателен. -->
        <name>Паспорт РФ</name>
    </DocumentType>
    <DocumentType>
        <id>52</id>
        <name>Паспорт иностранного гражданина</name>
    </DocumentType>
    <DocumentType>
        <id>40</id>
        <name>Удостоверение (Казахстан)</name>
    </DocumentType>
    <DocumentType>
        <id>2</id>
        <name>Свидетельство о рождении</name>
    </DocumentType>
    <DocumentType>
        <id>4</id>
        <name>Удостоверение личности военнослужащего</name>
    </DocumentType>
    <DocumentType>
        <id>55</id>
        <name>Временное удостоверение ОВД</name>
    </DocumentType>
</Body>
</Response>

getTripStops

Метод возвращает список остановочных пунктов для рейса. В параметра принимает идентификатор рейса. Метод информационный.

URL: /sales/getTripStops

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<GetTripStopsRequest>
    <!-- Идентификатор рейса. Обязателен. -->
    <tripId>569839</tripId>
</GetTripStopsRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
    <Body>
        <Stop>
            <!-- ID остановки. Совпадает с ID станции. Обязателен. -->
            <id>1011</id>
            <!-- Название остановки. Совпадает с названием станции. Обязателен. -->
            <name>Скопин (трасса)</name>
            <!-- Район расположения остановки. Не обязателен. -->
            <regionName>Рязанская область</regionName>
            <!-- Дата-время прибытия на остановку. Обязателен. -->
            <arrivalDate>2016-07-14T16:20:00</arrivalDate>
            <!-- Дата-время отправления с остановки. Обязателен. -->
            <dispatchDate>2016-07-13T21:00:00</dispatchDate>
            <!-- Время стоянки в минутах. Не Обязателен. -->
            <stopTime>10</stopTime>
            <!-- Расстояние от пункта отправления до остановки в км. Не Обязателен. -->
            <distance>260</distance>
            <!-- Цена полного билета. Обязателен. -->
            <price>1177</price>
        </Stop>
        <Stop>
            <id>1010</id>
            <name>Мичуринск (трасса)</name>
            <regionName>Тамбовская область</regionName>
            <arrivalDate>2016-07-14T16:20:00</arrivalDate>
            <dispatchDate>2016-07-13T21:00:00</dispatchDate>
            <stopTime>10</stopTime>
            <distance>385</distance>
            <price>1177</price>
        </Stop>
        <Stop>
            <id>818</id>
            <name>Тамбов (трасса)</name>
            <regionName>Тамбовская область</regionName>
            <arrivalDate>2016-07-14T16:20:00</arrivalDate>
            <dispatchDate>2016-07-13T21:00:00</dispatchDate>
            <stopTime>10</stopTime>
            <distance>455</distance>
            <price>1177</price>
        </Stop>
    </Body>
</Response>

bookOrder

Бронирование заказа. Бронь сохраняется в течение ограниченного времени, от 20 до 60 минут. Если в указанный период времени не поступает подтверждение оплаты через метод confirmOrder(), то бронирование автоматически отменяется. Метод должен выполнить все возможные проверки корректности переданных данных. В случае ошибки заказ не должен быть создан. Допускается бронирование нескольких билетов в рамках одного заказа. В параметра принимает идентификатор рейса, идентификатор станции отправления, идентификатор станции назначения, информацию о бронируемых билетах, информацию об агенте совершивший эту операцию. Информации о бронируемых билетах включает в себя идентификатор типа билета, идентификатор места и информацию о пассажире. Информация об агенте включает в себя наименование и ИНН агента.

URL: /sales/bookOrder

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<BookOrderRequest>
     <!-- Идентификатор рейса. Обязательный. -->
    <tripId>570101</tripId>
    <!-- Идентификатор станции отправления. Обязательный. -->
    <dispatchStationId>983</dispatchStationId>
    <!-- Идентификатор станции назначения. Обязательный. -->
    <arrivalStationId>1080</arrivalStationId>
    <!-- Информация о бронируемом билете. Для каждой брони отдельный тег Sale -->
    <Sale>
        <!-- Идентификатор места, полученный из getFreeSeats. Обязателен. -->
        <seatId>25862</seatId>
        <!-- Идентификатор типа билета, полученный из getDocumentTypes. Обязателен. -->
        <ticketTypeId>1#1#0</ticketTypeId>
        <!-- Персональные данные пассажира. Один пассажир на один билет -->
        <Passenger>
            <!-- Имя пассажира. Обязательно -->
            <firstName>goxUEpWCud</firstName>
            <!-- Фамилия пассажира. Обязательно-->
            <lastName>sKZXIloHFn</lastName>
            <!-- Отчество пассажира. Обязательно для Международных, Межобластных и Межреспубликанских рейсов-->
            <middleName>pCaEgXgfWO</middleName>         
            <!-- Номер документа удостоверяющего личности. Обязателен.-->
            <docNum>jwcmdIrmcc</docNum>         
            <!-- Серия документа удостоверяющего личности. Не Обязателен.-->
            <docSeries>iFAElsnFHn</docSeries>           
            <!-- Идентификатор типа документа полученный при вызове getDocumentTypes. Обязателен. -->
            <docTypeId>1</docTypeId>            
            <!-- Дата рождения. Обязательно для Международных, Межобластных и Межреспубликанских рейсов -->
            <birthday>1986-01-01</birthday>
            <!-- Гражданство виде ISO2.  Обязательно для Международных, Межобластных и Межреспубликанских рейсов -->
            <citizenshipISO2>RU</citizenshipISO2>
            <!-- 
            Пол. Обязательно для Международных, Межобластных и Межреспубликанских рейсов 
            MALE - Мужской
            FEMALE - Женский
            -->
            <gender>MALE</gender>
       </Passenger>
    </Sale>
    <!-- Агент выполнивший операцию. Не Обязателен. -->
    <Agent>
        <!-- Имя агента. Не обязателен.-->
        <name>ИП Твои билеты</name>
        <!-- ИНН агента. Не обязателен.-->
        <inn>2225555777</inn>
    </Agent>
</BookOrderRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
    <Body>
        <!-- Идентификатор заказ. Обязателен. -->
        <orderId>9828350</orderId>
        <!-- Время жизни заказа. В минутах. Не обязателен. По умолчанию значение 30 -->
        <lifetime>30</lifetime>
    </Body>
</Response>

getOrder

Получение информации о заказе. В параметрах принимает идентификатор заказа, полученный в результате bookOrder. Метод должен вернуть такое же количество билетов сколько было передано при вызове bookOrder. Метод должен работать на любом этапе жизни заказа т.е. после создания, подтверждения, отмены, возврата.

URL: /sales/getOrder

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<GetOrderRequest>
    <!-- Идентификатор заказа, полученный при вызове bookOrder. Обязателен.-->
    <orderId>9828350</orderId>
</GetOrderRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response success="true">
    <Body>
        <!-- Идентификатор заказа. Обязателен. -->
        <orderId>9828350</orderId>
        <!-- Информация о билетах. Отдельный тег для каждого билета -->
        <Ticket>
            <!-- Идентификатор билет. Обязателен. -->
            <id>12435438</id>
            <!-- Номер билета. Обязателен после подтверждения заказа. -->
            <number></number>
            <!-- Серия билета. Не обязателен. -->
            <series></series>
            <!-- Дата и время создания билета. Обязателен. -->
            <created>2016-07-13T05:48:15</created>
            <!-- Дата и время возврата билета. Обязателен после возврата или отмены. -->
            <returned></returned>
            <!-- 
             Статус билета
RESERVED Забронирован. Данный статус билет получает после бронирования. bookOrder
SOLD Продан. Данный статус билет получает после операции продажи. confirmOrder
CANCELED Отмена билета. Данный статус билет получает после отмены билета. cancelTicket
RETURNED Выполнен возврат билета. Данный статус билет получает после возврата билета. returnTicket
             -->
            <status>RESERVED</status>
             <!-- 
            Класс билета
            PASSENGER Пассажирский билет, с выделением места
            BAGGAGE Багажный билет, без выделения места
            -->
            <ticketClass>PASSENGER</ticketClass>
            <!-- Идентификато типа билета. Обязателен. -->
            <typeId>1#1#0</typeId>
            <!-- Номер маршрута. Не обязателен. -->
            <routeNum>000</routeNum>
            <!-- Название маршрута. Обязателен. -->
            <routeName>ВДНХ АС - Рыбинск</routeName>
            <!-- Информация об автобусе. Обязателен -->
            <busInfo>19 Мест Категория ТС &quot;М3&quot;  </busInfo>
            <!-- Название перевозчика. Не обязателен -->
            <carrierName>ООО &quot;ВВМЛ&quot;</carrierName>
            <!-- ИНН перевозчика. Обязателен. -->
            <carrierInn>ИНН 7610074937</carrierInn>
            <!-- Платформа отправления. Не обязателен. -->
            <platform>Перрон 11</platform>
            <!-- Дата и время отправления рейса. Обязателен. -->
            <dispatchDate>2016-07-13T12:20:00</dispatchDate>
            <!-- Станция посадки. Обязателен.-->
            <dispatchStation>ВДНХ АС</dispatchStation>
            <!-- Адрес станции посадки. Не обязателен -->
            <dispatchAddress>пл.Шарля де Голля напротив Космонавтов2А,</dispatchAddress>
            <!-- Дата и время прибытия. Обязателен. -->
            <arrivalDate>2016-07-13T16:20:00</arrivalDate>
            <!-- Станция назначения. Обязателен. -->
            <arrivalStation>Углич</arrivalStation>
            <!-- Название места. Обязателен. -->
            <seatName>Место 1</seatName>
            <!-- Информация о пассажире. -->
            <Passenger>
                <lastName>Ckayuukvgn</lastName>
                <firstName>Bgkzxffotu</firstName>
                <middleName>Isdikvryin</middleName>
                <docNum>PUPrvbqlgU</docNum>
                <docSeries>fRHEoBHVbG</docSeries>
                <docTypeId>1</docTypeId>
                <birthday>1985-01-01</birthday>
                <citizenshipISO2>RU</citizenshipISO2>
                <gender>MALE</gender>
            </Passenger>
            <!-- Тариф (руб). Обязателен после подтверждения. -->
            <fare>0</fare>
            <!-- Cборы (руб). Обязателен после подтверждения. Если нет то 0. -->
            <fees>0</fees>
            <!-- Удержано Тариф (руб). Обязателен в случает возврата или отмены. -->
            <chargeFare>0</chargeFare>
            <!-- Удержано Остальные сборы (руб). Обязателен в случает возврата или отмены. -->
            <chargeOthers>0</chargeOthers>
            <!-- Возврат Тариф (руб). Обязателен в случает возврата или отмены. -->
            <repaymentFare>0</repaymentFare>
            <!-- Возврат Остальные сборы (руб). Обязателен в случает возврата или отмены. -->
            <repaymentOthers>0</repaymentOthers>
            <!-- Информация о страховании. Обязательно. Необходим при печати билета. -->
            <insuranceInfo>СТРАХОВЩИК: ПАО &quot;Росстрах&quot;; 119991; г. Москва; ул. Большая Ордынка; д. 40; стр.</insuranceInfo>
        </Ticket>
    </Body>
</Response>

confirmOrder

Подтверждение оплаты заказа. Данный метод должен вызываться только после того как заказ действительно был оплачен покупателем. Метод не должен делать проверок корректности заказа. Все проверки должны делать в bookOrder или updateTicket. Вызов этого метода означает, все данные заполнены правильно и деньги от покупателя получены. В параметрах принимает идентификатор заказа, полученный в результате bookOrder и информацию об агенте который совершил операцию

URL: /sales/confirmOrder

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<ConfirmOrderRequest>
    <orderId>9828585</orderId>
    <!-- Агент выполнивший операцию. Не Обязателен. -->
    <Agent>
        <!-- Имя агента. Не обязателен.-->
        <name>ИП Твои билеты</name>
        <!-- ИНН агента. Не обязателен.-->
        <inn>2225555777</inn>
    </Agent>
</ConfirmOrderRequest>

Ответ:

Ответ аналогичен ответу на запрос getOrder

cancelTicket

Отмена билета. Техническая операция, выполняет полный возврат билета без удержаний. Необходима при нештатных ситуациях например в случае сбоев ККМ или ошибки выбора рейса. В параметрах принимает идентификатор билета и информацию об агенте который совершил операцию. Можно выполнять после создания заказа и в течении 5-30 минут после подтверждения заказа.

URL: /sales/cancelTicket

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<CancelTicketRequest>
    <ticketId>12435434</ticketId>
    <!-- Агент выполнивший операцию. Не Обязателен. -->
    <Agent>
        <!-- Имя агента. Не обязателен.-->
        <name>ИП Твои билеты</name>
        <!-- ИНН агента. Не обязателен.-->
        <inn>2225555777</inn>
    </Agent>
</CancelTicketRequest>

Ответ:

Ответ аналогичен ответу на запрос getOrder

returnTicket

Возврат билета. При возврате возможны удержания. В параметрах принимает идентификатор билета и информацию об агенте который совершил операцию. Билет можно вернуть только после подтверждения confirmOrder.

URL: /sales/returnTicket

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<ReturnTicketRequest>
    <ticketId>12435435</ticketId>
    <!-- Агент выполнивший операцию. Не Обязателен. -->
    <Agent>
        <!-- Имя агента. Не обязателен.-->
        <name>ИП Твои билеты</name>
        <!-- ИНН агента. Не обязателен.-->
        <inn>2225555777</inn>
    </Agent>
</ReturnTicketRequest>

Ответ:

Ответ аналогичен ответу на запрос getOrder

updateTicket

Изменение персональных данных пассажира в забронированном или проданном билете. В параметрах принимает идентификатор билета, информацию о пассажире и информацию об агенте который совершил операцию.

URL: /sales/updateTicket

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<UpdateTicketRequest>
    <!-- Идентификатор билета. Обязательный -->
    <ticketId>12435438</ticketId>
    <Passenger>
        <!-- Имя пассажира. Обязательно -->
        <firstName>goxUEpWCud</firstName>
        <!-- Фамилия пассажира. Обязательно-->
        <lastName>sKZXIloHFn</lastName>
        <!-- Отчество пассажира. Обязательно для Международных, Межобластных и Межреспубликанских рейсов-->
        <middleName>pCaEgXgfWO</middleName>         
        <!-- Номер документа удостоверяющего личности. Обязателен.-->
        <docNum>jwcmdIrmcc</docNum>         
        <!-- Серия документа удостоверяющего личности. Не Обязателен.-->
        <docSeries>iFAElsnFHn</docSeries>           
        <!-- Идентификатор типа документа полученный при вызове getDocumentTypes. Обязателен. -->
        <docTypeId>1</docTypeId>            
        <!-- Дата рождения. Обязательно для Международных, Межобластных и Межреспубликанских рейсов -->
        <birthday>1986-01-01</birthday>
        <!-- Гражданство виде ISO2.  Обязательно для Международных, Межобластных и Межреспубликанских рейсов -->
        <citizenshipISO2>RU</citizenshipISO2>
        <!-- 
        Пол. Обязательно для Международных, Межобластных и Межреспубликанских рейсов 
        MALE - Мужской
        FEMALE - Женский
        -->
        <gender>FEMALE</gender>
    </Passenger>
    <!-- Агент выполнивший операцию. Не Обязателен. -->
    <Agent>
        <!-- Имя агента. Не обязателен.-->
        <name>ИП Твои билеты</name>
        <!-- ИНН агента. Не обязателен.-->
        <inn>2225555777</inn>
    </Agent>
</UpdateTicketRequest>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<Response success="true">
/Response>