{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"44a7a829-b7bb-4a8f-ad46-8a39d3c8e2c0","name":"接入 SBO Sports FreeBet 的 568Win API 与 Customer Seamless Wallet 变更","description":"### API 系统中的完整 Cross Promotion 流程\n\n1. 在后台建立 `SBO Sports` + `FreeBet` Promotion。\n2. 选择正确的 `Issuance Method`：\n   - `API 发放`：由您的系统决定哪些玩家收到 FreeBet，并调用 568Win FreeBet API 发放。\n   - `系统自动发放`：568Win 依后台设置的 mission / qualification rules 自动判断并发放 FreeBet。\n3. 设置币别、FreeBet 金额、玩家领取上限、总预算、最高派彩、到期规则与使用条件。\n4. 启用 Promotion，并保存后台产生的 `PromotionKey`。\n5. 如果您的 WL/API 优惠流程会使用 `13.5 Cross Promotion Reward`，请在该设置中选择此 Cross Promotion reward campaign，并设置 reward count。被选择的 campaign 必须已启用、使用 API 发放、支持相同币别，并且 reward count 需在限制内。\n6. API 发放时，调用 568Win FreeBet API 发放一张或多张 FreeBet。API 回应成功后，FreeBet 仍可能需要一小段处理时间才可使用，请不要马上视为玩家已可使用。\n7. 玩家在 SBO Sports 使用 FreeBet 下注时，仍使用既有 Customer Seamless Wallet `Deduct`，`Amount = 0`，并在 `ExtraInfo` 带 Promotion Reward 参数。\n8. `Settle`、`Cancel`、`Rollback` 与 `GetBetStatus` 沿用既有 wallet lifecycle。\n9. 客服与对账可使用 FreeBet ticket 查询、`PromotionRewardCode`、`PromotionEventId`、`TransferCode` 与 `TransactionId` 追踪。\n\n### 文件目的\n\n此文档供您使用 SBO Sports FreeBet 功能时参考，帮助您了解如何完成后台设置、何时调用 568Win FreeBet API，以及 Customer Seamless Wallet 需要支持哪些 FreeBet 处理规则。\n\n通过此文档，您可以了解：\n\n1. 后台每个设置阶段需要完成什么\n2. API 发放与系统自动发放的差异\n3. API 发放需要调用的 568Win FreeBet API\n4. Customer Seamless Wallet 需要支持的 FreeBet request 范例与处理规则\n\n### 您需要先了解\n\nSBO Sports FreeBet 有两种发放方式：\n\n| 发放方式 | 发放行为 | 是否需要调用 568Win FreeBet API |\n| --- | --- | --- |\n| API 发放 | 您在后台建立 FreeBet Promotion 后，由您的系统通过 API 指定玩家并发放 FreeBet | 需要 |\n| 系统自动发放 | 您建立玩家可见的 FreeBet mission 后，568Win 会显示玩家进度，并在玩家完成 mission 后自动发放 FreeBet | 不需要 |\n\n### Customer Seamless Wallet 影响\n\n既有 wallet endpoint path、HTTP method、验证方式、request envelope 与 response envelope 不变。\n\n您只需要在既有 Sports lifecycle 内识别 FreeBet 注单：\n\n- `GetBalance` 不需要 FreeBet 专用逻辑。\n- `Deduct` 必须识别 `ExtraInfo` 内的 Promotion Reward 参数。\n- `Settle`、`Cancel`、`Rollback` 沿用既有交易 lifecycle。\n- `GetBetStatus` 沿用既有 wallet-side 注单状态。\n- `Bonus` 不是 SBO Sports FreeBet 的预设派彩路径。\n\nSBO Sports FreeBet 下注时，`Deduct.Amount = 0`，并在 `ExtraInfo` 内带入：\n\n```json\n{\n  \"PromotionRewardCode\": \"FB-2Q4W6E8R1T3Y5U7I\",\n  \"PromotionRewardAmount\": 50.0,\n  \"PromotionEventId\": 1001\n}\n```\n\n请不要只靠 `Amount = 0` 判断 FreeBet，必须同时识别 `ExtraInfo` 内的 Promotion Reward 参数。","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"39587621","team":6541681,"collectionId":"44a7a829-b7bb-4a8f-ad46-8a39d3c8e2c0","publishedId":"2sBXqMGyrb","public":true,"publicUrl":"https://documenter-api.postman.tech/view/39587621/2sBXqMGyrb","privateUrl":"https://go.postman.co/documentation/39587621-44a7a829-b7bb-4a8f-ad46-8a39d3c8e2c0","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.11.6","publishDate":"2026-05-06T02:27:01.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/e65ac9c1ddaecab6b4c1dc85f0b34f0258c84e4da334b7f5b0d1e7df13338dc5","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sBXqMGyrb"}