SportAPI Документация
RU
C Документация продуктаCoupon API
v1
Услуга и цены ↗ Получить доступ ↗
Coupon API / Ординары, экспрессы и multi

Ординары, экспрессы и multi

Тип создаваемого купона зависит от количества элементов в list_bets и значения multi.

API возвращает тип в поле coupon_type:

coupon_typeТип купонаКоличество ставок
1ОрдинарОдна ставка
2ЭкспрессДве или несколько ставок

Ординар

Ординар — это отдельный купон с одной ставкой.

Пример:

{
  "list_bets": [
    "line#737779544#1#1#0#1.85"
  ],
  "amount": 10,
  "multi": false
}

Результат:

{
  "coupon_type": 1,
  "events_count": 1,
  "amount": 10
}

Если list_bets содержит только один элемент, значения multi = false и multi = true в обоих случаях создадут один ординар.

Экспресс

Экспресс — это один купон, объединяющий несколько ставок на разные матчи.

Для создания экспресса передайте несколько указателей и установите:

{
  "multi": false
}

Пример:

{
  "list_bets": [
    "line#737779544#1#1#0#1.85",
    "line#737880112#8#6#2.5#1.64"
  ],
  "amount": 10,
  "currency": "USD",
  "multi": false
}

Система создаст один купон:

{
  "coupon_type": 2,
  "events_count": 2,
  "amount": 10
}

amount относится ко всему экспрессу и не применяется отдельно к каждой ставке внутри него.

После успешного создания один amount автоматически списывается с баланса клиентского аккаунта SportAPI.

Один экспресс может содержать не более 15 событий.

Как работает multi

multi определяет, нужно ли объединить элементы list_bets в один купон или создать отдельный купон для каждого элемента.

ЗначениеПоведение
falseВсе элементы list_bets образуют один ординар или экспресс.
trueКаждый элемент list_bets образует отдельный ординар.
null или поле отсутствуетИспользуется значение по умолчанию false.

multi = false

При multi = false:

  • один элемент создает один ординар;
  • несколько элементов создают один экспресс;
  • amount является суммой всего созданного купона;
  • в body.coupons возвращается один купон.

multi = true

При multi = true:

  • каждый элемент создает отдельный ординар;
  • каждый ординар получает собственный coupon_code;
  • amount применяется полностью к каждому ординару;
  • каждый ординар рассчитывается независимо;
  • в body.coupons возвращается несколько купонов.

Важно. Значение amount не делится между создаваемыми ординарами. Общая сумма равна amount × количество элементов list_bets.

Именно эта общая сумма автоматически списывается с баланса клиентского аккаунта SportAPI при успешном создании. Если средств на все ординары недостаточно, API возвращает 507 и не создает ни одного купона.

Пример расчета суммы

Пользователь выбрал две ставки и ввел сумму 10.

Исходный запрос:

{
  "list_bets": [
    "line#737779544#1#1#0#1.85",
    "line#737880112#8#6#2.5#1.64"
  ],
  "amount": 10
}

Результат зависит от multi:

РежимЧто будет созданоСумма каждого купонаСписание клиентского баланса
multi = falseОдин экспресс с двумя ставками1010
multi = trueДва отдельных ординара1020

При multi = true сокращенная часть успешного ответа будет выглядеть так:

{
  "code": 1,
  "body": {
    "coupons": [
      {
        "coupon_code": "000000000272",
        "coupon_type": 1,
        "events_count": 1,
        "amount": 10
      },
      {
        "coupon_code": "000000000273",
        "coupon_type": 1,
        "events_count": 1,
        "amount": 10
      }
    ]
  }
}

Партнер должен сохранить оба объекта и оба значения coupon_code.

Корзина партнера

До подтверждения ставки интерфейс партнера должен ясно показать:

  • будет создан один экспресс или несколько ординаров;
  • сумму каждого создаваемого купона;
  • количество создаваемых купонов;
  • общую сумму.

Для multi = true общая сумма рассчитывается так:

общая сумма = amount × количество элементов list_bets

Например:

amount = 10
количество ставок = 3
общая сумма = 30

Содержимое корзины остается предварительным выбором пользователя. Сохранять купоны как принятые можно только после ответа с code = 1 и на основе объектов из body.coupons.

Баланс конечного пользователя в системе партнера и клиентский баланс SportAPI — разные сущности. SportAPI автоматически списывает только свой клиентский баланс; партнер отдельно управляет резервом и списанием средств своего пользователя.

Ставки одного матча в экспрессе

В один экспресс нельзя включать несколько исходов, относящихся к одному матчу. Ограничение распространяется на основное событие и все связанные с ним саб-события.

Запрещенные примеры:

  • исход основного матча и угловые этого же матча;
  • исход основного матча и ставка на отдельный тайм;
  • угловые и фолы одного матча;
  • разные таймы, периоды или другие саб-события одного матча.

Для одного матча выберите только один исход. Остальные ставки экспресса должны относиться к другим матчам.

Если при multi = false передана запрещенная комбинация, API отклоняет создание экспресса:

error_code = 506

Партнеру рекомендуется применять это ограничение в корзине и не разрешать пользователю отправить недопустимый экспресс.

При multi = true каждый исход становится отдельным ординаром, поэтому исходы не объединяются в один экспресс.

Что обрабатывать в ответе

После успешного создания всегда перебирайте весь массив:

body.coupons

Не следует обрабатывать только body.coupons[0]: при multi = true массив содержит отдельный объект для каждого созданного ординара.

Для каждого возвращенного купона:

  1. сохраните coupon_code как строку;
  2. сохраните необходимые поля самого купона;
  3. сохраните необходимые данные ставок из events_data;
  4. отслеживайте и рассчитывайте каждый купон независимо.

Полный запрос и ответ описаны в разделе «Создание купона».

Следующий раздел: «Изменение коэффициентов и доступности исхода».