#单钱包API参考

本文档描述了单一钱包模式的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"

#回应