API

API ставок на спорт

Усе, що робить букмекер, виведено в API: матчі, ринки, ціни, приймання ставок, cash-out, розрахунок. Кожен продакшн-ключ видається лише після чек-листа сертифікації за тими краєвими випадками, які ламають наївні інтеграції: ціна змінилася під час запиту, ринок призупинено під час запиту, частковий cash-out на плечі, яке вже розраховано.

Запросити документацію API

Два машинних корпуси, з’єднані чотирма плетеними кабелями, один із яких помаранчевий

Дві схеми інтеграції

iFrameAPI
ФронтендНаш, вбудований у ваш сайтВаш
ГаманецьВаш, через колбеки seamless walletВаш, через колбеки seamless wallet
Час до запускуВід днів до кількох тижнівШість-дванадцять тижнів залежно від вашого фронтенду
Контроль над UXЛише темізаціяПовний
Типовий користувачКазино, яке додає вкладку букмекераОператор, для якого букмекер — це і є продукт; провайдери платформ

Скільки кожна схема коштує в інженерному часі

Шість-дванадцять тижнів вище — це календарний час для команди з двох людей, розтягнутий тими частинами, які не можна вести паралельно: автентифікація перед усім, каталог перед купоном. Таблиця — та сама робота в інженеро-днях, розбита за напрямами, щоб було видно, які частини знімає iFrame. Діапазони — це різниця між командою, яка вже випускала букмекерський фронтенд, і командою, яка ні.

Напрям роботиiFrameAPI
Колбеки гаманця й реєстр за ними5–10 днів5–10 днів
Автентифікація, підписування запитів, ключі ідемпотентності2–4 дні2–4 дні
Каталог: види спорту, турніри, матчі, ринки, селекціїНаше10–20 днів
Оновлення цін і статусів у лайві через push-каналНаше5–10 днів
Купон, приймання ставки та політика зміни ціниНаше10–15 днів
Екран cash-out: котирування, часткове, закінчення термінуНаше4–8 днів
Розрахунок, перерахунок і перегляд історії ставокНаше4–8 днів
Ліміти, самовиключення та правила ліцензії у вашому інтерфейсіЛише темізація3–6 днів
Прогін сертифікації та правки, які він дає3–5 днів5–10 днів

Із підсумків випливають дві речі. Гаманець — це однакова робота за будь-якої схеми, і саме тут найімовірніше буде помилка, тож iFrame не дає її оминути. Що iFrame справді знімає — це букмекерський фронтенд: 36–67 інженеро-днів тут. Саме цю цифру треба зважувати проти володіння інтерфейсом, а не різницю в датах запуску.

Контракт seamless wallet

Ваш гаманець тримає баланс, а ми тримаємо ставку. Жодна сторона не може відтворити іншу зі своїх записів — тому кожен виклик несе і ідентифікатор ставки, і ідентифікатор транзакції. У таблиці — чотири виклики: коли ми надсилаємо кожен, що маємо отримати у відповідь і що відбувається, коли не приходить нічого.

ВикликКоли ми його надсилаємоЩо маємо отримати у відповідьЯкщо настає таймаут
БалансНа старті сесії та перед прийманням ставки, якщо ваші ліміти могли змінитисяДоступний баланс за кожною валютоюСтавка не приймається. Гроші не рухалися, тож відкочувати нічого.
Зарезервувати й списати ставкуНа прийманні, з ключем запиту, ідентифікатором ставки та сумоюПідтвердження і підсумковий балансМи повторюємо з тим самим ключем, і ваш гаманець має повернути перший результат, а не списати ще раз. Якщо питання лишається невирішеним, ставка не діє, а спроба значиться як непідтверджена.
Зарахувати виграшНа розрахунку виграшної ставки або плеча і на виконанні cash-outПідтвердження і підсумковий балансПовторюється з тим самим ключем до підтвердження. Виграш ніколи не губиться: його або застосовують, або показують як невиконаний.
Анулювати й перерахуватиНа анулюванні, скасованій події або офіційній корекції результатуПідтвердження із застосованою дельтоюТой самий ключ, те саме правило. Перерахунок, який не вдається застосувати, тримається й показується у звіті, але ніколи не застосовується двічі.

