V2. Seamless Wallet Guideline_EN

You complete the API integration for us to connect.

Contents


How to go live

1. Please confirm the game type and wallet type you want to integrate, fill in the "Intergration Terms" form then send it back via Skype group.
2. Before you integrate API interface of seamless wallet, we will provide you api/backoffice domain, including back-office account and password of staging environment.
3. Please provide the following information and notify us for API verification, once you complete the 『Seamless Wallet Transaction API Implementation
※When you have implemented all API interface, please inform us to test the API first. After the test is passed, then you can test our games by yourself, so as to avoid errors in the process.

​​agent account:
​​Wurl (wallet endpoint):
​​Wtoken:
​​test player account:

4. When the API verification is passed, the next step will be verified by our QA team (2-5 working days). After passing, we will provide a production environment application form.
※After receiving our notification that the API test is completed, you can start the game test via "Player Get Game Link" - please refer to 『GameBoy documentation』
5. During the game, our system will call the wallet API. ( Please refer to the flowchart )
※The Wurl and Wtoken of each agent can be set via our back-office, and our system will call the wallet API with the back-office settings
6. When the player leave our game, please use GameBoy - Player Logout.
7. When you receive the production environment information (API/Backoffice URL, backoffice account) and also deploy on your side, then you can go online.
8. If your account is abnormal due to "idempotency" of the Restful rule, we are not responsible for your accounting abnormalities.

Flow-Chart

CheckPlayer & Balance

Slot/Arcade

Bet & Endround

Table/Fish/Arcade/Live

Rollout & Rollin
To transfer the player 『a part of』 balance to our game, and transfer it back to the player's wallet after settlement

Table/Fish/Arcade/Live

Takeall & Rollin
To transfer the player 『all』 balance to our game, and transfer it back to the player's wallet after settlement

Sports/Lotto

Batch Bets & Wins & Refunds & Cancel


a. The sameBatch bets mtcodecan repeat Refunds/Cancel
b. If this Bet Mtcode already be Cancel, it can send Wins to settle

Resend Mechanism Flow

Resend the settlement per hour

  1. When Game Server occurs timeout on first settlement, resulting in Game Server does not receive the response (process a), then will resend same mtcode until Game Server receive correct response then settle it (process b)
  2. When the wallet is successful, but Game server does not recieve the response (proccess b - timeout), then Game Server will resend the settlement again. If the wallet is successful, please reutrn the balance of the first success, then Game Server will settle this order (process c)

Refund Mechanism Flow

Resend the refund per hour


Seamless Wallet Idempotency Transaction API Implementation

API Implementation Key Points

1. We call your API with your "wtoken" in header to verify that this request is called from our side. You can edit wtoken/wurl via our backoffice.
2. For currency parameter of all API responses, please return it according to the currency used by the agent. e.g. Agent's currency use CNY, then currency parameter should also be CNY.
3. mtcode and roundid is a self-generated unique code (should not include special characters), please confirm it's uniqueness.
4. Date Time format is RFC3339, e.g. 2002-10-02T10:00:00.123456789-04:00(Please support at least until the 9th digit milliseconds)
5. When API is called, please make sure to record the amount before and after transaction(Amount must support 12+4 decimal points)
eg:Max value :999999999999.9999
6. Content-Type of all API responses should be application/json
7. When the API call method is GET, the use of variables behind the URL means the same as bringing in the player’s name directly.
Example: if you want to get the player’s “ABC” balance:
/transaction/balance/:account and /transaction/balance/ABC is same way.
8. If your account is abnormal due to "idempotency" of the Restful rule, we are not responsible for your accounting abnormalities.

Idempotency-Description

If the request is the same as the previous mtcode, please return the balance of the last successful mtcode, and there is no need to increase or decrease the player's balance

Idempotency Flow Chart

  1. A timeout occurs when Game Server sends mtcode 1 (process a), resulting in Game Server not receiving a response from balance 1, Game Server will resend mtcode 1, if the wallet DB is successful then reuturn balance 1 (process c)
  2. When mtcode 1 occurs timeout, the wallet receives the request of mtcode 2 and the balance changes to balance 2 (process b), then receives the request of mtcode 1 again. If the wallet DB is successful, it will return balance 1 (process c)

Wallet API calculation report profit and loss formula:

It is suggested to use Gameboy - "Order Inquiry" to obtain settled rounds by our server for calculation

Player Profit / Loss (From player perspective):

【Slot】 / 【Fish】 / 【Arcade】 / 【Sports/Lotto】:

Endround amount - Bet amount = profit
Rollin win - Rollin bet = profit
Wins amount - Batch Bets amount = profit

【Table】 / 【Live】:

Rollin win - Rollin rake - Rollin roomfee = profit


Agent Profit / Loss (From agent perspective):

【Slot】 / 【Fish】 / 【Arcade】 / 【Sports】:

Bet amount - Endround amount = profit
Rollin bet - Rollin win = profit
Batch Bets amount - Wins amount = profit

【Table】 / 【Live】:

Rollin rake - Rollin win + Rollin roomfee = profit

CheckPlayer

To check if this player account exists in your system

Request

URL: /player/check/:account

Method: GET

Headers :
Wtoken: provided from your side for verification use

Path Variables

Parameter Type Require Description
account string
Required player account
※36 chars at most

Sample Request

curl --location --request GET '{Wurl}/player/check/Testplayer' \ --header 'wtoken: {Wtoken}'

Response Format

Parameter Type Description
data bool is it your account exists in your system. true=Yes, false=No

Sample Response

If player account exists in your system

{ "data":true, "status": { "code": "0", "message": "Success", "datetime": "2017-01-20T01:14:48-04:00" } }

If player account not exists in your system

{ "data":false, "status": { "code": "0", "message": "Success", "datetime": "2017-01-20T01:14:48-04:00" } }

Balance

To check balance from player's wallet

Request

URL: /transaction/balance/:account

Method: GET

Headers :
Wtoken: provided from your side for verification use

Path Variables

Parameter Type Require Description
account string Required player account
※36 chars at most

Query Params

Parameter Type Require Description
gamecode string Optional code for each game
※36 chars at most

Sample Request

curl --location --request GET '{Wurl}/transaction/balance/Testplayer?gamecode={gamecode}' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Wtoken: {Wtoken}'

Response Format

Parameter Type Description
balance number balance
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent.
e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600270, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-20T01:14:48.9266001-04:00" } }

Bet

Probability games bet api (Win settlement use Endround api)

Gametype : 【Slot】 / 【Arcade】

Request

URL: /transaction/game/bet

Method: POST

Headers :
Content-Type:application/x-www-form-urlencoded
Wtoken: provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※36 chars at most
eventTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00
※35 chars at most
gamehall string Required game provider
※36 chars at most
gamecode string Required code for each game
※36 chars at most
roundid string Required game round ID(bet/endround will use same roundid)
※50 chars at most
※roundid is a unique value
amount number Required the amount actually deducted from the player's wallet
※16 digits with 4 decimal places at most
※amount must not be negative, if so, please return error code "1003"
mtcode string Required mixed code
※mtcode is unique
※70 chars at most
session string Optional SessionID
※You can define it by yourself,please refer to Seamless Wallet GameBoy document
Player Get Game Lobby Link
Player Get Game Link
platform string Optional gaming platform:web or mobile

Sample Request

curl --location --request POST '{Wurl}/transaction/game/bet' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'wtoken: {Wtoken}' \ --data-urlencode 'account={account}' \ --data-urlencode 'eventTime={eventTime}' \ --data-urlencode 'gamehall={gamehall}' \ --data-urlencode 'gamecode={gamecode}' \ --data-urlencode 'roundid={roundid}' \ --data-urlencode 'amount={amount}' \ --data-urlencode 'mtcode={mtcode}' \ --data-urlencode 'session={session}' \ --data-urlencode 'platform={platform}' \

Response Format

Parameter Type Description
balance number the balance after the action is executed
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent.
e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600210, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-19T22:56:30.0151001-05:00" } }

Idempotency Example: When game server send the same "Bet" mtcode, there is no need to deduct amount again

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 90
Completed transaction (same mtcode already exists in DB) 10 100 100

EndRound

The win settlement for probability games. End game round and integrate all win events together in this round
If this round is lost,endround will send amount = 0

Gametype : 【Slot】 / 【Arcade】

Request

URL: /transaction/game/endround

Method: POST

Headers :
Content-Type:application/x-www-form-urlencoded
Wtoken: provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※36 chars at most
gamehall string Required game provider
※36 chars at most
gamecode string Required code for each game
※36 chars at most
roundid string Required game round ID(bet/endround will use same roundid)
※50 chars at most
※roundid is a unique value
data text array
Required eventlist is wrapped as JSON not limited, but each win has 158 chars at most
mtcode : mixed code
※mtcode is a unique value
amount : the amount actually given to the player's wallet
※amount cannot be negative
eventtime : time when event is created, format RFC3339
validbet : validbet amount
※the validbet bet of slot/arcad/fish is 0, please use bet value as validbet
createTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00 . This field equal to order createtime.
※35 chars at most
freegame number Optional free game frequency
bonus number Optional bonus game frequency
luckydraw number Optional luckydraw game frequency
jackpot number Optional jackpot amount
jackpotcontribution number array Optional contribution to jackpot
freeticket bool Optional whether it is a free ticket payoff.
true=yes, false=no

Sample Request :

※Endround interface can send multiple win and mtcode

curl --location --globoff '{{Wurl}}/transaction/game/endround' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'wtoken: {{Wtoken}}' \ --data-urlencode 'account={{account}}' \ --data-urlencode 'gamehall={{gamehall}}' \ --data-urlencode 'gamecode={{gamecode}}' \ --data-urlencode 'roundid={{roundid}}' \ --data-urlencode 'data=[{"mtcode":"{{win1}}", "amount":20,"eventtime":"{{datetime}}","validbet":0},{"mtcode":"{{win2}}", "amount":10,"eventtime":"{{datetime}}","validbet":0}]' \ --data-urlencode 'createTime={{currentDate}}' \ --data-urlencode 'freegame=5' \ --data-urlencode 'luckydraw=2' \ --data-urlencode 'bonus=1' \ --data-urlencode 'jackpot=1000' \ --data-urlencode 'jackpotcontribution=0.086080' \ --data-urlencode 'jackpotcontribution=0.031680' \ --data-urlencode 'jackpotcontribution=0.007360' \ --data-urlencode 'jackpotcontribution=0.002560' \ --data-urlencode 'freeticket=true'

Response Format

Parameter Type Description
balance number the balance after the action is executed
※support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600270, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-19T22:15:21.6076001-05:00" } }

- Idempotency Example: When game server send the same "Endround" mtcode, no need to increase amount again.
- Resend Mechanism Flow.

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 110
Completed transaction (same mtcode already exists in DB) 10 100 100

Rollout

