#單錢包API參考

查看完整示例代碼 → 服務端 Demo · 客戶端 Demo

本文檔描述了單一錢包模式的API端點:

有關轉帳錢包模式APIs,請參閱轉帳錢包API文件

版本:1.3.0 商戶回呼基準URL:{{MERCHANT_API_BASE_URL}} PetaX服務基地URL:{{API_BASE_URL}}/api/0857-sw 方案:HTTPS

#端點

#商戶回撥APIs

必填

  1. 取得用戶餘額
  2. 扣除本金
  3. 取消投注
  4. 投注錯誤
  5. 支付

可選

  1. 注單結算通知
  2. 已結算回合

#PetaX 服務 APIs

  1. 通知餘額變動
  2. 查詢交易
  3. 根據 ID 取得交易

#1. 取得使用者餘額

端點GET /balances/{username}/{currency} 摘要:檢索使用者的餘額。
權限:swApi.getBalance 消耗:application/json 產生:application/json 安全:BearerAuth(授權:承載abcde12345) 注意:您必須實現此API 才能處理我們的請求。

#路徑參數

參數 型別 必填 說明 範例/註解
username 字串 是的 使用者的使用者名稱 最小長度:6
currency 字串 是的 貨幣代碼。請參閱支援的貨幣 以了解可用代碼。 "PHP""USDT""KRW"

#請求

CURL 範例

curl -X GET "{{MERCHANT_API_BASE_URL}}/api/0857-sw/sample/balances/testuser/PHP" \
  -H "Authorization: Bearer abcde12345" \
  -H "Accept: application/json"

#回應

#2. 扣除本金

端點POST /bet 摘要:從用戶的餘額中扣除賭注。
權限:swApi.bet 消耗:application/json 產生:application/json 安全:BearerAuth(授權:承載abcde12345) 注意:您必須實現此API 才能處理我們的請求。

#請求

CURL 範例

curl -X POST "{{MERCHANT_API_BASE_URL}}/api/0857-sw/sample/bet" \
  -H "Authorization: Bearer abcde12345" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100.00,
    "betTime": "2025-01-25T00:00:00.000+01:00",
    "ccy": "PHP",
    "gameCategory": "CASINO",
    "gameType": "BCR",
    "ticketId": "ticket-uuid-123",
    "transactionId": "txn-uuid-123",
    "username": "testuser"
  }'

機身參數 (JSON):

領域 類型 必填 描述 範例/註解
amount 數量 是的 從用戶餘額中扣除的投注金額 100.00
betTime 字串 是的 ISO 8601 格式的投注時間 "2025-01-25T00:00:00.000+01:00"
ccy 字串 是的 貨幣代碼。請參閱支援的貨幣 以了解可用代碼。 "PHP""USDT""KRW"
gameCategory 字串 是的 遊戲類別 "CASINO"
gameType 字串 是的 遊戲類型 "BCR"
issueId 字串 沒有 發行/回合 ID(可選) "round-uuid-123"
ticketId 字串 是的 唯一的注單識別碼 "ticket-uuid-123"
transactionId 字串 是的 唯一的交易識別碼 "txn-uuid-123"
username 字串 是的 使用者的使用者名稱 最小長度:6

#回應


#3. 取消投注

端點POST /cancel-bet 摘要:通知用戶的投注已取消。
權限:swApi.cancelBet 消耗:application/json 產生:application/json 安全:BearerAuth(授權:承載abcde12345) 注意:您必須實現此API 才能處理我們的請求。

#請求

CURL 範例

curl -X POST "{{MERCHANT_API_BASE_URL}}/api/0857-sw/sample/cancel-bet" \
  -H "Authorization: Bearer abcde12345" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100.00,
    "ccy": "PHP",
    "gameCategory": "CASINO",
    "gameType": "BCR",
    "ticketId": "ticket-uuid-123",
    "transactionId": "txn-uuid-123",
    "username": "testuser"
  }'

機身參數 (JSON):