Ключ запиту — це і є весь контракт. Його несе кожен виклик, а правило на вашому боці таке: той самий ключ завжди дає ту саму відповідь — першу. Гаманець, який трактує повтор як нову інструкцію, спише двічі першого ж разу, коли обірветься з’єднання, а з’єднання обриваються. Саме тому пісочниця надсилає дублікат кожного виклику, і саме тому продакшн-ключ чекає, доки дублікати не почнуть повертатися ідентичними. Таймаут і вікно повторів фіксуються в договорі поруч із рейт-лімітами, бо залежать від того, де працює ваш гаманець.

Що дає API

  • Каталог: види спорту, турніри, матчі, ринки та селекції з цінами, статусом і станом призупинення. Пре-матч через REST зі сповіщеннями про зміни; лайв — через push (WebSocket) із дельтами цін і статусів, дзеркалячи вихідні фіди, які для Sportradar приходять через AMQP.
  • Приймання ставок: ординари, експреси, системи та плечі bet builder, з обробкою зміни ціни (приймати будь-яку, приймати вищу, відхиляти), лімітами суми від ризик-рушія та ідемпотентними ключами запитів.
  • Seamless wallet: ми звертаємося до вашого гаманця, щоб зарезервувати й списати ставку, зарахувати виграш, анулювати й перерахувати; один баланс гравця на казино й букмекера.
  • Cash-out: котирування й виконання, повний і частковий, у лайві та пре-матчі.
  • Розрахунок: результати й події розрахунку по кожній ставці та плечу, з перерахунком на офіційну корекцію і повним аудит-слідом.
  • Контекст акаунта: ліміти гравця, самовиключення та обмеження від ліцензії передаються з кожним запитом, щоб ризик-рушій і правила регулятора діяли на ваших гравців так само, як на наших.
  • Звітність: оборот, GGR і маржа за видом спорту, ринком і когортою гравців; файли звірки розрахунків.

Сертифікація: сценарії і що має статися

Це випадки, які пісочниця розігрує до видачі продакшн-ключа. Середній стовпець — поведінка, за якою ми сертифікуємо; правий — що замість цього робить інтеграція, яка про цей випадок не подумала, і як збій виглядає у вашій черзі підтримки.

СценарійОчікувана поведінкаЩо робить неперевірена інтеграція
Ціна змінюється між купоном і прийманням ставкиПрийняти, прийняти-якщо-вища або відхилити — за політикою, надісланою із запитом. Ставка стоїть за однією ціною.Приймає за застарілою ціною, а потім сперечається, яку ціну було показано.
Ринок призупиняється, поки запит у дорозіВідхилено з причиною призупинення. Нічого не списано.Списує суму, потім анулює, лишаючи списання й зарахування за ставку, якої ніколи не було.
Дубльоване приймання ставки приходить із тим самим ключем запитуОдна ставка, одне списання, повторно повернута початкова відповідь.Дві ставки й два списання.
Гаманець не відповідає на списанняСтавка не діє; спроба значиться як непідтверджена.Приймає ставку проти непідтвердженого списання і виявляє нестачу на розрахунку.
Частковий cash-out на експресі, де одне плече вже розрахованоКотирується за плечима, які ще відкриті; розраховане плече не переоцінюється.Оцінює всю ставку, а потім не може розрахувати те, що від неї лишилося.
Офіційний результат виправляють після виплатиПерерахунок застосовується як дельта, при цьому зберігаються і початковий запис, і корекція.Перезаписує початковий розрахунок, тож історія більше не пояснює баланс.
Гравець перетинає ліміт депозиту або програшу посеред сесіїПриймання ставки відхиляється за лімітом, а сам ліміт названо у відповіді.Приймає ставку, бо ліміт живе у вашій системі акаунтів і ніколи не надсилався із запитом.
Вихідний фід падає при відкритих ставкахРинки призупиняються, приймання ставок на уражених матчах спиняється, відкриті ставки лишаються відкритими й розраховуються, коли надійдуть результати.Продовжує приймати ціни, які перестали рухатися.

Фіди за ним

API не залежить від фіда. За ним ми запускаємо Sportradar, Genius Sports, LSports або OddsMatrix — залежно від вашого договору й ринків; на turnkey договір на фід ваш, а ми його інтегруємо.