To transfer the player 『a part of』 balance to the game
(The settlement which transfer it back to the player's wallet is using rollin API)

gametype : 【Table】 / 【Arcade】 / 【Fish】 / 【Live】

Request

URL: /transaction/game/rollout

Method: POST

Headers :
Content-Type:application/x-www-form-urlencoded
Wtoken: provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※36 chars at most
eventTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00
※35 chars at most
gamehall string Required game provider
※36 chars at most
gamecode string Required code for each game
※36 chars at most
roundid string Required game round ID
(rollout/rollin will use same roundid)
※50 chars at most
※roundid is a unique value
amount number Required the amount actually deducted from the player's wallet
※amount must not be negative
※16 digits with 4 decimal places at most
mtcode string Required mixed code
※mtcode is unique
※70 chars at most
session string Optional SessionID
※You can define it by yourself,please refer to Seamless Wallet GameBoy document
Player Get Game Lobby Link
Player Get Game Link

Sample Request

curl --location --request POST '{wUrl}/transaction/game/rollout' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'wtoken: {wToken}' \ --data-urlencode 'account={account}' \ --data-urlencode 'eventTime={eventTime}' \ --data-urlencode 'gamehall={gamehall}' \ --data-urlencode 'gamecode={gamecode}' \ --data-urlencode 'roundid={roundid}' \ --data-urlencode 'amount={amount}' \ --data-urlencode 'mtcode={mtcode}' \ --data-urlencode 'session={session}'

Response Format

Parameter Type Description
balance number the balance after the action is executed
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600210, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-19T22:56:30.0151001-05:00" } }

Idempotency Example: When game server send the same "Rollout" mtcode, there is no need to decrease amount again.`

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 90
Completed transaction (same mtcode already exists in DB) 10 100 100

TakeAll

To transfer the player『all』 balance to the game.
(The settlement which transfer it back to the player's wallet is using rollin API)

gametype : 【Table】 / 【Arcade】 / 【Fish】

Request

URL: /transaction/game/takeall

Method: POST

Headers :
Content-Type:application/x-www-form-urlencoded
Wtoken: provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※36 chars at most
eventTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00
※35 chars at most
gamehall string Required game provider
※36 chars at most
gamecode string Required code for each game
※36 chars at most
roundid string Required game round ID(takeall/rollin will use same roundid)
※50 chars at most
※roundid is a unique value
mtcode string Required mixed code
※mtcode is unique
※70 chars at most
session string Optional SessionID
※You can define it by yourself,please refer to Seamless Wallet GameBoy document
Player Get Game Lobby Link
Player Get Game Link

Sample Request

curl --location --request POST '{wurl}/transaction/game/takeall' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'wtoken: {wtoken}' \ --data-urlencode 'account={account}' \ --data-urlencode 'eventTime={eventTime}' \ --data-urlencode 'gamehall={gamehall}' \ --data-urlencode 'gamecode={gamecode}' \ --data-urlencode 'roundid={roundid}' \ --data-urlencode 'mtcode={mtcode}' \ --data-urlencode 'session={session}'

Response Format

Parameter Type Description
amount number amount (the balance before takeall)
※need support 12+4 (4th decimal place)
balance number balance is 0 after the action is executed
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "amount": 600210, "balance": 0, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-19T22:56:30.0151001-05:00" } }

Idempotency Example: When game server send the same "Takeall" mtcode, there is no need to decrease amount again.

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 0
Completed transaction (same mtcode already exists in DB) 10 100 100

Rollin

After the round is completed, the amount will be transferred back to the player's wallet via this API.

gametype : 【Table】 / 【Arcade】 / 【Fish】 / 【Live】

※ 【Arcade】 / 【Fish】 : Rollin amount = Rollout amount - bet + win
※ 【Table】 / 【Live】 : Rollin amount = Rollout amount + win - rake - roomfree

Request

URL: /transaction/game/rollin

Method: POST

Headers :
Content-Type:application/x-www-form-urlencoded
Wtoken: provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※36 chars at most
eventTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00
※35 chars at most
gamehall string Required game provider
※36 chars at most
gamecode string Required code for each game
※36 chars at most
roundid string Required game round ID(the same roundid is used for [rollout/takeall] and rollin in a round)
※50 chars at most
※roundid is a unique value
validbet number Required The bets which are valid
※the validbet of slot/arcade/fish is 0, please use "bet" value as valibet
※for table or live games

※16 digits with 4 decimal places at most
bet number Required bet amount
※Because of table/live game, 0 bet amount is plausible
※16 digits with 4 decimal places at most
win number Required win amount
※Because of table/live game, negative win amount must be accepted
※16 digits with 4 decimal places at most
roomfee float64 Optional create room fee
※Because of table game
※16 digits with 4 decimal places at most
amount number Required the amount actually given to the player's wallet
※amount must not be negative, if so, please return error code "1003"
※16 digits with 4 decimal places at most
mtcode string Required mixed code
※mtcode is unique
※70 chars at most
createTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00 . This field equal to order createtime.
※35 chars at most
rake number Required rake amount
※This is for table games only
※16 digits with 4 decimal places at most
gametype string Required [ fish / table / arcade / live ]
※36 chars at most
tableid string Optional table id
Order description of live dealer
※This is for live dealer games only

Sample Request

curl --location -g --request POST '{{wurl}}/transaction/game/rollin' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'wtoken: {{wtoken}}' \ --data-urlencode 'account={{account}}' \ --data-urlencode 'eventTime=' \ --data-urlencode 'gamehall={{gamehall}}' \ --data-urlencode 'gamecode={{takeall_gamecode}}' \ --data-urlencode 'roundid={{takeall_round}}' \ --data-urlencode 'validbet=10' \ --data-urlencode 'bet=10' \ --data-urlencode 'win=1010.3333' \ --data-urlencode 'roomfee=0' \ --data-urlencode 'amount=1000.3333' \ --data-urlencode 'mtcode={{rollin_mtcode}}' \ --data-urlencode 'createTime=' \ --data-urlencode 'rake=10' \ --data-urlencode 'gametype=fish' --data-urlencode 'tableid=1'

Response Format

Parameter Type Description
balance number the balance after the action is executed
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600210, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-19T22:56:30.0151001-05:00" } }

- Idempotency Example : When game server send the same rollin mtcode,there is no need to increase amount again.
- Resend Mechanism Flow.

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 110
Completed transaction (same mtcode already exists in DB) 10 100 100

Debit

To decrease amount for "settled" orders. For example, game logic bugs to be adjusted win ammount

Request

URL: /transaction/game/debit

Method: POST

Headers :
Content-Type:application/x-www-form-urlencoded
Wtoken: provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※36 chars at most
eventTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00
※35 chars at most
gamehall string Required game provider
※36 chars at most
gamecode string Required code for each game
※36 chars at most
roundid string Required game round ID
※50 chars at most
※roundid is a unique value
amount number Required the amount actually deducted from the player's wallet
※amount must not be negative, if so, please return error code "1003"
※16 digits with 4 decimal places at most
mtcode string Required mixed code
※mtcode is unique
※70 chars at most

Sample Request

curl --location --request POST '{wurl}/transaction/game/debit' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'wtoken: {wtoken}' \ --data-urlencode 'eventTime={eventTime}' \ --data-urlencode 'gamehall={gamehall}' \ --data-urlencode 'gamecode={gamecode}' \ --data-urlencode 'roundid={roundid}' \ --data-urlencode 'amount={amount}' \ --data-urlencode 'mtcode={mtcode}' \ --data-urlencode 'account={account}'

Response Format

Parameter Type Description
balance number the balance after the action is executed
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600210, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-19T22:56:30.0151001-05:00" } }

Idempotency Example: When game server send the same "Debit" mtcode, there is no need to decrease amount again

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 90
Completed transaction (same mtcode already exists in DB) 10 100 100

Credit

To increase ammount for "settled" orders. For example, game logic bugs to be adjusted win ammount

Request

URL: /transaction/game/credit

Method: POST

Headers :
Content-Type:application/x-www-form-urlencoded
Wtoken: provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※36 chars at most
eventTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00
※35 chars at most
gamehall string Required game provider
※36 chars at most
gamecode string Required code for each game
※36 chars at most
roundid string Required game round ID
※50 chars at most
※roundid is a unique value
amount number Required the amount actually given to the player's wallet
※amount must not be negative, if so, please return error code "1003"
※16 digits with 4 decimal places at most
mtcode string Required mixed code
※mtcode is unique
※70 chars at most

Sample Request

curl --location --request POST '{wurl}/transaction/game/credit' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'wtoken: {wtoken}' \ --data-urlencode 'gamehall={gamehall}' \ --data-urlencode 'gamecode={gamecode}' \ --data-urlencode 'roundid={roundid}' \ --data-urlencode 'amount={amount}' \ --data-urlencode 'mtcode={mtcode}' \ --data-urlencode 'eventTime={eventTime}' \ --data-urlencode 'account={account}'

Response Format

Parameter Type Description
balance number the balance after the action is executed
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600210, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-19T22:56:30.0151001-05:00" } }

Idempotency Example: When game server send the same "Credit" mtcode, there is no need to increase amount again

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 110
Completed transaction (same mtcode already exists in DB) 10 100 100

Payoff

When your player participate in our promotion activities and win a prize, we will call this API to deliver payout to your player.

Request

URL: /transaction/user/payoff

Method: POST

Headers :
Content-Type:application/x-www-form-urlencoded
Wtoken: provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※36 chars at most
eventTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00
※35 chars at most
amount number Required amount actually given to the player's wallet
※amount must not be negative, if so, please return error code "1003"
※16 digits with 4 decimal places at most
mtcode string Required mixed code
※mtcode is unique
※70 chars at most
promoid string Optional promoid
remark string Optional remark
※not limited

Sample Request

curl --location --request POST '{wurl}/transaction/user/payoff' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'wtoken: {wtoken}' \ --data-urlencode 'amount={amount}' \ --data-urlencode 'mtcode={mtcode}' \ --data-urlencode 'remark={remark}' \ --data-urlencode 'eventTime={eventTime}' \ --data-urlencode 'account={account}' \ --data-urlencode 'promoid={promoid}'

Response Format

Parameter Type Description
balance number the balance after the action is executed
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600210, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-19T22:56:30.0151001-05:00" } }

Idempotency Example: When game server send the same "Payoff" mtcode, there is no need to increase amount again.

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 110
Completed transaction (same mtcode already exists in DB) 10 100 100

Refund

Refund bet/rollout/takeall amount.

Request

URL: /transaction/game/refund

Method: POST

Headers :
Content-Type:application/x-www-form-urlencoded
Wtoken: provided from your side for verification use

Request Parameter

Parameter Type Require? Description
mtcode string Required mixed code
※please use mtcode that you would like to refund
※70 chars at most
※mtcode is a unique value
account string Required player account
※36 chars at most

Sample Request

curl --location --request POST '{wurl}/transaction/game/refund' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'wtoken: {wtoken}' \ --data-urlencode 'mtcode={mtcode}' \ --data-urlencode 'account={account}'

Response Format

Parameter Type Description
balance number balance after refund
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600270, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-20T01:14:48.9266001-04:00" } }

- Idempotency Example: When game server send the same "Bet/Rollout/Takeall" mtcode, there is no need to refund again.
- Refund Mechanism Flow.

mtcode status amount before balance after balance
mtcode has not refunded in DB 10 100 110
mtcode has been refunded in DB 10 100 100

Batch Bets (Only for Sports and Lotto)

Place bets in a round

※For a single player, the round and mtcode can be different in the batch. Up to 200 transactions per batch
※There is only complete success or complete failure, there is no "partial" success or failure situation

Request

URL: /transaction/game/bets

Method: POST

Headers :
Content-Type:application/json
Wtoken:provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※36 chars at most
session string Not Required Verify Token
gamehall string Required game provider
※36 chars at most
gamecode string Required code for each game
※36 chars at most
data text array
Required eventlist is wrapped as JSON
※not limited, but each winning has 158 chars at most
mtcode : mixed code
※mtcode is a unique value
amount : the amount actually deducted from the player's wallet
eventtime : time when event is created, format RFC3339
roundid:round ID
※roundid is a unique value
createTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00 . This field equal to order createtime.
※35 chars at most
genre string Not Required game item
※36 chars at most

Sample Request :

curl --location --request POST '{Wurl}/transaction/game/bets' \ --header 'Content-Type: application/json' \ --header 'wtoken: {Wtoken}' \ --data-raw '{ "account": "{account1}", "gamehall": "{gamehall}", "gamecode": "{gamecode}", "session": "{session}", "genre": "{genre}" , "data": [ { "mtcode": "{mtcode1}", "amount": 10, "roundid": "{round1}", "eventtime": "2020-05-20T05:20:00-04:00" }, { "mtcode": "{mtcode2}", "amount": 20, "roundid": "{round2}", "eventtime": "2020-05-20T05:20:00-04:00" }, { "mtcode": "{mtcode3}", "amount": 30, "roundid": "{round3}", "eventtime": "2020-05-20T05:20:00-04:00" } ], "createTime": "2020-05-20T05:20:00-04:00" }'

Response Format

Parameter Type Description
balance number the balance after the action is executed
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600250, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-19T22:15:21.6076001-05:00" } }

Idempotency Example: When game server send the same "Bathch Bets" mtcode, there is no need to decrease amount again

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 90
Completed transaction (same mtcode already exists in DB) 10 100 100

Refunds (Only for Sports and Lotto)

refunds bets at one times.

※Batch refunds are for a single player. Up to 200 transactions per batch
※There is only complete success or complete failure, there is no "partial" success or failure situation

Request

URL: /transaction/game/refunds

Method: POST

Headers :
Content-Type:application/json
Wtoken:provided from your side for verification use

Request Parameter

Parameter Type Require Description
mtcode string array Required mixed code
※please use mtcode that you would like to refund
※70 chars at most
※mtcode is a unique value

Sample Request

curl --location --request POST '{Wurl}/transaction/game/refunds' --header 'Content-Type: application/json' --header 'wtoken:{Wtoken} --data-raw '{ "mtcode": [ "{{mtcode1}}", "{{mtcode2}}" ] }'

Response Format

Parameter Parameter type Description
balance number balance after refund
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600280, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-20T01:14:48.9266001-04:00" } }

Idempotency Example: When "Refunds" request send the same "Batch Bets" mtcode, there is no need to refund again
Refund Mechanism Flow

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 110
Completed transaction (same mtcode already exists in DB) 10 100 100

Cancel (Only for Sports and Lotto)

cancel refund, ebillable settle again

※The batch is cancelled for a single player. Up to 200 transactions per batch
※There is only complete success or complete failure, there is no "partial" success or failure situation

Request

URL: /transaction/game/cancel

Method: POST

Headers :
Content-Type:application/json
Wtoken:provided from your side for verification use

Request Parameter

Parameter Type Require Description
mtcode string array Required mixed code
※please use mtcode that you would like to cancel
※70 chars at most
※mtcode is a unique value

Sample Request :

curl --location --request POST '{Wurl}/transaction/game/cancel' --header 'Content-Type: application/json' --header 'wtoken:{Wtoken} --data-raw '{ "mtcode": [ "{{mtcode1}}" ] }'

Response Format

Parameter Type Description
balance number balance after cancel
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data": { "balance": 600270, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-20T01:14:48.9266001-05:00" } }

Idempotency Example: When "Cancel" request send the same "Batch Bets" mtcode, there is no need to decrease amount again

mtcode status amount before balance after balance
mtcode has not cancelled the refund in DB 10 100 90
mtcode has cancelled the refund in DB 10 100 100

Wins (Only for Sports and Lotto)

The win settlement for Multiple players,if this round is lost, wins send amount = 0

※Multiple batches for multiple players, each batch (ucode) can be up to 200 transactions
※There are "partial" success or failure scenarios. Please refer to the response example

Request

URL: /transaction/game/wins

Method: POST

Headers :
Content-Type:application/json
Wtoken:provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
event text array Required eventlist is wrapped as JSON
not limited, but each winning has 158 chars at most
mtcode : mixed code
※mtcode is a unique value
amount : the amount actually given to the player's wallet
roundid:round ID
※roundid is a unique value
eventtime : time when event is created, format RFC3339
gamecode:code for each game
gamehall:game provider
validbet : The bets which are valid
eventtime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00
ucode string Required transaction code, when send back win result need to contain it.
※36 chars at most

Sample Request :

curl --location --request POST '{wurl}/transaction/game/wins' \ --header 'Content-Type: application/json' \ --header 'wtoken: {wtoken}' \ --data-raw '{ "list": [ { "account": "{account1}", "eventtime": "2022-04-27T04:33:26-04:00", "ucode": "{ucode1}", "event": [ { "mtcode": "{mtcode1}", "amount": 10, "validbet":10, "roundid": "{round1}", "eventtime": "2022-04-27T04:33:26-04:00", "gamecode": "{gamecode}", "gamehall": "{gamehall}" }, { "mtcode": "{mtcode2}", "amount": 20, "validbet":20, "roundid": "{round2}", "eventtime": "2022-04-27T04:33:26-04:00", "gamecode": "{gamecode}", "gamehall": "{gamehall}" }, { "mtcode": "{mtcode3}", "amount": 30, "validbet":30, "roundid": "{round3}", "eventtime": "2022-04-27T04:33:26-04:00", "gamecode": "{gamecode}", "gamehall": "{gamehall}" } ] }, { "account": "{account2}", "eventtime": "2022-04-27T04:33:26-04:00", "ucode": "{ucode2}", "event": [ { "mtcode": "{mtcode4}", "amount": 10, "validbet":10, "roundid": "{round4}", "eventtime": "2022-04-27T04:33:26-04:00", "gamecode": "{gamecode}", "gamehall": "{gamehall}" }, { "mtcode": "{mtcode5}", "amount": 20, "validbet":20, "roundid": "{round5}", "eventtime": "2022-04-27T04:33:26-04:00", "gamecode": "{gamecode}", "gamehall": "{gamehall}" }, { "mtcode": "{mtcode6}", "amount": 30, "validbet":30, "roundid": "{round6}", "eventtime": "2022-04-27T04:33:26-04:00", "gamecode": "{gamecode}", "gamehall": "{gamehall}" } ] } ] }'

Response Format

Parameter Parameter Type Description
success.account
(failed.account )
string account
success.ucode
(failed.ucode )
string transaction code, when send back win result need to contain it.
success.balance number the balance after the action is executed
※need support 12+4 (4th decimal place)
success.currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
failed.code string failed code
failed.message string failed message
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response

{ "data":{ "success":[ { "account":"{account1}" "balance":600280 , "currency":"CNY", "ucode": "{ucode1}" } ], "failed":[ { "account":"{account2}" , "code":"transaction:1003" , "message":"xxxxxx" , "ucode": "{ucode2}" } ], }, "status": { "code": "0", "message": "Success", "datetime": "2022-04-27T04:33:26-04:00" } }

Idempotency Example: When game server send the same "Wins" mtcode, no need to increase amount again
Resend Mechanism Flow

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 110
Completed transaction (same mtcode already exists in DB) 10 100 100

Amends(Only for Sports and Lotto)

Modify the settlement for Multiple players

※Multiple batches for multiple people, each batch (ucode) can be up to 200 transactions
※There are "partial" success or failure scenarios. Please refer to the response example

Request

URL: /transaction/game/amends

Method: POST

Headers :
Content-Type:application/json
Wtoken:provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※36 chars at most
event text array Required eventlist is wrapped as JSON
mtcode : mixed code
※mtcode is a unique value
amount : amount
action:credit ,debit
roundid:round ID
※roundid is a unique value
eventtime : time when event is created, format RFC3339
gamecode:code for each game
validbet : The bets which are valid
※not limited, but each winning has 158 chars at most
eventtime string Required time when event is created
amount number Required the amount actually “deducted” or “increased” from the player’s wallet
※amount must not be negative, if so, please return error code “1003”
※16 digits with 4 decimal places at most
action string Required the action for this modify.
action:credit ,debit
※36 chars at most
ucode string Required transaction code, when send back win result need to contain it.
※36 chars at most

Sample Request :

curl --location --request POST '{wurl}/transaction/game/amends' \ --header 'Content-Type: application/json' \ --header 'wtoken: {wtoken}' \ --data-raw '{ "list": [ { "account": "{account1}", "eventtime": "2019-12-13T08:39:08.906Z", "amount": 20, "action": "credit", "ucode": "{ucode1}", "event": [ { "mtcode": "{mtcode1}", "amount": 100, "validbet": 55, "action": "debit", "roundid": "{round1}", "eventtime": "2019-12-13T08:39:08.906Z", "gamecode": "{gamecode}" }, { "mtcode": "{mtcode2}", "amount": 120, "validbet": 20, "action": "credit", "roundid": "{round2}", "eventtime": "2019-12-13T08:39:08.906Z", "gamecode": "{gamecode}" } ] }, { "account": "{account2}", "eventtime": "2019-12-13T08:39:08.906Z", "amount": 20, "action": "debit", "ucode": "{ucode2}", "event": [ { "mtcode": "{mtcode3}", "amount": 100, "validbet": 55, "action": "debit", "roundid": "{round3}", "eventtime": "2019-12-13T08:39:08.906Z", "gamecode": "{gamecode}" }, { "mtcode": "{mtcode4}", "amount": 80, "validbet": 20, "action": "credit", "roundid": "{round4}", "eventtime": "2019-12-13T08:39:08.906Z", "gamecode": "{gamecode}" } ] } ] }'

Response Format

Parameter Parameter type Description
failed.code string failed code
failed.message string failed message
success.account
(failed.ucode )
string account
success.ucode
(failed.ucode )
string transaction code, when send back win result need to contain it.
success.before number balance before amends
※need support 12+4 (4th decimal place)
success.balance number balance after amends
※need support 12+4 (4th decimal place)
success.currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response :

{ "data": { "failed": [ { "account": "{account1}", "code": "1006:wallet", "message": "Player not found.", "ucode": "{ucode1}" } ], "success": [ { "account": "{account2}", "currency": "CNY", "before": 8970720, "balance": 8970700, "ucode": "{ucode2}" } ] }, "status": { "code": "0", "message": "Success", "datetime": "2019-08-23T05:13:22-04:00" } }

Idempotency Example: When game server send the same amends(credit) mtcode, there is no need to increase amount again

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 110
Completed transaction (same mtcode already exists in DB) 10 100 100

Idempotency Example: When game server send the same amends(debit) mtcode, there is no need to decrease amount again

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 90
Completed transaction (same mtcode already exists in DB) 10 100 100

Amend (Only for Sports and Lotto)

Modify the settlement for Single player

※For a single player, the round and mtcode can be different in the batch. Up to 200 transactions per batch
※There is only complete success or complete failure, there is no "partial" success or failure situation

Request

URL: /transaction/game/amend

Method: POST

Headers :
Content-Type:application/json
Wtoken:provided from your side for verification use

Request Parameter

Parameter Type Require Description
account string Required player account
※70 chars at most
gmaehall string Required game provider (short form)
※36 chars at most
gamecode string Required code for each game
※36 chars at most
action string Required the action for this modify.
action:credit ,debit
※36 chars at most
amount number Required the amount actually "deducted" or "increased" from the player's wallet
※amount must not be negative, if so, please return error code “1003”
※16 digits with 4 decimal places at most
createTime string Required time when event is created, format RFC3339
e.g. 2017-01-19T22:56:30-04:00 . This field equal to order createtime.
※35 chars at most
data text array Required eventlist is wrapped as JSON
mtcode : mixed code
※mtcode is a unique value
amount : amount
action:credit ,debit
roundid:round ID
※roundid is a unique value
eventtime : time when event is created, format RFC3339
validbet : The bets which are valid
※not limited, but each winning has 158 chars at most

Sample Request :

curl --location --request POST '{wurl}/transaction/game/amends' \ --header 'Content-Type: application/json' \ --header 'wtoken: {wtoken}' \ --data-raw '{ "account": "{account1}", "gamehall": "xxx", "gamecode": "gamecode", "action": "credit", "amount": 10, "createTime": "2016-01-02T15:04:05-04:00", "data": [ { "mtcode":"{mtcode1}", "amount":20, "validbet":5, "roundid":"{round1}", "eventtime":"2016-01-02T15:04:0504:00", "action":"credit" }, { "mtcode":"{mtcode2}", "amount":10, "validbet":5, "roundid":"{round2}", "eventtime":"2016-01-02T15:04:0504:00", "action":"debit" } ] }'

Response Format

Parameter Parameter type Description
balance number the balance after the action is executed
※need support 12+4 (4th decimal place)
currency string currency used
※please fill in according to the currency used by the agent. e.g. Agent's currency use CNY, then this parameter should also be CNY
status.code string status code Error Code Example
status.message string status message
status.datetime string time when this response is created

Sample Response :

{ "data": { "balance": 600240, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-19T22:15:21.6076001-05:00" } }

Idempotency Example: When game server send the same amend(credit) mtcode, there is no need to increase amount again

mtcode status amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 110
Completed transaction (same mtcode already exists in DB) 10 100 100

Idempotency Example: When game server send the same amend(debit) mtcode, there is no need to increase amount again

mtcode stauts amount before balance after balance
The transaction has not been completed (mtcode does not exist in DB) 10 100 90
Completed transaction (same mtcode already exists in DB) 10 100 100

Error Code

code message
0 Success
1002 Game action error. GameAction API (/transaction/game/:action) only allow 8 actions, i.e. ["bet","endround","rollout","takeall","rollin","debit","credit","refund"], otherwise, this error code will be returned
1003 Parameter error.
1004 Time Format error.
1005 Insufficient Balance.
1006 Player not found.
1014 Transaction record not found.
1100 Server error.

Error Code Example

{ "data": null, "status": { "code": "1005", "message": "Insufficient Balance", "datetime": "2018-03-02T01:46:19-04:00" } }

Please refer to the following Error code Response sample document to adjust the interface

[Probability & Table/Live]
https://hackmd.io/juByNDpcQQytCFlDzYgK1Q?view

[Sport/Lotto]
https://hackmd.io/lyROjTelQtG4sxpWtjJDag?view


Change Log

A add、 U update、D delete

2024/10/03

A rollin add "tableid" parameter

2024/06/20

A Refund add "account" parameter

2023/08/29

U Fixed errors in Endround's sample request

2022/12/23

A Ehdround request add freeticket parameter

2022/12/13

A Rollin gametype add live item

2022/08/31

A add "promoid" parameter to Payoff

2022/03/29

U update description for "amount" parameter

2022/03/16

A add "genre" parameter to Batch Bets

2022/01/19

U update data parameter "text" to "text array"


Seamless Wallet GameBoy_EN

We provide the interface for you to connect in series

Testing Data

HTTP Request Header

The commonly used HTTP request headers are :

Parameter Type Value Description
Authorization string This access token will be given by the Technical Support Group agent token
Content-Type string application/x-www-form-urlencoded Required except HTTP "GET" or "DELETE"

API responses

A successful request will return a JSON response body including the following information:

Parameter Type Description
data string response will be stored in here, if fail, this will be "null"
status string metadata for data
code string if success, will be 0
message string will be "success" or error message
datetime string the time when the response is created
{ "data":{ }, "status":{ "code" : "0", "message" : "success", "datetime" : "2017-01-20T01:44:33-04:00" "traceCode": "bF9h7TZAtg" } }

API Rules

1. Every time you use API, the HTTP status code will always be 200, if not, it means the Gameboy service is disconnected, or URI is wrong.
2. Date Time format is RFC3339, e.g. 2002-10-02T10:00:00.123456789-04:00(Please support at least until the 9th digit milliseconds)
3. Timezone is UTC-4 ※ Important.
4. mtcode and roundid is a self-generated unique code (should not include special characters), it is suggested to use UUID.
5. Report type API including starttime and endtime parameters, the time will be included in the query range.
e.g.
i. Query for one day
starttime should be 2017-05-15T00:00:00-04:00
endtime should be 2017-05-16T00:00:00-04:00
※ If the groupby is hour, set the minute or second of starttime to 0 to ensure data integrity
ii. Query for spanning more than one day.
starttime should be 2017-05-14T01:00:00-04:00
endtime should be 2017-05-15T00:59:59.999-04:00
then the data will span between 2 days.

Except for the above Report type API s, the rest of the APIs can be inquired on every hour sharp or every minute sharp, i.e 9:00, 10:30, etc, and they also support check on a daily and cross-day basis
※ Please note that query of some API is restricted to have time span of at most 2 days, e.g.transaction history
6. The staging Environment don't need IP whitelist, while The production environment needs IP whitelist.
7. Profit/Loss calculation formula

Player Profit / Loss (From player perspective):
Table / Live games:win-rake-roomfee
Slot/Arcade/Fish/Lotto games:win-bet

Agent Profit / Loss (From agnet perspective):
Table / Live games:rake-win+roomfee
Slot/Arcade/Fish/Lotto games:bet-win

8. When the API call method is GET, the use of variables behind the URL means the same as bringing in the player's name directly.

Example: if you want to get the player's "ABC" balance:
/gameboy/player/balance/:account and /gameboy/player/balance/ABC is same way.

9. The test environment data is saved for D+3 days, and the production environment data is saved for D+3 months, (D: the day when the data was retrieved)

API Usage Procedure(Not using Game Lobby)

  1. Use Game List to aquire gamecode
  2. Use gamecodeandaccount to have Player Get the Game Link
  3. Please use Player Logout when the game is over.

API Usage Procedure(Using Game Lobby)

  1. Use account to have Player Get the Game Lobby Link
  2. Please use Player Logout when the game is over.

Get Timestamp

URL: /gameboy/ping

Method: GET

Response

Parameter Type Description
timestamp int timestamp

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/ping" \ --header "Authorization: {{AuthToken}}"

Response Sample

{ "data": { "timestamp" : 1484640648 }, "status": { "code": "0", "message": "Success", "datetime": "2017-01-20T01:44:33-04:00" "traceCode": "bF9h7TZAfg" } }

URL: /gameboy/player/sw/lobbylink

Method: POST

Request

Parameter Type Require Description
account string Required player account
※Account length is restricted to 36 chars at most
lang string Required language code used for each game available code:
"zh-cn", "en","th" ,"vn"
※ please refer to Game List API for details
session string Optional SessionID
it will be used to call your Bet, Rollout or TakeAll Transaction API
app string Optional whether it is through games by app, [Y|N]
※Y=yes, N=no, default value is N
detect string Optional hether to turn on blocking non-game specifications browser tips, [Y|N]
※Y=yes, N=no, default value is N

Response

Parameter Type Description
url string Game Lobby URL
token string Game Lobby Token

Request Sample

curl --location -g --request POST "{{Host}}/gameboy/player/sw/lobbylink" \ --header "Content-Type: application/x-www-form-urlencoded" \ --header "Authorization: {{AuthToken}}" \ --data-urlencode "account={{account}}" \ --data-urlencode "lang=zh-cn" \ --data-urlencode "session={{session}}" \ --data-urlencode "app=N" \ --data-urlencode "detect=N"

Response Sample

{ "data": { "token": "76d34bb6b20b225f0eeaf4a486af85d6", "url":"http://xxx.xxx.xx/#/?token=76d34bb6b20b225f0eeaf4a486af85d6&language=zh-cn" }, "status": { "code": "0", "message": "Success", "datetime": "2020-01-13T07:27:28-04:00", "traceCode": "bF8Y8eAI8N" } }

URL: /gameboy/player/sw/gamelink

Method: POST

Request

Parameter Type Require Description
account string Required player account
※Account length is restricted to 36 chars at most
gamehall string Required game provider
gamecode string Required code for each game
gameplat string Required platform used for each game, [WEB|MOBILE]
※if "gameplat" is filled wrongly, it will be set to default value (i.e."WEB")
lang string Required language code used for each game available code:
"zh-cn", "en","th" ,"vn"
※ please refer to Game List API for details
session string Optional SessionID
it will be used to call your Bet, Rollout or TakeAll Transaction API
app string Optional whether it is through games by app, [Y|N]
※Y=yes, N=no, default value is N
detect string Optional whether to turn on blocking non-game specifications browser tips, [Y|N]
※Y=yes, N=no, default value is N
gamesite string Optional Site Name
※A maximum length of 16 alphanumeric characters, excluding special symbols or spaces.

Response

Parameter Type Description
url string Game Launch URL
token string Game Token (for game link use)

Request Sample

curl --location -g --request POST "{{Host}}/gameboy/player/sw/gamelink" \ --header "Content-Type: application/x-www-form-urlencoded" \ --header "Authorization: {{AuthToken}}" \ --data-urlencode "account={{account}}" \ --data-urlencode "gamehall={{gamehall}}" \ --data-urlencode "gamecode={{gamecode}}" \ --data-urlencode "gameplat=web" \ --data-urlencode "lang=zh-cn" \ --data-urlencode "session={{session}}" \ --data-urlencode "app=N" \ --data-urlencode "detect=N" --data-urlencode "gamesite={{gamesite URL}}/"

Response Sample

{ "data": { "url":"http://xxx.xxx.xx/?token=2ea4298ca7526850a17938c8c787da55&language=zh-cn&dollarsign=N&app=N&detect=N", "token": "2ea4298ca7526850a17938c8c787da55" }, "status": { "code": "0", "message": "Success", "datetime": "2020-01-13T05:24:21-04:00", "traceCode": "bF8L7UuuaR" } }

Suffix Usage Instructions

After obtaining the link, the user can add suffixes to enable specific features. Below are common suffix examples:

Enter Single Table (For Live Game Only)

Suffix Description
&tabletype=baccarat Enter a Baccarat table
&tabletype=marble Enter a Marble table
&tabletype=pk10 Enter Marble PK10 table
&tabletype=sedie Enter a sedie table
&tabletype=sicbo Enter a sicbo table
&tabletype=dt Enter a Dragon Tiger table
&tableid=XXX Table ID
&nolobby=true Prevent access to the lobby from a single table

Show Only One Live Lobby Scenario

Suffix Description
&only=1 Show only Baccarat lobby
&only=2 Show only Marble lobby

Slot Games

Suffix Description
&LeaveButton=Y Enable the Leave option
&LeaveButton=N Disable the Leave option
&leaveUrl={{URL}} Redirect URL after closing the game

Game Provider List

URL: /gameboy/game/halls

Method: GET

Response

Parameter Type Description
data array game provider list
gamehall string game provider name in short form
fullname string full name of game provider

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/game/halls" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data": [ { "gamehall": "xxx", "fullname": "xxx" } ], "status": { "code": "0", "message": "Success", "datetime": "2017-04-22T06:29:48-04:00" "traceCode": "1axIbYU1lL" } }

Game List

URL: /gameboy/game/list/:gamehall

Method: GET

Request

Parameter Type Require Description
gamehall string Required game provider name in short form

Response

Parameter Type Description
gamehall string game provider (short form)
gametype string game type
gamecode string code for each game
gamename string name for the game
gameplat string platform used for each game
lang string language used for each game
gametech string technology used for each game
status bool true = enable, false = disable
maintain bool true = under maintenance, false = playable
nameset array game names in different languages
name string name for the game
lang string corresponding language for each name

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/game/list/{{gamehall}}" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data": [ { "gamehall": "xxx", "gametype": "slot", "gamecode": "1", "gamename": "...", "gametech": "html5", "gameplat": "web", "lang": [ "en", "...", "..." ], "status": true, "maintain": false, "nameset": [ { "name": "...", "lang": "en" }, { "name": "...", "lang": "..." }, { "name": "...", "lang": "..." } ] }, ... ], "status": { "code": "0", "message": "Success", "datetime": "2017-03-08T22:24:28-04:00" "traceCode": "1axIcJBc33" } }

Order Inquiry

Inquiry the player’s deposit and withdrawal records by time. The search interval cannot exceed 24 hours.

URL: /gameboy/order/view

Method: GET

Request

Query Params

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
page int Required number of page requested
account string Optional player account, PS: if account is not provided, then all orders will be shown
※Account length is restricted to 36 chars at most
pagesize int Optional number of order shown on each page(default 500,maximum 20000
gametype string Optional [slot|arcade|fish|table]
slot = slot games only
arcade = arcade games only
table = table games only
fish = fish games only
live = include live (not included table)
※if “gametype” is blank or is filled wrongly, it will be set to default value (i.e.“slot”)

Response

Parameter Type Description
totalsize int total count
gamehall string game provider (short form)
gamecode string code for each game
gametype string game type
gameplat string platform used for each game
account string player account
round string round id
※round is a unique value
bet float64 bet amount
validbet float64 valid bet amount
※for table or live games
win float64 win amount (includes jackpot amount and amount win from PC)
jackpot float64 jackpot amount
jackpotcontribution array contribution to jackpot
※sorted in ascending order
( Mini / Minor / Major / Grand )
jackpottype string jackpot type
※if there is no jackpot, it is an empty string
balance float64 balance
status string order status
bettime datetime bet time,format RFC3339
endroundtime datetime game end round time,format RFC3339
createtime datetime time when this order was created,format RFC3339 ※system settlement time, order settlement time and report settlement time are also regarded as createtime
detail array miscellaneous info of game bonus feature
※ For slot games, may have "freegame" or "bonus" game or "luckydraw" game
※ For fishing games, may have "item" or "reward"
※ For table and live games, may have empty array
rake float64 rake
※This is for table games only
singlerowbet bool [true|false] whether it is formed by respin feature or not
ticketid string free ticket id
tickettype string free ticket type
( 1 = free game : get a free game )
( 2 = free spin : get a free spin )
giventype string free ticket given type
( 1 = given by pormotion )
( 101 = given by agent )
( 111 = given by treasure chest )
( 112 = purchase from mall )
ticketbets float64 free ticket bet amount
gamerole string "banker" or "player"
※This is for table games only, for non-table games, it is an empty string
bankertype string whether there are other real players in the same table game [pc|human]
pc = AI players only
human = one or more real players
※This is for table games only, for non-table games, it is an empty string
※If the game doesn't support the player is a banker, only the player and the bank pc on the table play. Banktype must be PC
roomfee float64 roomfee
※This is for table games only
bettype float64 array[] bet type
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty array
gameresult object game result
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty array
tabletype string table type (1=Baccarat,4=Dragon-Tiger )
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty string
tableid string table id
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty string
round number string round number
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty string
livebetdetail string livebetdetail
e.g.
[{"bettype":"2","win":440,"winlose":220,"bet":220,"validbet":220,"odds":1,"matchresult":"2"}]
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty string
currency string currency
cardwin float64 Payout multiplier amount
donate float64 donate amount
※This is for live dealer games only, for non-live dealer games, it is 0.
isdonate bool donate judgment※This is for live dealer games only, for non-live dealer games, it is an false string.

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/order/view?starttime=2022-09-13T00:00:00-04:00&endtime=2022-09-14T00:00:00-04:00&page=1&account={{account}}&pagesize=500" \ --header "Content-Type: application/x-www-form-urlencoded" \ --header "Authorization: {{AuthToken}}" \

Response Sample

{ "data": { "TotalSize": 2, "Data": [ { "gamehall": "...", "gametype": "slot", "gameplat": "web", "gamecode": "...", "account": "test001", "round": "3460290676", "balance": 425495.75, "win": 108898.15, "bet": 11, "validbet": 0, "jackpot": 108888, "jackpotcontribution": [ 0.287099, 0.1023, 0.039599, 0.0088 ], "jackpottype": "Grand", "status": "complete", "endroundtime": "2020-07-14T03:40:44.162-04:00", "createtime": "2020-07-14T03:40:43-04:00", "bettime": "2020-07-14T03:40:42-04:00", "detail": [ { "freegame": 10 }, { "luckydraw": 0 }, { "bonus": 0 } ], "singlerowbet": false, "gamerole": "", "bankertype": "", "rake": 0, "roomfee": 0, "tabletype": "", "tableid": "", "roundnumber": "", "bettype": [], "gameresult": { "points": [], "cards": [] }, "ticketid": "200132", "tickettype": "1", "giventype": "1", "ticketbets": 250, "currency": "CNY", "cardwin": 10.15, "donate": 0, "isdonate": false }, { "gamehall": "...", "gametype": "live", "gameplat": "web", "gamecode": "...", "account": "test001", "round": "BV20090800000020783", "balance": 184384.6, "win": -30000, "bet": 30000, "validbet": 30000, "jackpot": 0, "jackpotcontribution": [], "jackpottype": "", "status": "complete", "endroundtime": "2020-09-08T04:48:09.658-04:00", "createtime": "2020-09-08T04:48:09.544-04:00", "bettime": "2020-09-08T04:47:43-04:00", "detail": [], "singlerowbet": false, "gamerole": "player", "bankertype": "pc", "rake": 0, "roomfee": 0, "currency": "CNY", "tabletype": "1", "tableid": "872", "roundnumber": "CBG0908205199", "ticketid": "", "tickettype": "", "giventype": "", "bettype": [ 5, 6, 11 ], "gameresult": { "points": [ 2, 5 ], "cards": [ { "poker": "C3", "tag": 2 }, { "poker": "D10", "tag": 1 }, { "poker": "C11", "tag": 2 }, { "poker": "S2", "tag": 1 }, { "poker": "C2", "tag": 2 }, { "poker": "H10", "tag": 1 } ] }, "currency": "CNY", "donate": 0, "isdonate": false } ] }, "status": { "code": "0", "message": "Success", "datetime": "2019-03-04T05:42:38-04:00", "traceCode": "4ObWXOk5Jek9l" } }

Single Order Inquiry

URL: /gameboy/order/record

Method: GET

Request

Parameter Type Require Description
gamecode string Optional code for each game
gamehall string Optional game provider
roundid string Required game round ID
※roundid is a unique value

※PS.gamecode , gamehall can be obtained from Game List

Response

Parameter Type Description
gamehall string game provider (short form)
gamecode string code for each game
gametype string game type
gameplat string platform used for each game
account string player account
round string round id
※round is a unique value
bet float64 bet amount
validbet float64 valid bet amount
※for table and live games
win float64 win amount (includes jackpot amount and amount win from PC)
jackpot float64 jackpot amount
jackpotcontribution array contribution to jackpot
※sorted in ascending order
( Mini / Minor / Major / Grand )
jackpottype string jackpot type
※if there is no jackpot, it is an empty string
balance float64 balance
status string order status
bettime datetime bet time,format RFC3339
endroundtime datetime game end round time,format RFC3339
createtime datetime time when this order was created,format RFC3339 ※system settlement time, order settlement time and report settlement time are also regarded as createtime
rake float64 rake
※This is for table games only
roomfee float64 roomfee
※This is for table games only
gamerole string "banker" or "player"
※This is for table games only, for non-table games, it is an empty string
singlerowbet bool [true|false] whether it is formed by respin feature or not
bankertype string whether there are other real players in the same table game [pc|human]
pc = AI players only
human = one or more real players
※This is for table games only, for non-table games, it is an empty string
※If the game doesn't support the player is a banker, only the player and the bank pc on the table play. Banktype must be PC
bettype int array[] bet type
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty array
gameresult object game result
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty array
tabletype string table type (1=Baccarat,4=Dragon-Tiger )
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty string
tableid string table id
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty string
roundnumber string round number
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty string
ticketid string free ticket id
tickettype string free ticket type
( 1 = free game : get a free game )
( 2 = free spin : get a free spin )
giventype string free ticket given type
( 1 = given by pormotion )
( 101 = given by agent )
( 111 = given by treasure chest )
( 112 = purchase from mall )
livebetdetail string livebetdetail
e.g.
[{"bettype":"2","win":440,"winlose":220,"bet":220,"validbet":220,"odds":1,"matchresult":"2"}]
Order description of live dealer
※This is for live dealer games only, for non-live dealer games, it is an empty string
ticketbets float64 free ticket bet amount
currency string currency
cardwin float64 Payout multiplier amount
donate float64 donate amount
※This is for live dealer games only, for non-live dealer games, it is an 0 string
isdonate bool donate judgment
※This is for live dealer games only, for non-live dealer games, it is an false string

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/order/record?gamecode={{gamecode}}&gamehall={{gamehall}}&roundid={{roundid}}" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data": { "order": { "gamehall": "...", "gametype": "slot", "gameplat": "web", "gamecode": "...", "account": "test001", "round": "3460290676", "balance": 425495.75, "win": 108898.15, "bet": 11, "validbet": 0, "jackpot": 108888, "jackpotcontribution": [ 0.287099, 0.1023, 0.039599, 0.0088 ], "jackpottype": "Grand", "singlerowbet": false, "status": "complete", "endroundtime": "2020-07-14T03:40:44.162-04:00", "createtime": "2020-07-14T03:40:43-04:00", "bettime": "2020-07-14T03:40:42-04:00", "gamerole": "", "bankertype": "", "rake": 0, "roomfee": 0, "tabletype": "", "tableid": "", "roundnumber": "", "bettype": [], "gameresult": { "points": [], "cards": [] }, "ticketid": "200132", "tickettype": "1", "giventype": "1", "ticketbets": 250, "currency": "CNY", "cardwin": 10.15, "donate": 0, "isdonate": false } }, "status": { "code": "0", "message": "Success", "datetime": "2019-03-04T23:55:47-04:00", "traceCode": "M63k9N9wWjDra" } }

Player Report

URL: /gameboy/report/player

Method: GET

Request

Parameter Type Require Description
starttime string Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime string Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T23:59:59.999-04:00
groupby string Required parameter used day|hour
page int Required number of page requested
pagesize int Optional number of order shown on each page(default 500,maximum 2000
gametype string Optional [slot|arcade|fish|table]
slot = slot games only
arcade = arcade games only
table = table games only
fish = fish game only
※if “gametype” is blank or is filled wrongly, it will be set to default value (i.e.“slot”)

Response

Parameter Type Description
totalsize int total count
parentid string agent ID
account string player account
gamecode string code for each game
gamehall string game provider (short form)
rounds int total count of rounds player played
bets float64 total bet amount
validbets float64 total valid bet amount
※for table games
wins float64 total win amount (includes total jackpot amount and total amount win from PC)
jackpots float64 total jackpot amount
currency string currency used
datetime string date, format yyyy-MM-dd HH:mm:ss
rakes float64 total rake amount
roomfee float64 roomfee
※This is for table games only

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/player?starttime=2022-09-30T00:00:20-04:00&endtime=2022-09-30T23:59:59.999-04:00&groupby=hour&page=1&pagesize=500&gametype=" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data":{ "totalsize":2, "data":[ { "parentid":"xxx", "account":"test001", "gamecode":"...", "gamehall":"...", "rounds":2, "jackpots":0, "bets":2000, "validbet":2000, "wins":-50, "currency":"CNY", "datetime":"2022-10-14 03:00:00", "rakes":0, "roomfee":0 }, { "parentid":"xxx", "account":"test002", "gamecode":"...", "gamehall":"...", "rounds":2, "jackpots":0, "bets":10000, "validbet":10000, "wins":-10000, "currency":"CNY", "datetime":"2022-10-14 03:00:00", "rakes":0, "roomfee":0 } ] }, "status":{ "code":"0", "message":"Success", "datetime":"2022-10-14T03:22:49-04:00", "traceCode":"1ei1ulDuNO" } }

Live Dealer player settlement report

URL: gameboy/report/player/live

Method: GET

Request

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
groupby string Required parameter used
day:in days
hour:in hours
page int Required number of page requested
pagesize int Optional number of order shown on each page(default 500,maximum 2000

Response
data

Parameter Type Description
totalsize int total count
data []data game round detail

data.data[]

Parameter Type Description
datetime string date
account string player account
bets float64 bet amount
wins float64 total win amount (includes total jackpot amount and total amount win from PC)
playerincome float64 player profit
totalround int total number of rounds
betavg float64 average bet amount
currency string currency used
validbets float64 total valid bet amount
tabletype string table type
tableid string table id
donate float64 Reward amount
gamecode string code for each game

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/player/live?starttime=2022-09-30T00:00:20-04:00&endtime=2022-09-30T23:59:59.999-04:00&groupby=hour&page=1&pagesize=500" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data":{ "totalsize":3, "data":[ { "datetime":"2022-09-30 04:00:00", "account":"test001", "bets":900, "wins":-315, "playerincome":-315, "totalround":3, "betavg":300, "currency":"CNY", "validbet":900, "tabletype":"1", "tableid":"AAT01", "donate":0, "gamecode": "..." }, { "datetime":"2022-09-30 04:00:00", "account":"test002", "bets":150, "wins":150, "playerincome":150, "totalround":1, "betavg":150, "currency":"CNY", "validbet":150, "tabletype":"1", "tableid":"AAT02", "donate":0, "gamecode": "..." }, { "datetime":"2022-09-30 02:00:00", "account":"test003", "bets":400, "wins":-400, "playerincome":-400, "totalround":5, "betavg":80, "currency":"CNY", "validbet":400, "tabletype":"1", "tableid":"G01", "donate":0, "gamecode": "..." } ] }, "status":{ "code":"0", "message":"Success", "datetime":"2022-10-06T02:22:44-04:00", "traceCode":"1eg3aeWZHs" } }

Live Dealer General agent Report

Query live Dealer settlement report by general agent.

StartTime and EndTime time span can not exceed a month.

URL: /gameboy/report/ss/all/live

Method: GET

Request:

Query Params

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T23:59:59.999-04:00
groupby string Required parameter used day|month

Response

Parameter Type Description
bets float64 bet amount
wins float64 win amount
jackpots float64 jackpot amount
rake float64 rake amount
validbet float64 valid bet amount
roomfee float64 roomfee
income float64 income/loss
totalgamelogin int the number of login
totaldonate float64 total donate

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/ss/all/live?starttime=2022-09-01T00:00:00-04:00&endtime=2022-09-26T23:59:59.999-04:00&groupby=day" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data": { "bets": 80, "wins": 40, "jackpots": 0, "rake": 0, "validbet": 0, "roomfee": 0, "income": 40, "totalgamelogin": 0, "totaldonate": 76.8136 }, "status": { "code": "0", "message": "Success", "datetime": "2021-05-06T06:03:59-04:00", "traceCode": "2QRts8z" } }

Live Dealer agent Report

URL: /gameboy/report/ss/live

Method: GET

Request

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
groupby string Required parameter used
day:in days
hour:in hours
year:in years
month: in months
gamecode string Optional Live Dealer gamecode
page int Required number of page requested
pagesize int Optional number of order shown on each page(default 500,maximum 2000

Response

Parameter Type Description
totalsize int total count
bets float64 total bet amount
validbets float64 valid bet amount
wins float64 total win amount
jackpots float64 total jackpot amount
currency string currency used
totalsignup int total number of players sign-up within the time range
totallogin int total number of players login within the time
totalround int total number of rounds player played within the time range
datetime string date, format yyyy-MM-dd HH:mm:ss
rakes float64 total rake amount
roomfee float64 roomfee
※This is for table games only
donate float64 donate amouunt

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/ss/live?starttime=2023-08-09T00:00:00-04:00&endtime=2023-08-09T23:59:59.999-04:00&groupby=day&gamecode=GINKGO01&page=1&pagesize=500"\ --header"Authorization:{{AuthToken}}"\ --header"Content-Type:application/x-www-form-urlencoded"

Response Sample

{ "data": { "totalsize": 1, "data": [ { "bets": 4000, "validbet": 4000, "wins": -2050, "jackpots": 0, "currency": "CNY", "totalsignup": 0, "totallogin": 0, "totalround": 4, "datetime": "2023-08-09", "rakes": 0, "roomfee": 0, "donate": 0 } ] }, "status": { "code": "0", "message": "Success", "datetime": "2023-08-09T04:36:28-04:00", "traceCode": "20XpnLm7Mna" } }

Cockfight Player Settlement Report

Query Cockfight Settlement Report by Player

URL: /gameboy/report/player/animal
Method: GET

Request

Parameter Type Required Description
starttime datetime Required Query start time in RFC3339 format, e.g., 2017-06-01T00:00:00-04:00 ※ Timezone must be UTC-4
endtime datetime Required Query end time in RFC3339 format, e.g., 2017-06-01T23:59:59.999-04:00 ※ Timezone must be UTC-4
groupby string Required Calculation unit: day (daily), hour (hourly)
page int Required Page number
pagesize int Optional Number of records per page (default: 500, max: 2000)

Response

data

Parameter Type Description
totalsize int Total number of records
data []data Record details

data.data[]

Parameter Type Description
datetime string Date
account string Player account
bets float64 Bet amount
wins float64 Total winnings (including jackpot and PC winnings)
playerincome float64 Profit/Loss
totalround int Total rounds
betavg float64 Average bet amount
currency string Currency
validbets float64 Valid bet amount ※ Used for table and sports games
tabletype string Table type (empty)
tableid string Table ID (empty)
donate float64 Donation amount
gamecode string Game code

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/player/animal?starttime=2022-09-30T00:00:20-04:00&endtime=2022-09-30T23:59:59.999-04:00&groupby=hour&page=1&pagesize=500" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data": { "totalsize": 3, "data": [ { "datetime": "2022-09-30 04:00:00", "account": "test001", "bets": 900, "wins": -315, "playerincome": -315, "totalround": 3, "betavg": 300, "currency": "CNY", "validbet": 900, "tabletype": "", "tableid": "", "donate": 0, "gamecode": "CMCOCKFIGHT01" }, { "datetime": "2022-09-30 04:00:00", "account": "test002", "bets": 150, "wins": 150, "playerincome": 150, "totalround": 1, "betavg": 150, "currency": "CNY", "validbet": 150, "tabletype": "", "tableid": "", "donate": 0, "gamecode": "CMCOCKFIGHT01" }, { "datetime": "2022-09-30 02:00:00", "account": "test003", "bets": 400, "wins": -400, "playerincome": -400, "totalround": 5, "betavg": 80, "currency": "CNY", "validbet": 400, "tabletype": "", "tableid": "", "donate": 0, "gamecode": "CMCOCKFIGHT01" } ] }, "status": { "code": "0", "message": "Success", "datetime": "2022-10-06T02:22:44-04:00", "traceCode": "1eg3aeWZHs" } }

Cockfight Master Agent Settlement Report

Query Cockfight Settlement Report by Master Agent

Start and end time range cannot exceed 1 month

URL: /gameboy/report/ss/all/animal
Method: GET

Request

Parameter Type Required Description
starttime datetime Required Query start time in RFC3339 format, e.g., 2017-06-01T00:00:00-04:00 ※ Timezone must be UTC-4
endtime datetime Required Query end time in RFC3339 format, e.g., 2017-06-01T23:59:59.999-04:00 ※ Timezone must be UTC-4
groupby string Required Calculation unit: day (daily), month (monthly) ※ Affects totalgamelogin calculation

Response

Parameter Type Description
bets float64 Total bet amount
wins float64 Total winnings
jackpots float64 Jackpot amount
rake float64 Rake amount
validbet float64 Valid bet amount
roomfee float64 Room fee
income float64 Profit/Loss
totalgamelogin int Total game logins
totaldonate float64 Total donation amount

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/ss/all/animal?starttime=2022-09-01T00:00:00-04:00&endtime=2022-09-26T23:59:59.999-04:00&groupby=day" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data": { "bets": 80, "wins": 40, "jackpots": 0, "rake": 0, "validbet": 0, "roomfee": 0, "income": 40, "totalgamelogin": 0, "totaldonate": 76.8136 }, "status": { "code": "0", "message": "Success", "datetime": "2021-05-06T06:03:59-04:00", "traceCode": "2QRts8z" } }

Cockfight Agent Settlement Report

Query Cockfight Settlement Report by Agent

URL: /gameboy/report/ss/animal
Method: GET

Request

Parameter Type Required Description
starttime datetime Required Query start time in RFC3339 format, e.g., 2017-06-01T00:00:00-04:00 ※ Timezone must be UTC-4
endtime datetime Required Query end time in RFC3339 format, e.g., 2017-06-01T23:59:59.999-04:00 ※ Timezone must be UTC-4
groupby string Required Calculation unit: hour (hourly), day (daily), month (monthly), year (yearly)
gamecode string Optional Cockfight game code
page int Required Page number
pagesize int Optional Number of records per page (default: 500, max: 2000)

Response

Parameter Type Description
totalsize int Total number of records
bets float64 Total bet amount
validbets float64 Valid bet amount
wins float64 Total winnings
jackpots float64 Total jackpot amount
currency string Currency
totalsignup int Number of registrations during the time period
totallogin int Number of logins during the time period
totalround int Total rounds
datetime string Date
rakes float64 Total rake amount
roomfee float64 Room fee
donate float64 Donation amount

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/ss/animal?starttime=2023-08-09T00:00:00-04:00&endtime=2023-08-09T23:59:59.999-04:00&groupby=day&gamecode=CMCOCKFIGHT01&page=1&pagesize=500" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data": { "totalsize": 1, "data": [ { "bets": 4000, "validbet": 4000, "wins": -2050, "jackpots": 0, "currency": "CNY", "totalsignup": 0, "totallogin": 0, "totalround": 4, "datetime": "2023-08-09", "rakes": 0, "roomfee": 0, "donate": 0, "gamecode": "CMCOCKFIGHT01" } ] }, "status": { "code": "0", "message": "Success", "datetime": "2023-08-09T04:36:28-04:00", "traceCode": "20XpnLm7Mna" } }

Agent Report

URL: /gameboy/report/ss

Method: GET

Request

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T23:59:59.999-04:00
groupby string Required parameter used day|hour
page int Required number of page requested
pagesize int Optional number of order shown on each page(default 500,maximum 2000
gametype string Optional [slot|arcade|fish|table]
slot = slot games only
arcade = arcade games only
table = table games only
fish = fish games only
※if “gametype” is blank or is filled wrongly, it will be set to default value (i.e.“slot”)

Response

Parameter Type Description
totalsize int total count
bets float64 total bet amount
validbets float64 total valid bet amount
※for table games
wins float64 total win amount (includes total jackpot amount and total amount win from PC)
jackpots float64 total jackpot amount
currency string currency used
totalsignup int total number of players sign-up within the time range
totalplayers int total number of players play games within the time range
totallogin int total number of players login within the time range
totalround int total number of rounds player played within the time range
datetime string date, format yyyy-MM-dd HH:mm:ss
rakes float64 total rake amount
roomfee float64 roomfee
※This is for table games only
donate float64 donate amouunt

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/ss?starttime=2022-09-30T00:00:00-04:00&endtime=2022-09-30T23:59:59.999-04:00&groupby=day&page=1&pagesize=2000&gametype=table" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data":{ "totalsize":1, "data":[ { "bets":400, "validbet":400, "wins":-400, "jackpots":0, "currency":"CNY", "totalsignup":0, "totalplayers":0, "totallogin":1, "totalround":5, "datetime":"2022-09-30", "rakes":0, "roomfee":0, "donate": 0 } ] }, "status":{ "code":"0", "message":"Success", "datetime":"2022-09-30T04:29:27-04:00", "traceCode":"1YXy3Ek7bhD" } }

General agent Report

Query settlement report by general agent.

StartTime and EndTime time span will not exceed a month.

URL: /gameboy/report/ss/all

Method: GET

Request:

Query Params

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T23:59:59.999-04:00
groupby string Required parameter used day|month

Response

Parameter Type Description
bets float64 bet amount
wins float64 win amount
jackpots float64 jackpot amount
rake float64 rake amount
validbet float64 valid bet amount
roomfee float64 roomfee
income float64 income/loss
totalgamelogin int the number of login
totaldonate float64 total donate

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/ss/all?starttime=2022-09-01T00:00:00-04:00&endtime=2022-09-26T23:59:59.999-04:00&groupby=day" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data":{ "bets":2196.6, "wins":258933.8, "jackpots":217776.8, "rake":0, "validbet":10, "roomfee":0, "income":-256747.2, "totalgamelogin":35, "totaldonate": 0 }, "status":{ "code":"0", "message":"Success", "datetime":"2022-09-27T04:17:47-04:00", "traceCode":"1YWmfXPQZzW" } }

Order Summary (For Single Player)

Inquiry the player’s deposit and withdrawal records by time. The search interval cannot exceed 24 hours

URL: /gameboy/order/summary

Method: GET

Request

Parameter Type Require Description
account string Required player account
※Account length is restricted to 36 chars at most
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
gametype string Optional reported game type [ slot | table | live ]
slot = includes slot 、arcade and fish games
table = include table (not included live)
live:include live (not included table)
※if “gametype” is blank or is filled wrongly, it will be set to default value (i.e.“slot”)

Response

Parameter Type Description
account string player account
gamecode string code for each game
gamehall string game provider (short form)
bets float64 bet amount for specific game
validbets float64 valid bet amount for specific game
※for table or live games
wins float64 win amount for specific game (includes jackpot amount and amount win from PC)
jackpots float64 jackpot amount for specific game
rake float64 rake amount for specific game
※This is for table games only
roomfee float64 roomfee
income float64 income/loss for specific game
totalbets float64 total bet amount
totalvalidbets float64 total valid bet amount
※for table or live games
totalwins float64 total win amount (includes total jackpot amount and total amount win from PC)
totaljackpots float64 total jackpot amount
totalrake float64 total rake amount
※This is for table games only
totalroomfee float64 total room fee
※This is for table games only
totalincome float64 total income/loss

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/order/summary?starttime=2022-09-01T00:00:00-04:00&endtime=2022-09-02T00:00:00-04:00&account={{account}}" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data":{ "summaryReport":[ { "groupby":{ "account":"test001", "gamecode":"...", "gamehall":"..." }, "bets":2000, "validbet":2000, "wins":0, "jackpots":0, "rake":0, "roomfee":0, "income":0 } ], "totalbets":2000, "totalvalidbets":2000, "totalwins":0, "totaljackpots":0, "totalrake":0, "totalroomfee":0, "totalincome":0 }, "status":{ "code":"0", "message":"Success", "datetime":"2022-10-14T03:38:46-04:00", "traceCode":"1ei1ENif66" } }

Player Logout

URL: /gameboy/player/logout

Method: POST

Request

Parameter Type Require Description
account string Required player account
※ (max. 36 characters).

Request Sample

curl --location -g --request POST "{{Host}}/gameboy/player/logout" \ --header "Content-Type: application/x-www-form-urlencoded" \ --header "Authorization: {{AuthToken}}" \ --data-urlencode "account={{account}}"

Response Sample

{ "data": null, "status": { "code": "0", "message": "Success", "datetime": "2020-09-24T05:08:01-04:00", "traceCode": "1UgjxJI9ZbX" } }

Logout agent all players

Log out all players under the agent.

URL: /gameboy/to/logout/all

Method: POST

Request:

Parameter Type Require Description
isall bool X Whether to log out all agent players.
※General agent is optional.
The default is false, if it is true, all players will be logged out. ※Sub-agent should not fill in this parameter (error code 38 will be returned)
account []string X Designate a agent account.
※General agent is optional.
If isall is true, it is invalid, because the logged-out player already includes all sub-agent players under the general agent.
※Sub-agent should not fill in this parameter (error code 38 will be returned)

Request Sample

curl --location -g --request POST "{{Host}}/gameboy/to/logout/all" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "isall=false" \ --data-urlencode "account={{sub-agent}}"

Response Sample

{ "data":null, "status":{ "code":"0", "message":"Success", "datetime":"2022-08-11T21:04:16-04:00", "traceCode":"tefO0xE" } }

To get a game round detail.

URL: /gameboy/order/detail/v2

Only for sport/lotto unsettled round that you can call the API to get game round detail link. For other game types, you need to call the API to get the game round detail link after the round is settled.

Method: GET

Request

Parameter Type Require Description
roundid string Required game round ID
※roundid is a unique value
account string Required player account
※Account length is restricted to 36 chars at most
gamecode string Optional code for each game
gamehall string Optional game provider
gametype string Optional gametype
※ Sport must be fill in 'lotto', other types do not have to fill in
lang string Optional language code used for each game
available option: “zh-cn” - Simplified Chinese, “en” - English

Response

Parameter Type Description
data string game round detail URL

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/order/detail/v2?roundid={{roundid}}&account={{account}}&gamecode={{gamecode}}&gamehall={{gamehall}}&lang=zh-tw&gametype=" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data": "http://xxx.xxx.xxx/xxxx?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzc2lkIjoiNTk4MDFjYjk1MzdiNDIwMDAxYmQ2ZmY3Iiwicm91bmRpZCI6ImFiY2RlZmMiLCJyb2xlIjoib3duZXIiLCJleHAiOjE1MDE2NjA4ODQsImp0aSI6IjMyODQ3MzkzMCIsImlhdCI6MTUwMTY2MDI4NCwiaXNzIjoiQ3lwcmVzcyIsInN1YiI6IlJvdW5kVG9rZW4ifQ.LMyyLhrba8EbrT3peeR-Ff7W6HfewhzClMYqQR7IQCw", "status": { "code": "0", "message": "Success", "datetime": "2020-09-24T05:35:00-04:00", "traceCode": "1Ugk0eVf3DB" } }

Get Payoff History

Get promo payoff history list ( Up to 14 days of record )

Request API frequency limit:test environment( 1 min / 3 times);production environment( 10 min / 3 times )

URL: /gameboy/promo/payoff/list

Method: GET

Request:

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
page int Optional number of page requested
pagesize int Optional pagesize (default 500,max 20000)

Response

Key Type Description
promoid string promotion activity id
account string account
parentacc string agent name
amount float64 payoff amount
mtcode string trasaction code
※mtcode is a unique value
promoname string promotion activity name
sendtime date trasaction time
totalsize int totalsize

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/promo/payoff/list?starttime=2022-09-01T00:00:00-04:00&endtime=2022-09-02T00:00:00-04:00&page=1&pagesize=500" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded" \

Response Sample

{ "data": { "data": [ { "promoid":"xxxxxx", "account":"test001", "parentacc": "ownerjjj", "amount":16888, "mtcode":"oooo01", "promoname": "234", "sendtime":"2018-01-01T00:01:55-04:00" }, { "promoid":"xxxxxx", "parentacc": "ownerjjj", "amount":88, "mtcode":"oooo99", "promoname": "234", "sendtime":"2018-01-01T00:01:55-04:00" } ], "totalsize": 2 }, "status": { "code": "0", "message": "Success", "datetime": "2018-02-05T00:01:55-04:00", "traceCode": "7dSg3tfHE" } }

Jackpot Amount Inquiry

URL: /gameboy/game/jackpot

Method: GET

Request

Parameter Type Require Description
gametype string Optional slot or arcade
※ default value is slot

Response

Key Type Description
data float64 The sum of the respective levels, from large to small
※[Grand , Major , Minor , Mini]

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/game/jackpot" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded" \

Response Sample

{ "data": [ 108888.06, 1688.24, 168.34, 88 ], "status": { "code": "0", "message": "Success", "datetime": "2020-01-13T08:41:26-04:00", "traceCode": "bF95WF6t0W" } }

User Token Inquiry

Check an user token’s status.

URL: /gameboy/player/sw/token/:account

Method: GET

Request:

Parameter Type Require Description
account string Required player account
※Account length is restricted to 36 chars at most

Response

Parameter Type Description
usertoken string User Token
status string status : login / logout / gaming
[ login ] player login
[ logout / pending ] player logout
[ gaming ] player is gaming
count number number of games player playing currently

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/player/sw/token/{{account}}" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data": { "usertoken": "xxx.....", "status": "login", "count": 2 }, "status": { "code": "0", "message": "Success", "datetime": "2020-09-24T05:08:51-04:00", "traceCode": "1UgjyChWTnu" } }

Get a link to the membership system

URL: /gameboy/player/sw/mslink

Method: POST

Request:

Parameter Type Require Description
account string O player account
lang string X language code used for each game available code:
"zh-cn", "en","th" ,"vn"

Response

Parameter Type Description
token string membership system token
url string membership system link

Request Sample

curl --location -g --request POST "{{Host}}/gameboy/player/sw/lobbylink" \ --header "Content-Type: application/x-www-form-urlencoded" \ --header "Authorization: {{AuthToken}}" \ --data-urlencode "account={{account}}" \ --data-urlencode "lang=zh-cn"

Response Sample

{ "data":{ "token":"ab224d5b1e62a8eda06e77d37f032955", "url":"http://xxx.com?token=ab224d5b1e62a8eda06e77d37f032955&language=zh-cn" }, "status":{ "code":"0", "message":"Success", "datetime":"2019-12-24T03:35:17-04:00", "traceCode":"7dR0QuB1h" } }

Membership System Agent Point Report

URL: /gameboy/report/parent/point

Method: GET

Request

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
groupby string Required parameter used
day:in days
hour:in hours
year:in years
page int Required number of page requested
pagesize int Optional number of order shown on each page(default 500,maximum 2000
parentaccount string Optional agent account
※if “parentaccount ” is blank then our system will do the determination by the authtoken you are using

Response

Parameter Type Description
totalsize int total number of transactions
data.detail[ ].date string date
data.detail[ ].agentAcc string agent account
data.detail[ ].playerCount int number of players using points
data.detail[ ].pointEarn float points earned by players
data.detail[ ].pointUse float points used by players
data.detail[ ].fgCount int amount of given free game tickets
data.detail[ ].fsCount int amount of given free spin tickets

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/parent/point?starttime=2022-11-11T00:00:00-04:00&endtime=2022-11-12T00:00:00-04:00&groupby=day&page=1&pagesize=500&parentaccount=" \ --header "Authorization: {{AuthToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data":{ "totalSize":1, "detail":[ { "date":"2022-11-11", "agentAcc":"xxx", "playerCount":2, "pointEarn":17246, "pointUse":-15700, "fgCount":1, "fsCount":2 } ] }, "status":{ "code":"0", "message":"Success", "datetime":"2022-11-12T02:19:09-04:00", "traceCode":"ck3hpYr40w" } }

Membership System Agent Player Action Report

URL: /gameboy/report/player/action

Method: GET

Request

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
page int Required number of page requested
pagesize int Optional number of order shown on each page(default 500,maximum 2000
parentaccount string Optional agent account
※if “parentaccount ” is blank then our system will do the determination by the authtoken you are using
account string Optional player account
pointtype string Optional point type: Membership Points Code List

Response

Parameter Type Description
data.info.totalSize int total number of transactions
data.detail[].id string id
data.detail[].agentAcc string agent account
data.detail[].account string player account
data.detail[].nickname string player nickname
data.detail[ ].createdAt string data
data.detail[ ].pointType string point type
data.detail[ ].difference float64 point difference
data.detail[ ].before float64 accumulated points

Request Sample

curl --location -g --request GET '{{Host}}/gameboy/report/player/action?starttime=2022-10-07T00:00:00-04:00&endtime=2022-10-08T00:00:00-04:00&page=1&pagesize=500&parentaccount=&account={{account}}&pointtype=' \ --header 'Authorization: {{AuthToken}}' \ --header 'Content-Type: application/x-www-form-urlencoded'

Response Sample

{ "data":{ "info":{ "totalSize":3, }, "detail":[ { "id": "1678342301142211", "agentAcc": "testagent", "account": "test001", "nickname": "testplayer", "createdAt":"2022-10-07T03:10:00-04:00", "pointType":"2001", "difference":-1000.00, "before":5788.00 }, { "id": "1678342298142207", "agentAcc": "testagent", "account": "test001", "nickname": "testplayer", "createdAt":"2022-10-07T02:10:00-04:00", "pointType":"1002", "difference":1288.00, "before":4500.0 }, ... ] }, "status":{ "code":"0", "message":"Success", "datetime":"2021-02-22T05:06:47-04:00", "traceCode":"O1DrA0cbYLElF" } }

Membership System Agent Player Status Report

URL: /gameboy/report/player/state

Method: GET

Request

Parameter Type Require Description
page int Required number of page requested
pagesize int Optional number of order shown on each page(default 500,maximum 2000
parentaccount string Optional agent account
※if “parentaccount ” is blank then our system will do the determination by the authtoken you are using
account string Optional player account

Response

Parameter Type Description
totalsize int total number of transactions
data.detail[ ].agentAcc string agent account
data.detail[ ].account string player account
data.detail[ ].balance float reward points balance
data.detail[ ].type int Free Ticket Type: 1 = free game , 2 = free spin
data.detail[ ].gameCode string gamecode
data.detail[ ].bet float free ticket bet
data.detail[ ].givenType int Ticket source:
1 = Promotion
101 = Agent
111 = Treasure Chest
112 = Shopping Mall
data.detail[].ftCount int amount of free ticket

Request Sample

curl --location -g --request GET '{{Host}}/gameboy/report/player/state?page=1&pagesize=500&parentaccount=&account={{account}}' \ --header 'Authorization: {{AuthToken}}' \ --header 'Content-Type: application/x-www-form-urlencoded'

Response Sample

{ "data":{ "totalSize":3, "detail":[ { "agentAcc":"xxx", "account":"test001", "balance":1006403.00, "type":1, "gameCode":"10", "bet":0.55, "givenType":112, "ftCount":3 }, { "agentAcc":"xxx", "account":"test001", "balance":1006403.00, "type":2, "gameCode":"10", "bet":0.55, "givenType":111, "ftCount":8 }"..." ] }, "status":{ "code":"0", "message":"Success", "datetime":"2021-02-22T05:06:47-04:00", "traceCode":"O1DrA0cbYLElF" } }

Membership System Player Free Ticket Report

URL: /gameboy/freeticket/parent/players/summary

Method: GET

Request

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
groupby string Required parameter used
day: interval in days
hour: interval in hours
year:interval in years
page int Required number of page requested
pagesize int Optional number of order shown on each page(default 500,maximum 2000
parentaccount string Optional agent account
※if “parentaccount ” is blank then our system will do the determination by the authtoken you are using
account string Optional player account
gamecode string Optional game code
tickettype string Optional Free Ticket Type: 1 = free game , 2 = free spin
giventype string Optional Ticket source:
1 = Promotion
101 = Agent
111 = Treasure Chest
112 = Shopping Mall
gametype string Optional [slot|arcade|fish|table|live]
slot = slot games only
arcade = arcade games only
table = table games only
fish = fish game only
※if “gametype” is blank or is filled wrongly, it will be set to default value (i.e.“slot”)

Response

Parameter Type Description
data.totalsize int total number of transactions
data.data.[ ].parentacc string agent account
data.data.[ ].datetime string creating date
data.data.[ ].userid string user ID
data.data.[ ].account string player account
data.data.[ ].gamehall string game provider
data.data.[ ].gamecode string gamecode
data.data.[ ].tickettype string free ticket type
data.data.[ ].giventype string free ticket given type
data.data.[ ].ticketbets float64 free ticket bet amount
data.data.[ ].wins float64 total win amount
data.data.[ ].totalround int total number of rounds
data.data.[ ].currency string currency

Request Sample

curl --location -g --request GET '{{Host}}/gameboy/freeticket/parent/players/summary?starttime=2022-11-01T00:00:00-04:00&endtime=2022-11-30T00:00:00-04:00&groupby=day&page=1&pagesize=500&parentaccount=&account={{account}}&gamecode&tickettype&giventype&gametype' \ --header 'Authorization: {{AuthToken}}' \ --header 'Content-Type: application/x-www-form-urlencoded'

Response Sample

{ "data":{ "totalsize":3, "data":[ { "parentacc":"xxx", "datetime":"2022-01-06", "account":"test001", "gamehall":"...", "gamecode":"...", "tickettype":"1", "giventype":"1", "ticketbets":100, "wins":200, "totalround":3, "currency":"CNY" }, { "parentacc":"xxx", "datetime":"2022-01-06", "account":"test001", "gamehall":"...", "gamecode":"...", "tickettype":"1", "giventype":"2", "ticketbets":300, "wins":40, "totalround":1, "currency":"CNY" } ... ] }, "status":{ "code":"0", "message":"Success", "datetime":"2022-10-25T03:14:41-04:00", "traceCode":"7DgS6CnHM" } }

Membership System Free Ticket Analytics Report

URL: /gameboy/report/freeticket/analytics

Method: GET

Request

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
groupby string Required parameter used
day: interval in days
hour: interval in hours
year:interval in years
page int Required number of page requested
pagesize int Optional number of order shown on each page(default 500,maximum 20000
parentaccount string Optional agent account
tickettype string Optional Free Ticket type: 1 = free game , 2 = free spin
giventype string Optional Ticket source:
1 = Promotion
101 = Agent
111 = Treasure Chest
112 = Shopping Mall

Response

Parameter Type Description
data.TotalSize int total number of transactions
data.data.[ ]datetime string date, format
data.data.[ ]gamecode string code for each game
data.data.[ ]currency string currency used
data.data.[ ]tickettype string free ticket id
data.data.[ ]giventype string free ticket given type
data.data.[ ]ticketbets float64 free ticket bet amount
data.data.[ ]totalround int total round
data.data.[ ]wins float64 win amount

Request Sample

curl --location -g --request GET '{{Host}}/gameboy/report/freeticket/analytics?starttime=2022-09-01T00:00:00-04:00&endtime=2022-11-01T00:00:00-04:00&groupby=month&page=1&pagesize=500&parentaccount=&account={{account}}&tickettype&giventype' \ --header 'Authorization: {{AuthToken}}' \ --header 'Content-Type: application/x-www-form-urlencoded'

Response Sample

{ "data":{ "TotalSize":2, "Data":[ { "datetime":"2022-10", "gamecode":"52", "currency":"CNY", "tickettype":"1", "giventype":"111", "ticketbets":1.5, "totalround":1, "wins":49.8 }, { "datetime":"2022-09", "gamecode":"7", "currency":"CNY", "tickettype":"1", "giventype":"111", "ticketbets":1.5, "totalround":1, "wins":519.3 } ] }, "status":{ "code":"0", "message":"Success", "datetime":"2022-11-12T04:04:45-04:00", "traceCode":"ck3szzOqb4" } }

Membership Points Code List

Code Description
1000 Betting for Reward Points
1001 Daily tasks
1002 Point coupon
1003 Lucky treasure chest refund
2000 Buy Level 1 lucky treasure chest
2001 Buy Level 2 lucky treasure chest
2002 Buy Level 3 lucky treasure chest
2003 Buy Level 4 lucky treasure chest
2004 Buy Level 5 lucky treasure chest
2005 Buy Level 6 lucky treasure chest
2006 Buy Level 7 lucky treasure chest
2007 Buy Level 8 lucky treasure chest
3000 Change nickname
3001 Repeat decoration for points
3002 God of Wealth's guidance
3004 Buy Free Game Ticket
3005 Buy Free Spin Ticket
3006 Buy payout multiplier card
3012 The nickname review failed
3104 Free game coupon returned
3105 Free spin coupon returned
3106 Payout multiplier card returned

Gametype Categories

Type Description
slot Slot Machine
fish Fish Game
arcade Arcade Game
table Table Game
live Live Casino
lotto Lottery Game
dealergame Dealer Card Game
sports Sports Betting
livegame Marble Game
animal Animal Game

Sport and Lotto GameBoy API_EN

1.Sports wagers ID explanation (Click here)
2.Sports Participant TypeID explanatio (Click here)

genre definition

Sport genre list

English genre
Baseball baseball
Ice hockey icehockey
Basketball basketball
Football football
Tennis tennis
Soccer soccer
Horserace horserace
Dograce dograce
Esports esports
Boxing boxing
Golf golf
Racingcar racingcar
Darts darts
Billiardball billiardball
Cricket cricket
Badminton badminton
Volleyball volleyball
Handball handball
Indexes indexes
parlay Parlay
combobet Combobet

Check Balance (Include the total amount of outstanding bets)

Query player's balance,including the total amount of outstanding bets

URL: /gameboy/player/lotto/balance/{account}

Method: GET

Request

Parameter Type Require Description
account string Required player account
※Account length is restricted to 36 chars at most

Response

Parameter Type Description
balance float64 balance for the player account
outstanding float64 outstanding balance for Sport and Lotto
currency string currency used

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/player/lotto/balance/{{account}}" \ --header "Authorization: {{SSToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data": { "balance": 331817.677, "outstanding": 3480, "currency": "CNY" }, "status": { "code": "0", "message": "Success", "datetime": "2021-11-23T07:59:34-04:00", "traceCode": "1WYxv8SyWMy" } }

Sport and Lotto unfinished orders

Order will be on daily basis

URL: /gameboy/order/record/lotto

Method: GET

Request

Parameter Parameter type Require Description
starttime datetime Required start time,format RFC3339 e.g.2017-06-01T00:00:00-04:00
※ Please use UTC-4 timezone
endtime datetime Required end time,format RFC3339 e.g.2017-06-02T00:00:00-04:00
※ Please use UTC-4 timezone
account string Optional player account, PS: if account is not provided, then all orders will be shown
※Account length is restricted to 36 chars at most
seek int Optional Record start position(Starting from 0)
count int Optional Record return counts(minimum 1,maximum 20000)
gamehall string Optional game provider
gametype string Optional game type
gamecode string Optional code for each game
genrename string Optional game sub-item
roundid string Optional game round id
※roundid is a unique value

Response
data

Parameter Type Description
bets float64 total bet amounts
totalsize int total count
data data[] order data

data.data[]

Name Type Description
indexid string index number
roundid string game round id
※roundid is a unique value
gametype string game type
gamecode string code for each game
gamehall string game provider
currency string currency used
account string player account
genre string event genre
※please refer #genre definition
betamount float64 bet amount
beteventtime datetime datetime when the player betting,format RFC3339
wagers wagers[] wagers

data.data.wagers[]

Parameter Type Description
wagerId int wager id
wagerTypeGroupId int wager type group id
wagerCode string wager code
betStatus int bet status
betCount int There are several possibilities for permutations
subsetItemCount int sub set item count
wagerItemCount int wager item count
wagerTypeId int wager type id
buId int buId
dateMatch datetime match date
accountId int account id
sourceTypeId float64 platform used id
unitStake float64 unitStake
totalStake float64 total stake
oddsTypeId int odds type
odds float64 odds
remark string remark
lastTransactionId int last transaction id
potentialWinning float64 maximum win amount
pledgeStake float64 pledgeStake
wagerItems wagerItems[] wager items

data.data.wagers.wagerItems[]

Parameter Type Description
wagerItemId int wager item id
matchId int match id
marketTypeId int market play type id
marketLineGroupNameId int market line group name id
marketTypeGroupId int market play type group id
oddsTypeId int handicap id
marketLineId int market line id
marketLineRemark int market line remark
selectionId int selectionId
selectionTypeId int selection type id
extendSelectionTypeId int attributes that expand from one dimension to multiple dimensions
sportId int sport id
leagueId int league id
periodId int time interval (e.g. first half in basketball, seventh inning in baseball)
betTypeId int bet type
headValue float64 head value, used to judge the score of this option
displayOdds float64 displayed odds,Will be affected by the market type (OddsTypeId)
isInplay int whether the match is in-play when placing bets
dateMatch datetime match date
scoreHome int home team score
scoreAway int away team score
matchDangerId int match danger id
matchName string GameName, If the champion, total score, correct score can be displayed directly
leagueName string league name
selectionName string selection name
marketTypeName string market type name
periodName string time interval name
betStatus int bet status
0:unsettled
4:settled
6:refund the bet
selectedOutcomeId intr match result id
0:unsettle
1:win
2:win half
3:lose
4:lose half
5:tie refund
away string away
awayId string awayId
home string home
homeId string homeId
lineId string lineId

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/order/record/lotto?starttime=2022-09-27T00:00:00-04:00&endtime=2022-09-28T00:00:00-04:00&account={{account}}" \ --header "Authorization: {{SSToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Lottery example

{ "data": [ { "indexid": "AADEM1153581211583514969:xxx", "roundid": "AADEM1153581211583514969", "gametype": "lotto", "gamecode": "AA01", "gamehall": "xxx", "currency": "CNY", "account": "test", "genre": "c-th-thai", "betamount": 10, "beteventtime": "2021-12-15T03:44:47-04:00" }, { "indexid": "AADEM1153581211583514968:xxx", "roundid": "AADEM1153581211583514968", "gametype": "lotto", "gamecode": "AA01", "gamehall": "xxx", "currency": "CNY", "account": "test", "genre": "c-th-thai", "betamount": 10, "beteventtime": "2021-12-15T03:44:47-04:00" } ], "bets": 20, "totalsize": 2 }, "status": { "code": "0", "message": "Success", "datetime": "2021-12-16T07:51:51-04:00", "traceCode": "c6XLtwHwWf" } }

Sport example

{ "data":{ "data":[ { "indexid":"CF16668512822CVIXDH3W:xxx", "roundid":"CF16668512822CVIXDH3W", "gametype":"sport", "gamecode":"...", "gamehall":"xxx", "currency":"CNY", "account":"test001", "genre":"soccer", "betamount":1000, "beteventtime":"2022-10-27T02:14:42-04:00", "wagers":[ { "wagerId":128911, "wagerTypeGroupId":1, "wagerCode":"CF16668512822CVIXDH3W", "betStatus":0, "betCount":1, "subsetItemCount":1, "wagerItemCount":1, "wagerTypeId":1, "buId":2, "dateMatch":"2022-11-01T17:45:00Z", "accountId":4033, "sourceTypeId":0, "unitStake":1000, "totalStake":1000, "oddsTypeId":1, "odds":2.13, "remark":"", "lastTransactionId":665769, "potentialWinning":1130, "pledgeStake":0, "wagerItems":[ { "wagerItemId":211535, "matchId":254300, "marketTypeId":1, "marketLineGroupNameId":0, "marketTypeGroupId":0, "oddsTypeId":1, "marketLineId":3642864, "marketLineRemark":0, "selectionId":9726662, "selectionTypeId":2, "extendSelectionTypeId":0, "sportId":1, "leagueId":10629, "periodId":1, "betTypeId":1, "headValue":0.75, "displayOdds":2.13, "isInplay":0, "dateMatch":"2022-11-01T17:45:00Z", "scoreHome":0, "scoreAway":0, "matchDangerId":0, "matchName":"Bayer Leverkusen vs Club Brugge", "leagueName":"UEFA Champions League", "selectionName":"Away", "marketTypeName":"Football Fulltime AH", "periodName":"Full Time", "betStatus":0, "selectedOutcomeId":0, "away":"布鲁日", "awayId":6337, "home":"拜耳勒沃库森", "homeId":8231, "lineId":1 } ] } ] } ], "bets":1000, "totalsize":1 }, "status":{ "code":"0", "message":"Success", "datetime":"2022-10-27T02:13:25-04:00", "traceCode":"1elcv7VuGN" } }

Sport and Lotto finished orders By CreateTime

Order will be on daily basis

URL: /gameboy/order/view/lotto

Method: GET

Request

Parameter Parameter type Require Description
starttime datetime Required start time,format RFC3339 e.g.2017-05-01T00:00:00-04:00
※ Please use UTC-4 timezone
endtime datetime Required end time,format RFC3339 e.g.2017-05-01T23:59:59-04:00
※ Please use UTC-4 timezone
account string Optional player account, PS: if account is not provided, then all orders will be shown
※Account length is restricted to 36 chars at most
seek int Optional Record start position(Starting from 0)
count int Optional Record return position(minimum 1,maximum 20000)
gamehall string Optional game provider
gametype string Optional game type
gamecode string Optional code for each game
genrename string Optional game sub-item
roundid string Optional game round id
※roundid is a unique value

Response
data

Parameter Type Description
data data[] order data
bets float64 total bet amounts
validbets float64 total validbets
wins float64 total win amount
playerincome float64 player profit
parentincome float64 agetn profit
totalsize int total data counts

data.data[]:

Name Type Description
indexid string index number
roundid string game round id
※roundid is a unique value
gametype string game type
gamecode string code for each game
gamehall string game provider
currency string currency used
account string player account
genre string game item
※please refer #genre definition
bets float64 bet amount
validbet float64 The absolute value of winning or losing the actual valid bet
※ For tie refund and cancel, validbet is invalid.
- Tie
- Cancel
wins float64 win amount
bettime datetime bet time,format RFC3339
createtime datetime time when this order was created,format RFC3339
※ match date time, system settlement time, order settlement time and report settlement time are also regarded as createtime
finaltime datetime time when this order was created,format RFC3339
※order settlement, Amends the last update time
wagers wagers[] wagers

data.data.wagers[]

Parameter Parameter type Description
wagerId int wager id
wagerTypeGroupId int wager type group id
wagerCode string wager code
betStatus int bet status
betCount int There are several possibilities for permutations
subsetItemCount int sub set item count
wagerItemCount int wager item count
wagerTypeId int wager type id
buId int buId
dateMatch datetime match date
accountId int account id
sourceTypeId int platform used id
unitStake float64 unitStake
totalStake float64 total stake
oddsTypeId int odds type
odds float64 odds
remark string remark
lastTransactionId int last transaction id
potentialWinning float64 maximum win amount
pledgeStake float64 pledgeStake
wagerItems wagerItems[] wager items

data.data.wagers.wagerItems[]

Parameter Type Description
wagerItemId int wager item id
matchId int match id
marketTypeId int market play type id
marketLineGroupNameId int market line group name id
marketTypeGroupId int market play type group id
oddsTypeId int handicap id
marketLineId int market line id
marketLineRemark int market line remark
selectionId int selectionId
selectionTypeId int selection type id
extendSelectionTypeId int attributes that expand from one dimension to multiple dimensions
sportId int sport id
leagueId int league id
periodId int time interval (e.g. first half in basketball, seventh inning in baseball)
betTypeId int bet type
headValue float64 head value, used to judge the score of this option
displayOdds float64 displayed odds,Will be affected by the market type (OddsTypeId)
isInplay int whether the match is in-play when placing bets
dateMatch datetime match date
scoreHome int home team score
scoreAway int away team score
matchDangerId int match danger id
matchName string GameName, If the champion, total score, correct score can be displayed directly
leagueName string league name
selectionName string selection name
marketTypeName string market type name
periodName string time interval name
betStatus int bet status
0:unsettled
4:settled
6:refund the bet
selectedOutcomeId int match result id
0:unsettle
1:win
2:win half
3:lose
4:lose half
5:tie refund
away string away
awayId int away ID
home string home
homeId int home ID
lineId int lineId

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/order/view/lotto?starttime=2022-09-27T00:00:00-04:00&endtime=2022-09-28T00:00:00-04:00&account={{account}}" \ --header "Authorization: {{SSToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Lottery example

{ "data": [ { "indexid": "AADEM1153581211583514922:xxx", "roundid": "AADEM1153581211583514922", "gametype": "lotto", "gamecode": "...", "gamehall": "...", "currency": "CNY", "account": "test001", "genre": "c-cq60-ssc5", "bets": 10, "validbet": 10, "wins": 0, "bettime": "2021-12-15T03:43:21-04:00", "createtime": "2021-12-15T03:44:17-04:00", "finaltime": "2021-12-15T03:44:17.517-04:00" }, { "indexid": "AADEM1153581211583514923:xxx", "roundid": "AADEM1153581211583514923", "gametype": "lotto", "gamecode": "...", "gamehall": "...", "currency": "CNY", "account": "test001", "genre": "c-cq60-ssc5", "bets": 10, "validbet": 10, "wins": 0, "bettime": "2021-12-15T03:43:21-04:00", "createtime": "2021-12-15T03:44:17-04:00", "finaltime": "2021-12-15T03:44:17.517-04:00" } ], "bets": 610, "validbets": 610, "wins": 1134.6, "playerincome": 524.6, "parentincome": -524.6, "totalsize": 61 }, "status": { "code": "0", "message": "Success", "datetime": "2021-12-16T08:09:34-04:00", "traceCode": "c6XNlyDwZK" } }

Sport example

{ "data":{ "data":[ { "indexid": "CF16668400962UKPVF8QD:xxx", "roundid": "CF16668400962UKPVF8QD", "gametype": "sport", "gamecode": "...", "gamehall": "...", "currency": "CNY", "account": "test001", "genre": "soccer", "bets": 1000, "validbet": 890, "wins": 1890, "bettime": "2022-10-26T23:08:16-04:00", "createtime": "2022-11-21T15:00:00-04:00", "finaltime": "2022-10-26T23:52:43.264-04:00", "wagers": [ { "wagerId": 128907, "wagerTypeGroupId": 1, "wagerCode": "CF16668400962UKPVF8QD", "betStatus": 4, "betCount": 1, "subsetItemCount": 1, "wagerItemCount": 1, "wagerTypeId": 1, "buId": 2, "dateMatch": "2022-11-21T19:00:00Z", "accountId": 4033, "sourceTypeId": 0, "unitStake": 1000, "totalStake": 1000, "oddsTypeId": 1, "odds": 1.89, "remark": "", "lastTransactionId": 665745, "potentialWinning": 890, "pledgeStake": 0, "wagerItems": [ { "wagerItemId": 211528, "matchId": 127370, "marketTypeId": 20, "marketLineGroupNameId": 0, "marketTypeGroupId": 0, "oddsTypeId": 1, "marketLineId": 3033269, "marketLineRemark": 0, "selectionId": 7925678, "selectionTypeId": 47, "extendSelectionTypeId": 0, "sportId": 1, "leagueId": 10635, "periodId": 1, "betTypeId": 4, "headValue": 0, "displayOdds": 1.89, "isInplay": 0, "dateMatch": "2022-11-21T19:00:00Z", "scoreHome": 0, "scoreAway": 0, "matchDangerId": 0, "matchName": "USA vs Wales", "leagueName": "World Cup", "selectionName": "Even", "marketTypeName": "Football Fulltime OE", "periodName": "Full Time", "betStatus": 4, "selectedOutcomeId": 1, "away": "威尔士", "awayId": 22, "home": "美国", "homeId": 5597, "lineId": 1 } ] } ] } ], "bets":1000, "validbets":1000, "wins":0, "playerincome":-1000, "parentincome":1000, "totalsize":1 }, "status":{ "code":"0", "message":"Success", "datetime":"2022-08-24T22:22:59-04:00", "traceCode":"7BLM7IUNI" } }

Sport and Lotto finished orders By FinalTime

Order will be on daily basis

URL: /gameboy/order/view/lotto/byfinaltime

Method: GET

Request

Parameter Parameter type Require Description
starttime datetime Required start time,format RFC3339 e.g.2017-06-01T00:00:00-04:00
※ Please use UTC-4 timezone
endtime datetime Required end time,format RFC3339 e.g.2017-06-02T00:00:00-04:00
※ Please use UTC-4 timezone
account string Optional player account, PS: if account is not provided, then all orders will be shown
※Account length is restricted to 36 chars at most
seek int Optional Recordstarting position(start from 0)
count int Optional Record return counts(minimum 1,maximum 20000)
gamehall string Optional game provider
gametype string Optional game type
gamecode string Optional code for each game
genrename string Optional game sub-item
roundid string Optional game round id
※roundid is a unique value

Response
data

Parameter Type Description
data data[] order data
bets float64 total bet amounts
validbets float64 total validbets
wins float64 total win amount
playerincome float64 player profit
parentincome float64 agetn profit
totalsize int total count

data.data[]

Parameter Type Description
indexid string index number
roundid string game round id
※roundid is a unique value
gametype string game type
gamecode string code for each game
gamehall string game provider
currency string currency used
account string player account
genre string game item
※please refer #genre definition
bets float64 total bet amounts
validbet float64 total validbets
※ Following action will make validbet be invalid.
- Tie
- Cancel
wins float64 total win amount
bettime datetime bet time,format RFC3339
createtime datetime time when this order was created,format RFC3339
※ match date time, system settlement time, order settlement time and report settlement time are also regarded as createtime
finaltime datetime time when this order was created,format RFC3339
※order settlement, Amends the last update time
wagers wagers[] wagers

data.data.wagers[]

Parameter Type Description
wagerId int wager id
wagerTypeGroupId int wager type group id
wagerCode string wager code
betStatus int bet status
betCount int There are several possibilities for permutations
subsetItemCount int sub set item count
wagerItemCount int wager item count
wagerTypeId int wager type id
buId int buId
dateMatch datetime match date
accountId int account id
sourceTypeId int platform used id
unitStake float64 unitStake
totalStake float64 total stake
oddsTypeId int odds type
odds float64 odds
remark string remark
lastTransactionId int last transaction id
potentialWinning float64 maximum win amount
pledgeStake float64 pledgeStake
wagerItems wagerItems[] wager items

data.data.wagers.wagerItems[]

Parameter Type Description
wagerItemId int wager item id
matchId int match id
marketTypeId int market play type id
marketLineGroupNameId int market line group name id
marketTypeGroupId int market play type group id
oddsTypeId int handicap id
marketLineId int market line id
marketLineRemark int market line remark
selectionId int selectionId
selectionTypeId int selection type id
extendSelectionTypeId int attributes that expand from one dimension to multiple dimensions
sportId int sport id
leagueId int league id
periodId int time interval (e.g. first half in basketball, seventh inning in baseball)
betTypeId int bet type
headValue float64 head value, used to judge the score of this option
displayOdds float64 displayed odds,Will be affected by the market type (OddsTypeId)
isInplay int whether the match is in-play when placing bets
dateMatch datetime match date
scoreHome int home team score
scoreAway int away team score
matchDangerId int match danger id
matchName string GameName, If the champion, total score, correct score can be displayed directly
leagueName string league name
selectionName string selection name
marketTypeName string market type name
periodName string time interval name
betStatus int bet status
0:unsettled
4:settled
6:refund the bet
selectedOutcomeId int match result id
0:unsettle
1:win
2:win half
3:lose
4:lose half
5:tie refund
away string away name
awayId int away ID
home string home name
homeId int home ID
lineId int lineId
e.g. Player to score first. 」

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/order/view/lotto?starttime=2022-09-27T00:00:00-04:00&endtime=2022-09-28T00:00:00-04:00&account={{account}}" \ --header "Authorization: {{SSToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Lotto Response Sample

{ "data": [ { "indexid": "AADEM1153581211583514922:xxx", "roundid": "AADEM1153581211583514922", "gametype": "lotto", "gamecode": "...", "gamehall": "...", "currency": "CNY", "account": "test001", "genre": "c-cq60-ssc5", "bets": 10, "validbet": 10, "wins": 0, "bettime": "2021-12-15T03:43:21-04:00", "createtime": "2021-12-15T03:44:17-04:00", "finaltime": "2021-12-15T03:44:17.517-04:00" }, { "indexid": "AADEM1153581211583514923:xxx", "roundid": "AADEM1153581211583514923", "gametype": "lotto", "gamecode": "...", "gamehall": "...", "currency": "CNY", "account": "test001", "genre": "c-cq60-ssc5", "bets": 10, "validbet": 10, "wins": 0, "bettime": "2021-12-15T03:43:21-04:00", "createtime": "2021-12-15T03:44:17-04:00", "finaltime": "2021-12-15T03:44:17.517-04:00" } ], "bets": 610, "validbets": 610, "wins": 1134.6, "playerincome": 524.6, "parentincome": -524.6, "totalsize": 61 }, "status": { "code": "0", "message": "Success", "datetime": "2021-12-16T08:09:34-04:00", "traceCode": "c6XNlyDwZK" } }

Sport Response Sample

{ "data":{ "data":[ { "indexid": "CF16668400962ZBIAJ7WQ:xxx", "roundid": "CF16668400962ZBIAJ7WQ", "gametype": "sport", "gamecode": "...", "gamehall": "...", "currency": "CNY", "account": "test001", "genre": "soccer", "bets": 1000, "validbet": 1060, "wins": 2060, "bettime": "2022-10-26T23:08:16-04:00", "createtime": "2022-11-21T12:00:00-04:00", "finaltime": "2022-10-26T23:55:01.349-04:00", "wagers": [ { "wagerId": 128904, "wagerTypeGroupId": 1, "wagerCode": "CF16668400962ZBIAJ7WQ", "betStatus": 4, "betCount": 1, "subsetItemCount": 1, "wagerItemCount": 1, "wagerTypeId": 1, "buId": 2, "dateMatch": "2022-11-21T16:00:00Z", "accountId": 4033, "sourceTypeId": 0, "unitStake": 1000, "totalStake": 1000, "oddsTypeId": 1, "odds": 2.06, "remark": "", "lastTransactionId": 665742, "potentialWinning": 1060, "pledgeStake": 0, "wagerItems": [ { "wagerItemId": 211525, "matchId": 127367, "marketTypeId": 2, "marketLineGroupNameId": 0, "marketTypeGroupId": 0, "oddsTypeId": 1, "marketLineId": 1724946, "marketLineRemark": 0, "selectionId": 4415515, "selectionTypeId": 5, "extendSelectionTypeId": 0, "sportId": 1, "leagueId": 10635, "periodId": 1, "betTypeId": 2, "headValue": 2.25, "displayOdds": 2.06, "isInplay": 0, "dateMatch": "2022-11-21T16:00:00Z", "scoreHome": 0, "scoreAway": 0, "matchDangerId": 0, "matchName": "Senegal vs Netherlands", "leagueName": "World Cup", "selectionName": "Under", "marketTypeName": "Football Fulltime OU", "periodName": "Full Time", "betStatus": 4, "selectedOutcomeId": 1, "away": "荷兰", "awayId": 13, "home": "塞内加尔", "homeId": 3142, "lineId": 1 } ] } ] } ], "bets":1000, "validbets":1000, "wins":0, "playerincome":-1000, "parentincome":1000, "totalsize":1 }, "status":{ "code":"0", "message":"Success", "datetime":"2022-08-24T22:22:59-04:00", "traceCode":"7BLM7IUNI" }

Sport/Lotto agent player report

Retrieves Sport/Lotto agent player report.

URL: /gameboy/report/player/lotto

Method: GET

Request

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
groupby string Required parameter used hour|day|month|year
pagesize int Optional number of order shown on each page(default 500,maximum 2000
page int Optional number of page requested
account string Optional player account, PS: if account is not provided, then all orders will be shown

Response

Parameter Type Description
totalsize int total data counts
data.data.parentid string agent ID
data.data.account string player account
data.data.rounds int total count of rounds player played
data.data.bets string total bet amount
data.data.wins string total win amount (includes total jackpot amount and total amount win from PC)
data.data.currency string currency used
data.data.datetime string date, format yyyy-MM-dd HH:mm:ss
data.data.income string income/loss for player
data.data.validbets string bet amount
※Because of table game, 0 bet amount is plausible
data.data.betavg float64 average bet amount

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/player/lotto?starttime=2022-01-01T00:00:00.0-04:00&endtime=2022-03-31T23:59:59.999-04:00&groupby=year&page=1&pagesize=2000&account" \ --header "Authorization: {{SSToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data":{ "totalsize":10, "data":[ { "parentid":"test", "account":"test001", "rounds":2, "bets":80, "validbets":80, "wins":0, "currency":"CNY", "datetime":"2022", "income":-80, "betavg":40 }, { "parentid":"test", "account":"test002", "rounds":14, "bets":1434, "validbets":1434, "wins":1175.5, "currency":"CNY", "datetime":"2022", "income":-258.5, "betavg":102.4286 }, ... ... ] }, "status":{ "code":"0", "message":"Success", "datetime":"2022-09-28T22:12:48-04:00", "traceCode":"1YX36F2aUHY" } }

Sport/Lotto agent report

Retrieves Sport/Lotto agent report.

URL: /gameboy/report/ss/lotto

Method: GET

Request

Parameter Type Require Description
starttime datetime Required start time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
endtime datetime Required end time,format RFC3339 ※ please use UTC-4 timezone, e.g.2017-05-01T00:00:00-04:00
groupby string Required parameter used `hour
pagesize int Optional number of order shown on each page(default 500,maximum 2000
page int Optional number of page requested

Response

Parameter Type Description
totalsize int total data counts
data.data.parentid string agent ID
data.data.totalround int total number of rounds player played within the time range
data.data.bets float64 total bet amount
data.data.wins string total win amount (includes total jackpot amount and total amount win from PC)
data.data.currency string currency used
data.data.datetime string date, format yyyy-MM-dd HH:mm:ss
data.data.income string income/loss for agent
data.data.validbets string bet amount
※Because of table game, 0 bet amount is plausible
data.data.betavg float64 average bet amount

Request Sample

curl --location -g --request GET "{{Host}}/gameboy/report/ss/lotto?starttime=2022-01-01T00:00:00-04:00&endtime=2022-06-30T00:00:00-04:00&groupby=month&page=1&pagesize=2000" \ --header "Authorization: {{SSToken}}" \ --header "Content-Type: application/x-www-form-urlencoded"

Response Sample

{ "data":{ "totalsize":3, "data":[ { "parentid":"test", "bets":11553, "validbets":11553, "wins":13392.25, "currency":"CNY", "totalround":426, "datetime":"2022-01", "income":-1839.25, "betavg":27.1197 }, { "parentid":"test", "bets":1868, "validbets":1868, "wins":1320.75, "currency":"CNY", "totalround":48, "datetime":"2022-02", "income":547.25, "betavg":38.9167 }, ... ... ] }, "status":{ "code":"0", "message":"Success", "datetime":"2022-09-28T22:09:15-04:00", "traceCode":"1YX32UxeC0z" } }

Error Code

code message
0 success
1 Insufficient balance.
2 Player not found.
3 Token invalid.
4 Authorization invalid.
5 Bad parameters.
6 Already has same account.
8 Data not found.
9 MTCode duplicate.
10 Time format error.
11 Query time is out of range.
12 Time zone must be UTC-4.
13 Game is not found.
14 Your account or password is incorrect.
15 Account or password must use the following characters:a-z A-Z 0-9 _-
16 Check account api error.
23 Game is under maintenance.(Single CQ9 game is under maintenance)
24 Account too long.
26 CQ9 Gaming is under maintain.(All CQ9 games are under maintenance)
28 Currency is not support.
29 No default pool type
31 Currency does not match Agent's currency.
33 Transaction in progress, please check later.
35 StartTime and EndTime are future time.
38 This parameter is available for general agent only.
39 Deposit and withdrawal of the account has been forbidden
100 Something wrong.
100 Something wrong.
101 Auth service error.
102 User service error.
103 Transaction service error.
104 Game Manager service error.
105 Wallet service error.
106 Tviewer service error.
107 Orderview service error.
108 Report service error.
200 This owner has been frozen.
201 This owner has been disabled.
202 This player has been disable.

Change Log

A add、 U update、D delete

2025/04/09

U Player Game Link Suffix Explanation
A Cockfight Agent Settlement Report
A Cockfight Master Agent Settlement Report
A Cockfight Player Settlement Report

2025/04/04

A Gametype List

2023/10/24

D Remove promtion APIs

2023/08/08

A Live Dealer agent Report
A error code 39

2023/05/08

A add error code 26 CQ9 Gaming is under maintain.

2023/04/11

A add Membership Points Code List 3104~3106

2023/03/09

A Gameboy Membership System Agent Player Action Report API add ID item.

2022/12/28

U User Token Inquiry status logout,update to logout / pending

2022/12/27

A add Live Dealer General agent Report API

2022/12/13

A Order Summary (For Single Player) gametype add live item

2022/08/31

A add logout of all players from a single agent API
A add Get membership system link API
A add errorcode 38

2022/08/23

A add “potentialWinning” response parameter on “sport and Lotto unfinished orders", "sport and Lotto finished orders" API
A Order Inquiry & Single Order Inquiry add cardwin parameter

2022/08/16

U headValue,unitStake,totalStake Parameter Type int to float64

2022/08/10

A add “betStatus" and "selectedOutcomeId” response parameter on “sport and Lotto unfinished orders", "sport and Lotto finished orders" API

2022/06/30

A add "currency" Response Parameter on "Order Inquiry" and "Single Order Inquiry" API

2022/01/14

A add "Get Payoff History", "promoid" Response Parameter

2021/10/07

A add parameter on "Order Inquiry" and "Single Order Inquiry" API

Version sw.24.06.20/ gb.23.10.20 / sport.23.05.08