Протокол AV5 для интеграции систем продажи электронных билетов перевозчиков и системы GDS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

857 lines
42 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. # Введение
  2. **Версия документа: 1.2**
  3. **Дата изменения: 16.09.2016**
  4. Для возможности продажи с использованием протокола AVS5RS необходимо реализовать сервис с использованием протокола HTTP. Все запросы оправляются методом POST.
  5. Методы включают в себя справочные методы и методы продажи. Продажа состоит из двух этапов резервирование и подтверждение продажи.
  6. Протокол должен быть защищен авторизацией через логин и пароль. Так же необходимо чтобы трафик передавался по защищенному каналу связи с использованием SSL или VPN.
  7. ## Методы сервиса
  8. Все запросы должны передаваться по протоколу HTTP методом пост. В теле POST запроса и ответа передается XML фиксированного формата.
  9. Каждый метод имеет отдельный URL. Через HTTP заголовок Content-Type передается значение `application/xml; charset=UTF-8`.
  10. Этот заголовок указывает на тип содержимого запроса и его кодировку. Необходимо использовать только кодировку UTF-8.
  11. ### Формат ответа
  12. Корневой тег XML ответа Response. У него есть обязательный атрибут success, который указывает корректно выполнился запрос или нет, значения true - корректно, false - нет.
  13. Если ответ корректный, то данные ответа содержатся во вложенном теге Body. Если ответ не корректный, тег Body будет проигнорирован, а информация об ошибке должна
  14. находиться во вложенном теге Error. Который состоит из кода ошибки и описания. Коды ошибок не регламентируются. Описание это произвольные тест, поясняющий причину ошибки.
  15. Регистр названий тегов и атрибутов должен совпадать с регистром из примеров.
  16. Все ответы должны приходить с HTTP кодом 200. Все XML ответы должны начинаться с объявления `<?xml version="1.0" encoding="UTF-8"?>` в котором указана кодировка содержимого.
  17. Формат даты `yyyy-MM-dd`, формат даты и времени `yyyy-MM-dd'T'HH:mm:ss`, пример 2016-09-07T13:10:00 (символ T латинский, обязательный) (секунды обязательны).
  18. Время указано в часовом поясе сервера который предоставляет контент.
  19. Все идентификаторы сущностей (id) это строки, произвольного формата, длинной до 36 символов.
  20. Корректный ответ:
  21. ```xml
  22. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  23. <Response success="true">
  24. <Body>
  25. <message>Test</message>
  26. </Body>
  27. </Response>
  28. ```
  29. Не корректный ответ:
  30. ```xml
  31. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  32. <Response success="false">
  33. <Error>
  34. <code>ERROR</code>
  35. <message>Место 5 занято</message>
  36. </Error>
  37. </Response>
  38. ```
  39. ### echo
  40. Метод принимает в параметра произвольную строку и возвращает её в теле ответа. Не выполняет ни какой логики. Необходим для проверки доступен ли сервис.
  41. **URL: /sales/echo**
  42. Запрос:
  43. ```xml
  44. <?xml version="1.0" encoding="UTF-8"?>
  45. <EchoRequest>
  46. <!-- Сообщение которое будет возвращено в ответ. Обязательно. -->
  47. <message>Test</message>
  48. </EchoRequest>
  49. ```
  50. Ответ:
  51. ```xml
  52. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  53. <Response success="true">
  54. <Body>
  55. <!-- Сообщение переданное в запросе -->
  56. <message>Test</message>
  57. </Body>
  58. </Response>
  59. ```
  60. ### getDispatchStations
  61. Метод получения станций отправления.
  62. Продажа происходит от станции отправления до станции назначения, поэтому метод должен вернуть хотя бы один элемент.
  63. Обычно станциями отправления являются автовокзалы или автоматизированные остановочные пункты с функцией продажи билетов.
  64. **URL: /sales/getDispatchStations**
  65. Запрос:
  66. ```xml
  67. <?xml version="1.0" encoding="UTF-8"?>
  68. <GetDispatchStationsRequest>
  69. </GetDispatchStationsRequest>
  70. ```
  71. Ответ:
  72. ```xml
  73. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  74. <Response success="true">
  75. <Body>
  76. <!-- Станция -->
  77. <Station>
  78. <!-- Идентификатор станции. Обязателен. -->
  79. <id>983</id>
  80. <!-- Наименование станции. Обязателен. Используется для отображения в интерфейсе пользователя -->
  81. <name>ВДНХ АС</name>
  82. <!-- Название региона станции. Не обязателен. Используется для отображения в интерфейсе пользователя -->
  83. <region>Москва</region>
  84. <!-- ОКАТО станции. Не обязателен. Используется для поиска одинаковых станций и отображения в интерфейсе пользователя -->
  85. <okato>45000000000</okato>
  86. </Station>
  87. <Station>
  88. <id>853</id>
  89. <name>Варшавская АС</name>
  90. <region>Москва</region>
  91. <okato>45000000000</okato>
  92. </Station>
  93. <Station>
  94. <id>6</id>
  95. <name>Красногвардейская АС</name>
  96. <region>Москва</region>
  97. <okato>45000000000</okato>
  98. </Station>
  99. </Body>
  100. </Response>
  101. ```
  102. ### getArrivalStations
  103. Метод получения станций назначения от станции отправления. В параметра принимает идентификатор станции отправления.
  104. Станциями назначения могут быть любые остановочные пункты до которых есть хотя бы один рейс.
  105. Если станций назначения нет вернуть пустой список.
  106. **URL: /sales/getArrivalStations**
  107. Запрос:
  108. ```xml
  109. <?xml version="1.0" encoding="UTF-8"?>
  110. <GetArrivalStationsRequest>
  111. <!-- Идентификатор станции отправления. Обязательно. -->
  112. <dispatchStationId>983</dispatchStationId>
  113. </GetArrivalStationsRequest>
  114. ```
  115. Ответ:
  116. ```xml
  117. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  118. <Response success="true">
  119. <Body>
  120. <Station>
  121. <id>1069</id>
  122. <name>Рыбинск</name>
  123. <region>Ярославская область</region>
  124. <okato>78415000000</okato>
  125. </Station>
  126. <Station>
  127. <id>1018</id>
  128. <name>Сергиев Посад</name>
  129. <region>Московская область</region>
  130. <okato>46215501000</okato>
  131. </Station>
  132. <Station>
  133. <id>1084</id>
  134. <name>Углич</name>
  135. <region>Ярославская область</region>
  136. <okato>78420000000</okato>
  137. </Station>
  138. <Station>
  139. <id>1078</id>
  140. <name>Утена</name>
  141. <region>Литва</region>
  142. </Station>
  143. </Body>
  144. </Response>
  145. ```
  146. ### searchTrips
  147. Метод возвращает список рейсов от станции отправления до станции назначения на заданную дату.
  148. В параметрах передается идентификатор станции отправления, идентификатор станции назначения и дата.
  149. **URL: /sales/searchTrips**
  150. Запрос:
  151. ```xml
  152. <?xml version="1.0" encoding="UTF-8"?>
  153. <SearchTripsRequest>
  154. <!-- Идентификатор станции отправления. Обязательно.-->
  155. <dispatchStationId>983</dispatchStationId>
  156. <!-- Идентификатор станции назначения. Обязательно. -->
  157. <arrivalStationId>678</arrivalStationId>
  158. <!-- Дата на которую выполняется поиск рейса. Обязательно. -->
  159. <date>2016-07-12</date>
  160. </SearchTripsRequest>
  161. ```
  162. Ответ:
  163. ```xml
  164. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  165. <Response success="true">
  166. <Body>
  167. <!-- Рейс-->
  168. <Trip>
  169. <!-- Идентификатор рейса. Обязательно. -->
  170. <id>570104</id>
  171. <!-- Номер маршрута. Не обязателен. -->
  172. <num>000</num>
  173. <!-- Название маршрута. Обязателен. -->
  174. <name>ВДНХ АС - Пенза</name>
  175. <!-- Дата и время отправления. Обязателен. -->
  176. <dispatchDate>2016-07-13T19:30:00</dispatchDate>
  177. <!-- Дата и время прибытия. Обязателен. -->
  178. <arrivalDate>2016-07-14T05:30:00</arrivalDate>
  179. <!-- ID станции отправления. Обязателен. -->
  180. <dispatchStationId>983</dispatchStationId>
  181. <!-- Станция отправления рейса. Обязателен. -->
  182. <dispatchStationName>ВДНХ АС</dispatchStationName>
  183. <!-- ID станции назначения. Обязателен. -->
  184. <arrivalStationId>744</arrivalStationId>
  185. <!-- Станция назначения рейса. Обязателен. -->
  186. <arrivalStationName>Пенза</arrivalStationName>
  187. <!-- Цена полного проездного билета (включая сборы). Обязателен. -->
  188. <price>1391</price>
  189. <!-- Название перевозчика. Не Обязателен. -->
  190. <carrierName>ИП Ерашова Валентина Анатольевна</carrierName>
  191. <!-- ИНН перевозчика. Обязателен. -->
  192. <carrierInn>ИНН 582700056092</carrierInn>
  193. <!-- Описание автобуса. Обязателен. -->
  194. <busInfo>49 Мест Категория ТС &quot;М3&quot; </busInfo>
  195. <!--
  196. Флаг обязательности ввода дополнительных персональных данных покупателя.
  197. Основые персональные данные: Имя, Фамилия, Тип документа, Номер документа.
  198. Дополнительные персональные данные: Отчество, Пол, Дата рождения, Гражданство.
  199. Ввод дополнительных данных требуется во исполнение статьи 11 закона "О транспортной безопасности"
  200. (с изменениями на 3 февраля 2014 года).
  201. <p>
  202. См. http://docs.cntd.ru/document/902027326
  203. Обязателен. Если система не поддерживает, возвращать всегда true.
  204. -->
  205. <extDataRequired>true</extDataRequired>
  206. <!--
  207. тип рейса. Обязателен.
  208. Междугородный - INTERURBAN
  209. Пригородный - SUBURBAN
  210. Международный - INTERNATIONAL
  211. Внутриобластной - INTRAREGIONAL
  212. Межобластной - INTERREGIONAL
  213. Межреспубликанский - INTERREPUBLICAN
  214. Внутрирайонный - INTRADISTRICT
  215. -->
  216. <type>INTERREGIONAL</type>
  217. <!--
  218. статус рейса. Обязателен.
  219. ON_SALE - В продаже. На рейса доступны все опрерации.,
  220. SUSPENDED - Приостановка остановка продажи. Рейс не доступен для продажи.
  221. CANCELED - Рейс отменен. Рейс не доступен для продажи.
  222. UNKNOWN - Неопределенный статус. Рейс не доступен для продажи.
  223. -->
  224. <status>ON_SALE</status>
  225. <!-- Количество мест в автобусе. Обязателен. -->
  226. <seatCount>49</seatCount>
  227. <!-- Кол-во мест, доступных для продажи. Обязателен.-->
  228. <freeSeatCount>49</freeSeatCount>
  229. </Trip>
  230. <Trip>
  231. <id>570105</id>
  232. <num>000</num>
  233. <name>ВДНХ АС - Пенза</name>
  234. <dispatchDate>2016-07-13T21:30:00</dispatchDate>
  235. <arrivalDate>2016-07-14T07:30:00</arrivalDate>
  236. <dispatchStationId>983</dispatchStationId>
  237. <dispatchStationName>ВДНХ АС</dispatchStationName>
  238. <arrivalStationId>744</arrivalStationId>
  239. <arrivalStationName>Пенза</arrivalStationName>
  240. <price>1391</price>
  241. <carrierName>ИП Ерашова Валентина Анатольевна</carrierName>
  242. <carrierInn>ИНН 582700056092</carrierInn>
  243. <busInfo>49 Мест Категория ТС &quot;М3&quot; </busInfo>
  244. <extDataRequired>true</extDataRequired>
  245. <type>INTERREGIONAL</type>
  246. <status>ON_SALE</status>
  247. <seatCount>49</seatCount>
  248. <freeSeatCount>49</freeSeatCount>
  249. </Trip>
  250. </Body>
  251. </Response>
  252. ```
  253. ### getFreeSeats
  254. Получение списка свободных мест для рейса.
  255. В параметра принимает идентификатор рейса, идентификтор станции отправления и идентификатор станции назначения.
  256. **URL: /sales/getFreeSeats**
  257. Запрос:
  258. ```xml
  259. <?xml version="1.0" encoding="UTF-8"?>
  260. <GetFreeSeatsRequest>
  261. <!-- Идентификатор рейса. Обязательный. -->
  262. <tripId>570101</tripId>
  263. <!-- Идентификатор станции отправления. Обязательный. -->
  264. <dispatchStationId>983</dispatchStationId>
  265. <!-- Идентификатор станции назначения. Обязательный. -->
  266. <arrivalStationId>1080</arrivalStationId>
  267. </GetFreeSeatsRequest>
  268. ```
  269. Ответ:
  270. ```xml
  271. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  272. <Response success="true">
  273. <Body>
  274. <!-- Место-->
  275. <Seat>
  276. <!-- Идентификатор места. Обязателен. Может совпадать с названием.-->
  277. <id>17926</id>
  278. <!-- Название места. Обязателен. Отображается в интерфейсе пользователя. -->
  279. <name>Место 1</name>
  280. <!-- Тип места. Не обязателен -->
  281. <type>Сидячее</type>
  282. </Seat>
  283. <Seat>
  284. <id>17927</id>
  285. <name>Место 2</name>
  286. <type>Сидячее</type>
  287. </Seat>
  288. <Seat>
  289. <id>17928</id>
  290. <name>Место 3</name>
  291. <type>Сидячее</type>
  292. </Seat>
  293. </Body>
  294. </Response>
  295. ```
  296. ### getTicketTypes
  297. Получение списка типов билетов, доступных для продажи.
  298. В параметра принимает идентификатор рейса, идентификатор станции отправления и идентификатор станции назначения.
  299. **URL: /sales/getTicketTypes**
  300. Запрос:
  301. ```xml
  302. <?xml version="1.0" encoding="UTF-8"?>
  303. <GetTicketTypesRequest>
  304. <!-- Идентификатор рейса. Обязательный. -->
  305. <tripId>570101</tripId>
  306. <!-- Идентификатор станции отправления. Обязательный. -->
  307. <dispatchStationId>983</dispatchStationId>
  308. <!-- Идентификатор станции назначения. Обязательный. -->
  309. <arrivalStationId>1080</arrivalStationId>
  310. /GetTicketTypesRequest>
  311. ```
  312. Ответ:
  313. ```xml
  314. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  315. <Response success="true">
  316. <Body>
  317. <TicketType>
  318. <!-- Идентификатор типа билета. Обязателен. Может совпадать с названием. -->
  319. <id>1#1#0</id>
  320. <!-- Название типа билета. Обязателен. -->
  321. <name>Полный</name>
  322. <!-- Цена для заданного типа билета (со сборами). Обязателен. -->
  323. <price>1391</price>
  324. <!--
  325. Класс билета. Обязателен.
  326. PASSENGER Пассажирский билет, с выделением места
  327. BAGGAGE Багажный билет, без выделения места
  328. -->
  329. <ticketClass>PASSENGER</ticketClass>
  330. </TicketType>
  331. <TicketType>
  332. <id>38#6#0</id>
  333. <name>Детский</name>
  334. <price>696</price>
  335. <ticketClass>PASSENGER</ticketClass>
  336. </TicketType>
  337. <TicketType>
  338. <id>0#0#0</id>
  339. <name>Багажный</name>
  340. <price>40</price>
  341. <ticketClass>BAGGAGE</ticketClass>
  342. </TicketType>
  343. </Body>
  344. </Response>
  345. ```
  346. ### getDocumentTypes
  347. Получение списка типов документов, допустимых при оформлении билетов. Система должна предоставить хотя бы один тип документа.
  348. Рекомендуется использовать документы из (приказа)[http://base.garant.ru/70229008/] в Таблице 1.
  349. В параметра принимает идентификатор рейса, идентификатор станции отправления и идентификатор станции назначения.
  350. **URL: /sales/getDocumentTypes**
  351. Запрос:
  352. ```xml
  353. <?xml version="1.0" encoding="UTF-8"?>
  354. <GetDocumentTypesRequest>
  355. <!-- Идентификатор рейса. Обязательный. -->
  356. <tripId>570101</tripId>
  357. <!-- Идентификатор станции отправления. Обязательный. -->
  358. <dispatchStationId>983</dispatchStationId>
  359. <!-- Идентификатор станции назначения. Обязательный. -->
  360. <arrivalStationId>1080</arrivalStationId>
  361. </GetDocumentTypesRequest>
  362. ```
  363. Ответ:
  364. ```xml
  365. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  366. <Response success="true">
  367. <Body>
  368. <DocumentType>
  369. <!-- ID типа документа. Обязателен. Может совпадать с названием. -->
  370. <id>1</id>
  371. <!-- Название типа документа. Обязателен. -->
  372. <name>Паспорт РФ</name>
  373. </DocumentType>
  374. <DocumentType>
  375. <id>52</id>
  376. <name>Паспорт иностранного гражданина</name>
  377. </DocumentType>
  378. <DocumentType>
  379. <id>40</id>
  380. <name>Удостоверение (Казахстан)</name>
  381. </DocumentType>
  382. <DocumentType>
  383. <id>2</id>
  384. <name>Свидетельство о рождении</name>
  385. </DocumentType>
  386. <DocumentType>
  387. <id>4</id>
  388. <name>Удостоверение личности военнослужащего</name>
  389. </DocumentType>
  390. <DocumentType>
  391. <id>55</id>
  392. <name>Временное удостоверение ОВД</name>
  393. </DocumentType>
  394. </Body>
  395. </Response>
  396. ```
  397. ### getTripStops
  398. Метод возвращает список остановочных пунктов для рейса.
  399. В параметра принимает идентификатор рейса.
  400. Метод информационный.
  401. **URL: /sales/getTripStops**
  402. Запрос:
  403. ```xml
  404. <?xml version="1.0" encoding="UTF-8"?>
  405. <GetTripStopsRequest>
  406. <!-- Идентификатор рейса. Обязателен. -->
  407. <tripId>569839</tripId>
  408. </GetTripStopsRequest>
  409. ```
  410. Ответ:
  411. ```xml
  412. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  413. <Response success="true">
  414. <Body>
  415. <Stop>
  416. <!-- ID остановки. Совпадает с ID станции. Обязателен. -->
  417. <id>1011</id>
  418. <!-- Название остановки. Совпадает с названием станции. Обязателен. -->
  419. <name>Скопин (трасса)</name>
  420. <!-- Район расположения остановки. Не обязателен. -->
  421. <regionName>Рязанская область</regionName>
  422. <!-- Дата-время прибытия на остановку. Обязателен. -->
  423. <arrivalDate>2016-07-14T16:20:00</arrivalDate>
  424. <!-- Дата-время отправления с остановки. Обязателен. -->
  425. <dispatchDate>2016-07-13T21:00:00</dispatchDate>
  426. <!-- Время стоянки в минутах. Не Обязателен. -->
  427. <stopTime>10</stopTime>
  428. <!-- Расстояние от пункта отправления до остановки в км. Не Обязателен. -->
  429. <distance>260</distance>
  430. <!-- Цена полного билета. Обязателен. -->
  431. <price>1177</price>
  432. </Stop>
  433. <Stop>
  434. <id>1010</id>
  435. <name>Мичуринск (трасса)</name>
  436. <regionName>Тамбовская область</regionName>
  437. <arrivalDate>2016-07-14T16:20:00</arrivalDate>
  438. <dispatchDate>2016-07-13T21:00:00</dispatchDate>
  439. <stopTime>10</stopTime>
  440. <distance>385</distance>
  441. <price>1177</price>
  442. </Stop>
  443. <Stop>
  444. <id>818</id>
  445. <name>Тамбов (трасса)</name>
  446. <regionName>Тамбовская область</regionName>
  447. <arrivalDate>2016-07-14T16:20:00</arrivalDate>
  448. <dispatchDate>2016-07-13T21:00:00</dispatchDate>
  449. <stopTime>10</stopTime>
  450. <distance>455</distance>
  451. <price>1177</price>
  452. </Stop>
  453. </Body>
  454. </Response>
  455. ```
  456. ### bookOrder
  457. Бронирование заказа. Бронь сохраняется в течение ограниченного времени, от 20 до 60 минут. Если в указанный
  458. период времени не поступает подтверждение оплаты через метод confirmOrder(), то бронирование автоматически
  459. отменяется. Метод должен выполнить все возможные проверки корректности переданных данных. В случае ошибки
  460. заказ не должен быть создан. Допускается бронирование нескольких билетов в рамках одного заказа.
  461. В параметра принимает идентификатор рейса, идентификатор станции отправления, идентификатор станции назначения,
  462. информацию о бронируемых билетах, информацию об агенте совершивший эту операцию. Информации о бронируемых билетах
  463. включает в себя идентификатор типа билета, идентификатор места и информацию о пассажире. Информация об
  464. агенте включает в себя наименование и ИНН агента.
  465. **URL: /sales/bookOrder**
  466. Запрос:
  467. ```xml
  468. <?xml version="1.0" encoding="UTF-8"?>
  469. <BookOrderRequest>
  470. <!-- Идентификатор рейса. Обязательный. -->
  471. <tripId>570101</tripId>
  472. <!-- Идентификатор станции отправления. Обязательный. -->
  473. <dispatchStationId>983</dispatchStationId>
  474. <!-- Идентификатор станции назначения. Обязательный. -->
  475. <arrivalStationId>1080</arrivalStationId>
  476. <!-- Информация о бронируемом билете. Для каждой брони отдельный тег Sale -->
  477. <Sale>
  478. <!-- Идентификатор места, полученный из getFreeSeats. Обязателен. -->
  479. <seatId>25862</seatId>
  480. <!-- Идентификатор типа билета, полученный из getDocumentTypes. Обязателен. -->
  481. <ticketTypeId>1#1#0</ticketTypeId>
  482. <!-- Персональные данные пассажира. Один пассажир на один билет -->
  483. <Passenger>
  484. <!-- Имя пассажира. Обязательно -->
  485. <firstName>goxUEpWCud</firstName>
  486. <!-- Фамилия пассажира. Обязательно-->
  487. <lastName>sKZXIloHFn</lastName>
  488. <!-- Отчество пассажира. Обязательно для Международных, Межобластных и Межреспубликанских рейсов-->
  489. <middleName>pCaEgXgfWO</middleName>
  490. <!-- Номер документа удостоверяющего личности. Обязателен.-->
  491. <docNum>jwcmdIrmcc</docNum>
  492. <!-- Серия документа удостоверяющего личности. Не Обязателен.-->
  493. <docSeries>iFAElsnFHn</docSeries>
  494. <!-- Идентификатор типа документа полученный при вызове getDocumentTypes. Обязателен. -->
  495. <docTypeId>1</docTypeId>
  496. <!-- Дата рождения. Обязательно для Международных, Межобластных и Межреспубликанских рейсов -->
  497. <birthday>1986-01-01</birthday>
  498. <!-- Гражданство виде ISO2. Обязательно для Международных, Межобластных и Межреспубликанских рейсов -->
  499. <citizenshipISO2>RU</citizenshipISO2>
  500. <!--
  501. Пол. Обязательно для Международных, Межобластных и Межреспубликанских рейсов
  502. MALE - Мужской
  503. FEMALE - Женский
  504. -->
  505. <gender>MALE</gender>
  506. </Passenger>
  507. </Sale>
  508. <!-- Агент выполнивший операцию. Не Обязателен. -->
  509. <Agent>
  510. <!-- Имя агента. Не обязателен.-->
  511. <name>ИП Твои билеты</name>
  512. <!-- ИНН агента. Не обязателен.-->
  513. <inn>2225555777</inn>
  514. </Agent>
  515. </BookOrderRequest>
  516. ```
  517. Ответ:
  518. ```xml
  519. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  520. <Response success="true">
  521. <Body>
  522. <!-- Идентификатор заказ. Обязателен. -->
  523. <orderId>9828350</orderId>
  524. <!-- Время жизни заказа. В минутах. Не обязателен. По умолчанию значение 30 -->
  525. <lifetime>30</lifetime>
  526. </Body>
  527. </Response>
  528. ```
  529. ### getOrder
  530. Получение информации о заказе. В параметрах принимает идентификатор заказа, полученный в результате bookOrder.
  531. Метод должен вернуть такое же количество билетов сколько было передано при вызове bookOrder.
  532. Метод должен работать на любом этапе жизни заказа т.е. после создания, подтверждения, отмены, возврата.
  533. **URL: /sales/getOrder**
  534. Запрос:
  535. ```xml
  536. <?xml version="1.0" encoding="UTF-8"?>
  537. <GetOrderRequest>
  538. <!-- Идентификатор заказа, полученный при вызове bookOrder. Обязателен.-->
  539. <orderId>9828350</orderId>
  540. </GetOrderRequest>
  541. ```
  542. Ответ:
  543. ```xml
  544. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  545. <Response success="true">
  546. <Body>
  547. <!-- Идентификатор заказа. Обязателен. -->
  548. <orderId>9828350</orderId>
  549. <!-- Информация о билетах. Отдельный тег для каждого билета -->
  550. <Ticket>
  551. <!-- Идентификатор билет. Обязателен. -->
  552. <id>12435438</id>
  553. <!-- Номер билета. Обязателен после подтверждения заказа. -->
  554. <number></number>
  555. <!-- Серия билета. Не обязателен. -->
  556. <series></series>
  557. <!-- Дата и время создания билета. Обязателен. -->
  558. <created>2016-07-13T05:48:15</created>
  559. <!-- Дата и время возврата билета. Обязателен после возврата или отмены. -->
  560. <returned></returned>
  561. <!--
  562. Статус билета
  563. RESERVED Забронирован. Данный статус билет получает после бронирования. bookOrder
  564. SOLD Продан. Данный статус билет получает после операции продажи. confirmOrder
  565. CANCELED Отмена билета. Данный статус билет получает после отмены билета. cancelTicket
  566. RETURNED Выполнен возврат билета. Данный статус билет получает после возврата билета. returnTicket
  567. -->
  568. <status>RESERVED</status>
  569. <!--
  570. Класс билета
  571. PASSENGER Пассажирский билет, с выделением места
  572. BAGGAGE Багажный билет, без выделения места
  573. -->
  574. <ticketClass>PASSENGER</ticketClass>
  575. <!-- Идентификато типа билета. Обязателен. -->
  576. <typeId>1#1#0</typeId>
  577. <!-- Номер маршрута. Не обязателен. -->
  578. <routeNum>000</routeNum>
  579. <!-- Название маршрута. Обязателен. -->
  580. <routeName>ВДНХ АС - Рыбинск</routeName>
  581. <!-- Информация об автобусе. Обязателен -->
  582. <busInfo>19 Мест Категория ТС &quot;М3&quot; </busInfo>
  583. <!-- Название перевозчика. Не обязателен -->
  584. <carrierName>ООО &quot;ВВМЛ&quot;</carrierName>
  585. <!-- ИНН перевозчика. Обязателен. -->
  586. <carrierInn>ИНН 7610074937</carrierInn>
  587. <!-- Платформа отправления. Не обязателен. -->
  588. <platform>Перрон 11</platform>
  589. <!-- Дата и время отправления рейса. Обязателен. -->
  590. <dispatchDate>2016-07-13T12:20:00</dispatchDate>
  591. <!-- Станция посадки. Обязателен.-->
  592. <dispatchStation>ВДНХ АС</dispatchStation>
  593. <!-- Адрес станции посадки. Не обязателен -->
  594. <dispatchAddress>пл.Шарля де Голля напротив Космонавтов2А,</dispatchAddress>
  595. <!-- Дата и время прибытия. Обязателен. -->
  596. <arrivalDate>2016-07-13T16:20:00</arrivalDate>
  597. <!-- Станция назначения. Обязателен. -->
  598. <arrivalStation>Углич</arrivalStation>
  599. <!-- Название места. Обязателен. -->
  600. <seatName>Место 1</seatName>
  601. <!-- Информация о пассажире. -->
  602. <Passenger>
  603. <lastName>Ckayuukvgn</lastName>
  604. <firstName>Bgkzxffotu</firstName>
  605. <middleName>Isdikvryin</middleName>
  606. <docNum>PUPrvbqlgU</docNum>
  607. <docSeries>fRHEoBHVbG</docSeries>
  608. <docTypeId>1</docTypeId>
  609. <birthday>1985-01-01</birthday>
  610. <citizenshipISO2>RU</citizenshipISO2>
  611. <gender>MALE</gender>
  612. </Passenger>
  613. <!-- Тариф (руб). Обязателен после подтверждения. -->
  614. <fare>0</fare>
  615. <!-- Cборы (руб). Обязателен после подтверждения. Если нет то 0. -->
  616. <fees>0</fees>
  617. <!-- Удержано Тариф (руб). Обязателен в случает возврата или отмены. -->
  618. <chargeFare>0</chargeFare>
  619. <!-- Удержано Остальные сборы (руб). Обязателен в случает возврата или отмены. -->
  620. <chargeOthers>0</chargeOthers>
  621. <!-- Возврат Тариф (руб). Обязателен в случает возврата или отмены. -->
  622. <repaymentFare>0</repaymentFare>
  623. <!-- Возврат Остальные сборы (руб). Обязателен в случает возврата или отмены. -->
  624. <repaymentOthers>0</repaymentOthers>
  625. <!-- Информация о страховании. Обязательно. Необходим при печати билета. -->
  626. <insuranceInfo>СТРАХОВЩИК: ПАО &quot;Росстрах&quot;; 119991; г. Москва; ул. Большая Ордынка; д. 40; стр.</insuranceInfo>
  627. </Ticket>
  628. </Body>
  629. </Response>
  630. ```
  631. ### confirmOrder
  632. Подтверждение оплаты заказа. Данный метод должен вызываться только после того как заказ действительно был
  633. оплачен покупателем. Метод не должен делать проверок корректности заказа. Все проверки должны делать в bookOrder
  634. или updateTicket. Вызов этого метода означает, все данные заполнены правильно и деньги от покупателя получены.
  635. В параметрах принимает идентификатор заказа, полученный в результате bookOrder и информацию об агенте который
  636. совершил операцию
  637. **URL: /sales/confirmOrder**
  638. Запрос:
  639. ```xml
  640. <?xml version="1.0" encoding="UTF-8"?>
  641. <ConfirmOrderRequest>
  642. <orderId>9828585</orderId>
  643. <!-- Агент выполнивший операцию. Не Обязателен. -->
  644. <Agent>
  645. <!-- Имя агента. Не обязателен.-->
  646. <name>ИП Твои билеты</name>
  647. <!-- ИНН агента. Не обязателен.-->
  648. <inn>2225555777</inn>
  649. </Agent>
  650. </ConfirmOrderRequest>
  651. ```
  652. Ответ:
  653. Ответ аналогичен ответу на запрос getOrder
  654. ### cancelTicket
  655. Отмена билета. Техническая операция, выполняет полный возврат билета без удержаний.
  656. Необходима при нештатных ситуациях например в случае сбоев ККМ или ошибки выбора рейса.
  657. В параметрах принимает идентификатор билета и информацию об агенте который совершил операцию.
  658. Можно выполнять после создания заказа и в течении 5-30 минут после подтверждения заказа.
  659. **URL: /sales/cancelTicket**
  660. Запрос:
  661. ```xml
  662. <?xml version="1.0" encoding="UTF-8"?>
  663. <CancelTicketRequest>
  664. <ticketId>12435434</ticketId>
  665. <!-- Агент выполнивший операцию. Не Обязателен. -->
  666. <Agent>
  667. <!-- Имя агента. Не обязателен.-->
  668. <name>ИП Твои билеты</name>
  669. <!-- ИНН агента. Не обязателен.-->
  670. <inn>2225555777</inn>
  671. </Agent>
  672. </CancelTicketRequest>
  673. ```
  674. Ответ:
  675. Ответ аналогичен ответу на запрос getOrder
  676. ### returnTicket
  677. Возврат билета. При возврате возможны удержания. В параметрах принимает идентификатор билета и информацию
  678. об агенте который совершил операцию. Билет можно вернуть только после подтверждения confirmOrder.
  679. **URL: /sales/returnTicket**
  680. Запрос:
  681. ```xml
  682. <?xml version="1.0" encoding="UTF-8"?>
  683. <ReturnTicketRequest>
  684. <ticketId>12435435</ticketId>
  685. <!-- Агент выполнивший операцию. Не Обязателен. -->
  686. <Agent>
  687. <!-- Имя агента. Не обязателен.-->
  688. <name>ИП Твои билеты</name>
  689. <!-- ИНН агента. Не обязателен.-->
  690. <inn>2225555777</inn>
  691. </Agent>
  692. </ReturnTicketRequest>
  693. ```
  694. Ответ:
  695. Ответ аналогичен ответу на запрос [getOrder](#getOrder)
  696. ### updateTicket
  697. Изменение персональных данных пассажира в забронированном или проданном билете.
  698. В параметрах принимает идентификатор билета, информацию о пассажире и информацию
  699. об агенте который совершил операцию.
  700. **URL: /sales/updateTicket**
  701. Запрос:
  702. ```xml
  703. <?xml version="1.0" encoding="UTF-8"?>
  704. <UpdateTicketRequest>
  705. <!-- Идентификатор билета. Обязательный -->
  706. <ticketId>12435438</ticketId>
  707. <Passenger>
  708. <!-- Имя пассажира. Обязательно -->
  709. <firstName>goxUEpWCud</firstName>
  710. <!-- Фамилия пассажира. Обязательно-->
  711. <lastName>sKZXIloHFn</lastName>
  712. <!-- Отчество пассажира. Обязательно для Международных, Межобластных и Межреспубликанских рейсов-->
  713. <middleName>pCaEgXgfWO</middleName>
  714. <!-- Номер документа удостоверяющего личности. Обязателен.-->
  715. <docNum>jwcmdIrmcc</docNum>
  716. <!-- Серия документа удостоверяющего личности. Не Обязателен.-->
  717. <docSeries>iFAElsnFHn</docSeries>
  718. <!-- Идентификатор типа документа полученный при вызове getDocumentTypes. Обязателен. -->
  719. <docTypeId>1</docTypeId>
  720. <!-- Дата рождения. Обязательно для Международных, Межобластных и Межреспубликанских рейсов -->
  721. <birthday>1986-01-01</birthday>
  722. <!-- Гражданство виде ISO2. Обязательно для Международных, Межобластных и Межреспубликанских рейсов -->
  723. <citizenshipISO2>RU</citizenshipISO2>
  724. <!--
  725. Пол. Обязательно для Международных, Межобластных и Межреспубликанских рейсов
  726. MALE - Мужской
  727. FEMALE - Женский
  728. -->
  729. <gender>FEMALE</gender>
  730. </Passenger>
  731. <!-- Агент выполнивший операцию. Не Обязателен. -->
  732. <Agent>
  733. <!-- Имя агента. Не обязателен.-->
  734. <name>ИП Твои билеты</name>
  735. <!-- ИНН агента. Не обязателен.-->
  736. <inn>2225555777</inn>
  737. </Agent>
  738. </UpdateTicketRequest>
  739. ```
  740. Ответ:
  741. ```xml
  742. <?xml version="1.0" encoding="UTF-8"?>
  743. <Response success="true">
  744. </Response>
  745. ```