領域 類型 必填 描述 範例/註解
amount 數量 是的 投注金額退還至用戶餘額 100.00
ccy 字串 是的 貨幣代碼。請參閱支援的貨幣 以了解可用代碼。 "PHP""USDT""KRW"
gameCategory 字串 是的 遊戲類別 "CASINO"
gameType 字串 是的 遊戲類型 "BCR"
issueId 字串 沒有 發行/回合 ID(可選) "round-uuid-123"
ticketId 字串 是的 唯一的注單識別碼 "ticket-uuid-123"
transactionId 字串 是的 唯一的交易識別碼 "txn-uuid-123"
username 字串 是的 使用者的使用者名稱 最小長度:6

#回應


#4. 錯誤投注

端點POST /error-bet 摘要:通知用戶投注失敗,餘額應退回。
權限:swApi.errorBet 消耗:application/json 產生:application/json 安全:BearerAuth(授權:承載abcde12345) 注意:您必須實現此API 才能處理我們的請求。

#請求

CURL 範例

curl -X POST "{{MERCHANT_API_BASE_URL}}/api/0857-sw/sample/error-bet" \
  -H "Authorization: Bearer abcde12345" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100.00,
    "ccy": "PHP",
    "gameCategory": "CASINO",
    "gameType": "BCR",
    "ticketId": "ticket-uuid-123",
    "transactionId": "txn-uuid-123",
    "username": "testuser"
  }'

機身參數 (JSON):

領域 類型 必填 描述 範例/註解
amount 數量 是的 投注金額退還至用戶餘額 100.00
ccy 字串 是的 貨幣代碼。請參閱支援的貨幣 以了解可用代碼。 "PHP""USDT""KRW"
gameCategory 字串 是的 遊戲類別 "CASINO"
gameType 字串 是的 遊戲類型 "BCR"
issueId 字串 沒有 發行/回合 ID(可選) "round-uuid-123"
ticketId 字串 是的 唯一的注單識別碼 "ticket-uuid-123"
transactionId 字串 是的 唯一的交易識別碼 "txn-uuid-123"
username 字串 是的 使用者的使用者名稱 最小長度:6

#回應


#5. 支付

端點POST /payout 摘要:通知用戶已收到付款。
權限:swApi.payout 消耗:application/json 產生:application/json 安全:BearerAuth(授權:承載abcde12345) 注意:您必須實現此API 才能處理我們的請求。

#請求

CURL 範例

curl -X POST "{{MERCHANT_API_BASE_URL}}/api/0857-sw/sample/payout" \
  -H "Authorization: Bearer abcde12345" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 200.00,
    "ccy": "PHP",
    "gameCategory": "CASINO",
    "gameType": "BCR",
    "payoutTime": "2025-01-25T00:00:00.000+01:00",
    "ticketId": "ticket-uuid-123",
    "transactionId": "txn-uuid-123",
    "username": "testuser"
  }'

機身參數 (JSON):

領域 類型 必填 描述 範例/註解
amount 數量 是的 付款金額存入用戶餘額 200.00
ccy 字串 是的 貨幣代碼。請參閱支援的貨幣 以了解可用代碼。 "PHP""USDT""KRW"
gameCategory 字串 是的 遊戲類別 "CASINO"
gameType 字串 是的 遊戲類型 "BCR"
issueId 字串 沒有 發行/回合 ID(可選) "round-uuid-123"
payoutTime 字串 是的 ISO 8601 格式的付款時間 "2025-01-25T00:00:00.000+01:00"
ticketId 字串 是的 唯一的注單識別碼 "ticket-uuid-123"
transactionId 字串 是的 唯一的交易識別碼 "txn-uuid-123"
username 字串 是的 使用者的使用者名稱 最小長度:6

#回應


#6. 注單結算通知

端點POST /settled-ticket 摘要:當注單已結算(贏得或遺失)時,收到有關注單資訊的通知。這只是通知API - 不要用它來處理付款(請改用付款API)。
權限:swApi.bet 消耗:application/json 產生:application/json 安全:BearerAuth(授權:承載abcde12345) 可用性:可選商戶回呼API。
注意:您必須實現此API 才能處理我們的請求。商戶必須回覆 HTTP 狀態 200,以防止 PetaX 重新發送請求。 重要提示:此API 僅用於通知目的(告知注單贏/輸狀態)。請勿使用此API 處理支出 - 請使用支出API 處理獎金。

#請求

CURL 範例

