Системные типы#

Системные типы данных API.


Error#

Информация об ошибке.

ПолеТипОбязательноОписание
codestringДаКод ошибки
messagestringДаСообщение об ошибке
descriptionstringНетДетальное описание ошибки
errorIdstring (GUID v7)ДаУникальный идентификатор ошибки

Примеры#

1{
2  "error": {
3    "code": "SUPPLIER_ERROR",
4    "message": "NO ITINERARY FOUND FOR REQUESTED SEGMENT",
5    "description": null,
6    "errorId": "018c5f2e-9b3a-7f4d-8e2c-1a2b3c4d5e6f"
7  }
8}
1{
2  "error": {
3    "code": "AUTHENTICATION_FAILED",
4    "message": "Authentication failed",
5    "errorId": "018c5f2e-9b3a-7f4d-8e2c-1a2b3c4d5e6f"
6  }
7}

Использование#

Поле error присутствует в ответе при возникновении ошибки. Проверять его наличие нужно всегда, в том числе при HTTP 200: бизнес-ошибки (поставщик не ответил, предложение не найдено, внутренний сбой) возвращаются именно так — со статусом 200 OK и заполненным error в теле.

HTTP-статус при этом зависит от того, на каком этапе возникла ошибка:

СтатусКогдаТело
200 OKЗапрос принят и обработан, но операция завершилась ошибкой (ошибка поставщика, отсутствие предложений, внутренний сбой)Обычная структура ответа с заполненным error
400 Bad RequestЗапрос не прошёл валидацию — отсутствует обязательное поле, недопустимое значениеТолько поле error
401 UnauthorizedТокен отсутствует, истёк или недействителен; для /api/auth/token — неверные clientId/clientSecretТолько поле error

Поэтому обработка ответа выглядит так: сначала проверьте HTTP-статус, затем — при любом статусе — наличие error в теле.

Коды ошибок#

Набор кодов фиксирован и невелик. Коды, общие для всех операций:

Код ошибкиПричина
VALIDATION_ERRORЗапрос не прошёл валидацию. Возвращается с HTTP 400
NO_TARGETSПод запрос не нашлось ни одного поставщика: ни один не настроен либо все отсеяны на этапе подготовки запроса
SUPPLIER_ERRORПоставщик вернул ошибку
SYSTEM_ERRORВнутренняя ошибка Travel API
AUTHENTICATION_FAILEDОшибка аутентификации в /api/auth/token

Дополнительно в отельных операциях могут прийти:

Код ошибкиПричина
VALIDATION_FAILEDЗапрос отклонён на этапе валидации до обращения к поставщику
NOT_SUPPORTEDОперация или параметр не поддерживается выбранным поставщиком

Коды, специфичные для конкретной операции, перечислены на её странице — в разделе «Типичные ошибки».

Ошибки поставщиков не имеют отдельных кодов. В авиаоперациях всё, что вернул поставщик, приходит под кодом SUPPLIER_ERROR, а причина — текстом поставщика в поле message. Ветвление логики по error.code работает для кодов из таблиц документации; для причин отказа поставщика опирайтесь на message, помня, что его формат зависит от поставщика и не фиксирован.


Supplier#

Поставщик авиационного контента (GDS и NDC).

Возможные значения#

ЗначениеОписаниеТип
noneПоставщик не указан. Значение существует в перечислении, но в запросах не принимается — валидация отклонит его с сообщением Supplier must not be None-
amadeusAmadeus GDSGDS
amadeusNdcAmadeus NDCNDC
farelogixFarelogix NDC aggregatorNDC
galileoGalileo GDS (Travelport)GDS
mixvelMixvel NDC aggregatorNDC
nemoNemo aggregatorAggregator
s7S7 Airlines direct connectDirect
sabreSabre GDSGDS
sigSIG GDSGDS
sirenaSirena Travel GDSGDS
suNdcSU Airlines NDCNDC
ariadnaAriadnaHotel
ostrovokOstrovokHotel
acaseAcaseHotel
avitoAvitoHotel
hotelbookHotelBookHotel

Значения ariadna, ostrovok, acase, avito, hotelbook — поставщики отельного домена. Enum Supplier общий для всего API (используется и в авиа-, и в отельных операциях), поэтому в нем присутствуют значения обоих доменов.

Примеры#

1"supplier": "amadeus"

Использование в запросах#

При поиске можно указать конкретного поставщика:

1{
2  "supplier": "amadeus"
3}

Использование в ответах#

В ответах указывается, от какого поставщика получено предложение:

1{
2  "offerItemId": "...",
3  "supplier": "amadeus"
4}

Типы поставщиков#

  • GDS (Global Distribution System) — глобальные системы бронирования
  • NDC (New Distribution Capability) — новый стандарт дистрибуции IATA
  • Direct — прямые подключения к авиакомпаниям
  • Aggregator — агрегаторы контента
  • Hotel — поставщики отельного домена