ФідОпубліковане покриття
Sportradar900,000+ подій на рік, 32 види спорту
Genius Sports600,000+ матчів, 40+ видів спорту
LSports175,000+ пре-матч подій на місяць, 100+ видів спорту, 2,500 ринків
OddsMatrix200,000+ лайв-подій на місяць

Більше про кожен фід, зокрема який ми рекомендуємо для якого букмекера, — на сторінці turnkey букмекер.

Чого не включає ліцензія лише на дані коефіцієнтів

Кілька провайдерів продають коефіцієнти як дані, і деякі прямо пишуть на власних сторінках, що вони — інфраструктура коефіцієнтів, а не букмекер. У таблиці — те, що стоїть між ціною і розрахованою ставкою, і звідки береться кожна частина за двох моделей.

Що для цього потрібноЛіцензія на дані коефіцієнтівЦе API
Ціни, матчі та статус ринкуВходитьВходить
Приймання ставокБудуєте саміВходить
Ризик і ліміти експозиції на гравця, ринок і подіюБудуєте саміЛіміти суми приходять від ризик-рушія разом із запитом
Контракт гаманцяБудуєте саміЧотири виклики, ідемпотентні, сертифіковані до запуску
Котирування cash-outБудуєте саміКотирування й виконання, повне і часткове
Розрахунок ставок і плечейБудуєте саміВходить, по кожній ставці й кожному плечу
Перерахунок на офіційну корекціюБудуєте саміВходить, з аудит-слідом
Ліміти гравця й самовиключення, застосовані на прийманніБудуєте саміКонтекст акаунта йде з кожним запитом
Файли звірки та звітність регуляторуБудуєте саміВходить

Ліцензія на коефіцієнти — правильна покупка для медіасайту, прогнозного продукту або моделі: жоден із них не бере грошей у гравця. Для оператора це неправильна покупка — і водночас дешевший рядок у комерційній пропозиції, саме так і роблять цю помилку.

Пісочниця й запуск

Пісочниця із записаними повторами лайв-ринків, щоб ваш фронтенд можна було перевірити на справжньому русі цін, а не на статичних даних. Чек-лист сертифікації з ліда проганяється саме на цій пісочниці до видачі продакшн-ключів, тож краєві випадки ловляться до запуску, а не на першому тижні живого трафіку. Рейт-ліміти й SLA фіксуються в договорі; ми називаємо їх, коли знаємо очікувану пікову конкурентність, бо в API чекауту і в лайв-фіда in-play різні допуски.

Часті питання

Чи можемо ми взяти лише коефіцієнти й самі приймати ставки?

Це ліцензія на дані, а не букмекерський API — фід лише з коефіцієнтами, який кілька наших вихідних провайдерів продають і напряму, без приймання ставок, ризик-менеджменту й розрахунку. У нас навпаки: приймання, ризик і розрахунок — це і є продукт, а коефіцієнти — те, проти чого ми їх ставимо.

Чи можемо ми почати з iFrame і пізніше перейти на API?

Так, і в такому порядку це дешевше. Робота з гаманцем переноситься без змін, бо обидві схеми використовують ті самі чотири виклики. Другим ви будуєте букмекерський фронтенд: ті самі 36–67 інженеро-днів із таблиці вище. Акаунт, гравці та історія ставок лишаються на місці; змінюється лише інтерфейс перед ними.

Ліміти ставимо ми чи ви?

Обидві сторони, але в одному напрямку. Ризик-рушій разом із каталогом повертає ліміти суми на ринок, селекцію і гравця, і ви можете їх знизити. Підняти їх вище лімітів експозиції книги ви не можете, бо відповідальність лежить на тому, хто оцінив ринок. Ваші власні правила — ліміти депозиту й програшу, самовиключення, обмеження ліцензії — йдуть із кожним запитом і застосовуються на прийманні, а не перевіряються постфактум.

Ви підтримуєте фентезі або тоталізатор?

Тоталізатор — так, на тому самому каталозі. Фентезі — ні.

А контракти в стилі ринків передбачень?

Інший продукт, у більшості місць — інша ліцензія; дивіться платформу ринків передбачень.