Обмен билета#

Фактический обмен выписанного билета на новый маршрут или даты с выпиской новых билетов.

Описание#

Эндпоинт: 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: Обмен завершен

Связанные операции#