{"info":{"_postman_id":"44a7a829-b7bb-4a8f-ad46-8a39d3c8e2c0","name":"接入 SBO Sports FreeBet 的 568Win API 与 Customer Seamless Wallet 变更","description":"<html><head></head><body><h3 id=\"api-系统中的完整-cross-promotion-流程\">API 系统中的完整 Cross Promotion 流程</h3>\n<ol>\n<li>在后台建立 <code>SBO Sports</code> + <code>FreeBet</code> Promotion。</li>\n<li>选择正确的 <code>Issuance Method</code>：<ul>\n<li><code>API 发放</code>：由您的系统决定哪些玩家收到 FreeBet，并调用 568Win FreeBet API 发放。</li>\n<li><code>系统自动发放</code>：568Win 依后台设置的 mission / qualification rules 自动判断并发放 FreeBet。</li>\n</ul>\n</li>\n<li>设置币别、FreeBet 金额、玩家领取上限、总预算、最高派彩、到期规则与使用条件。</li>\n<li>启用 Promotion，并保存后台产生的 <code>PromotionKey</code>。</li>\n<li>如果您的 WL/API 优惠流程会使用 <code>13.5 Cross Promotion Reward</code>，请在该设置中选择此 Cross Promotion reward campaign，并设置 reward count。被选择的 campaign 必须已启用、使用 API 发放、支持相同币别，并且 reward count 需在限制内。</li>\n<li>API 发放时，调用 568Win FreeBet API 发放一张或多张 FreeBet。API 回应成功后，FreeBet 仍可能需要一小段处理时间才可使用，请不要马上视为玩家已可使用。</li>\n<li>玩家在 SBO Sports 使用 FreeBet 下注时，仍使用既有 Customer Seamless Wallet <code>Deduct</code>，<code>Amount = 0</code>，并在 <code>ExtraInfo</code> 带 Promotion Reward 参数。</li>\n<li><code>Settle</code>、<code>Cancel</code>、<code>Rollback</code> 与 <code>GetBetStatus</code> 沿用既有 wallet lifecycle。</li>\n<li>客服与对账可使用 FreeBet ticket 查询、<code>PromotionRewardCode</code>、<code>PromotionEventId</code>、<code>TransferCode</code> 与 <code>TransactionId</code> 追踪。</li>\n</ol>\n<h3 id=\"文件目的\">文件目的</h3>\n<p>此文档供您使用 SBO Sports FreeBet 功能时参考，帮助您了解如何完成后台设置、何时调用 568Win FreeBet API，以及 Customer Seamless Wallet 需要支持哪些 FreeBet 处理规则。</p>\n<p>通过此文档，您可以了解：</p>\n<ol>\n<li>后台每个设置阶段需要完成什么</li>\n<li>API 发放与系统自动发放的差异</li>\n<li>API 发放需要调用的 568Win FreeBet API</li>\n<li>Customer Seamless Wallet 需要支持的 FreeBet request 范例与处理规则</li>\n</ol>\n<h3 id=\"您需要先了解\">您需要先了解</h3>\n<p>SBO Sports FreeBet 有两种发放方式：</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>发放方式</th>\n<th>发放行为</th>\n<th>是否需要调用 568Win FreeBet API</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>API 发放</td>\n<td>您在后台建立 FreeBet Promotion 后，由您的系统通过 API 指定玩家并发放 FreeBet</td>\n<td>需要</td>\n</tr>\n<tr>\n<td>系统自动发放</td>\n<td>您建立玩家可见的 FreeBet mission 后，568Win 会显示玩家进度，并在玩家完成 mission 后自动发放 FreeBet</td>\n<td>不需要</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"customer-seamless-wallet-影响\">Customer Seamless Wallet 影响</h3>\n<p>既有 wallet endpoint path、HTTP method、验证方式、request envelope 与 response envelope 不变。</p>\n<p>您只需要在既有 Sports lifecycle 内识别 FreeBet 注单：</p>\n<ul>\n<li><code>GetBalance</code> 不需要 FreeBet 专用逻辑。</li>\n<li><code>Deduct</code> 必须识别 <code>ExtraInfo</code> 内的 Promotion Reward 参数。</li>\n<li><code>Settle</code>、<code>Cancel</code>、<code>Rollback</code> 沿用既有交易 lifecycle。</li>\n<li><code>GetBetStatus</code> 沿用既有 wallet-side 注单状态。</li>\n<li><code>Bonus</code> 不是 SBO Sports FreeBet 的预设派彩路径。</li>\n</ul>\n<p>SBO Sports FreeBet 下注时，<code>Deduct.Amount = 0</code>，并在 <code>ExtraInfo</code> 内带入：</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"PromotionRewardCode\": \"FB-2Q4W6E8R1T3Y5U7I\",\n  \"PromotionRewardAmount\": 50.0,\n  \"PromotionEventId\": 1001\n}\n</code></pre>\n<p>请不要只靠 <code>Amount = 0</code> 判断 FreeBet，必须同时识别 <code>ExtraInfo</code> 内的 Promotion Reward 参数。</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"39587621","collectionId":"44a7a829-b7bb-4a8f-ad46-8a39d3c8e2c0","publishedId":"2sBXqMGyrb","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-05-06T02:27:01.000Z"},"item":[{"name":"568Win FreeBet API","item":[{"name":"查询可通过 API 发放的 FreeBet 活动","id":"ea6a1fe7-c760-43a9-973c-a11bc50c3a6b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\"\n}"},"url":"https://api.example.com/web-root/restricted/freebet/get-api-issuance-promotions.aspx","description":"<p>取得可通过 API 发放的 SBO Sports FreeBet 活动。</p>\n<p>您先在后台建立 FreeBet 活动后，可由您的系统透过 FreeBet API 指定玩家并发放 FreeBet。请先调用此 API 取得可通过 API 发放的活动清单，并保存您要使用的 <code>promotionKey</code>。后续调用单笔或批量发放 API 时，必须传入同一个 <code>promotionKey</code>。</p>\n<h2 id=\"请求参数\">请求参数</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>必填</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>CompanyKey</code></td>\n<td>string</td>\n<td>是</td>\n<td>568Win 提供给您的公司识别码。</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"回应参数\">回应参数</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>serverId</code></td>\n<td>string</td>\n<td>568Win 处理此请求的服务器识别码。</td>\n</tr>\n<tr>\n<td><code>promotions</code></td>\n<td>array</td>\n<td>可通过 API 发放的 FreeBet 活动清单。请参考下方 Promotion 表格。</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>object</td>\n<td>568Win API 标准错误资讯；<code>id = 0</code> 表示成功。</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"promotion\">Promotion</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>promotionEventId</code></td>\n<td>number</td>\n<td>568Win 活动事件 ID。</td>\n</tr>\n<tr>\n<td><code>promotionName</code></td>\n<td>string</td>\n<td>活动名称。</td>\n</tr>\n<tr>\n<td><code>promotionKey</code></td>\n<td>string</td>\n<td>发放 FreeBet 时必须传入的活动识别值。</td>\n</tr>\n<tr>\n<td><code>currencies</code></td>\n<td>array</td>\n<td>此活动支持的币别。</td>\n</tr>\n<tr>\n<td><code>expiryRule</code></td>\n<td>object</td>\n<td>FreeBet 过期规则。请参考下方 Expiry Rule 表格。</td>\n</tr>\n<tr>\n<td><code>freeBetAmount</code></td>\n<td>number</td>\n<td>FreeBet 金额。</td>\n</tr>\n<tr>\n<td><code>maxPayout</code></td>\n<td>number</td>\n<td>每张 FreeBet 的最高派彩。</td>\n</tr>\n<tr>\n<td><code>displayValue</code></td>\n<td>string</td>\n<td>可直接展示给玩家或营运人员参考的金额/派彩说明。</td>\n</tr>\n<tr>\n<td><code>eventStartTime</code></td>\n<td>string | null</td>\n<td>活动开始时间。</td>\n</tr>\n<tr>\n<td><code>eventEndTime</code></td>\n<td>string | null</td>\n<td>活动结束时间。</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"expiry-rule\">Expiry Rule</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>expirationType</code></td>\n<td>string</td>\n<td>过期规则类型，例如依发放后天数到期或指定时间到期。</td>\n</tr>\n<tr>\n<td><code>expirationDays</code></td>\n<td>number | null</td>\n<td>当规则为发放后天数到期时，表示发放后几天到期。</td>\n</tr>\n<tr>\n<td><code>expirationDateTime</code></td>\n<td>string | null</td>\n<td>当规则为指定时间到期时，表示 FreeBet 到期时间。</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["web-root","restricted","freebet","get-api-issuance-promotions.aspx"],"host":["https://api.example.com"],"query":[],"variable":[]}},"response":[{"id":"cc695e35-e26e-49f5-a208-88e9e00d7957","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\"\n}"},"url":"https://api.example.com/web-root/restricted/freebet/get-api-issuance-promotions.aspx"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"serverId\": \"YY-STG\",\n  \"promotions\": [\n    {\n      \"promotionEventId\": 1001,\n      \"promotionName\": \"Weekly Retention Gift\",\n      \"promotionKey\": \"RETENTION-WEEKLY-301\",\n      \"currencies\": [\n        \"USD\",\n        \"TMP\"\n      ],\n      \"expiryRule\": {\n        \"expirationType\": \"AfterIssued\",\n        \"expirationDays\": 7,\n        \"expirationDateTime\": null\n      },\n      \"freeBetAmount\": 50,\n      \"maxPayout\": 200,\n      \"displayValue\": \"USD 50 FreeBet / Max Payout USD 200\",\n      \"eventStartTime\": \"2026-05-01T00:00:00.000-04:00\",\n      \"eventEndTime\": \"2026-05-31T23:59:59.000-04:00\"\n    }\n  ],\n  \"error\": {\n    \"id\": 0,\n    \"msg\": \"No Error\"\n  }\n}"}],"_postman_id":"ea6a1fe7-c760-43a9-973c-a11bc50c3a6b"},{"name":"通过 API 发放 FreeBet","event":[{"listen":"test","script":{"exec":["try {","  const json = pm.response.json();","  if (json.freeBetCode) pm.collectionVariables.set('FreeBetCode', json.freeBetCode);","  if (json.amount !== undefined) pm.collectionVariables.set('PromotionRewardAmount', String(json.amount));","} catch (e) {}"],"id":"37048d5d-f340-4e76-b533-a4f0e9f5a35a","type":"text/javascript"}}],"id":"f69a7c51-553b-4a92-90e9-9ce4b3e7b508","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"PromotionKey\": \"RETENTION-WEEKLY-301\",\n  \"CurrencyCode\": \"USD\",\n  \"ExternalAssignmentReferenceNo\": \"CRM-20260505-0001\"\n}"},"url":"https://api.example.com/web-root/restricted/freebet/assign-api-issuance.aspx","description":"<p>通过 API 发放一张 SBO Sports FreeBet 给指定玩家。</p>\n<p>此 API 回应成功后，FreeBet 发放仍可能需要一段较短的处理时间，玩家不一定会马上可使用该 FreeBet。您的系统应预留 568Win 完成发放处理的时间，再将该 FreeBet 视为玩家可立即使用。</p>\n<p>同一个 <code>externalAssignmentReferenceNo</code> 应由您的系统保持唯一，方便您后续对账、查找或避免重复发放。</p>\n<h2 id=\"请求参数\">请求参数</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>必填</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>CompanyKey</code></td>\n<td>string</td>\n<td>是</td>\n<td>568Win 提供给您的公司识别码。</td>\n</tr>\n<tr>\n<td><code>Username</code></td>\n<td>string</td>\n<td>是</td>\n<td>接收 FreeBet 的玩家帐号。</td>\n</tr>\n<tr>\n<td><code>PromotionKey</code></td>\n<td>string</td>\n<td>是</td>\n<td>从查询活动 API 取得的 <code>promotionKey</code>。</td>\n</tr>\n<tr>\n<td><code>CurrencyCode</code></td>\n<td>string</td>\n<td>是</td>\n<td>发放币别，必须是该活动支持的币别。</td>\n</tr>\n<tr>\n<td><code>ExternalAssignmentReferenceNo</code></td>\n<td>string</td>\n<td>是</td>\n<td>您系统产生的单笔发放参考编号。</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"回应参数\">回应参数</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>serverId</code></td>\n<td>string</td>\n<td>568Win 处理此请求的服务器识别码。</td>\n</tr>\n<tr>\n<td><code>freeBetCode</code></td>\n<td>string</td>\n<td>568Win 产生的 FreeBet 代码。</td>\n</tr>\n<tr>\n<td><code>promotionKey</code></td>\n<td>string</td>\n<td>本次发放对应的活动识别值。</td>\n</tr>\n<tr>\n<td><code>username</code></td>\n<td>string</td>\n<td>接收 FreeBet 的玩家帐号。</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>FreeBet 当前状态。</td>\n</tr>\n<tr>\n<td><code>currencyCode</code></td>\n<td>string</td>\n<td>FreeBet 币别。</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td>number</td>\n<td>FreeBet 金额。</td>\n</tr>\n<tr>\n<td><code>maxPayoutPerBet</code></td>\n<td>number</td>\n<td>此 FreeBet 的最高派彩。</td>\n</tr>\n<tr>\n<td><code>expiresAt</code></td>\n<td>string | null</td>\n<td>FreeBet 到期时间。</td>\n</tr>\n<tr>\n<td><code>externalAssignmentReferenceNo</code></td>\n<td>string</td>\n<td>您传入的单笔发放参考编号。</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>object</td>\n<td>568Win API 标准错误资讯；<code>id = 0</code> 表示成功。</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["web-root","restricted","freebet","assign-api-issuance.aspx"],"host":["https://api.example.com"],"query":[],"variable":[]}},"response":[{"id":"9ce3abe4-197a-4e14-96dd-b439f3359b80","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"PromotionKey\": \"RETENTION-WEEKLY-301\",\n  \"CurrencyCode\": \"USD\",\n  \"ExternalAssignmentReferenceNo\": \"CRM-20260505-0001\"\n}"},"url":"https://api.example.com/web-root/restricted/freebet/assign-api-issuance.aspx"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"serverId\": \"YY-STG\",\n  \"freeBetCode\": \"FB-2Q4W6E8R1T3Y5U7I\",\n  \"promotionKey\": \"RETENTION-WEEKLY-301\",\n  \"username\": \"player001\",\n  \"status\": \"Active\",\n  \"currencyCode\": \"USD\",\n  \"amount\": 50,\n  \"maxPayoutPerBet\": 200,\n  \"expiresAt\": \"2026-05-12T00:00:00.000-04:00\",\n  \"externalAssignmentReferenceNo\": \"CRM-20260505-0001\",\n  \"error\": {\n    \"id\": 0,\n    \"msg\": \"No Error\"\n  }\n}"}],"_postman_id":"f69a7c51-553b-4a92-90e9-9ce4b3e7b508"},{"name":"批量通过 API 发放 FreeBet","event":[{"listen":"test","script":{"id":"f86134d8-b3c9-4b4e-8d7f-f6ee2e8e7f0c","type":"text/javascript","exec":["try {","  const json = pm.response.json();","  if (Array.isArray(json.assignedTickets) && json.assignedTickets.length > 0 && json.assignedTickets[0].freeBetCode) pm.collectionVariables.set('FreeBetCode', json.assignedTickets[0].freeBetCode);","} catch (e) {}"]}}],"id":"33db7e88-1196-4219-9974-d099536c0168","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"PromotionKey\": \"RETENTION-WEEKLY-301\",\n  \"CurrencyCode\": \"USD\",\n  \"Quantity\": 2,\n  \"BatchExternalReferenceNo\": \"CRM-20260505-BATCH-0001\",\n  \"ItemExternalReferenceNos\": [\n    \"CRM-20260505-BATCH-0001-1\",\n    \"CRM-20260505-BATCH-0001-2\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.example.com/web-root/restricted/freebet/assign-batch.aspx","description":"<p>通过 API 一次发放多张 SBO Sports FreeBet 给同一位玩家。</p>\n<p>此 API 回应成功后，FreeBet 发放仍可能需要一段较短的处理时间，玩家不一定会马上可使用这些 FreeBet。您的系统应预留 568Win 完成发放处理的时间，再将这些 FreeBet 视为玩家可立即使用。</p>\n<p>当您要在同一个业务批次内发放多张 FreeBet 时，请使用此 API。每一张 FreeBet 都必须有独立的 <code>itemExternalReferenceNo</code>，方便您逐张对账或排查。</p>\n<h2 id=\"请求参数\">请求参数</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>必填</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>CompanyKey</code></td>\n<td>string</td>\n<td>是</td>\n<td>568Win 提供给您的公司识别码。</td>\n</tr>\n<tr>\n<td><code>Username</code></td>\n<td>string</td>\n<td>是</td>\n<td>接收 FreeBet 的玩家帐号。</td>\n</tr>\n<tr>\n<td><code>PromotionKey</code></td>\n<td>string</td>\n<td>是</td>\n<td>从查询活动 API 取得的 <code>promotionKey</code>。</td>\n</tr>\n<tr>\n<td><code>CurrencyCode</code></td>\n<td>string</td>\n<td>是</td>\n<td>发放币别，必须是该活动支持的币别。</td>\n</tr>\n<tr>\n<td><code>Quantity</code></td>\n<td>number</td>\n<td>是</td>\n<td>本次要发放的 FreeBet 张数，必须大于 0。</td>\n</tr>\n<tr>\n<td><code>BatchExternalReferenceNo</code></td>\n<td>string</td>\n<td>是</td>\n<td>您系统产生的批次参考编号。</td>\n</tr>\n<tr>\n<td><code>ItemExternalReferenceNos</code></td>\n<td>array</td>\n<td>是</td>\n<td>每张 FreeBet 的参考编号；数量必须等于 <code>Quantity</code>，且不可为空或重复。</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"回应参数\">回应参数</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>serverId</code></td>\n<td>string</td>\n<td>568Win 处理此请求的服务器识别码。</td>\n</tr>\n<tr>\n<td><code>reasonCode</code></td>\n<td>string | null</td>\n<td>批量发放未完全成功时的原因代码；成功时为 <code>null</code>。</td>\n</tr>\n<tr>\n<td><code>reasonMessage</code></td>\n<td>string | null</td>\n<td>批量发放未完全成功时的原因说明；成功时为 <code>null</code>。</td>\n</tr>\n<tr>\n<td><code>batchExternalReferenceNo</code></td>\n<td>string</td>\n<td>您传入的批次参考编号。</td>\n</tr>\n<tr>\n<td><code>promotionKey</code></td>\n<td>string</td>\n<td>本次发放对应的活动识别值。</td>\n</tr>\n<tr>\n<td><code>username</code></td>\n<td>string</td>\n<td>接收 FreeBet 的玩家帐号。</td>\n</tr>\n<tr>\n<td><code>currencyCode</code></td>\n<td>string</td>\n<td>FreeBet 币别。</td>\n</tr>\n<tr>\n<td><code>requestedQuantity</code></td>\n<td>number</td>\n<td>您请求发放的张数。</td>\n</tr>\n<tr>\n<td><code>remainingQuantity</code></td>\n<td>number</td>\n<td>568Win 未成功发放的张数；成功时为 <code>0</code>。</td>\n</tr>\n<tr>\n<td><code>assignedTickets</code></td>\n<td>array</td>\n<td>已成功发放的 FreeBet 清单。请参考下方 Assigned Ticket 表格。</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>object</td>\n<td>568Win API 标准错误资讯；<code>id = 0</code> 表示成功。</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"assigned-ticket\">Assigned Ticket</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>参数</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>itemExternalReferenceNo</code></td>\n<td>string</td>\n<td>您传入的单张 FreeBet 参考编号。</td>\n</tr>\n<tr>\n<td><code>freeBetCode</code></td>\n<td>string</td>\n<td>568Win 产生的 FreeBet 代码。</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["web-root","restricted","freebet","assign-batch.aspx"],"host":["https://api.example.com"],"query":[],"variable":[]}},"response":[{"id":"4ca9bdb2-9e83-4b1c-90b7-950d85a7ecaa","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"PromotionKey\": \"RETENTION-WEEKLY-301\",\n  \"CurrencyCode\": \"USD\",\n  \"Quantity\": 2,\n  \"BatchExternalReferenceNo\": \"CRM-20260505-BATCH-0001\",\n  \"ItemExternalReferenceNos\": [\n    \"CRM-20260505-BATCH-0001-1\",\n    \"CRM-20260505-BATCH-0001-2\"\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.example.com/web-root/restricted/freebet/assign-batch.aspx"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"serverId\": \"YY-STG\",\n  \"reasonCode\": null,\n  \"reasonMessage\": null,\n  \"batchExternalReferenceNo\": \"CRM-20260505-BATCH-0001\",\n  \"promotionKey\": \"RETENTION-WEEKLY-301\",\n  \"username\": \"player001\",\n  \"currencyCode\": \"USD\",\n  \"requestedQuantity\": 2,\n  \"remainingQuantity\": 0,\n  \"assignedTickets\": [\n    {\n      \"itemExternalReferenceNo\": \"CRM-20260505-BATCH-0001-1\",\n      \"freeBetCode\": \"FB-2Q4W6E8R1T3Y5U7I\"\n    },\n    {\n      \"itemExternalReferenceNo\": \"CRM-20260505-BATCH-0001-2\",\n      \"freeBetCode\": \"FB-4A6S8D1F3G5H7J9K\"\n    }\n  ],\n  \"error\": {\n    \"id\": 0,\n    \"msg\": \"No Error\"\n  }\n}"}],"_postman_id":"33db7e88-1196-4219-9974-d099536c0168"}],"id":"0951cf3a-3f3d-4a4d-8779-4c560b51852e","description":"<p>568Win FreeBet API 适用于 SBO Sports FreeBet 的 API 发放。</p>\n<p>API 发放的意思是：您先在后台建立 FreeBet Promotion，之后通过 568Win FreeBet API 向玩家发放 FreeBet。</p>\n<p>API 发放流程：</p>\n<ol>\n<li>在后台建立 Promotion，并选择 Reward Type：FreeBet 与 Issuance Method：API 发放</li>\n<li>设置币别、FreeBet 金额、玩家领取上限、总预算、最高派彩与使用条件</li>\n<li>启用活动，并保存后台产生的 <code>PromotionKey</code></li>\n<li>如果 WL/API 优惠流程会使用 13.5 Cross Promotion Reward，请在该设置中选择此已启用的 Cross Promotion reward campaign，并设置 reward count</li>\n<li>决定哪些玩家应获得 FreeBet 奖励</li>\n<li>调用 568Win FreeBet API 向玩家发放 FreeBet；如需一次发放多张 FreeBet，请使用批量 API</li>\n</ol>\n<p>共通规则：</p>\n<ul>\n<li><p>API 回应成功后，FreeBet 仍可能需要一小段处理时间才可被玩家使用。</p>\n</li>\n<li><p>Request 使用既有 568Win API JSON 格式与 <code>CompanyKey</code> 验证。</p>\n</li>\n<li><p>玩家识别使用既有公开 API 的 <code>Username</code>。</p>\n</li>\n<li><p>568Win 会依 <code>CompanyKey</code> 与 <code>Username</code> 解析平台内部识别值；request 不需要额外传平台内部 ID。</p>\n</li>\n<li><p>若您的环境原本就需要 <code>ServerId</code>，请沿用既有 API 文件规则；这不是 FreeBet 专用字段。</p>\n</li>\n</ul>\n<p>系统自动发放不需要调用此 API；玩家完成后台设置的 mission 后，568Win 会自动发放 FreeBet。</p>\n","_postman_id":"0951cf3a-3f3d-4a4d-8779-4c560b51852e"},{"name":"Customer Seamless Wallet FreeBet 变更示例","item":[{"name":"取得用户余额 - 无 FreeBet 变更","id":"b6705b26-6912-4b8a-859b-a00f76505c5f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"ProductType\": 1,\n  \"GameType\": 1,\n  \"Gpid\": -2\n}"},"url":"https://customer-wallet.example.com/GetBalance","description":"<h3 id=\"freebet-影响\">FreeBet 影响</h3>\n<p><code>GetBalance</code> 不需要 FreeBet 专用逻辑。</p>\n<p>请沿用既有 Customer Seamless Wallet API 文件中的处理方式与 response envelope，不需要在此 endpoint 增加 Promotion 状态或 FreeBet ticket 查询逻辑。</p>\n","urlObject":{"path":["GetBalance"],"host":["https://customer-wallet.example.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"b6705b26-6912-4b8a-859b-a00f76505c5f"},{"name":"扣除投注金额 - FreeBet Amount 0 + ExtraInfo","id":"afd824c9-58a5-4762-bc6e-b94be06549b1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"Amount\": 0,\n  \"TransferCode\": \"3998211\",\n  \"TransactionId\": \"3998211\",\n  \"BetTime\": \"2026-05-05T00:23:25.9143053-04:00\",\n  \"GameRoundId\": null,\n  \"GamePeriodId\": null,\n  \"OrderDetail\": null,\n  \"PlayerIp\": \"1.2.3.4\",\n  \"GameTypeName\": null,\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"ProductType\": 1,\n  \"GameType\": 1,\n  \"NewGameType\": 101,\n  \"GameId\": 1,\n  \"Gpid\": -2,\n  \"ExtraInfo\": {\n    \"sportType\": \"Football\",\n    \"marketType\": \"Over/Under\",\n    \"league\": \"ITALY SERIE A\",\n    \"match\": \"Lecce vs Sampdoria\",\n    \"betOption\": \"Over\",\n    \"kickoffTime\": \"2026-05-05T00:23:25\",\n    \"isHalfWonLose\": false,\n    \"winlostDate\": null,\n    \"PromotionRewardCode\": \"FB-2Q4W6E8R1T3Y5U7I\",\n    \"PromotionRewardAmount\": 50.0,\n    \"PromotionEventId\": 1001\n  },\n  \"SeamlessGameExtraInfo\": {\n    \"FeatureBuyStatus\": 0,\n    \"EndRoundStatus\": 0\n  }\n}"},"url":"https://customer-wallet.example.com/Deduct","description":"<h3 id=\"用途\">用途</h3>\n<p>SBO Sports 在玩家下注时仍会通过 568Win 调用您既有的 <code>Deduct</code> endpoint。</p>\n<p>一般投注与 SBO Sports FreeBet 投注的差异如下：</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>情境</th>\n<th>Amount</th>\n<th>ExtraInfo Promotion Reward 参数</th>\n<th>您的 Customer Seamless Wallet 行为</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>一般 SBO Sports bet</td>\n<td>大于 0</td>\n<td>无</td>\n<td>依既有逻辑扣玩家现金余额</td>\n</tr>\n<tr>\n<td>SBO Sports FreeBet bet</td>\n<td>0</td>\n<td>有</td>\n<td>不扣玩家现金，保存这些参数，并建立 promotion-funded bet</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"freebet-request-parameters\">FreeBet request parameters</h3>\n<p>SBO Sports FreeBet 下注时，<code>ExtraInfo</code> 会多带三个字段：</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>字段</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>PromotionRewardCode</code></td>\n<td>FreeBet ticket / reward 识别码。客服查询与对账可用此值追踪。</td>\n</tr>\n<tr>\n<td><code>PromotionRewardAmount</code></td>\n<td>FreeBet 下注额。SBO Sports 会依此计算派彩，不等于 top-level cash deduction amount。</td>\n</tr>\n<tr>\n<td><code>PromotionEventId</code></td>\n<td>568Win Promotion 活动 ID，用于报表、归因与客服查询。</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"您的-handler-规则\">您的 handler 规则</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>情境</th>\n<th>您应如何处理</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>没有 Promotion Reward 参数</td>\n<td>依既有一般 SBO Sports bet 逻辑处理。</td>\n</tr>\n<tr>\n<td><code>Amount = 0</code> 且三个 Promotion Reward 参数 都有效</td>\n<td>视为 FreeBet 注单，不扣玩家现金，保存这些参数与 <code>TransferCode + TransactionId</code>。</td>\n</tr>\n<tr>\n<td><code>Amount = 0</code> 但没有 Promotion Reward 参数</td>\n<td>不可只靠 amount 推论 FreeBet，请依既有 zero amount validation 处理。</td>\n</tr>\n<tr>\n<td>有 Promotion Reward 参数 但 <code>Amount != 0</code></td>\n<td>视为 contract conflict，应拒绝。</td>\n</tr>\n<tr>\n<td><code>PromotionRewardCode</code> 空白</td>\n<td>应拒绝。</td>\n</tr>\n<tr>\n<td><code>PromotionRewardAmount &lt;= 0</code></td>\n<td>应拒绝。</td>\n</tr>\n<tr>\n<td><code>PromotionEventId &lt;= 0</code></td>\n<td>应拒绝。</td>\n</tr>\n<tr>\n<td>相同 <code>TransferCode + TransactionId</code> 重送且 payload 相同</td>\n<td>回传与第一次相同的幂等结果。</td>\n</tr>\n<tr>\n<td>相同 <code>TransferCode + TransactionId</code> 但 参数、amount、player、product 或 game 不同</td>\n<td>视为重复交易冲突，应拒绝。</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-维持既有格式\">Response 维持既有格式</h3>\n<p>Response envelope 不需要新增 FreeBet 专用字段，仍可沿用既有格式：</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"AccountName\": \"Player01\",\n  \"Balance\": 8262.52,\n  \"ErrorCode\": 0,\n  \"ErrorMessage\": \"No Error\",\n  \"BetAmount\": 0\n}\n</code></pre>\n<p><code>Balance</code> 请回传玩家现金余额；FreeBet stake 不应被当成玩家现金扣款。</p>\n","urlObject":{"path":["Deduct"],"host":["https://customer-wallet.example.com"],"query":[],"variable":[]}},"response":[{"id":"efaa2ffc-429d-411f-90cb-72b8820e3be9","name":"FreeBet Deduct Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"Amount\": 0,\n  \"TransferCode\": \"3998211\",\n  \"TransactionId\": \"3998211\",\n  \"BetTime\": \"2026-05-05T00:23:25.9143053-04:00\",\n  \"GameRoundId\": null,\n  \"GamePeriodId\": null,\n  \"OrderDetail\": null,\n  \"PlayerIp\": \"1.2.3.4\",\n  \"GameTypeName\": null,\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"ProductType\": 1,\n  \"GameType\": 1,\n  \"NewGameType\": 101,\n  \"GameId\": 1,\n  \"Gpid\": -2,\n  \"ExtraInfo\": {\n    \"sportType\": \"Football\",\n    \"marketType\": \"Over/Under\",\n    \"league\": \"ITALY SERIE A\",\n    \"match\": \"Lecce vs Sampdoria\",\n    \"betOption\": \"Over\",\n    \"kickoffTime\": \"2026-05-05T00:23:25\",\n    \"isHalfWonLose\": false,\n    \"winlostDate\": null,\n    \"PromotionRewardCode\": \"FB-2Q4W6E8R1T3Y5U7I\",\n    \"PromotionRewardAmount\": 50.0,\n    \"PromotionEventId\": 1001\n  },\n  \"SeamlessGameExtraInfo\": {\n    \"FeatureBuyStatus\": 0,\n    \"EndRoundStatus\": 0\n  }\n}"},"url":"https://customer-wallet.example.com/Deduct"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"AccountName\": \"Player01\",\n  \"Balance\": 8262.52,\n  \"ErrorCode\": 0,\n  \"ErrorMessage\": \"No Error\",\n  \"BetAmount\": 0\n}"},{"id":"6831323b-ce2c-45af-b9e6-ff4698f1bf8b","name":"FreeBet Deduct Rejected","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"Amount\": 0,\n  \"TransferCode\": \"3998211\",\n  \"TransactionId\": \"3998211\",\n  \"BetTime\": \"2026-05-05T00:23:25.9143053-04:00\",\n  \"GameRoundId\": null,\n  \"GamePeriodId\": null,\n  \"OrderDetail\": null,\n  \"PlayerIp\": \"1.2.3.4\",\n  \"GameTypeName\": null,\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"ProductType\": 1,\n  \"GameType\": 1,\n  \"NewGameType\": 101,\n  \"GameId\": 1,\n  \"Gpid\": -2,\n  \"ExtraInfo\": {\n    \"sportType\": \"Football\",\n    \"marketType\": \"Over/Under\",\n    \"league\": \"ITALY SERIE A\",\n    \"match\": \"Lecce vs Sampdoria\",\n    \"betOption\": \"Over\",\n    \"kickoffTime\": \"2026-05-05T00:23:25\",\n    \"isHalfWonLose\": false,\n    \"winlostDate\": null,\n    \"PromotionRewardCode\": \"FB-2Q4W6E8R1T3Y5U7I\",\n    \"PromotionRewardAmount\": 50.0,\n    \"PromotionEventId\": 1001\n  },\n  \"SeamlessGameExtraInfo\": {\n    \"FeatureBuyStatus\": 0,\n    \"EndRoundStatus\": 0\n  }\n}"},"url":"https://customer-wallet.example.com/Deduct"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"AccountName\": \"Player01\",\n  \"Balance\": 0,\n  \"ErrorCode\": 1,\n  \"ErrorMessage\": \"Invalid FreeBet parameters\",\n  \"BetAmount\": 0\n}"}],"_postman_id":"afd824c9-58a5-4762-bc6e-b94be06549b1"},{"name":"结算投注 - FreeBet 沿用既有 Settle","id":"cfb7b7aa-e8f5-4b58-a8ed-d8bc4acb5c38","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"TransferCode\": \"3998211\",\n  \"WinLoss\": 150.0,\n  \"ResultType\": 0,\n  \"ResultTime\": \"2026-05-05T23:33:49.0404216-04:00\",\n  \"CommissionStake\": 0.0,\n  \"GameResult\": \"\",\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"ProductType\": 1,\n  \"GameType\": 1,\n  \"Gpid\": -2,\n  \"IsCashOut\": false,\n  \"ExtraInfo\": {\n    \"sportType\": \"Football\",\n    \"marketType\": \"Over/Under\",\n    \"league\": \"ITALY SERIE A\",\n    \"match\": \"Lecce vs Sampdoria\",\n    \"betOption\": \"Over\",\n    \"kickoffTime\": \"2026-05-05T00:23:25\",\n    \"isHalfWonLose\": false,\n    \"winlostDate\": \"2026-05-05T00:00:00\"\n  }\n}"},"url":"https://customer-wallet.example.com/Settle","description":"<h3 id=\"freebet-影响\">FreeBet 影响</h3>\n<p><code>Settle</code> 不需要 FreeBet 专用 endpoint 或新的 request 字段。</p>\n<p>您应依 <code>TransferCode</code> 或既有交易识别找到原本的注单：</p>\n<ul>\n<li>若原注单不是 FreeBet，请沿用既有 settle 逻辑。</li>\n<li>若原注单是 FreeBet，请依 SBO Sports 送来的 <code>WinLoss</code> / settlement amount 入账。</li>\n<li>您不需要自行重算 FreeBet payout rule 或 <code>MaxPayoutPerBet</code>。</li>\n<li>请保留原本 <code>Deduct</code> 时保存的 Promotion Reward 参数，供客服查询与对账使用。</li>\n<li>重送相同 settlement payload 时，应回传相同幂等结果。</li>\n<li>若结算后又收到不同 settlement amount 或 outcome，应视为结算冲突，或先走既有 rollback / resettlement 流程。</li>\n</ul>\n<p>Response envelope 维持既有格式，不需要新增 FreeBet 专用字段。</p>\n","urlObject":{"path":["Settle"],"host":["https://customer-wallet.example.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"cfb7b7aa-e8f5-4b58-a8ed-d8bc4acb5c38"},{"name":"回滚 - FreeBet 沿用既有 Rollback","id":"9f07206b-e92c-4811-8f66-b3f6160b27c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"TransferCode\": \"3998211\",\n  \"ProductType\": 1,\n  \"GameType\": 1,\n  \"Gpid\": -2,\n  \"ExtraInfo\": {\n    \"sportType\": \"Football\",\n    \"marketType\": \"Over/Under\",\n    \"league\": \"ITALY SERIE A\",\n    \"match\": \"Lecce vs Sampdoria\",\n    \"betOption\": \"Over\",\n    \"kickoffTime\": \"2026-05-05T00:23:25\",\n    \"isHalfWonLose\": false,\n    \"winlostDate\": null\n  }\n}"},"url":"https://customer-wallet.example.com/Rollback","description":"<h3 id=\"freebet-影响\">FreeBet 影响</h3>\n<p><code>Rollback</code> 不需要 FreeBet 专用 endpoint 或新的 request 字段。</p>\n<p>您应依既有 rollback 流程将 wallet-side 注单状态转回您系统既有状态模型，并保留该交易的 Promotion Reward 参数。</p>\n<p>注意：wallet rollback 不会把 568Win FreeBet ticket 还原为 active；它只依既有 wallet contract 回滚 wallet-side 注单状态。</p>\n<p>重送相同 rollback payload 时，应回传相同幂等结果。</p>\n<p>Response envelope 维持既有格式，不需要新增 FreeBet 专用字段。</p>\n","urlObject":{"path":["Rollback"],"host":["https://customer-wallet.example.com"],"query":[],"variable":[]}},"response":[{"id":"9dff50a1-8207-4f6f-8139-349e170790bb","name":"Rollback Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"TransferCode\": \"3998211\",\n  \"ProductType\": 1,\n  \"GameType\": 1,\n  \"Gpid\": -2,\n  \"ExtraInfo\": {\n    \"sportType\": \"Football\",\n    \"marketType\": \"Over/Under\",\n    \"league\": \"ITALY SERIE A\",\n    \"match\": \"Lecce vs Sampdoria\",\n    \"betOption\": \"Over\",\n    \"kickoffTime\": \"2026-05-05T00:23:25\",\n    \"isHalfWonLose\": false,\n    \"winlostDate\": null\n  }\n}"},"url":"https://customer-wallet.example.com/Rollback"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"AccountName\": \"Player01\",\n  \"Balance\": 8222.52,\n  \"ErrorCode\": 0,\n  \"ErrorMessage\": \"No Error\"\n}"}],"_postman_id":"9f07206b-e92c-4811-8f66-b3f6160b27c8"},{"name":"取消投注 - FreeBet 沿用既有 Cancel","id":"67ae3bbf-5d91-4237-ae21-bc23901fff60","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"TransferCode\": \"3998211\",\n  \"ProductType\": 1,\n  \"GameType\": 1,\n  \"IsCancelAll\": true,\n  \"TransactionId\": \"3998211\",\n  \"Gpid\": -2,\n  \"ExtraInfo\": {\n    \"sportType\": \"Football\",\n    \"marketType\": \"Over/Under\",\n    \"league\": \"ITALY SERIE A\",\n    \"match\": \"Lecce vs Sampdoria\",\n    \"betOption\": \"Over\",\n    \"kickoffTime\": \"2026-05-05T00:23:25\",\n    \"isHalfWonLose\": false,\n    \"winlostDate\": null\n  }\n}"},"url":"https://customer-wallet.example.com/Cancel","description":"<h3 id=\"freebet-影响\">FreeBet 影响</h3>\n<p><code>Cancel</code> 不需要 FreeBet 专用 endpoint 或新的 request 字段。</p>\n<p>您应依既有取消流程将 wallet-side 注单状态转为 void。</p>\n<ul>\n<li>若该注单是 FreeBet，因为 <code>Deduct.Amount = 0</code>，不需要退还玩家现金 stake。</li>\n<li>请保留 Promotion Reward 参数，供客服查询与对账使用。</li>\n<li>重送相同 cancel payload 时，应回传相同幂等结果。</li>\n</ul>\n<p>Response envelope 维持既有格式，不需要新增 FreeBet 专用字段。</p>\n","urlObject":{"path":["Cancel"],"host":["https://customer-wallet.example.com"],"query":[],"variable":[]}},"response":[{"id":"6e8f2c06-6842-40d0-b027-038f6276b9ee","name":"Cancel Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"TransferCode\": \"3998211\",\n  \"ProductType\": 1,\n  \"GameType\": 1,\n  \"IsCancelAll\": true,\n  \"TransactionId\": \"3998211\",\n  \"Gpid\": -2,\n  \"ExtraInfo\": {\n    \"sportType\": \"Football\",\n    \"marketType\": \"Over/Under\",\n    \"league\": \"ITALY SERIE A\",\n    \"match\": \"Lecce vs Sampdoria\",\n    \"betOption\": \"Over\",\n    \"kickoffTime\": \"2026-05-05T00:23:25\",\n    \"isHalfWonLose\": false,\n    \"winlostDate\": null\n  }\n}"},"url":"https://customer-wallet.example.com/Cancel"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"AccountName\": \"Player01\",\n  \"Balance\": 8242.52,\n  \"ErrorCode\": 0,\n  \"ErrorMessage\": \"No Error\"\n}"}],"_postman_id":"67ae3bbf-5d91-4237-ae21-bc23901fff60"},{"name":"取得投注状态 - 无 FreeBet 专用字段","id":"d978ab2b-b797-4d55-958c-fd2169626cb6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json; charset=UTF-8"}],"body":{"mode":"raw","raw":"{\n  \"CompanyKey\": \"{{your_company_key_here}}\",\n  \"Username\": \"player001\",\n  \"TransferCode\": \"3998211\",\n  \"ProductType\": 1,\n  \"GameType\": 1,\n  \"Gpid\": -2\n}"},"url":"https://customer-wallet.example.com/GetBetStatus","description":"<h3 id=\"freebet-影响\">FreeBet 影响</h3>\n<p><code>GetBetStatus</code> 不需要新增 FreeBet 专用字段。</p>\n<p>此 endpoint 查询的是 Customer Seamless Wallet 既有的 wallet-side 注单状态，不是后台 FreeBet Ticket 状态，也不是 FreeBet Ticket Detail 内部字段。</p>\n<p>您可继续回传既有 wallet-side 注单状态，例如：</p>\n<ul>\n<li><code>running</code></li>\n<li><code>settled</code></li>\n<li><code>void</code></li>\n</ul>\n<p>若该注单是 SBO Sports FreeBet 注单，也仍依相同 response envelope 回传既有注单状态。</p>\n","urlObject":{"path":["GetBetStatus"],"host":["https://customer-wallet.example.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d978ab2b-b797-4d55-958c-fd2169626cb6"}],"id":"28e1e5ca-e103-4083-b2ca-34b6302fe8fb","description":"<p>本章节说明 Customer Seamless Wallet 在接入 SBO Sports FreeBet 后需要支持的 request 与处理规则。</p>\n<p>既有 Seamless Wallet endpoint path、HTTP method、CompanyKey 验证、request envelope 与 response envelope 不变。</p>\n<p>您需要确认：</p>\n<ol>\n<li><code>GetBalance</code> 不需要 FreeBet 专用逻辑</li>\n<li><code>Deduct</code> 需要识别 FreeBet 参数</li>\n<li><code>Settle</code>、<code>Cancel</code>、<code>Rollback</code> 沿用既有注单 lifecycle</li>\n<li><code>GetBetStatus</code> 沿用既有 wallet-side 状态</li>\n<li><code>Bonus</code> 不是 SBO Sports FreeBet 的预设派彩路径</li>\n</ol>\n<p>最重要的变更在 <code>Deduct</code>：SBO Sports FreeBet 下注时，568Win 会发送 <code>Amount = 0</code>，且 <code>ExtraInfo</code> 内会出现 Promotion Reward 参数。请将这些参数与 <code>TransferCode + TransactionId</code> 一起保存，供后续结算、回滚、取消、客服查询与对账使用。</p>\n","_postman_id":"28e1e5ca-e103-4083-b2ca-34b6302fe8fb"},{"name":"后台设置说明","item":[{"name":"文件说明 - 完整流程图与阶段说明","id":"2bc366bc-6b49-4574-b23f-dbd85c21970a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://example.invalid/docs-only/freebet-full-flow","description":"<p><strong>仅文件说明。请不要送出此 request；此项目用于说明后台设置，不是 API endpoint。</strong></p>\n<h3 id=\"api-系统中的完整-cross-promotion-流程\">API 系统中的完整 Cross Promotion 流程</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>步骤</th>\n<th>位置</th>\n<th>您需要做什么</th>\n<th>结果</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>后台 Promotion List</td>\n<td>建立 <code>SBO Sports</code> + <code>FreeBet</code> Promotion。</td>\n<td>建立 FreeBet Promotion 草稿。</td>\n</tr>\n<tr>\n<td>2</td>\n<td>Basic Settings / Promotion Event</td>\n<td>设置活动名称、活动时间、Product、Reward Type 与 Issuance Method。</td>\n<td>Promotion 被区分为 API 发放或系统自动发放。</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Budget &amp; Risk Controls</td>\n<td>设置币别、FreeBet 金额、玩家领取上限、总预算与最高派彩。</td>\n<td>568Win 可依设置控制发放预算、玩家领取次数与 payout cap。</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Issuance Conditions</td>\n<td>仅在系统自动发放时设置 mission / qualification rules。</td>\n<td>568Win 可自动判断玩家是否达标。</td>\n</tr>\n<tr>\n<td>5</td>\n<td>Reward Usage Conditions</td>\n<td>设置 ticket 到期时间与可使用的 SBO Sports 条件。</td>\n<td>玩家只能在符合条件的注单使用 FreeBet。</td>\n</tr>\n<tr>\n<td>6</td>\n<td>Review / Activate</td>\n<td>检查并启用 Promotion。</td>\n<td>Promotion 可开始发放与验证 FreeBet ticket；请保存 <code>PromotionKey</code>。</td>\n</tr>\n<tr>\n<td>7</td>\n<td>可选：13.5 Cross Promotion Reward 设置</td>\n<td>当 WL/API 优惠要发放此 FreeBet reward 时，选择 Cross Promotion Reward、选择此 campaign，并设置 reward count。</td>\n<td>WL/API 优惠达标时可发放此 FreeBet reward。</td>\n</tr>\n<tr>\n<td>8</td>\n<td>568Win FreeBet API</td>\n<td>API 发放时，调用单笔或批量发放 API。</td>\n<td>568Win 为指定玩家建立 FreeBet ticket。</td>\n</tr>\n<tr>\n<td>9</td>\n<td>Customer Seamless Wallet</td>\n<td>支持 <code>Deduct.Amount = 0</code> 与 <code>ExtraInfo</code> 内的 Promotion Reward 参数。</td>\n<td>FreeBet 注单沿用既有 wallet lifecycle，不需要新增 endpoint。</td>\n</tr>\n<tr>\n<td>10</td>\n<td>客服 / 对账</td>\n<td>使用 FreeBet ticket 查询与 wallet reference。</td>\n<td>可用 <code>PromotionRewardCode</code>、<code>PromotionEventId</code>、<code>TransferCode</code>、<code>TransactionId</code> 追踪。</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"135-cross-promotion-reward-设置\">13.5 Cross Promotion Reward 设置</h3>\n<p>只有当另一个 WL/API 优惠要在玩家达标后发放此 FreeBet reward 时，才需要使用 13.5 Cross Promotion Reward 设置。</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>设置</th>\n<th>检查重点</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Reward Mode</td>\n<td>选择 Cross Promotion Reward。</td>\n</tr>\n<tr>\n<td>Reward Campaign</td>\n<td>选择已启用的 FreeBet Promotion。</td>\n</tr>\n<tr>\n<td>Reward Count</td>\n<td>设置每次达标要发放的 FreeBet ticket 数量。</td>\n</tr>\n<tr>\n<td>Currency</td>\n<td>必须与所选 FreeBet Promotion 的币别一致。</td>\n</tr>\n<tr>\n<td>PromotionKey</td>\n<td>请保持后台产生的 key 稳定；后台发放会依此对应 FreeBet Promotion。</td>\n</tr>\n</tbody>\n</table>\n</div><p>上线前，请确认所选 FreeBet Promotion 已启用、使用 API 发放、支持相同币别，且 reward count 没有超过玩家领取上限与发放次数限制。</p>\n<h3 id=\"后台五个设置阶段\">后台五个设置阶段</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>阶段</th>\n<th>画面</th>\n<th>您需要完成的事</th>\n<th>检查重点</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>Basic Settings / Promotion Event</td>\n<td>建立活动名称、活动时间、Product、Reward Type、Issuance Method</td>\n<td>确认 FreeBet 使用 API 发放或系统自动发放</td>\n</tr>\n<tr>\n<td>2</td>\n<td>Amount and Risk / General Setting</td>\n<td>设置币别、FreeBet 金额、总预算、玩家领取次数、最高派彩</td>\n<td>金额、币别、budget cap、max payout 是否符合活动规则</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Qualifying Conditions</td>\n<td>仅在系统自动发放时设置玩家 mission 条件</td>\n<td>指标、周期、门槛、SBO Sports 条件是否完整</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Use Conditions</td>\n<td>设置 ticket 到期时间与可使用的 SBO Sportsbook 条件</td>\n<td>ticket 到期时间与可使用的 SBO Sportsbook 条件是否符合活动条款</td>\n</tr>\n<tr>\n<td>5</td>\n<td>Review / Activate</td>\n<td>检查并启用活动</td>\n<td>启用后才会进入发放与使用流程</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sportsbook-conditions\">Sportsbook conditions</h3>\n<p>Use Sports Conditions 用来定义玩家取得 FreeBet 后，可以在哪些 SBO Sportsbook 注单上使用。</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>设置</th>\n<th>对您代表的意思</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Condition group</td>\n<td>一组可使用条件。需要另一套独立规则时，可以新增 group。</td>\n</tr>\n<tr>\n<td>Condition logic</td>\n<td>此 group 与前一个 group 的组合方式，例如 AND。</td>\n</tr>\n<tr>\n<td>Applicable to</td>\n<td>FreeBet 可用于 live、non-live，或两者都可用。</td>\n</tr>\n<tr>\n<td>Sport filter</td>\n<td>Include 或 Exclude 指定 sport。</td>\n</tr>\n<tr>\n<td>League filter</td>\n<td>Include 或 Exclude 指定 league。</td>\n</tr>\n<tr>\n<td>Match filter</td>\n<td>Include 或 Exclude 指定 match。</td>\n</tr>\n<tr>\n<td>Market filter</td>\n<td>Include 或 Exclude 指定 market type。</td>\n</tr>\n<tr>\n<td>Odds condition</td>\n<td>设置最低或最高可用赔率；赔率请使用 Euro odds。</td>\n</tr>\n</tbody>\n</table>\n</div><p>若 sport、league、match 或 market 未指定特定项目，就代表套用到该规则允许的全部项目。</p>\n<h3 id=\"完整流程图\">完整流程图</h3>\n<img src=\"https://content.pstmn.io/50112d05-9399-4558-8939-639e21ef4b37/c2JvLWZyZWViZXQtY3Jvc3MtcHJvbW90aW9uLWZsb3ctemgtQ04ucG5n\" alt width=\"900\" />\n\n<h3 id=\"后台画面参考\">后台画面参考</h3>\n<p>这些图片用于帮助您理解设置位置与流程。实际上线画面可能因版面或文案微调而略有不同。</p>\n<p>Basic Settings / Promotion Event：</p>\n<img src=\"https://content.pstmn.io/88079bf2-423a-4d24-ac69-80d21c3bc603/YmFja29mZmljZS0wMS1iYXNpYy1zZXR0aW5ncy5wbmc=\" width=\"900\" />\n\n<p>Amount and Risk / General Setting：</p>\n<img src=\"https://content.pstmn.io/742f4a6d-8826-4b3c-90a1-8ecb1f3148ef/YmFja29mZmljZS0wMi1hbW91bnQtcmlzay5wbmc=\" width=\"900\" />\n\n<p>Qualifying Conditions：</p>\n<img src=\"https://content.pstmn.io/6d1dee8c-c937-4f23-8809-8c62fb680a41/YmFja29mZmljZS0wMy1xdWFsaWZ5aW5nLWNvbmRpdGlvbnMucG5n\" width=\"900\" />\n\n<h3 id=\"责任边界\">责任边界</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>范围</th>\n<th>您需要负责的事</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>后台设置</td>\n<td>正确建立 Promotion、金额、预算、资格条件、使用条件与活动状态</td>\n</tr>\n<tr>\n<td>13.5 Cross Promotion Reward 设置</td>\n<td>若另一个 WL/API 优惠要发放此 reward，请选择正确的已启用 FreeBet Promotion 与 reward count。</td>\n</tr>\n<tr>\n<td>API 发放</td>\n<td>若使用 API 发放，您需要调用 568Win FreeBet API 指派玩家。</td>\n</tr>\n<tr>\n<td>Customer Seamless Wallet</td>\n<td>支持 <code>Deduct.Amount = 0</code> 与 <code>ExtraInfo</code> Promotion Reward 参数；后续 lifecycle 沿用既有 endpoint</td>\n</tr>\n<tr>\n<td>客服与对账</td>\n<td>使用 <code>PromotionRewardCode</code>、<code>PromotionEventId</code>、<code>TransferCode</code>、<code>TransactionId</code> 查询</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["docs-only","freebet-full-flow"],"host":["example","invalid"],"query":[],"variable":[]}},"response":[],"_postman_id":"2bc366bc-6b49-4574-b23f-dbd85c21970a"},{"name":"文件说明 - 系统自动发放后台设置","id":"1fd54c99-5783-4cdb-b527-af8ac2bf68f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://example.invalid/docs-only/system-auto-issuance-backoffice-setup","description":"<p><strong>仅文件说明。请不要送出此 request；此项目用于说明后台设置，不是 API endpoint。</strong></p>\n<h3 id=\"系统自动发放是什么\">系统自动发放是什么</h3>\n<p>系统自动发放代表您在后台建立玩家可见的 FreeBet mission。568Win 会显示玩家进度，并在玩家完成 mission 后自动发放 FreeBet。</p>\n<p>此发放方式不需要调用 568Win FreeBet 发放 API。</p>\n<h3 id=\"您的设置阶段\">您的设置阶段</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>阶段</th>\n<th>您需要做什么</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Step 1 Basic Settings</td>\n<td>选择系统自动发放，并设置活动名称与活动时间。</td>\n</tr>\n<tr>\n<td>Step 2 Amount and Risk</td>\n<td>设置币别、FreeBet 金额、总预算、玩家领取上限与最高派彩。</td>\n</tr>\n<tr>\n<td>Step 3 Qualifying Conditions</td>\n<td>设置玩家要达成什么投注条件才会自动取得 FreeBet。</td>\n</tr>\n<tr>\n<td>Step 4 Use Conditions</td>\n<td>设置 FreeBet ticket 到期时间与可使用的 SBO Sportsbook 条件。</td>\n</tr>\n<tr>\n<td>Step 5 Review / Activate</td>\n<td>检查设置后启用活动。</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"启用后流程\">启用后流程</h3>\n<ol>\n<li>玩家进行一般 SBO Sports 投注</li>\n<li>568Win 依后台 mission 规则累积玩家进度</li>\n<li>玩家完成 mission 后，568Win 自动产生 FreeBet ticket</li>\n<li>玩家在 SBO Sports 使用 FreeBet 下单</li>\n<li>SBO Sports 通过 568Win 调用您的 Customer Seamless Wallet <code>Deduct</code></li>\n<li><code>Deduct.Amount = 0</code>，<code>ExtraInfo</code> 内带 Promotion Reward 参数</li>\n<li>后续 <code>Settle</code>、<code>Cancel</code>、<code>Rollback</code> 沿用既有 endpoint</li>\n</ol>\n<h3 id=\"检查清单\">检查清单</h3>\n<ul>\n<li>已确认 mission 条件、周期、币别门槛与 SBO Sportsbook 条件</li>\n<li>已确认使用条件与活动条款一致</li>\n<li>已确认 Customer Seamless Wallet 可识别 <code>Deduct.Amount = 0</code> 与 Promotion Reward 参数</li>\n<li>已确认客服可用 <code>FreeBetCode</code> / <code>PromotionRewardCode</code> 查询 ticket</li>\n</ul>\n","urlObject":{"protocol":"https","path":["docs-only","system-auto-issuance-backoffice-setup"],"host":["example","invalid"],"query":[],"variable":[]}},"response":[],"_postman_id":"1fd54c99-5783-4cdb-b527-af8ac2bf68f6"},{"name":"文件说明 - API 发放后台设置","id":"6ce95772-815c-4e64-a506-0efd8d9ccfc3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://example.invalid/docs-only/api-issuance-backoffice-setup","description":"<p><strong>仅文件说明。请不要送出此 request；此项目用于说明后台设置，不是 API endpoint。</strong></p>\n<h3 id=\"api-发放是什么\">API 发放是什么</h3>\n<p>API 发放代表您在后台建立 FreeBet Promotion，之后由您的系统决定哪位玩家收到 FreeBet，并调用 568Win FreeBet API。如果另一个 API 优惠要发放此 reward，请在 FreeBet Promotion 启用后设置 13.5 Cross Promotion。</p>\n<h3 id=\"您的设置阶段\">您的设置阶段</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>阶段</th>\n<th>您需要做什么</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Step 1 Basic Settings</td>\n<td>选择 API 发放，并保存后台提供的 <code>PromotionKey</code>。</td>\n</tr>\n<tr>\n<td>Step 2 Amount and Risk</td>\n<td>设置币别、FreeBet 金额、总预算、玩家领取上限与最高派彩。</td>\n</tr>\n<tr>\n<td>Step 3 Qualifying Conditions</td>\n<td>通常不是主要设置重点，因为发放对象由您的发放系统决定。</td>\n</tr>\n<tr>\n<td>Step 4 Use Conditions</td>\n<td>设置 FreeBet ticket 到期时间与可使用的 SBO Sportsbook 条件。</td>\n</tr>\n<tr>\n<td>Step 5 Review / Activate</td>\n<td>检查设置后启用活动。</td>\n</tr>\n<tr>\n<td>可选：13.5 Cross Promotion Reward</td>\n<td>当 WL/API 优惠要发放此 FreeBet reward 时，选择此 campaign，并设置 reward count。</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"发放流程\">发放流程</h3>\n<ol>\n<li><p>您的系统或关联的 WL/API 优惠流程决定要发给哪位玩家</p>\n</li>\n<li><p>调用「查询可通过 API 发放的 FreeBet 活动」确认 <code>PromotionKey</code></p>\n</li>\n<li><p>调用「通过 API 发放 FreeBet」或「批量通过 API 发放 FreeBet」</p>\n</li>\n<li><p>Response 取得 <code>freeBetCode</code></p>\n</li>\n<li><p>请预留一小段处理时间，再将 FreeBet 视为玩家已可立即使用</p>\n</li>\n<li><p>玩家使用 FreeBet 下单时，您的 Customer Seamless Wallet 会在 <code>Deduct.ExtraInfo.PromotionRewardCode</code> 收到同一个 code</p>\n</li>\n</ol>\n<h3 id=\"使用的-api\">使用的 API</h3>\n<ul>\n<li><p><code>POST /web-root/restricted/freebet/get-api-issuance-promotions.aspx</code></p>\n</li>\n<li><p><code>POST /web-root/restricted/freebet/assign-api-issuance.aspx</code></p>\n</li>\n<li><p><code>POST /web-root/restricted/freebet/assign-batch.aspx</code></p>\n</li>\n</ul>\n<h3 id=\"检查清单\">检查清单</h3>\n<ul>\n<li><p>已确认 FreeBet Promotion 设置为 API 发放</p>\n</li>\n<li><p>已保存 <code>PromotionKey</code></p>\n</li>\n<li><p>若使用 13.5 Cross Promotion Reward，已确认所选 campaign、币别与 reward count 正确</p>\n</li>\n<li><p>已确认 <code>ExternalAssignmentReferenceNo</code>、<code>BatchExternalReferenceNo</code> 与每个 <code>ItemExternalReferenceNo</code> 的产生规则可保持唯一</p>\n</li>\n<li><p>已确认 Customer Seamless Wallet 可识别 <code>Deduct.Amount = 0</code> 与 Promotion Reward 参数</p>\n</li>\n<li><p>已确认客服可用 <code>ExternalAssignmentReferenceNo</code>、<code>FreeBetCode</code>、<code>PromotionRewardCode</code> 查询与对账</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["docs-only","api-issuance-backoffice-setup"],"host":["example","invalid"],"query":[],"variable":[]}},"response":[],"_postman_id":"6ce95772-815c-4e64-a506-0efd8d9ccfc3"}],"id":"e7bd82ca-be35-4ed6-b1dd-642c7d20904c","description":"<p>本章节说明 SBO Sports FreeBet 的后台设置流程，不需要发起 API 请求。</p>\n<p>本章节帮助您：</p>\n<ol>\n<li>在 Postman 内直接理解 568Win API 系统中的完整 Cross Promotion 流程与后台五个设置阶段</li>\n<li>区分 API 发放与系统自动发放的操作差异</li>\n<li>将后台设置、可选的 13.5 Cross Promotion Reward 关联设置、568Win FreeBet API、Customer Seamless Wallet <code>Deduct</code> / <code>Settle</code> / <code>Cancel</code> / <code>Rollback</code> 串成完整流程</li>\n</ol>\n<p>请先阅读「完整流程图与阶段说明」，再依发放方式阅读 API 发放或系统自动发放。</p>\n","_postman_id":"e7bd82ca-be35-4ed6-b1dd-642c7d20904c"}],"variable":[{"key":"568WinApiDomain","value":"https://api.example.com"},{"key":"YourDomain","value":"https://customer-wallet.example.com"},{"key":"CompanyKey","value":"{{your_company_key_here}}"},{"key":"PlayerName","value":"player001"},{"key":"PromotionKey","value":"RETENTION-WEEKLY-301"},{"key":"CurrencyCode","value":"USD"},{"key":"ExternalAssignmentReferenceNo","value":"CRM-20260505-0001"},{"key":"FreeBetCode","value":"FB-2Q4W6E8R1T3Y5U7I"},{"key":"PromotionRewardAmount","value":"50.0"},{"key":"PromotionEventId","value":"1001"},{"key":"TransferCode","value":"3998211"},{"key":"TransactionId","value":"3998211"},{"key":"BatchExternalReferenceNo","value":"CRM-20260505-BATCH-0001","type":"string"},{"key":"ItemExternalReferenceNo1","value":"CRM-20260505-BATCH-0001-1","type":"string"},{"key":"ItemExternalReferenceNo2","value":"CRM-20260505-BATCH-0001-2","type":"string"}]}