[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page:ua:doc-sport-events-api.html":3},{"id":4,"body":5,"extension":23,"meta":120,"slug":121,"stem":122,"__hash__":123},"content_ua\u002Fua\u002Fdoc-sport-events-api.json",{"template":6,"meta":7,"content":13},"docs",{"title":8,"description":9,"keywords":10,"ogTitle":11,"ogDescription":12},"API наслідків, ставок і купонів — документація | Bet in Box","Технічна документація з інтеграції системи розрахунку ставок і купонів: як працює система, авторизація користувача, відправлення ставки\u002Fкупона, параметри remote_host і rate_mode, поля відповіді, коди помилок та інтерпретація Status\u002FExtStatus.","API, спорт, коефіцієнти, наслідки, спортивна лінія, інтеграція, букмекер, ставки, розрахунок купонів, remote_host, rate_mode","Документація API розрахунку ставок і купонів - Bet in Box","Документація з інтеграції системи розрахунку ринків, коефіцієнтів і наслідків для букмекерів. Розрахунок ставок і купонів.",{"hero":14,"navLabel":35,"sections":36,"footer":108},{"eyebrow":15,"titleHtml":16,"lead":17,"cta":18,"code":21,"badges":25},"Документація API","Інтеграція системи для \u003Cspan class=\"hl\">розрахунку ставок і купонів\u003C\u002Fspan>","Ця система призначена для операторів ставок на спорт, букмекерів і розробників платформ, які прагнуть автоматизувати процес розрахунку ставок та управління купонами. Вона дозволяє швидко інтегрувати розрахунок результатів, надаючи точні дані про статуси купонів (виграш, програш або повернення), а також спрощує взаємодію між сервером оператора і системою розрахунку.",{"label":19,"order":20},"Отримати ключ",true,{"title":22,"lang":23,"body":24},"POST \u002Fv1\u002Fcoupon","json","{\n  \"coupon_id\": \"A7F3K9\",\n  \"type\": \"express\",\n  \"events\": [\n    { \"id\": 88213, \"pick\": \"1\", \"odds\": 2.10, \"result\": \"win\" },\n    { \"id\": 88150, \"pick\": \"over_2_5\", \"odds\": 1.80, \"result\": \"win\" }\n  ],\n  \"total_odds\": 3.78, \"status\": \"won\"\n}",[26,28,30,33],{"label":27},"REST over HTTPS",{"label":29},"JSON only",{"label":31,"tone":32},"Package header auth","lime",{"label":34},"api.sportapi.net","На цій сторінці",[37,41,47,69,75,79,83,87,93,97,103],{"id":38,"title":39,"html":40},"how","Як працює система?","\u003Ch3>Як працює система розрахунку шансів і наслідків?\u003C\u002Fh3>\n\u003Cp>Інтеграція з нашою системою розрахунку ставок і купонів проходить у три ключові етапи:\u003C\u002Fp>\n\u003Ch4>Етап 1: Авторизація\u003C\u002Fh4>\n\u003Cp>На першому етапі необхідно авторизуватися в системі. Для цього виконується \u003Cstrong>POST-запит\u003C\u002Fstrong> з даними користувача (логін і пароль). Успішна авторизація повертає сесію, представлену у вигляді \u003Cstrong>cookie\u003C\u002Fstrong>, яка має бути збережена. Ці cookie обов’язкові для відправлення всіх наступних запитів, оскільки вони використовуються для ідентифікації сесії користувача в системі.\u003C\u002Fp>\n\u003Ch4>Етап 2: Відправлення ставки\u003C\u002Fh4>\n\u003Cp>На цьому етапі в нашу систему відправляється код ставки, що містить:\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Cstrong>ID матчу\u003C\u002Fstrong>, що відповідає події.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Код ставки\u003C\u002Fstrong>, що описує обраний наслідок (наприклад, перемога команди, фора або тотал).\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Коефіцієнт ставки\u003C\u002Fstrong>, актуальний на момент відправлення.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Під час відправлення даних обов’язково передаються \u003Cstrong>cookie\u003C\u002Fstrong>, отримані на етапі авторизації. Це дозволяє коректно ідентифікувати користувача й обробити ставку.\u003C\u002Fp>\n\u003Ch4>Етап 3: Отримання результатів\u003C\u002Fh4>\n\u003Cp>Після завершення розрахунку наслідків або купонів наша система відправляє \u003Cstrong>POST-запити\u003C\u002Fstrong> на вказаний \u003Ccode>remote_host\u003C\u002Fcode>. Цей запит містить:\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Статус купона\u003C\u002Fstrong> (виграш, програш або повернення).\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Статуси всіх наслідків\u003C\u002Fstrong>, що входять у купон.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Відправлення результатів відбувається в момент визначення наслідку. Наприклад:\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Якщо ставку було зроблено на проміжний наслідок (наприклад, фора 2.5, і було забито третій гол), розрахунок може быть виконаний прямо під час матчу.\u003C\u002Fli>\n  \u003Cli>Якщо ставку зроблено на фінальний результат (наприклад, перемога команди), інформація про статус буде відправлена одразу після закінчення матчу.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Тепер перегляньте кожен крок окремо. Ми докладно описали запити, параметри та відповіді REST API.\u003C\u002Fp>",{"id":42,"title":43,"html":44,"json":45,"jsonTitle":46},"auth","Авторизація користувача","\u003Cp>Логін, пароль і хост для відправлення запитів можна отримати в менеджера.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>URL для запиту:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{APIHOST}\u002FWebServices\u002FBCService.asmx\u002FLogIn\u002F\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Тип відправлення даних:\u003C\u002Fstrong> POST\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Передавані дані:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Параметр\u003C\u002Fth>\u003Cth>Опис\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Ccode>login\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Логін користувача\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>password\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Пароль користувача\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Cstrong>Важливо!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Під час авторизації відповідь включає \u003Cstrong>cookie\u003C\u002Fstrong>. Ці \u003Cstrong>cookie\u003C\u002Fstrong> необхідно зберегти й відправляти з наступними запитами.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Рекомендації для зручності інтеграції:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Переконайтеся, що поле \u003Ccode>login\u003C\u002Fcode> передається у форматі рядка.\u003C\u002Fli>\n  \u003Cli>Перевірте коректність збереження та відправлення cookie, оскільки від цього залежить виконання наступних запитів.\u003C\u002Fli>\n  \u003Cli>У разі помилки запит поверне порожній об’єкт. Переконайтеся, що ви обробляєте такий сценарій.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>cookie\u003C\u002Fstrong> живуть 3 місяці. Але вони можуть оновитися при перезапуску сервера. Тому вам потрібно зробити повторну авторизацію, якщо ви отримаєте помилку під час збереження купона.\u003C\u002Fp>","\"errorCode\":1,\n\"fullErrorCode\":99,\n\"errorMessage\":\"Invalid access level\"","Відповідь з помилкою",{"id":48,"title":49,"codeTabs":50,"codeTitle":67,"html":68},"auth-example","Приклад відправлення запиту (використовуйте дані, які надав вам менеджер):",[51,55,59,63],{"label":52,"lang":53,"body":54},"Python","python","import requests\nimport json\n\nurl = \"https:\u002F\u002Fexample-domain-calc.com\u002FWebServices\u002FBCService.asmx\u002FLogIn\u002F\"\n\npayload = json.dumps({\n  \"login\": \"demo-login@demosportapi.net\",\n  \"password\": \"demo-password\"\n})\nheaders = {\n  'Content-Type': 'application\u002Fjson'\n}\n\nprint(response.text)",{"label":56,"lang":57,"body":58},"PHP","php","$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL => 'https:\u002F\u002Fexample-domain-calc.com\u002FWebServices\u002FBCService.asmx\u002FLogIn\u002F',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_ENCODING => '',\n    CURLOPT_MAXREDIRS => 10,\n    CURLOPT_TIMEOUT => 0,\n    CURLOPT_FOLLOWLOCATION => true,\n    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_POSTFIELDS =>'{\n    \"login\":\"demo-login@demosportapi.net\",\n    \"password\":\"demo-password\"\n}',\n    CURLOPT_HTTPHEADER => array(\n    'Content-Type: application\u002Fjson'\n    ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;",{"label":60,"lang":61,"body":62},"JavaScript","js","const myHeaders = new Headers();\nmyHeaders.append(\"Content-Type\", \"application\u002Fjson\");\n\nconst raw = JSON.stringify({\n    \"login\": \"demo-login@demosportapi.net\",\n    \"password\": \"demo-password\"\n});\n\nconst requestOptions = {\n    method: \"POST\",\n    headers: myHeaders,\n    body: raw,\n    redirect: \"follow\"\n};\n\nfetch(\"https:\u002F\u002Fexample-domain-calc.com\u002FWebServices\u002FBCService.asmx\u002FLogIn\u002F\", requestOptions)\n    .then((response) => response.text())\n    .then((result) => console.log(result))\n    .catch((error) => console.error(error));",{"label":64,"lang":65,"body":66},"Java","java","OkHttpClient client = new OkHttpClient().newBuilder()\n.build();\nMediaType mediaType = MediaType.parse(\"application\u002Fjson\");\nRequestBody body = RequestBody.create(mediaType, \"{\\r\\n    \\\"login\\\":\\\"demo-login@demosportapi.net\\\",\\r\\n    \\\"password\\\":\\\"demo-password\\\"\\r\\n}\");\nRequest request = new Request.Builder()\n.url(\"https:\u002F\u002Fexample-domain-calc.com\u002FWebServices\u002FBCService.asmx\u002FLogIn\u002F\")\n.method(\"POST\", body)\n.addHeader(\"Content-Type\", \"application\u002Fjson\")\n.build();\nResponse response = client.newCall(request).execute();","POST {APIHOST}\u002FWebServices\u002FBCService.asmx\u002FLogIn\u002F","\u003Cp>\u003Cstrong>Приклад відповіді:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Успішний:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\"d\":{\"UserId\":\"36557\"}}\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Неуспішний:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\"d\":{}}\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Опис полів відповіді:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Поле\u003C\u002Fth>\u003Cth>Опис\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Ccode>UserId\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Унікальний ідентифікатор користувача\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>d\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Кореневий об’єкт відповіді\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Cstrong>Загальні рекомендації:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Перед першим запитом переконайтеся, що користувач увів коректні дані.\u003C\u002Fli>\n  \u003Cli>Налаштуйте обробку помилок для відображення користувачу причин невдачі авторизації (наприклад, невірний логін або пароль).\u003C\u002Fli>\n  \u003Cli>Логуйте успішні й неуспішні спроби для аналізу та моніторингу.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Cookie необхідно зберігати й відправляти з наступними запитами.\u003C\u002Fp>",{"id":70,"title":71,"html":72,"json":73,"jsonTitle":74},"coupon","Метод відправлення ставки або купона","\u003Cp>Для відправлення ставки необхідно використовувати cookie, отримані на етапі авторизації. Ці дані обов’язкові для ідентифікації вашої сесії й обробки запитів.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>URL для запиту:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{HOST_API}\u002Fbet\u002Fplace\u002F\u003C\u002Fcode>\u003C\u002Fpre>","{\n    \"data\":{\n        \"list_bets\":[\n            \"line#586464528|17|954|2.5#4.27\",  \"live#586464528|87|4|0#1.12\"\n        ],\n        \"realAmount\":\"2\",\n        \"currency\":\"USD\",\n        \"lang\":\"en\",\n        \"remote_host\":\"https:\u002F\u002Fmysites.com\",\n        \"rate_mode\":\"reject\"\n    }\n}","Приклад тіла відправлення в body",{"id":76,"title":77,"html":78},"params","Параметры remote_host і rate_mode","\u003Ch4>Опис полів\u003C\u002Fh4>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Параметр\u003C\u002Fth>\u003Cth>Опис\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Ccode>list_bets\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Код ставки і коефіцієнти. Формат: \u003Ccode>\"тип_події#ID_матчу|Код_ставки#коефіцієнт\"\u003C\u002Fcode>. Наприклад: \u003Ccode>\"live#579216393|1|1|0#2.1\"\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>realAmount\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Сума ставки. Вказується у вигляді рядка, наприклад: \"150\".\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>currency\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Валюта купона.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>lang\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Мова, якою зберігаються ставка й купон. Наприклад: \"en\" або \"ru\" або \"tr\".\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>remote_host\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>URL для відправлення результатів розрахунку купона. Указуйте без кінцевого слеша.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>rate_mode\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Опція прийняття купона при зміні коефіцієнтів: \"reject\" (відхилити при зміні) або \"accept\" (прийняти при будь-яких змінах). За замовчуванням: \"accept\".\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Cstrong>Примітка:\u003C\u002Fstrong> Переконайтеся, що параметри передаються в коректному форматі. Наприклад, \u003Ccode>list_bets\u003C\u002Fcode> має бути масивом, навіть якщо ставка одна.\u003C\u002Fp>\n\u003Cblockquote>Ми не перевіряємо суму ставки. Ви можете передавати як реальну суму ставки, так і будь-яке значення. Це зроблено для забезпечення конфіденційності ваших фінансових даних. Наше завдання — надати результати розрахунку. Ви самі виконуєте нарахування виграшів своїм гравцям.\u003C\u002Fblockquote>\n\u003Ch4>Обов’язкові параметри для відправлення ставки:\u003C\u002Fh4>\n\u003Cul>\n  \u003Cli>\u003Cstrong>list_bets\u003C\u002Fstrong> — містить інформацію про ставку й відповідний матч.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>remote_host\u003C\u002Fstrong> — URL, на який мы відправимо результати розрахунку купона або наслідку.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>rate_mode\u003C\u002Fstrong> — визначає, як система обробляє зміни коефіцієнтів.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Решта параметрів також потрібно відправляти, но вони є необов’язковими й можуть бути використані для вашої зручності.\u003C\u002Fp>\n\u003Ch4>Опис параметра remote_host\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>remote_host\u003C\u002Fstrong> — це адреса вашого сервера, на яку ми відправляємо запити з результатами розрахунку ставок. На цьому хості має бути налаштований прийом запитів від нашого сервера. Нижче описано приклади можливих значень та особливості роботи з цим параметром.\u003C\u002Fp>\n\u003Cp>Ви можете вказати різні варіанти \u003Cstrong>remote_host\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Простий хост:\u003C\u002Fstrong> \u003Ccode>https:\u002F\u002Fmysites.com\u003C\u002Fcode>\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Хост із портом:\u003C\u002Fstrong> \u003Ccode>https:\u002F\u002Fmysites.com:78665\u003C\u002Fcode>\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Хост із додатковими шляхами:\u003C\u002Fstrong> \u003Ccode>https:\u002F\u002Fmysites.com\u002Frequest\u002Fsportapi\u002Fsender\u003C\u002Fcode>\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Хост із параметрами:\u003C\u002Fstrong> \u003Ccode>https:\u002F\u002Fmysites.com\u002Frequest.php?action=webhook\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Важливо:\u003C\u002Fstrong> Під час відправлення запиту наша система автоматично додає до вказаного \u003Ccode>remote_host\u003C\u002Fcode> рядок \u003Ccode>\u002Fapi\u002Fbet\u002Fresult\u003C\u002Fcode>. Таким чином, кінцева адреса для отримання запитів формується як \u003Ccode>remote_host + \"\u002Fapi\u002Fbet\u002Fresult\"\u003C\u002Fcode>. Переконайтеся, що ваш сервер налаштований на прийом даних за цим шляхом.\u003C\u002Fp>\n\u003Ch6>Приклади:\u003C\u002Fh6>\n\u003Cul>\n  \u003Cli>Ви передаєте \u003Ccode>remote_host = https:\u002F\u002Fmysites.com\u003C\u002Fcode>. Ми відправляємо запити на: \u003Ccode>https:\u002F\u002Fmysites.com\u002Fapi\u002Fbet\u002Fresult\u003C\u002Fcode>.\u003C\u002Fli>\n  \u003Cli>Ви передаєте \u003Ccode>remote_host = https:\u002F\u002Fmysites.com\u002Frequest.php?action=webhook\u003C\u002Fcode>. Ми відправляємо запити на: \u003Ccode>https:\u002F\u002Fmysites.com\u002Frequest.php?action=webhook\u002Fapi\u002Fbet\u002Fresult\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Технічні деталі:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Запити відправляються методом \u003Ccode>POST\u003C\u002Fcode>.\u003C\u002Fli>\n  \u003Cli>Ваш сервер має бути готовий приймати JSON-данні, які ми відправляємо.\u003C\u002Fli>\n  \u003Cli>Ваш сервер має віддати код 200 у разі успішного прийому даних.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Переконайтеся, що ваш сервер коректно обробляє вказаний шлях і запити. У наступному розділі наведено приклад структури даних, які відправляються нашим сервером.\u003C\u002Fp>\n\u003Ch4>Опис параметра rate_mode\u003C\u002Fh4>\n\u003Cp>Параметр \u003Cstrong>rate_mode\u003C\u002Fstrong> задає поведінку системи при зміні коефіцієнтів. Він може приймати два значення:\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Cstrong>accept\u003C\u002Fstrong>: У цьому режимі купон буде прийнято з поточним коефіцієнтом, навіть якщо він змінився. Наприклад, гравець додав у купон ставку «Перемога Манчестера» з коефіцієнтом 2.02. Поки він натискав кнопку «Зробити ставку», коефіцієнт змінився на 1.37 или 2.78. У режимі \u003Ccode>accept\u003C\u002Fcode> система збереже купон із новим коефіцієнтом без сповіщення вашої системи.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>reject\u003C\u002Fstrong>: У цьому режимі система відхилить купон, якщо коефіцієнт змінився. У відповіді буде помилка зі сповіщенням про те, що коефіцієнт змінився.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Обирайте режим, який найкраще відповідає вашим бізнес-процесам і забезпечує зручність для ваших користувачів.\u003C\u002Fp>\n\u003Ch4>Важливі рекомендації\u003C\u002Fh4>\n\u003Col>\n  \u003Cli>\u003Cstrong>Форматування JSON:\u003C\u002Fstrong> Переконайтеся, що дані коректно серіалізуються у JSON-формат перед відправленням.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Cookie:\u003C\u002Fstrong> Передавайте cookie, отримані на етапі авторизації, для успішної ідентифікації сесії користувача.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Обробка помилок:\u003C\u002Fstrong> Обробляйте відповіді сервера, особливо випадки, коли повертається \u003Ccode>errorCode = 1\u003C\u002Fcode>.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Тестування:\u003C\u002Fstrong> Проведіть тести на всіх етапах інтеграції, включно з відправленням одиночних і кількох ставок.\u003C\u002Fli>\n\u003C\u002Fol>",{"id":80,"title":81,"html":82},"fields","Поля відповіді та опис помилок","\u003Ch4>Поля відповіді\u003C\u002Fh4>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Параметр\u003C\u002Fth>\u003Cth>Опис\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Ccode>betCode\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Унікальний номер ставки в нашій системі\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>errorCode\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Основной статус результату запиту\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>fullErrorCode\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Деталізація помилок.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>errorMessage\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Текстові повідомлення про помилки системи\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>AmountOut\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Можлива сума виграшу\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>CountEvents\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Кількість ставок у купоні\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>Coef\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Коефіцієнти наслідків\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>IsLive\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Тип ставки: онлайн або до початку матчу (true\u002Ffalse)\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>LinesId\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>ID матчу\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>EventDate\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Дата матчу\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch4>Опис помилок при відправленні ставки\u003C\u002Fh4>\n\u003Cp>Під час відправлення ставки можуть виникнути різні помилки. Відповідь сервера містить три ключові поля:\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Cstrong>errorCode\u003C\u002Fstrong>: Основний статус запроса.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>fullErrorCode\u003C\u002Fstrong>: Деталізація помилки.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>errorMessage\u003C\u002Fstrong>: Текстовий опис помилки.\u003C\u002Fli>\n\u003C\u002Ful>",{"id":84,"title":85,"json":86,"jsonTitle":85},"success","Успішна операція","{\n  \"errorCode\": 0,\n  \"fullErrorCode\": 0,\n  \"errorMessage\": \"\"\n}",{"id":88,"title":89,"html":90,"json":91,"jsonTitle":92},"errors","Коди помилок","\u003Cp>If the bet is successfully accepted, the server returns a success response (see above). The coupon has been accepted, and there are no errors.\u003C\u002Fp>\n\u003Cp>If an error occurs, the server returns a general error response (see above). One of the possible errors occurred. Below are the error codes and messages.\u003C\u002Fp>\n\u003Ch4>Можливі коди й описи помилок\u003C\u002Fh4>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Код помилки (fullErrorCode)\u003C\u002Fth>\u003Cth>Повідомлення помилки (errorMessage)\u003C\u002Fth>\u003Cth>Опис\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Cstrong>1\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>\u003Ccode>error_wrong_bet_data\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Невірні дані ставки. Перевірте параметри \u003Ccode>list_bets\u003C\u002Fcode> та інші обов’язкові поля.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>1\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>\u003Ccode>error_block_bet_data\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Ставку тимчасово заблоковано і не може бути прийнято.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>1\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>\u003Ccode>error_repeat_bet_data\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Повтор ставки на той самий наслідок з одного матчу не допускається.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>2\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>\u003Ccode>label_change_rate\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Коефіцієнт змінився. Купон відхилено через невідповідність указаного й актуального коефіцієнтів.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>3\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>\u003Ccode>error_exist_bet\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Цей наслідок ставки вже не існує. Перевірте актуальність даних.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>99\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Невірний рівень доступу\u003C\u002Ftd>\u003Ctd>Користувач не має прав для виконання цієї операції. Найімовірніше, потрібно заново авторизуватися, зникли куки, або акаунт заблоковано.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>99\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Error exist remote host!\u003C\u002Ftd>\u003Ctd>Некоректный або відсутній параметр \u003Ccode>remote_host\u003C\u002Fcode>. Перевірте налаштування вашого сервера.\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch4>Рекомендації для обробки помилок\u003C\u002Fh4>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Перевірка вхідних даних:\u003C\u002Fstrong> Переконайтеся, що всі обов’язкові параметри передано коректно. Перевірте формат \u003Ccode>list_bets\u003C\u002Fcode> і наявність усіх обов’язкових полів.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Робота з коефіцієнтами:\u003C\u002Fstrong> Якщо використовується \u003Ccode>rate_mode = reject\u003C\u002Fcode>, обробіть помилки, пов’язані зі зміною коефіцієнтів (\u003Ccode>label_change_rate\u003C\u002Fcode>).\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Налаштування сервера:\u003C\u002Fstrong> Переконайтеся, що ваш сервер коректно вказано в параметрі \u003Ccode>remote_host\u003C\u002Fcode>.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Журналювання помилок:\u003C\u002Fstrong> Ведіть логування всіх помилок (\u003Ccode>errorCode\u003C\u002Fcode>, \u003Ccode>fullErrorCode\u003C\u002Fcode>, \u003Ccode>errorMessage\u003C\u002Fcode>) для спрощення налагодження та взаємодії з підтримкою.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Дії при критичних помилках:\u003C\u002Fstrong> У разі помилок рівня \u003Ccode>99\u003C\u002Fcode> перевірте права доступу й налаштування API на вашому боці.\u003C\u002Fli>\n\u003C\u002Ful>","{\n  \"errorCode\": 1,\n  \"fullErrorCode\": [ERROR_CODE],\n  \"errorMessage\": \"[ERROR_DESCRIPTION]\"\n}","Загальна помилка",{"id":94,"title":95,"json":96,"jsonTitle":95},"odds-changed","Рекомендації для обробки помилок, якщо коефіцієнт змінився","{\n    \"errorCode\":1,\n    \"fullErrorCode\":2,\n    \"errorMessage\":\"Odds have changed\",\n    \"rate_mode\":\"reject\",\n    \"changed\":[\n        {\n            \"gid\":\"586464528\", \u002F\u002F match ID\n            \"rb\":2.15, \u002F\u002F odds in your coupon\n            \"rg\":\"2.27\", \u002F\u002F current real odds\n            \"rt\":0 \u002F\u002F status of change. 0 - decreased, 1 - increased\n        }\n    ]\n}",{"id":98,"title":99,"html":100,"json":101,"jsonTitle":102},"results","Відправлення результатів розрахунку","\u003Cp>Коли ставку додано в нашу систему й розраховано, ми відправляємо результати купона на ваш сервер. Це можуть бути:\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Результати купона (повний розрахунок).\u003C\u002Fli>\n  \u003Cli>Статуси купона (виграш, програш, повернення).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Запити відправляються на адресу, вказану вами в параметрі \u003Ccode>remote_host\u003C\u002Fcode>. До цієї адреси автоматично додається рядок \u003Ccode>\u002Fapi\u002Fbet\u002Fresult\u003C\u002Fcode>. Переконайтеся, що ваш сервер налаштований на прийом даних за цим шляхом.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Приклад кінцевої адреси:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Якщо ви передали: \u003Ccode>remote_host = https:\u002F\u002Fmysite.com\u003C\u002Fcode>, ми відправимо дані на: \u003Ccode>https:\u002F\u002Fmysite.com\u002Fapi\u002Fbet\u002Fresult\u003C\u002Fcode>.\u003C\u002Fp>","{\n    \"remote_host\": \"https:\u002F\u002Fmysite.com\",\n    \"Heads\": [{\n        \"KeyHead\": {\n            \"Id\": \"344143\",\n            \"BarCode\": \"x9c52i8411\"\n        },\n        \"Status\": 2,\n        \"ExtStatus\": 0,\n        \"AmountOut\": 11130,\n        \"DateReceive\": \"1597075782\"\n    }]\n}","Приклад даних для одного купона",{"id":104,"title":105,"html":106,"json":107,"jsonTitle":105},"results-multi","Приклад даних для кількох купонів","\u003Ch4>Опис полів\u003C\u002Fh4>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Поле\u003C\u002Fth>\u003Cth>Опис\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Cstrong>remote_host\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Адреса вашого сервера, на яку відправляються дані.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>Id\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Унікальний ідентифікатор ставки в нашій системі. Ігнорується в більшості випадків.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>BarCode\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Унікальний номер купона.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>Status\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Поточний статус купона. Можливі значення: \u003Cstrong>2\u003C\u002Fstrong> — виграш, \u003Cstrong>4\u003C\u002Fstrong> — програш.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>ExtStatus\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Додатковий статус, если було повернення: \u003Cstrong>0\u003C\u002Fstrong> — змін немає, \u003Cstrong>1\u003C\u002Fstrong> — один або кілька наслідків розраховано зі зміною коефіцієнта.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>AmountOut\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Сума виграшу (якщо купон виграв).\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>DateReceive\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Час і дата розрахунку купона.\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch4>Як інтерпретувати Status і ExtStatus\u003C\u002Fh4>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Status = 2 і ExtStatus = 0:\u003C\u002Fstrong> Купон виграв.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Status = 4 і ExtStatus = 0:\u003C\u002Fstrong> Купон програв.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Status = 2 і ExtStatus = 1:\u003C\u002Fstrong> Повернення. Купон розраховано з коефіцієнтом 1.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Важливі моменти для інтеграції\u003C\u002Fh4>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Обробка ExtStatus = 1:\u003C\u002Fstrong> Це може статися, якщо матч було скасовано або завершено достроково. У таких випадках усі ставки розраховуються з коефіцієнтом 1.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Технічні вимоги:\u003C\u002Fstrong> Запити відправляються методом \u003Cstrong>POST\u003C\u002Fstrong>. Ваш сервер має бути готовий приймати JSON-дані за шляхом \u003Ccode>remote_host + \u002Fapi\u002Fbet\u002Fresult\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>","{\n    \"remote_host\": \"https:\u002F\u002Fmysite.com\",\n    \"Heads\": [{\n        \"KeyHead\": {\n            \"Id\": \"313\",\n            \"BarCode\": \"75vz48t935\"\n        },\n        \"Status\": 2,\n        \"ExtStatus\": 0,\n        \"AmountOut\": 19.85,\n        \"DateReceive\": \"1592937968\"\n    }, {\n        \"KeyHead\": {\n            \"Id\": \"312\",\n            \"BarCode\": \"77i0r6e15t\"\n        },\n        \"Status\": 2,\n        \"ExtStatus\": 0,\n        \"AmountOut\": 12.51,\n        \"DateReceive\": \"1592937280\"\n    }]\n}",{"title":109,"items":110},"Інша інтеграція",[111,114,117],{"label":112,"href":113},"Sports Line docs","\u002Fua\u002Fdoc-sport-line-api.html",{"label":115,"href":116},"Sports Line API","\u002Fua\u002Fsport-line-api.html",{"label":118,"href":119},"Match Results API","\u002Fua\u002Fsport-rezult-api.html",{},"doc-sport-events-api.html","ua\u002Fdoc-sport-events-api","Gm2BQ6f10TTnDa0HMuqxNt5zCUwihXnE5HMq25govV0"]