Syncra Scoring API
ApiScoring APIГайды

Ошибки

Коды ответов, обёртка problem+json и KA-сообщения

Ошибки

Все неуспешные ответы проходят через точку публикации и приходят в обёртке RFC 9457 problem+json; исходное сообщение KA-протокола ({"message": "..."}) едет в поле detail дословно.


Формат

{
  "type": "about:blank",
  "title": "Unauthorized",
  "status": 401,
  "detail": "{\"message\":\"unknown X-KA-Access-Key\"}",
  "instance": "/api/v1/scoring"
}
ПолеОписание
titleHTTP-причина (короткая фраза статуса)
statusHTTP-код (дублирует код ответа)
detailстрока, внутри которой JSON с полем message — KA-текст
instanceпуть точки публикации

detail — это JSON-строка, а не вложенный объект. Распарсите её вторым шагом, если нужно поле message. Матчитесь на status, а не на тексты: формулировки message могут меняться между релизами.


Коды и действия

КодПричинаДействие интегратора
400тело не JSON или поле не прошло валидацию (например сумма числом)исправить запрос; текст — в detail.message
401заголовок X-KA-Access-Key не передан или неизвестенпроверить конфигурацию ключа
403ключ валиден, но endpoint вне выданного scopeработать только с выданными ручками или запросить расширение
500внутренняя ошибка платформыretry с экспоненциальным backoff (2-3 попытки); если повторяется — владельцу с orderRef/временем

Сообщения KA-уровня (внутри detail)

СообщениеГде возникаетСмысл
X-KA-Access-Key header is requiredвсе ручкизаголовок не передан
unknown X-KA-Access-Keyвсе ручкиключ не существует
X-KA-Access-Key is not provisioned for this endpoint (scope …)все ручкиключ вне scope
malformed JSON bodyscore/verdictтело не разобралось (в т.ч. сумма числом)
paymentIdKey was not registered by createpayment-рукифинал без create (вне scoring scope)

Не все 400 возвращают конкретное поле в message: некоторые валидации сообщают только сам факт. Сверяйте запрос со схемами openapi.yaml — это быстрее подбора.

On this page