Коды ошибок веб-сервиса
Общие положения¶
Под ошибками понимается¶
ошибки (error), означающие неуспешное выполнение той или иной операции. Ошибки носят глобальный контекст.
предупреждения (warning), означающие либо частичное выполнение операции, либо сообщение о невозможности выполнения операции согласно установленным бизнес-процессам, что ошибкой не является.
Уровни ошибок¶
MixVel API предусматривает 3 уровня для передачи ошибок:
1-й уровень: Envelope/Body/Error/
Сюда относятся ошибки, связанные с:
-
Нарушением формата запроса (не соответствует XSD схеме).
-
Авторизацией (запрос не авторизован).
2-й уровень: Mixvel_[AirShopping]RS/Error
Здесь появляются ошибки, когда запрос полностью не обработан.
Сюда относятся ошибки, связанные с логической проверкой запроса и результатами обработки запроса, такие как:
- неверные даты вылета;
- отрицательное количество пассажиров;
- несуществующие станции;
- отсутствующий контент;
- и пр.
3-й уровень (Warning): Mixvel_[AirShopping]RS/Response/Warning
Запрос обработан, результат передан, но с рядом ограничений.
Структуры для передачи ошибок¶
В MixVel API реализована следующая структура:
Рисунок 40
ErrorType — логический тип ошибки. Принимает значения:
«BadRequest» — ошибка в запросе.
«InternalServerError» — ошибка на стороне MixVel API.
«ProviderError» — ошибка на стороне провайдера.
CanRetry — можно ли осуществить повтор отправки сообщения. Принимает значения «true» / «false».
RetryAfter — если CanRetry = true, указывается рекомендованное количество секунд, по прошествии которых необходимо повторить отправку запроса.
TicketId — в случае если MixVel порождает ticket в системе учета инцидентов, здесь будет передан его идентификатор.
Code — код ошибки. Коды ошибок приведены ниже по тексту настоящего руководства.
DescText — текстовое описание ошибки.
Перечень кодов ошибок¶
№ | ErrorCode | ErrorType | ErrorDesc |
I. Auth | |||
1. | MIX-101001 | BadRequest | InvalidUsernameOrPassword Неверный логин или пароль |
2. | MIX-101002 | BadRequest | AuthenticationFailed |
3. | MIX-101002 | BadRequest | AuthenticationFailed Вам не доступен данный функционал. Пожалуйста, обратитесь в поддержку, чтобы проверить ваш доступ |
II. Common | |||
1. | MIX-100000 | BadRequest | BadXmlRequest XML request not being recognised/resolved. + xmlExceptionMessage |
2. | MIX-100001 | BadRequest | EnvelopeValidation Структура запроса не соответствует XSD ({errorLevel}): {validationEvent.Message} |
3. | MIX-100003 | BadRequest | DictionaryItemNotFound Значение ({standard}:{code}) элемента {entityCode} отсутствует в кодификаторах. Актуализируйте справочники MixVel |
4. | MIX-100004 | BadRequest | OfferNotFound Предложения ({string.Join(',', invalidOfferIds)}) не найдены или срок действия истек |
5. | MIX-100007 | BadRequest | OperationNotAllowed Метод запрещен |
6. | MIX-100008 | InternalServerError | OperationCancelledByUser Запрос отменен пользователем |
7. | MIX-110000 | BadRequest | RequestNotSupportedByProvider Request does not supported by Provider: {requestError} |
8. | MIX-110000 | BadRequest | RequestNotSupportedByProvider Указанная валюта '{currency}' не поддерживается |
9. | MIX-110001 | BadRequest | CurrencyNotAllowed Указанная валюта '{currency}' не установлена для Подразделения |
10. | MIX-110001 | BadRequest | CurrencyNotAllowed Никакая валюта не установлена для Подразделения |
11. | MIX-113001 | BadRequest | Concurrency Над запрошенным ресурсом происходит параллельное выполнение иной операции |
12. | MIX-200002 | InternalServerError | InternalServiceError Внутренняя ошибка сервиса. Обратитесь в службу технической поддержки (неисправность № {mixvelTraceId}) |
13. | MIX-200003 | BadRequest | OperationNotImplementedByProviderException Операция не поддерживается поставщиком |
14. | MIX-201999 | InternalServerError | ServiceTemporarilyUnavailable Сервис временно недоступен. Повторите попытку через {retryAfterSec.ToString()} секунд |
III. AirShopping | |||
1. | MIX-100006 | BadRequest | UnsupportedRequest Поиск с использованием Mixvel_LocationID в настоящий момент не поддерживается. Повторите запрос с использованием кодов IATA и ТКП |
2. | MIX-100006 | BadRequest | UnsupportedRequest Множественное указание промокодов на настоящий момент не поддерживается |
3. | MIX-100006 | BadRequest | UnsupportedRequest Суммарное значение диапазонов дат не должно превышать {maxDateRange} |
4. | MIX-100006 | BadRequest | UnsupportedRequest Количество младенцев, допускаемых к бесплатной перевозке, превышает максимально допустимое количество на одного взрослого пассажира |
5. | MIX-100006 | BadRequest | UnsupportedRequest При указании нескольких ProgramCriteria обязательно заполнение OwnerCode для каждой программы |
6. | MIX-100006 | BadRequest | UnsupportedRequest Для одного OwnerCode указано несколько ProgramCriteria |
7. | MIX-100006 | BadRequest | UnsupportedRequest Для поиска по бренду необходимо дополнительно указать фильтр по АК для каждого сегмента |
8. | MIX-100006 | BadRequest | UnsupportedRequest OriginDestRefID {key} не привязан к OriginDestCriteria |
9. | MIX-100006 | BadRequest | UnsupportedRequest В запросе не указано ни одного пассажира (отсутствует PaxList) |
10. | MIX-100006 | BadRequest | UnsupportedRequest Не указана категория пассажира |
11. | MIX-103001 | BadRequest | ViolateDepartureDate Диапазон даты вылета в прошлом |
12. | MIX-103001 | BadRequest | ViolateDepartureDate Диапазон даты вылета указан некорректно |
13. | MIX-100006 | BadRequest | Недопустим одновременный ввод {nameof(ConnectionCriteriaType.MaximumConnectionQty)}='0' и {nameof(ConnectionCriteriaType.StationCriteria)} |
IV. ServiceList | |||
1. | MIX-100006 | BadRequest | UnsupportedRequest OfferRequest может содержать только один Offer |
V. OfferPrice | |||
1. | MIX-109003 | BadRequest | PassengerNotFound Пассажиры с идентификаторами '{string.Join(" ", paxIds)}' не найдены |
2. | MIX-203001 | BadRequest | OfferIdIsNotActual Запрашиваемые рейсы для OfferId {offerId} неактуальны. Попробуйте выбрать другое предложение. |
VI. OrderCreate | |||
1. | MIX-104011 | BadRequest | OffersAlreadyReservedError Указанные предложения уже забронированы: {offerIds} |
2. | MIX-104012 | BadRequest | InconsistentRequestError У предложения(-й) ({offerIds}) в запросе отсутствует родитель |
3. | MIX-104012 | BadRequest | InconsistentRequestError Запрошенные(-й) OfferItemId {offerItemIds} не является частью предложения |
4. | MIX-104012 | BadRequest | InconsistentRequestError Указанный(-е) OfferItemId {offerItemIds} отсутствует в запросе |
5. | MIX-104012 | BadRequest | InconsistentRequestError Указанный в ремарке PaxSegmentRefID {remarkPaxSegmentId} не найден в бронируемом предложении |
6. | MIX-104012 | BadRequest | InconsistentRequestError В запросе не указан ни один номер телефона |
7. | MIX-104012 | BadRequest | InconsistentRequestError В запросе не указано ни одного контакта пассажира (отсутствует ContactInfoList) |
8. | MIX-104012 | BadRequest | InconsistentRequestError В ремарке '{remarkType.ToString()}' {(isRequired ? "" : "не ")}требуется привязка к пассажиру |
9. | MIX-104012 | BadRequest | InconsistentRequestError В ремарке '{remarkType.ToString()}' {(isRequired ? "" : "не ")}требуется привязка к сегменту |
10. | MIX-104012 | BadRequest | InconsistentRequestError В ремарке '{remarkType}' {(isRequired ? "требуется" : "запрещен")} пользовательский текст |
11. | MIX-104012 | BadRequest | InconsistentRequestError Для программы лояльности {loyalty} обязательно указание PaxSegmentRefID |
12. | MIX-104012 | BadRequest | InconsistentRequestError Бронирование с одной картой лояльности на несколько предложений на данный момент не поддерживается |
13. | MIX-104012 | BadRequest | InconsistentRequestError В предложениях используются разные формы оплаты |
VII. OrderChange | |||
1. | MIX-100001 | BadRequest | EnvelopeValidation В структуре запроса OrderChange.Request.ChangeOrder.UpdateOrderItem допустимо указывать одно из: AcceptOffer или DeleteOrderItemList. |
2. | MIX-100001 | BadRequest | EnvelopeValidation Операция возврата возможна только для оплаченных заказов. |
3. | MIX-104012 | BadRequest | InconsistentRequestError Предложение(-я) ({offerIds}) принадлежит другому родителю |
4. | MIX-104012 | BadRequest | InconsistentRequestError Заказ(-ы) ({orderIds}) не найдены в запрошенной мультикорзине |
5. | MIX-104012 | BadRequest | InconsistentRequestError Заказ {orderId} находится на статусе 'Оформлен'. Изменение данных указанных пассажиров в заказе невозможно. |
6. | MIX-104012 | BadRequest | InconsistentRequestError Категория пассажира недоступна для добавления в бронирование. |
7. | MIX-104012 | BadRequest | InconsistentRequestError Произошла ошибка при удалении данных пассажира(-ов). Операция недопустима. |
8. | MIX-104012 | BadRequest | InconsistentRequestError Данного PaxID = '{paxId}' нет в указанном заказе |
9. | MIX-104012 | BadRequest | InconsistentRequestError Данный PaxID = '{paxId}' задвоен |
10. | MIX-104012 | BadRequest | InconsistentRequestError Данный ID контакта пассажира = '{contactId}' уже указан в заказе |
11. | MIX-104012 | BadRequest | InconsistentRequestError Указанный в ремарке PaxRefID '{paxId}' не найден в заказе |
12. | MIX-104012 | BadRequest | InconsistentRequestError Указанный в ремарке PaxSegmentRefID '{paxSegmentId}' не найден в заказе |
13. | MIX-104012 | BadRequest | InconsistentRequestError Указанная ремарка '{type}' ({text}) не найдена в заказе |
14. | MIX-104012 | BadRequest | InconsistentRequestError Указанная лояльность '{accountNumber}' не найдена в заказе. Выполните OrderRetrieve для получения актуального состояния заказа |
15. | MIX-104012 | BadRequest | InconsistentRequestError Указанный для изменения документ '{docTypeRef}' не найден |
16. | MIX-104012 | BadRequest | InconsistentRequestError Итоговая стоимость Вашего расчета на возврат изменилась. Повторите расчет |
17. | MIX-104012 | BadRequest | InconsistentRequestError Заказ '{orderId}' не связан с пассажиром '{paxRefId}' |
18. | MIX-104012 | BadRequest | InconsistentRequestError Ручной возврат возможен только для всех пассажиров заказа |
19. | MIX-104012 | BadRequest | InconsistentRequestError Данный PaxID = '{paxId}', PaxSegmentID = '{paxSegmentId}' задвоен |
20. | MIX-104012 | BadRequest | InconsistentRequestError Для операции ручного обмена/возврата необходимо передавать сегменты, запрошенные на OrderReshopRQ |
21. | MIX-104012 | BadRequest | InconsistentRequestError Оценка ручного обмена/возврата произведена на все сегменты заказа, дополните детализацию стоимости на следующие сегменты: {string.Join(',', paxSegmentIds)} |
22. | MIX-104012 | BadRequest | InconsistentRequestError Запрещено использовать негативные величины в ручном возврате |
23. | MIX-104012 | BadRequest | InconsistentRequestError Запрещено использовать '{nameof(TaxOperationType)}.{nameof(TaxOperationType.Move)}' в ручном возврате |
24. | MIX-104012 | BadRequest | InconsistentRequestError Ручной возврат возможен только для расчёта в ручном режиме |
25. | MIX-104012 | BadRequest | InconsistentRequestError Автоматический возврат возможен только для расчёта в автоматическом режиме |
26. | MIX-104012 | BadRequest | InconsistentRequestError OrderItem = '{orderItemRefId}' не ассоциирован с EMD |
27. | MIX-104012 | BadRequest | InconsistentRequestError Для операции ручного возврата EMD необходимо передавать OrderItem, запрошенные на OrderReshopRQ |
28. | MIX-104012 | BadRequest | InconsistentRequestError Операция недопустима для OrderItemID: {string.Join(',', orderItemIds)} |
29. | MIX-100209 | BadRequest | InvalidSirenaUpgrade Цена за повышение класса обслуживания изменилась, попробуйте заново осуществить запрос для данного заказа |
VIII. OrderCancel | |||
1. | MIX-104012 | InconsistentRequestError | NoOrdersToCancel Купон EMD для OrderItem = '{string.Join(',', orderItemIds)}' отсутствует |
2. | MIX-106001 | BadRequest | NoOrdersToCancel Мультикорзина не содержит заказов, доступных для отмены |
3. | MIX-106001 | BadRequest | NoOrdersToCancel Заказ не содержит EMD купонов, доступных для отмены |
4. | MIX-106002 | BadRequest | OrderStatusMismatchError Заказ был изменен, воспользуетесь методом OrderRetrieve и повторите запрос в случае необходимости |
IX. Reshop | |||
1. | MIX-104012 | BadRequest | InconsistentRequestError Не указана форма оплаты |
2. | MIX-109001 | BadRequest | PartialRefundNotSupported Оценка условий возврата возможна только для полностью оплаченной Мультикорзины |
3. | MIX-109002 | BadRequest | OrderIsNotRefundable Возврат заказа не разрешен |
4. | MIX-109003 | BadRequest | PassengerNotFound Пассажир {paxId} не найден |
5. | MIX-109003 | BadRequest | PassengerNotFound Расчёт на обмен разрешён только для одного пассажира |
6. | MIX-109004 | BadRequest | OrderIsAlreadyRefunded Заказ {orderId} уже был возвращен |
7. | MIX-109005 | BadRequest | MixOrderHasNoOrderToRefund В Мультикорзине {mixOrderId} отсутствуют заказы для возврата |
8. | MIX-104012 | BadRequest | InconsistentRequestError Документ с типом {docType} не найден у пассажира |
9. | MIX-104012 | BadRequest | InconsistentRequestError Данный PaxSegmentID = '{paxSegmentRefId}' задвоен |
10. | MIX-104012 | BadRequest | InconsistentRequestError Заказ '{orderId}' не имеет оплаченных билетов для обмена |
11. | MIX-104012 | BadRequest | InconsistentRequestError Заказ должен быть оплачен '{orderId}' для оценки условий возврата |
12. | MIX-104012 | BadRequest | InconsistentRequestError Указание формы оплаты при возврате запрещено |
13. | MIX-100111 | BadRequest | OrderUnPayed Заказ не оплачен. Услуга повышения класса обслуживания недоступна |
14. | MIX-100211 | BadRequest | InvalidUpgradeTime Ошибка, услуга повышения класса обслуживания доступна не ранее чем за 24 часа до вылета |
15. | MIX-100212 | BadRequest | InvalidPricingForUpgrade Цена за повышение класса обслуживания изменилась, попробуйте заново осуществить запрос для данного заказа |
16. | MIX-100213 | BadRequest | NoSvcForUpgrade Услуга повышения класса обслуживания для данного коммерческого предложения не предоставляется |
17. | MIX-100214 | BadRequest | NotEnoughSeats Повышение класса обслуживания невозможно для всех пассажиров в заказе. Попробуйте разделить заказ |
18. | MIX-100215 | BadRequest | OfferHasExpired Истекло время действия данного предложения. Попробуйте начать процедуру с начала |
19. | MIX-100216 | BadRequest | CommonErrorUpgrade Не удалось провести процедуру Upgrade. Попробуйте начать с этапа Mixvel_OrderReshopRQ или совершите повторную попытку позднее |
20. | MIX-100217 | BadRequest | InconsistentRequestError Запрошенные(-й) OfferId {offerIds} не принадлежит Upgrade |
21. | MIX-100218 | BadRequest | InvalidUpgradeByMiles Повышение класса за мили недоступно |
22. | MIX-100219 | BadRequest | NotEnoughQuotas Услуга повышение класса обслуживания не может быть оказана, так как нет квоты на перевозку животного в более высоком классе обслуживания |
23. | MIX-100220 | BadRequest | ConflictingServicesError0 Услуга повышение класса обслуживания не может быть оформлена, так как у вас несовместимая с ним услуга «ЖИВОТНОЕ НА СОСЕД КРЕСЛЕ», отмените данную доп. услугу и попробуйте сделать апгрейд заново |
24. | MIX-100221 | BadRequest | ConflictingServicesError1 Услуга повышение класса обслуживания не может быть оформлена, так как у вас несовместимая с ним услуга «ДОПОЛНИТЕЛЬНОЕ МЕСТО» отмените данную доп. услугу и попробуйте сделать апгрейд заново |
25. | MIX-100222 | BadRequest | ConflictingServicesError2 Услуга повышение класса обслуживания не может быть оформлена, так как у вас несовместимая с ним услуга «БАГАЖ В САЛОНЕ» отмените данную доп. услугу и попробуйте сделать апгрейд заново |
26. | MIX-100223 | BadRequest | ConflictingServicesError3 Услуга повышение класса обслуживания не может быть оформлена, так как у вас несовместимая с ним услуга «Несопровождаемый ребенок» отмените данную доп. услугу и попробуйте сделать апгрейд заново |
X. PriceCalendar | |||
1. | MIX-100006 | BadRequest | UnsupportedRequest FlightRequest может содержать максимум 2 OriginDestCriteria |
2. | MIX-100006 | BadRequest | UnsupportedRequest Календарь цен с использованием фильтра Exclude в настоящий момент не поддерживается |
XI. OrderPayment | |||
1. | MIX-107004 | BadRequest | MixOrderNotAllowed Переданный к оплате Заказ MixVel (ID = {mixOrderId}) не соответствует Заказу заявленному Агентством |
2. | MIX-107005 | BadRequest | OrdersInFrozenState Заказ MixVel (ID = {mixOrderId}) в процессе оплаты |
3. | MIX-107007 | BadRequest | OrdersAlreadyPayedWithDifferentFop Произошла аннуляция полетных сегментов; Итоговая стоимость Вашего расчета на обмен изменилась. Повторите расчет |
4. | MIX-112001 | BadRequest | MixOrderHasAlreadyBeenPaid В мультикорзине нет заказов к оплате |
5. | MIX-107006 | BadRequest | HasUnconfirmedServices В заказе есть неподтверждённые допуслуги, воспользуетесь методом OrderRetrieve для просмотра и повторите запрос позднее |
XII. PaymentValidation | |||
1. | MIX-107002 | BadRequest | InconsistentPaymentAmount Сумма к оплате ({paymentSum}) не соответствует полной сумме MixOrder ({orderSum}) |
2. | MIX-107002 | BadRequest | InconsistentPaymentAmount Указанная форма оплаты не соответствует форме оплаты созданного MixOrder |
3. | MIX-107003 | BadRequest | InconsistentPaymentCurCodes Валюта оплаты ({paymentCurCode}) не соответствует валюте MixOrder ({orderCurCode}) |
4. | MIX-111005 | BadRequest | NotPaymentRequest Payment request should not have PaxList specified |
5. | MIX-111005 | BadRequest | NotPaymentRequest Only full payment allowed |
6. | MIX-111005 | BadRequest | NotPaymentRequest Для частичной оплаты необходимо указать список заказов |
XIII. Common for orders | |||
1. | MIX-100005 | BadRequest | OrderNotFound Заказ {orderId} не найден или срок его действия истек |
2. | MIX-100005 | BadRequest | OrderNotFound Заказы ({string.Join(',', orderIds)}) не найдены или срок действия истек |
3. | MIX-111001 | BadRequest | MixOrderNotFound Мультикорзина {mixOrderId} не найдена |
4. | MIX-111003 | BadRequest | OrderNotFoundByTicket Заказ по номеру билета {ticketNumber} не найден или срок его действия истек |
5. | MIX-111004 | BadRequest | OrdersNotInMixOrder Указанные заказы не содержатся в Мультикорзине: {string.Join(',', invalidOrderIds)} |
-
Error "НЕТ ВОЗМОЖНОСТИ ПОЛУЧИТЬ МЕСТА": говорит о наличии ограничений бронирования со стороны хоста. Данные ограничения устанавливает АК.
-
Error «ПРОДАЖА ЗАПРЕЩЕНА»: говорит о том что-либо рейс закрыт, либо нет мест. Ответ также приходит от АК.