Параметры запроса#
Детальное описание параметров для запроса /api/avia/ticket_refund_calculation.
Обязательные параметры#
| Параметр | Тип | Описание |
|---|---|---|
bookingId | guid | Идентификатор бронирования (формат UUID) |
ticketNumber | string | Номер билета для расчёта возврата, не более 14 символов. Формат {vendor}-{number} (например, 555-6170036806) |
Пример запроса#
1curl -X POST https://test.travelplatform.ru/api/avia/ticket_refund_calculation \
2 -H "Authorization: Bearer YOUR_TOKEN" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "bookingId": "019a0b29-8fc8-703a-9845-50c7ce2b1322",
6 "ticketNumber": "555-6170036806"
7 }' 1var request = new
2{
3 bookingId = "019a0b29-8fc8-703a-9845-50c7ce2b1322",
4 ticketNumber = "555-6170036806"
5};
6
7var response = await httpClient.PostAsJsonAsync(
8 "https://test.travelplatform.ru/api/avia/ticket_refund_calculation",
9 request
10);
11
12if (response.IsSuccessStatusCode)
13{
14 var result = await response.Content.ReadFromJsonAsync<TicketRefundCalculationResponse>();
15
16 if (result?.Error == null)
17 {
18 Console.WriteLine($"К возврату: {result.ForRefund.Value} {result.ForRefund.CurrencyCode}");
19 Console.WriteLine($"Штраф: {result.RefundDetails.Penalty.Value} {result.RefundDetails.Penalty.CurrencyCode}");
20 }
21}Сценарии использования#
Сценарий 1: Расчет перед возвратом#
Действия:
- Выполнить запрос
/api/avia/ticket_refund_calculation - Получить детализацию: сумму возврата, штрафы, тарифы, сборы
- Выполнить фактический возврат через
/api/avia/ticket_refund
Важно: Значение forRefund из ответа должно быть передано в запрос возврата без изменений.
sequenceDiagram
participant Client
participant API
Client->>API: POST /api/avia/ticket_refund_calculation<br/>{bookingId, ticketNumber}
API-->>Client: forRefund, penalty, детализация
Client->>API: POST /api/avia/ticket_refund<br/>{bookingId, ticketNumber, forRefund}
API-->>Client: {}
Сценарий 2: Проверка возможности возврата#
Действия:
- Выполнить запрос расчета возврата
- Если получен успешный ответ - возврат возможен
- Если получена ошибка — возврат запрещён. Запрет по правилам тарифа приходит от поставщика под кодом
SUPPLIER_ERROR, причина — текстом вmessage
Особенность: Запрос также служит для проверки разрешенности возврата.
sequenceDiagram
participant Client
participant API
Client->>API: POST /api/avia/ticket_refund_calculation<br/>{bookingId, ticketNumber}
alt Возврат разрешен
API-->>Client: HTTP 200<br/>forRefund, penalty, детализация
else Возврат запрещен
API-->>Client: HTTP 200<br/>{error: SUPPLIER_ERROR, message: причина}
end
Важные моменты#
Обязательность расчета#
Всегда выполняйте расчет перед фактическим возвратом через /api/avia/ticket_refund:
- Клиент должен знать точную сумму возврата
- Необходимо получить согласие клиента на условия возврата
- Значение
forRefundиз расчета требуется для запроса возврата
Использование forRefund#
Значение forRefund из ответа должно быть передано в запрос /api/avia/ticket_refund без изменений. Это гарантирует корректность суммы возврата.
Формула расчета#
forRefund = fare + taxes.total - penalty - невозвратные_сборыГде:
fare- стоимость тарифаtaxes.total- возвратные сборы и таксыpenalty- штраф за возврат согласно правилам тарифаневозвратные_сборы- сборы, которые не возвращаются
Типичные ошибки#
| Код ошибки | Причина | Решение |
|---|---|---|
BOOKING_NOT_FOUND | Бронирование не найдено или не принадлежит клиенту | Проверьте bookingId |
CURRENCY_RATE_NOT_AVAILABLE | Нет курса для конвертации сумм в валюту отображения | Повторите запрос позже |
VALIDATION_ERROR | Ошибка валидации запроса (HTTP 400) | Проверьте обязательные поля и форматы значений |
NO_TARGETS | Под запрос не нашлось ни одного поставщика: ни один не настроен либо все отсеяны на этапе подготовки запроса | Проверьте настройки офисов и пресетов в личном кабинете; при сохранении ошибки обратитесь в поддержку |
SUPPLIER_ERROR | Поставщик вернул ошибку. Причина — текстом поставщика в поле message | Разберите message; при необходимости повторите запрос позже |
SYSTEM_ERROR | Внутренняя ошибка Travel API | Повторите запрос позже; при повторении обратитесь в поддержку с errorId |
Ошибки, пришедшие от GDS/NDC-поставщика, возвращаются под кодом
SUPPLIER_ERROR: отдельного кода на каждую причину отказа Travel API не формирует, причина передаётся текстом поставщика в полеmessage. Не завязывайте логику на разборmessage— его формат зависит от поставщика и не фиксирован.
Связанные операции#
- Возврат билета - фактическое оформление возврата с указанием суммы
- Информация о билете - проверка статуса билета перед возвратом
- Расчёт обмена - альтернатива возврату через обмен