curl -X POST "{{MERCHANT_API_BASE_URL}}/api/0857-sw/sample/settled-ticket" \
  -H "Authorization: Bearer abcde12345" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "betItems": "[{\"betType\":\"LIVE_BCR_PLAYER\",\"betAmt\":100000,\"payoutAmt\":200000,\"wonAmt\":100000}]",
    "betTime": 1702656000000,
    "ccy": "PHP",
    "createdAt": 1702656000000,
    "gameCategory": "CASINO",
    "gameType": "BCR",
    "roundId": "BCR_MB553-250908-1550",
    "status": "WON",
    "tableId": "BCR_MB553",
    "ticketId": "550e8400-e29b-41d4-a716-446655440000",
    "totalBet": 100000.00,
    "totalPayout": 200000.00,
    "updatedAt": 1702656300000,
    "userId": "66c93b85205a1e146ed79b9b",
    "username": "player001"
  }'

機身參數 (JSON):

領域 類型 必填 說明 範例/註解
betItems 字串 是的 投注詳情為 JSON 字串。有關BCR 投注類型值,請參閱投注類型 "[{\"betType\":\"LIVE_BCR_PLAYER\",...}]"
betTime 數量 是的 投注時間(時間戳以毫秒為單位) 1702656000000
ccy 字串 是的 貨幣代碼 "PHP""USDT""KRW"
createdAt 數量 是的 創建時間(時間戳以毫秒為單位) 1702656000000
gameCategory 字串 是的 遊戲類別 "CASINO"
gameType 字串 是的 遊戲類型 "BCR"
roundId 字串 是的 圓形 ID "BCR_MB553-250908-1550"
status 字串 是的 注單狀態。請參閱投注/注單狀態 "WON""LOST"
tableId 字串 是的 表格 ID "BCR_MB553"
ticketId 字串 是的 唯一的注單識別碼 "550e8400-e29b-41d4-a716-446655440000"
totalBet 數量 是的 總投注金額(小數) 100000.00
totalPayout 數量 是的 支付總額(十進位) 200000.00
updatedAt 數量 是的 更新時間(時間戳以毫秒為單位) 1702656300000
userId 字串 是的 使用者名稱 "66c93b85205a1e146ed79b9b"
username 字串 是的 使用者的使用者名稱 最小長度:6
範例
{
  "userId": "66c93b85205a1e146ed79b9b",
  "username": "player001",
  "ticketId": "550e8400-e29b-41d4-a716-446655440000",
  "gameCategory": "CASINO",
  "gameType": "BCR",
  "tableId": "BCR_MB553",
  "roundId": "BCR_MB553-250908-1550",
  "ccy": "PHP",
  "status": "WON",
  "betTime": 1702656000000,
  "betItems": "[{\"betType\":\"LIVE_BCR_PLAYER\",\"betAmt\":100000,\"payoutAmt\":200000,\"wonAmt\":100000}]",
  "totalBet": 100000.00,
  "totalPayout": 200000.00,
  "createdAt": 1702656000000,
  "updatedAt": 1702656300000
}

#回應


#7. 結算回合

端點POST /settled-round 摘要:用於接收回合結算資訊。
權限:swApi.bet 消耗:application/json 產生:application/json 安全:BearerAuth(授權:承載abcde12345) 可用性:可選商戶回呼API。
注意:您使用這個API來接收我們發送的回合結算訊息。您必須實施此API才能接收回合結算資訊。

#請求

CURL 範例

curl -X POST "{{MERCHANT_API_BASE_URL}}/api/0857-sw/sample/settled-round" \
  -H "Authorization: Bearer abcde12345" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "closeAt": 1702656300000,
    "gameCategory": "CASINO",
    "gameType": "BCR",
    "openAt": 1702656000000,
    "result": "33,37-29,29",
    "roundId": "BCR_MB553-250908-1550",
    "tableId": "BCR_MB553"
  }'

機身參數 (JSON):

領域 類型 必填 說明 範例/註解
closeAt 數量 是的 回合關閉時間(時間戳以毫秒為單位) 1702656300000
gameCategory 字串 是的 遊戲類別 "CASINO"
gameType 字串 是的 遊戲類型 "BCR"
openAt 數量 是的 回合開放時間(時間戳以毫秒為單位) 1702656000000
result 字串 是的 回合結果。 BCR結果編碼請參閱百家樂結果格式 "33,37-29,29"(百家樂牌指數)
roundId 字串 是的 圓形 ID "BCR_MB553-250908-1550"
tableId 字串 是的 表格 ID "BCR_MB553"

