[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page:fr:doc-sport-events-api.html":3},{"id":4,"body":5,"extension":22,"meta":119,"slug":120,"stem":121,"__hash__":122},"content_fr\u002Ffr\u002Fdoc-sport-events-api.json",{"template":6,"meta":7,"content":12},"docs",{"title":8,"description":9,"keywords":10,"ogTitle":11,"ogDescription":9},"Documentation pour les systèmes API de calcul des résultats, marchés, cotes - Bet in Box","Documentation d'intégration pour les systèmes API calculant les marchés, les cotes et les résultats pour les bookmakers. Calcul des paris et des coupons.","API, sports, cotes, résultats, ligne sportive, intégration, Sportsbook, paris, coefficients, football, basket-ball, tennis, e-sports","Documentation pour l'API de résultats et résultats de coupons - Bet in Box",{"hero":13,"navLabel":34,"sections":35,"footer":107},{"eyebrow":14,"titleHtml":15,"lead":16,"cta":17,"code":20,"badges":24},"Documentation API","Intégration du système pour le \u003Cspan class=\"hl\">calcul des paris et des coupons\u003C\u002Fspan>","Ce système est conçu pour les opérateurs de paris sportifs, les bookmakers et les développeurs de plateformes qui souhaitent automatiser le processus de calcul des paris et de gestion des coupons. Il permet une intégration rapide du calcul des résultats, fournissant des données précises sur le statut des coupons (gain, perte ou remboursement), et simplifie l'interaction entre le serveur de l'opérateur et le système de calcul.",{"label":18,"order":19},"Obtenir une clé",true,{"title":21,"lang":22,"body":23},"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}",[25,27,29,32],{"label":26},"REST over HTTPS",{"label":28},"JSON only",{"label":30,"tone":31},"Package header auth","lime",{"label":33},"api.sportapi.net","Sur cette page",[36,40,46,68,74,78,82,86,92,96,102],{"id":37,"title":38,"html":39},"how","Comment fonctionne le système ?","\u003Ch3>Comment fonctionne le système de calcul des cotes et des résultats ?\u003C\u002Fh3>\n\u003Cp>L'intégration avec notre système de calcul des paris et des coupons comprend trois étapes clés :\u003C\u002Fp>\n\u003Ch4>Étape 1 : Autorisation\u003C\u002Fh4>\n\u003Cp>Dans un premier temps, vous devez vous autoriser dans le système. Cela se fait en effectuant une \u003Cstrong>requête POST\u003C\u002Fstrong> avec les identifiants de l'utilisateur (identifiant et mot de passe). Une autorisation réussie renvoie une session sous forme de \u003Cstrong>cookie\u003C\u002Fstrong>, qui doit être enregistré. Ces cookies sont requis pour toutes les requêtes suivantes car ils permettent d'identifier la session de l'utilisateur dans le système.\u003C\u002Fp>\n\u003Ch4>Étape 2 : Envoi d'un pari\u003C\u002Fh4>\n\u003Cp>À cette étape, un code de pari est envoyé à notre système contenant :\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Cstrong>L'ID du match\u003C\u002Fstrong>, correspondant à l'événement.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Le code de pari\u003C\u002Fstrong>, décrivant le résultat sélectionné (par exemple, victoire de l'équipe, handicap ou total).\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Les cotes du pari\u003C\u002Fstrong>, valables au moment de l'envoi.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Lors de l'envoi des données, les \u003Cstrong>cookies\u003C\u002Fstrong> obtenus lors de l'autorisation doivent être inclus. Cela garantit une identification correcte de l'utilisateur et le traitement du pari.\u003C\u002Fp>\n\u003Ch4>Étape 3 : Réception des résultats\u003C\u002Fh4>\n\u003Cp>Une fois les résultats ou les coupons calculés, notre système envoie des \u003Cstrong>requêtes POST\u003C\u002Fstrong> au \u003Ccode>remote_host\u003C\u002Fcode> spécifié. Cette requête contient :\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Le statut du coupon\u003C\u002Fstrong> (gain, perte ou remboursement).\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Les statuts de tous les résultats\u003C\u002Fstrong> inclus dans le coupon.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Les résultats sont envoyés dès que le dénouement est déterminé. Par exemple :\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Si le pari a été placé sur un résultat intermédiaire (par exemple, handicap de 2,5 et le troisième but est marqué), le calcul peut être effectué pendant le match.\u003C\u002Fli>\n  \u003Cli>Si le pari porte sur le résultat final (par exemple, victoire de l'équipe), les informations sur le statut seront envoyées immédiatement après la fin du match.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Consultez maintenant chaque étape en détail. Nous avons décrit les requêtes, les paramètres et les réponses API de manière détaillée.\u003C\u002Fp>",{"id":41,"title":42,"html":43,"json":44,"jsonTitle":45},"auth","Autorisation de l'utilisateur","\u003Cp>L'identifiant, le mot de passe et l'hôte pour l'envoi des requêtes peuvent être obtenus auprès du gestionnaire.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>URL de la requête :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{APIHOST}\u002FWebServices\u002FBCService.asmx\u002FLogIn\u002F\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Type d'envoi des données :\u003C\u002Fstrong> POST\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Données envoyées :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Paramètre\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Ccode>login\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Identifiant de l'utilisateur\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>password\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Mot de passe de l'utilisateur\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Cstrong>Important !\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Lors de l'autorisation, la réponse contient des \u003Cstrong>cookies\u003C\u002Fstrong>. Ces \u003Cstrong>cookies\u003C\u002Fstrong> doivent être enregistrés et envoyés avec les requêtes suivantes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Recommandations pour une intégration simplifiée :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Assurez-vous que le champ \u003Ccode>login\u003C\u002Fcode> est transmis sous forme de chaîne de caractères.\u003C\u002Fli>\n  \u003Cli>Vérifiez l'enregistrement et l'envoi corrects des cookies, car cela affecte l'exécution des requêtes suivantes.\u003C\u002Fli>\n  \u003Cli>En cas d'erreur, la requête renverra un objet vide. Veillez à gérer ce scénario de manière appropriée.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Les \u003Cstrong>cookies\u003C\u002Fstrong> sont valables 3 mois. Cependant, ils peuvent être réinitialisés en cas de redémarrage du serveur. Par conséquent, vous devez vous réautoriser si vous rencontrez une erreur lors de l'enregistrement d'un coupon.\u003C\u002Fp>","\"errorCode\":1,\n\"fullErrorCode\":99,\n\"errorMessage\":\"Invalid access level\"","Réponse d'erreur",{"id":47,"title":48,"codeTabs":49,"codeTitle":66,"html":67},"auth-example","Exemple d'envoi de requête (utilisez les données fournies par le gestionnaire) :",[50,54,58,62],{"label":51,"lang":52,"body":53},"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":55,"lang":56,"body":57},"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":59,"lang":60,"body":61},"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":63,"lang":64,"body":65},"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>Exemple de réponse :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Réussie :\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\"d\":{\"UserId\":\"36557\"}}\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Échouée :\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\"d\":{}}\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Description des champs de la réponse :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Champ\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Ccode>UserId\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Identifiant unique de l'utilisateur\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>d\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Objet racine de la réponse\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Cstrong>Recommandations générales :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Avant la première requête, assurez-vous que l'utilisateur a saisi les identifiants corrects.\u003C\u002Fli>\n  \u003Cli>Configurez la gestion des erreurs pour afficher à l'utilisateur les raisons de l'échec de l'autorisation (par exemple, identifiant ou mot de passe incorrect).\u003C\u002Fli>\n  \u003Cli>Enregistrez les tentatives réussies et échouées pour analyse et surveillance.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Les cookies doivent être enregistrés et envoyés avec les requêtes suivantes.\u003C\u002Fp>",{"id":69,"title":70,"html":71,"json":72,"jsonTitle":73},"coupon","Méthode d'envoi de pari ou de coupon","\u003Cp>Pour envoyer un pari, vous devez utiliser les cookies obtenus lors de l'étape d'autorisation. Ces données sont requises pour identifier votre session et traiter les requêtes.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>URL de la requête :\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}","Exemple de corps de payload",{"id":75,"title":76,"html":77},"params","Paramètres remote_host & rate_mode","\u003Ch4>Description des champs\u003C\u002Fh4>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Paramètre\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Ccode>list_bets\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Code du pari et cotes. Format : \u003Ccode>\"event_type#match_ID|bet_code#odds\"\u003C\u002Fcode>. Exemple : \u003Ccode>\"live#579216393|1|1|0#2.1\"\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>realAmount\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Montant du pari. Doit être transmis sous forme de chaîne de caractères, par exemple, \"150\".\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>currency\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Devise du coupon.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>lang\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>La langue dans laquelle le pari et le coupon sont enregistrés. Par exemple : \"en\", \"ru\" ou \"tr\".\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>remote_host\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>L'URL à laquelle envoyer les résultats du calcul du coupon. Ne pas inclure de barre oblique finale.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>rate_mode\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Option pour gérer l'acceptation du coupon en cas de modification des cotes : \"reject\" (rejeter en cas de modification) ou \"accept\" (accepter malgré les modifications). Par défaut : \"accept\".\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Cstrong>Remarque :\u003C\u002Fstrong> Assurez-vous que les paramètres sont transmis dans le bon format. Par exemple, \u003Ccode>list_bets\u003C\u002Fcode> doit être un tableau, même s'il n'y a qu'un seul pari.\u003C\u002Fp>\n\u003Cblockquote>We do not validate the bet amount. You can submit either the actual bet amount or any arbitrary value. This is to ensure the confidentiality of your financial data. Our task is to provide calculation results. You are responsible for crediting winnings to your players.\u003C\u002Fblockquote>\n\u003Ch4>Paramètres requis pour envoyer un pari :\u003C\u002Fh4>\n\u003Cul>\n  \u003Cli>\u003Cstrong>list_bets\u003C\u002Fstrong> — contient les informations sur le pari et le match correspondant.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>remote_host\u003C\u002Fstrong> — l'URL à laquelle nous enverrons les résultats du calcul pour le coupon ou le résultat.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>rate_mode\u003C\u002Fstrong> — détermine comment le système gère les changements de cotes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Les autres paramètres doivent également être envoyés, mais ils sont facultatifs et peuvent être utilisés pour votre commodité.\u003C\u002Fp>\n\u003Ch4>Description du paramètre remote_host\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>remote_host\u003C\u002Fstrong> est l'adresse de votre serveur vers laquelle nous envoyons les requêtes contenant les résultats des calculs de paris. Cet hôte doit être configuré pour accepter les requêtes de notre serveur. Vous trouverez ci-dessous des exemples de valeurs possibles et des détails spécifiques sur l'utilisation de ce paramètre.\u003C\u002Fp>\n\u003Cp>Vous pouvez spécifier diverses options pour \u003Cstrong>remote_host\u003C\u002Fstrong> :\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Hôte simple :\u003C\u002Fstrong> \u003Ccode>https:\u002F\u002Fmysites.com\u003C\u002Fcode>\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Hôte avec port :\u003C\u002Fstrong> \u003Ccode>https:\u002F\u002Fmysites.com:78665\u003C\u002Fcode>\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Hôte avec chemins supplémentaires :\u003C\u002Fstrong> \u003Ccode>https:\u002F\u002Fmysites.com\u002Frequest\u002Fsportapi\u002Fsender\u003C\u002Fcode>\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Hôte avec paramètres :\u003C\u002Fstrong> \u003Ccode>https:\u002F\u002Fmysites.com\u002Frequest.php?action=webhook\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Important :\u003C\u002Fstrong> Lors de l'envoi d'une requête, notre système ajoute automatiquement la chaîne \u003Ccode>\u002Fapi\u002Fbet\u002Fresult\u003C\u002Fcode> au \u003Ccode>remote_host\u003C\u002Fcode> spécifié. Ainsi, l'adresse finale pour recevoir les requêtes est formée sous la forme \u003Ccode>remote_host + \"\u002Fapi\u002Fbet\u002Fresult\"\u003C\u002Fcode>. Assurez-vous que votre serveur est configuré pour recevoir des données à cet emplacement.\u003C\u002Fp>\n\u003Ch6>Exemples :\u003C\u002Fh6>\n\u003Cul>\n  \u003Cli>Vous spécifiez \u003Ccode>remote_host = https:\u002F\u002Fmysites.com\u003C\u002Fcode>. Nous envoyons les requêtes à : \u003Ccode>https:\u002F\u002Fmysites.com\u002Fapi\u002Fbet\u002Fresult\u003C\u002Fcode>.\u003C\u002Fli>\n  \u003Cli>Vous spécifiez \u003Ccode>remote_host = https:\u002F\u002Fmysites.com\u002Frequest.php?action=webhook\u003C\u002Fcode>. Nous envoyons les requêtes à : \u003Ccode>https:\u002F\u002Fmysites.com\u002Frequest.php?action=webhook\u002Fapi\u002Fbet\u002Fresult\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Détails techniques :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Les requêtes sont envoyées à l'aide de la méthode \u003Ccode>POST\u003C\u002Fcode>.\u003C\u002Fli>\n  \u003Cli>Votre serveur doit être prêt à accepter les données JSON que nous envoyons.\u003C\u002Fli>\n  \u003Cli>Votre serveur doit renvoyer un code de statut 200 lors de la réception réussie des données.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Assurez-vous que votre serveur traite correctement le chemin et les requêtes spécifiés. La section suivante fournit un exemple de la structure des données envoyées par notre serveur.\u003C\u002Fp>\n\u003Ch4>Description du paramètre rate_mode\u003C\u002Fh4>\n\u003Cp>Le paramètre \u003Cstrong>rate_mode\u003C\u002Fstrong> définit le comportement du système en cas de modification des cotes. Il peut prendre deux valeurs :\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Cstrong>accept\u003C\u002Fstrong> : Dans ce mode, le coupon sera accepté avec les cotes actuelles, même si elles ont changé. Par exemple, un joueur ajoute un pari \"Manchester Gagne\" avec une cote de 2,02. Pendant qu'il appuie sur le bouton \"Placer le pari\", la cote passe à 1,37 ou 2,78. En mode \u003Ccode>accept\u003C\u002Fcode>, le système enregistre le coupon avec les nouvelles cotes sans en informer votre système.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>reject\u003C\u002Fstrong> : Dans ce mode, le système rejette le coupon si les cotes ont changé. La réponse contiendra une erreur signalant que les cotes ont été modifiées.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Choisissez le mode qui convient le mieux à vos processus commerciaux et qui offre le plus de commodité à vos utilisateurs.\u003C\u002Fp>\n\u003Ch4>Recommandations importantes\u003C\u002Fh4>\n\u003Col>\n  \u003Cli>\u003Cstrong>Formatage JSON :\u003C\u002Fstrong> Assurez-vous que les données sont correctement sérialisées au format JSON avant de les envoyer.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Cookies :\u003C\u002Fstrong> Incluez les cookies obtenus lors de l'autorisation pour identifier avec succès la session de l'utilisateur.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Gestion des erreurs :\u003C\u002Fstrong> Gérez les réponses du serveur, en particulier les cas où \u003Ccode>errorCode = 1\u003C\u002Fcode> est renvoyé.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Tests :\u003C\u002Fstrong> Effectuez des tests à toutes les étapes de l'intégration, y compris l'envoi de paris simples et multiples.\u003C\u002Fli>\n\u003C\u002Fol>",{"id":79,"title":80,"html":81},"fields","Champs de réponse & description des erreurs","\u003Ch4>Champs de la réponse\u003C\u002Fh4>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Paramètre\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Ccode>betCode\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Numéro de pari unique dans notre système\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>errorCode\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Statut principal du résultat de la requête\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>fullErrorCode\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Détails de l'erreur\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>errorMessage\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Messages d'erreur système textuels\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>AmountOut\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Montant du gain potentiel\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>CountEvents\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Nombre de paris dans le coupon\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>Coef\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Coefficients des résultats\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>IsLive\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Type de pari : en direct ou d'avant-match (true\u002Ffalse)\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>LinesId\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>ID du match\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Ccode>EventDate\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Date du match\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch4>Description de l'erreur pour l'envoi du pari\u003C\u002Fh4>\n\u003Cp>Diverses erreurs peuvent survenir lors de l'envoi d'un pari. La réponse du serveur contient trois champs clés :\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\u003Cstrong>errorCode :\u003C\u002Fstrong> Statut principal de la requête.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>fullErrorCode :\u003C\u002Fstrong> Détails de l'erreur.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>errorMessage :\u003C\u002Fstrong> Description textuelle de l'erreur.\u003C\u002Fli>\n\u003C\u002Ful>",{"id":83,"title":84,"json":85,"jsonTitle":84},"success","Opération réussie","{\n  \"errorCode\": 0,\n  \"fullErrorCode\": 0,\n  \"errorMessage\": \"\"\n}",{"id":87,"title":88,"html":89,"json":90,"jsonTitle":91},"errors","Codes d'erreur","\u003Cp>Si le pari est accepté avec succès, le serveur renvoie une réponse de succès (voir ci-dessus). Le coupon a été accepté et il n'y a pas d'erreur.\u003C\u002Fp>\n\u003Cp>Si une erreur survient, le serveur renvoie une réponse d'erreur générale (voir ci-dessus). L'une des erreurs possibles s'est produite. Vous trouverez ci-dessous les codes d'erreur et les messages correspondants.\u003C\u002Fp>\n\u003Ch4>Codes d'erreur possibles et descriptions\u003C\u002Fh4>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Code d'erreur (fullErrorCode)\u003C\u002Fth>\u003Cth>Message d'erreur (errorMessage)\u003C\u002Fth>\u003Cth>Description\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>Données de pari incorrectes. Vérifiez le paramètre \u003Ccode>list_bets\u003C\u002Fcode> et les autres champs requis.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>1\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>\u003Ccode>error_block_bet_data\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Le pari est temporairement bloqué et ne peut être accepté.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>1\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>\u003Ccode>error_repeat_bet_data\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Les paris répétés sur le même résultat pour un même match ne sont pas autorisés.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>2\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>\u003Ccode>label_change_rate\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Les cotes ont changé. Le coupon a été rejeté en raison d'une différence entre les cotes spécifiées et actuelles.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>3\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>\u003Ccode>error_exist_bet\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Le résultat du pari spécifié n'existe plus. Vérifiez l'exactitude des données.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>99\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Niveau d'accès invalide\u003C\u002Ftd>\u003Ctd>L'utilisateur n'a pas les droits pour effectuer cette opération. Il est probable qu'une réautorisation soit nécessaire, que les cookies soient manquants ou que le compte soit bloqué.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>99\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Erreur d'hôte distant existant !\u003C\u002Ftd>\u003Ctd>Le paramètre \u003Ccode>remote_host\u003C\u002Fcode> est incorrect ou manquant. Vérifiez les paramètres de votre serveur.\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch4>Recommandations pour la gestion des erreurs\u003C\u002Fh4>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Validation des données d'entrée :\u003C\u002Fstrong> Assurez-vous que tous les paramètres requis sont fournis correctement. Vérifiez le format de \u003Ccode>list_bets\u003C\u002Fcode> et la présence de tous les champs obligatoires.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Gestion des cotes :\u003C\u002Fstrong> Si \u003Ccode>rate_mode = reject\u003C\u002Fcode> est utilisé, gérez les erreurs liées aux changements de cotes (\u003Ccode>label_change_rate\u003C\u002Fcode>).\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Configuration du serveur :\u003C\u002Fstrong> Assurez-vous que votre serveur est correctement spécifié dans le paramètre \u003Ccode>remote_host\u003C\u002Fcode>.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Journalisation des erreurs :\u003C\u002Fstrong> Enregistrez toutes les erreurs (\u003Ccode>errorCode\u003C\u002Fcode>, \u003Ccode>fullErrorCode\u003C\u002Fcode>, \u003Ccode>errorMessage\u003C\u002Fcode>) pour simplifier le débogage et l'interaction avec le support.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Actions en cas d'erreurs critiques :\u003C\u002Fstrong> En cas d'erreurs de niveau \u003Ccode>99\u003C\u002Fcode>, vérifiez les droits d'accès et les configurations de l'API de votre côté.\u003C\u002Fli>\n\u003C\u002Ful>","{\n  \"errorCode\": 1,\n  \"fullErrorCode\": [ERROR_CODE],\n  \"errorMessage\": \"[ERROR_DESCRIPTION]\"\n}","Erreur générale",{"id":93,"title":94,"json":95,"jsonTitle":94},"odds-changed","Recommandations pour la gestion des erreurs en cas de modification des cotes","{\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":97,"title":98,"html":99,"json":100,"jsonTitle":101},"results","Envoi des résultats de calcul","\u003Cp>Lorsqu'un pari est ajouté à notre système et calculé, nous envoyons les résultats du coupon à votre serveur. Ceux-ci peuvent inclure :\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>Les résultats du coupon (calcul complet).\u003C\u002Fli>\n  \u003Cli>Les statuts du coupon (gain, perte, remboursement).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Les requêtes sont envoyées à l'adresse que vous avez spécifiée dans le paramètre \u003Ccode>remote_host\u003C\u002Fcode>. La chaîne \u003Ccode>\u002Fapi\u002Fbet\u002Fresult\u003C\u002Fcode> y est automatiquement ajoutée. Assurez-vous que votre serveur est configuré pour recevoir des données à cet emplacement.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Exemple de l'adresse finale :\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Si vous avez spécifié : \u003Ccode>remote_host = https:\u002F\u002Fmon-site.com\u003C\u002Fcode>, nous enverrons les données à : \u003Ccode>https:\u002F\u002Fmon-site.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}","Exemple de données pour un seul coupon",{"id":103,"title":104,"html":105,"json":106,"jsonTitle":104},"results-multi","Exemple de données pour plusieurs coupons","\u003Ch4>Description des champs\u003C\u002Fh4>\n\u003Ctable>\n  \u003Cthead>\u003Ctr>\u003Cth>Champ\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>\u003Cstrong>remote_host\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>L'adresse de votre serveur vers laquelle les données sont envoyées.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>Id\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Identifiant unique du pari dans notre système. Ignoré dans la plupart des cas.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>BarCode\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Numéro de coupon unique.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>Status\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Statut actuel du coupon. Valeurs possibles : \u003Cstrong>2\u003C\u002Fstrong> — gain, \u003Cstrong>4\u003C\u002Fstrong> — perte.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>ExtStatus\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Statut supplémentaire en cas de remboursement : \u003Cstrong>0\u003C\u002Fstrong> — pas de modifications, \u003Cstrong>1\u003C\u002Fstrong> — un ou plusieurs résultats ont été calculés avec un coefficient modifié.\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>AmountOut\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Montant du gain (si le coupon a gagné).\u003C\u002Ftd>\u003C\u002Ftr>\n    \u003Ctr>\u003Ctd>\u003Cstrong>DateReceive\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>L'heure et la date auxquelles le coupon a été calculé.\u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch4>Comment interpréter Status et ExtStatus\u003C\u002Fh4>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Status = 2 et ExtStatus = 0 :\u003C\u002Fstrong> Le coupon a gagné.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Status = 4 et ExtStatus = 0 :\u003C\u002Fstrong> Le coupon a perdu.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Status = 2 et ExtStatus = 1 :\u003C\u002Fstrong> Remboursement. Le coupon a été calculé avec un coefficient de 1.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Points importants pour l'intégration\u003C\u002Fh4>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Gestion de ExtStatus = 1 :\u003C\u002Fstrong> Cela peut se produire si un match a été annulé ou s'est terminé prématurément. Dans de tels cas, tous les paris sont calculés avec un coefficient de 1.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>Spécifications techniques :\u003C\u002Fstrong> Les requêtes sont envoyées à l'aide de la méthode \u003Cstrong>POST\u003C\u002Fstrong>. Votre serveur doit être prêt à accepter les données JSON à l'adresse \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":108,"items":109},"Autre intégration",[110,113,116],{"label":111,"href":112},"Sports Line docs","\u002Ffr\u002Fdoc-sport-line-api.html",{"label":114,"href":115},"Sports Line API","\u002Ffr\u002Fsport-line-api.html",{"label":117,"href":118},"Match Results API","\u002Ffr\u002Fsport-rezult-api.html",{},"doc-sport-events-api.html","fr\u002Fdoc-sport-events-api","T3i7PngeVJpOjNumnRlEqgLZ9o5K6m6dZjbc5lccPAc"]