Обмен билета#
Фактический обмен выписанного билета на новый маршрут или даты с выпиской новых билетов.
Описание#
Эндпоинт: POST /avia/ticket_exchange
Операция обмена билета выполняет фактическое переоформление билета на новый маршрут или даты согласно выбранному варианту из расчета обмена. При успешном обмене старый билет аннулируется и выписываются новые билеты.
Использование#
Используйте этот запрос для выполнения фактического обмена билета после получения и выбора варианта через /avia/ticket_exchange_calculation.
Основной сценарий#
sequenceDiagram
participant Client
participant API
Client->>API: POST /avia/ticket_exchange_calculation
API-->>Client: exchangeId + варианты обмена
Note over Client: Выбор варианта<br/>(получение offerItemId)
Client->>API: POST /avia/ticket_exchange<br/>{exchangeId, offerItemId, parameters}
API-->>Client: tickets[]<br/>(новые билеты)
Note over API: Старый билет<br/>автоматически аннулирован
Базовый пример#
Минимальный запрос для обмена билета:
1{
2 "exchangeId": "DC0BED1AEF4D9CE789DDBBA384A9593C",
3 "offerItemId": "fa94ea6a-ac07-49d7-a810-a4640f2774fd",
4 "bookingId": "019a0ce7-b2b1-7670-9bb0-0823c0853344",
5 "ticketNumber": "425-6170037301",
6 "forExchange": {
7 "currencyCode": "RUB",
8 "value": 5100
9 },
10 "legs": [
11 {
12 "segments": [
13 {
14 "id": "49537d1b-6f36-4a7b-8d8e-a218f5cce9fb",
15 "class": "X",
16 "destination": {
17 "airport": "KZN",
18 "dateTime": "2025-11-24T09:20:00"
19 },
20 "flight": {
21 "carrierCode": "DP",
22 "flightNumber": "6841"
23 },
24 "origin": {
25 "airport": "SVO",
26 "dateTime": "2025-11-24T07:40:00"
27 }
28 }
29 ]
30 }
31 ],
32 "passengers": [
33 {
34 "gender": "male",
35 "lastName": "KOZLOV",
36 "firstName": "IVAN",
37 "type": "adt",
38 "documents": [],
39 "contacts": [],
40 "frequentFlyers": []
41 }
42 ]
43}Успешный ответ с новыми билетами:
1{
2 "tickets": [
3 {
4 "number": "6170037302",
5 "vendor": "425",
6 "passenger": {
7 "id": "Pax-1",
8 "firstName": "IVAN",
9 "lastName": "KOZLOV",
10 "type": "adt"
11 }
12 },
13 {
14 "number": "6160004938",
15 "vendor": "425",
16 "passenger": {
17 "id": "Pax-1",
18 "firstName": "IVAN",
19 "lastName": "KOZLOV",
20 "type": "adt"
21 }
22 }
23 ]
24}Детальная документация#
- Параметры запроса — описание параметров запроса
- Структура ответа — детальное описание структуры ответа
Когда использовать#
После расчета стоимости#
Всегда выполняйте расчет обмена перед фактическим обменом:
1{
2 "exchangeId": "DC0BED1AEF4D9CE789DDBBA384A9593C",
3 "offerItemId": "fa94ea6a-ac07-49d7-a810-a4640f2774fd",
4 "bookingId": "019a0ce7-b2b1-7670-9bb0-0823c0853344",
5 "ticketNumber": "425-6170037301",
6 "forExchange": {
7 "currencyCode": "RUB",
8 "value": 5100
9 }
10}Изменение маршрута пассажира#
Пассажир хочет изменить пункт назначения или маршрут полета.
Изменение дат полета#
Пассажир хочет перенести рейс на другую дату.
Изменение класса обслуживания#
Апгрейд или даунгрейд класса обслуживания.
Процесс обмена#
Полный цикл#
sequenceDiagram
participant Client
participant API
participant GDS
Client->>API: POST /avia/ticket_exchange_calculation
API->>GDS: Запрос вариантов обмена
GDS-->>API: Варианты с exchangeId
API-->>Client: exchangeId + варианты
Note over Client: Пользователь выбирает вариант
Client->>API: POST /avia/ticket_exchange<br/>(с exchangeId + offerItemId)
API->>GDS: Выполнить обмен
GDS->>GDS: Аннулировать старый билет
GDS->>GDS: Выписать новые билеты
GDS-->>API: Новые номера билетов
API-->>Client: tickets[]
Note over Client: Обмен завершенСвязанные операции#
- Расчет обмена билета - предварительный расчет вариантов обмена (обязательно выполнить перед обменом)
- Информация о билете - проверка статуса билета до и после обмена
- Правила тарифа - просмотр условий обмена для тарифа
- Получение PNR - проверка обновленного бронирования