Расчет обмена билета#
Предварительный расчет стоимости и вариантов обмена билета на новый маршрут или даты.
Описание#
Эндпоинт: POST /avia/ticket_exchange_calculation
Операция расчета обмена позволяет получить доступные варианты обмена билета с полным расчетом стоимости до выполнения фактического обмена. Это позволяет пользователю увидеть все варианты, доплату и условия до принятия окончательного решения.
Использование#
Используйте этот запрос для получения вариантов обмена билета перед фактическим обменом через /avia/ticket_exchange.
Основной сценарий#
sequenceDiagram
participant Client
participant API
Client->>API: POST /avia/ticket_exchange_calculation<br/>{bookingId, ticketNumber, legs}
API-->>Client: exchangeId + offers[]<br/>(варианты с расчетом стоимости)
Note over Client: Выбор варианта<br/>(получение offerItemId)
Client->>API: POST /avia/ticket_exchange<br/>{exchangeId, offerItemId, ...}
API-->>Client: tickets[]<br/>(новые билеты)
Базовый пример#
Минимальный запрос для расчета обмена билета:
1{
2 "bookingId": "019a0be6-dbe9-7108-bb7b-fbd181c3fbf6",
3 "ticketNumber": "425-6170037037",
4 "legs": [
5 {
6 "segments": [
7 {
8 "flight": {
9 "carrierCode": "DP",
10 "flightNumber": "6841"
11 },
12 "origin": {
13 "code": "SVO",
14 "codeType": 0,
15 "type": 0
16 },
17 "destination": {
18 "code": "KZN",
19 "codeType": 0,
20 "type": 0
21 },
22 "departureAt": "2025-11-29T07:40:00",
23 "arrivalAt": "2025-11-29T09:20:00",
24 "fareBasis": "P",
25 "originalSegmentKey": "79eeae5c-5ba4-4660-9d80-6ceba1023aa3"
26 }
27 ]
28 }
29 ]
30}Успешный ответ с вариантами обмена:
1{
2 "exchangeId": "019a0ce6-2633-787f-a6bc-5dbddc02cc1f",
3 "offers": [
4 {
5 "legs": [...],
6 "offerItems": [
7 {
8 "offerItemId": "offer-item-1",
9 "forExchange": {
10 "currencyCode": "RUB",
11 "value": 5000
12 },
13 "fare": {
14 "currencyCode": "RUB",
15 "value": 0
16 },
17 "taxes": {
18 "currencyCode": "RUB",
19 "value": 100
20 },
21 "exchangeDetails": {
22 "adt": {
23 "fare": {
24 "currencyCode": "RUB",
25 "value": 0
26 },
27 "price": {
28 "currencyCode": "RUB",
29 "value": 5100
30 }
31 }
32 }
33 }
34 ]
35 }
36 ],
37 "flights": {...},
38 "fareFamilies": {...},
39 "passenger": "adt"
40}Детальная документация#
- Параметры запроса — описание параметров запроса
- Структура ответа — детальное описание структуры ответа
Когда использовать#
Изменение маршрута#
Пассажир хочет лететь в другой город:
1{
2 "bookingId": "019a0be6-dbe9-7108-bb7b-fbd181c3fbf6",
3 "ticketNumber": "425-6170037037",
4 "legs": [
5 {
6 "segments": [
7 {
8 "flight": {
9 "carrierCode": "DP",
10 "flightNumber": "6841"
11 },
12 "origin": {
13 "code": "SVO",
14 "codeType": 0,
15 "type": 0
16 },
17 "destination": {
18 "code": "KZN",
19 "codeType": 0,
20 "type": 0
21 },
22 "departureAt": "2025-11-29T07:40:00",
23 "arrivalAt": "2025-11-29T09:20:00",
24 "fareBasis": "P"
25 }
26 ]
27 }
28 ]
29}Изменение дат полета#
Пассажир хочет перенести рейс на другую дату.
Смена класса обслуживания#
Пассажир хочет улучшить класс обслуживания (upgrade).
Типичные ошибки#
| Код ошибки | Причина | Решение |
|---|---|---|
EXCHANGE_NOT_ALLOWED | Обмен запрещен правилами тарифа | Проверьте правила тарифа |
TICKET_NOT_FOUND | Билет не найден | Проверьте номер билета и bookingId |
TICKET_USED | Билет уже использован | Обмен невозможен |
NO_AVAILABILITY | Нет мест на новом рейсе | Выберите другой рейс или дату |
INVALID_SEGMENT | Некорректный сегмент | Проверьте параметры сегмента |
Связанные операции#
- Обмен билета - фактический обмен билета
- Информация о билете - проверка статуса билета
- Правила тарифа - просмотр условий обмена
- Получение PNR - проверка бронирования