Syncra Scoring API

Быстрый старт

Первый вызов скоринга за 5 минут — curl и C#

Быстрый старт

Этот гайд проведёт вас от получения ключа до первого ответа скоринга за 5 минут. Готовые примеры на curl и C# можно скопировать и запустить.


Что вам нужно

РесурсОписаниеГде получить
КлючСтрока X-KA-Access-Key (scoped, только скоринг-ручки)Владелец платформы Syncra
Базовый URLСтейдж https://api-stage.syncra.money/api/v1/scoringВладелец платформы (по окружению)
sellPointKeyВаш стабильный идентификатор точки продажи (≤256 симв.)Придумаете сами, один на точку
clientIdKeyВаш стабильный идентификатор клиента (≤256 симв.)Ваша система учёта клиентов

Ключ — единственный секрет в интеграции. Храните его как секрет (переменная окружения, secret manager) и не вшивайте в код репозитория.


Шаг 1. Первый вызов score

curl -s -X POST "$BASE/v1/client/score" \
  -H "X-KA-Access-Key: $SCORING_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "sellPointKey": "my-shop-ru-1",
        "clientIdKey":  "client-4711",
        "amountRequested": "1500.00",
        "toPayCurrency": "RUB",
        "selectedMethodKey": "card_ru",
        "fingerprint": "9f8e2ab41c",
        "ip": "203.0.113.7",
        "userAgent": "MyPlatform/1.0 (Windows NT 10.0; Win64; x64)"
      }'

Ответ:

{
  "clientGroup": "NEW",
  "paymentScore": "0.5000",
  "isBot": false
}

Клиент впервые на платформе — нейтральный скор, не бот.


Шаг 2. Первый вердикт

Перед выдачей реквизита спросите платформу:

curl -s -X POST "$BASE/v1/client/verdict" \
  -H "X-KA-Access-Key: $SCORING_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "sellPointKey": "my-shop-ru-1",
        "clientIdKey":  "client-4711",
        "method": "card_ru",
        "amountRequested": "1500.00",
        "orderRef": "order-100500"
      }'

Ответ:

{
  "verdict": "GET_NEW",
  "reason": "ladder level 1 granted",
  "ruleVersion": "p2.v10",
  "isBot": false
}

GET_NEW — реквизит можно выдавать. Повторите запрос через минуту — увидите WAIT с waitSeconds: это cooldown-лестница защищает реквизиты от перебора.


Шаг 3. C# за минуту

Готовый клиент без внешних зависимостей: examples/ScoringClient.cs в репозитории спеки (System.Text.Json). Минимальный вызов:

var client = new ScoringClient(baseUrl, accessKey);
var score = await client.ScoreAsync(new ScoreRequest {
    SellPointKey = "my-shop-ru-1",
    ClientIdKey  = "client-4711",
    AmountRequested = "1500.00",
    SelectedMethodKey = "card_ru",
});
Console.WriteLine($"{score.ClientGroup} {score.PaymentScore} bot={score.IsBot}");

Частые ошибки старта

СимптомПричинаРешение
401 unknown X-KA-Access-Keyключ не передан или опечаткапроверьте заголовок
400 malformed JSON bodyсумма передана JSON-числом"amountRequested": "1500.00"
403 not provisionedключ выдан не на эту ручкузапросите scope у владельца
Долгий ответ / разрывпревышен бакет ~20 rps на IPуменьшите частоту, добавьте retry

On this page