#回應


#8. 通知餘額變化

端點POST /a/sw/wallets/notify-change-balance 摘要:當用戶的餘額發生變化時通知應用程式。
權限:swApi.notifyBalance 消耗:application/json 產生:application/json 安全:BearerAuth(授權:承載abcde12345) 注意:這是PetaX 服務API。您(商戶)呼叫此API來通知PetaX用戶的單一錢包餘額已更改。

#請求

CURL 範例

curl -X POST "{{API_BASE_URL}}/api/0857-sw/a/sw/wallets/notify-change-balance" \
  -H "Authorization: Bearer abcde12345" \
  -H "Content-Type: application/json" \
  -d '{
    "balance": 900.00,
    "ccy": "PHP",
    "username": "testuser"
  }'

機身參數 (JSON):

領域 類型 必填 描述 範例/註解
balance 數量 是的 變更後當前使用者餘額 900.00,最小值:0
ccy 字串 是的 貨幣代碼。請參閱支援的貨幣 以了解可用代碼。 "PHP""USDT""KRW"
username 字串 是的 使用者的使用者名稱 最小長度:6

#回應


#9. 尋找交易

端點GET /a/sw/transactions 摘要:查找交易。
權限:swApi.transactions.list 消耗:application/json 產生:application/json 安全:BearerAuth(授權:承載abcde12345) 注意:這是PetaX 服務API。您(商戶)呼叫此API以尋找PetaX的單一錢包系統中的交易。單錢包交易僅包含betpayout交易類型;單一錢包模式下沒有depositwithdraw 交易。

#查詢參數

參數 型別 必填 說明 範例/註解
createdAtGte 字串 沒有 建立日期的開始日期,ISO 日期時間 "2025-01-25T00:00:00.000+01:00"
createdAtLt 字串 沒有 建立日期的結束日期,ISO 日期時間 "2025-01-26T00:00:00.000+01:00"
id 字串 沒有 您要尋找的交易ID(最小長度:24) "66c93b85205a1e146ed79b9b"
refId 字串 沒有 交易參考 ID(最小長度:1)。請參閱交易參考 ID "bet.ticket-uuid-123""payout.ticket-uuid-123"
page 整數 沒有 頁數,預設為1 1
size 整數 沒有 頁大小,預設為10 10

#請求

CURL 範例

# Find transactions with pagination and date filter
curl -X GET "{{API_BASE_URL}}/api/0857-sw/a/sw/transactions?page=1&size=10&createdAtGte=2025-01-25T00:00:00.000+01:00" \
  -H "Authorization: Bearer abcde12345" \
  -H "Accept: application/json"

# Find bet transaction by ticketId
curl -X GET "{{API_BASE_URL}}/api/0857-sw/a/sw/transactions?refId=bet.ticket-uuid-123" \
  -H "Authorization: Bearer abcde12345" \
  -H "Accept: application/json"

# Find payout transaction by ticketId
curl -X GET "{{API_BASE_URL}}/api/0857-sw/a/sw/transactions?refId=payout.ticket-uuid-123" \
  -H "Authorization: Bearer abcde12345" \
  -H "Accept: application/json"

#回應


#10. 透過 ID 取得交易

端點GET /a/sw/transactions/{id} 總結:透過ID取得一筆交易。
權限:swApi.transactions.get 消耗:application/json 產生:application/json 安全:BearerAuth(授權:承載abcde12345) 注意:這是PetaX 服務API。您(商戶)呼叫此API以從PetaX的單一錢包系統取得特定交易。

#路徑參數

參數 型別 必填 說明 範例/註解
id 字串 是的 交易ID "66c93b85205a1e146ed79b9b"

#請求

CURL 範例

curl -X GET "{{API_BASE_URL}}/api/0857-sw/a/sw/transactions/66c93b85205a1e146ed79b9b" \
  -H "Authorization: Bearer abcde12345" \
  -H "Accept: application/json"

#回應