API Doc
Protocol
HTTP(s) are used to send and receive data. Data of type JSON is supported. Refer to the (http://www.json.org/)for more information of JSON.
In additional to the standard HTTP protocol, the following HTTP Headers are required:
| HTTP Header | Mandatory | Example | Description |
|---|---|---|---|
| API | Yes | authorize | Service Name |
| DataType | Yes | JSON | Data Type (JSON) |
| Digest | No | MD5(Data) | Message digest of the post data |
| Accept-Encoding | No | gzip, deflate | Identify whether or not support gzip compression of the returning data |
| Content-Encoding | No | gzip | Identify whether or not using gzip compression of the post data |
| Accept-Language | No | en_US | Set the default language of the returning data. |
Please use UTF-8 as the default encoding for all encode/ decode codes when convert text to/ from byte[].
Following codes shows thats way of using MD5:
public staticString digest(byte[] input) { byte[] digest = Digest.md5().compute( input ); return Hex.encodeHexString( digest ); }
Glossary
- Game Provider: e-games development team
- Merchant: The party that wants to integrate e-games to their website
- API Requestor :The party responsible for calling the function
- API provider: The party responsible for hosting the function
- Acct ID: Player’s unique identity code
API Interface Overview
During API call,the invoker will create the request message according to API specification, and post the data to the URL. API provider will send the response message after processing the request.
Usually the message will be defined as : xxx Response xxxx(xxxRequest request). Where xxx Request equates to API request message and xxx Response equates to API response message
All request messages will contain the following fields:
| Name | Data type | Example | Description |
|---|---|---|---|
| serialNo | Varchar(50) | 20120722224255982841 | Generate by merchant to indicate message sequence. |
| merchantCode | Varchar(10) | TEST | Unique code that identifies the Merchant. |
All response messages will contains the following fields:
| Name | Data Type | Example | Description |
|---|---|---|---|
| serialNo | Varchar(50) | 20120722224255982841 | Generated by merchant to indicate message sequence. |
| code | Integer | 0 | Processed result status |
| msg | Varchar(128) | success | Processed result description. |
| merchantCode | Varchar(10) | TEST | Unique code that identifies the Merchant. |
**Please refer to appendix 1 for the list of status codes that system returns. "appendix 1".
Warning: serialNo is the identity of the message, and one serialNo for one request or response. Please make sure the serialNo is unique.We advise use GUID (UUID), or the date+time+random string as the serialNo.
API Interface Definition
Game Lobby Page
Usage: Player enters Game Lobby Page after clicking provider's button found in merchant website.
Interface Name:Redirect To Game Lobby
API Provider:Game Provider
API Requestor:Merchant
| Name | Data type | Mandatory | Example | Description |
|---|---|---|---|---|
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Unique player ID |
| token | Varchar(128) | Yes | fe1a85adc54545d2963b661a22d09c9e | |
| language | Varchar(10) | Yes | en_US | Language to display game lobby in. |
| channel | Varchar(10) | Yes | Web | Playing through mobile or web |
| isLobby | boolean | Yes | true/false | To enable player enter provider's game lobby |
- For language, Refer to Appendix-2.
- Kindly refer 4.15 Domain List to get the latest domain for replacing the sampledomain.
- For DEMO may replace it with your merchant code.
Game Lobby Redirect URL and Parameters:
https://lobby.sampledomain.com/DEMO/auth/?acctId=TESTPLAYER1&language=zh_CN&token=fe1a85adc54545d2963b661a22d09c9e&channel=Web&isLobby=true

Game Page
Usage: Player enters E-games page by clicking Goto Game or Real Money button found in merchant website.
Interface Name:Redirect To Game
API Provider:Game Provider
API Requestor:Merchant
| Name | Data type | Mandatory | Example | Description |
|---|---|---|---|---|
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Unique player ID |
| token | Varchar(128) | Yes | fe1a85adc54545d2963b661a22d09c9e | |
| language | Varchar(10) | Yes | en_US | Language to display game lobby in. |
| game | Varchar(10) | Yes | sLongX3 | Game Code |
| brand | Varchar(10) | No | TEST123 | Custom Brand ID |
- For language, Refer to Appendix-2.
- For game, Refer to appendix 4."Appendix 4".
- Kindly refer 4.15 Domain List to get the latest domain for replacing the sampledomain.
- For DEMO may replace it with your merchant code.
Game Redirect URL and Parameters(real money):
https://lobby.sampledomain.com/DEMO/auth/?acctId=TESTPLAYER1&language=zh_CN&token=fe1a85adc54545d2963b661a22d09c9e&game=sLongX3
Game Redirect URL and Parameters(play for fun):
https://play.sampledomain.com/game?merchantCode=DEMO&game=sLongX3&language=zh_CN

User Authorization
Usage: Merchant will provide this request for Game provider to authenticate the session.
Interface Name: authorize
API Provider: Merchant
API Requestor: Game Provider
Request Message Definition for AuthorizeRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Unique player ID |
| token | Varchar(128) | Yes | fe1a85adc54545d2963b661a22d09c9e | |
| language | Varchar(10) | No | en_US | Language code |
| gameCode | Varchar(10) | No | sLongX3 | Game Code |
| forFun | boolean | No | false | Play for fun |
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| serialNo | Varchar(50) | Yes | 20120722224255982841 | Serial No |
Response message definition for AuthorizeResponse:
| Name | Data type | Mandatory | Example |
|---|---|---|---|
| acctInfo | AcctInfo | AcctInfo |
AcctInfo type definition:
| Name | Date type | Mandatory | Example | Description |
|---|---|---|---|---|
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Unique player ID |
| userName | Varchar(15) | No | TestPlayer | Player name |
| currency | Char(3) | Yes | CNY | Currency Code |
| balance | Decimal(12, 4) | Yes | 0 | Current player balance |
| siteId | Varchar(10) | No | SITE_CNY1 | Unique site ID for merchant |
Note :
- Refer to appendix 3 for a list of currency code that system support."Appendix 3".
- Refer to appendix 4 for a list of cryptocurrency code that system support."Appendix 4".
- Please skip the “balance” for the Authorize Response(Set to 0).
- Acct ID format: [a-zA-Z0-9_-@]{1,50}. Example: TestPlayer_1
Authorize (Request and response messages example)
JSON AuthorizeRequest:
{ "acctId": "TESTPLAYER1", "language": "en_US", "merchantCode": "TEST", "gameCode": "sLongX3", "forFun": "false", "token": "fe1a85adc54545d2963b661a22d09c9e", "serialNo": "20120722224255982841" }
JSON AuthorizeResponse:
{ "acctInfo": { "acctId": "TESTPLAYER1", "balance": 0, "userName": "TestPlayer", "currency": "CNY" "siteId": "SITE_CNY1" }, "merchantCode": "TEST", "msg": "success", "code": 0, "serialNo": "20120722224255982841" }
Example in Http client:


Query user information
Usage Scenario: Search for user information (Balance etc).
Interface Name: getAcctInfo
API Provider: Game Provider
API Requestor: Merchant
Request Message Definition for GetAcctInfoRequest:
| Name | Data type | Mandatory | Example | Description |
|---|---|---|---|---|
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Player uniqueId, leave ‘Empty’ to return all players. |
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| serialNo | Varchar(50) | Yes | 20120722224255982841 | Generated by merchant to indicate message sequence. |
Response message definition for GetAcctInfoResponse:
| Name | Data type | Mandatory | Example | Description |
|---|---|---|---|---|
| resultCount | Integer | Yes | 100 | Total record count |
| pageCount | Integer | Yes | 1 | Total page count |
| list | AcctInfo[] | Yes | AcctInfo |
AcctInfo type definition:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Unique player ID |
| userName | Varchar(50) | No | TestPlayer | Player name |
| currency | Char(3) | Yes | CNY | Currency Code |
| balance | Decimal(12, 4) | Yes | 0 | Current player balance |
GetAcctInfo (Request and response messages example) :
JSON GetAcctInfoRequest:
{ "acctId": "TESTPLAYER1", "merchantCode": "TEST", "serialNo": "20120802152140143938" }
JSON GetAcctInfoResponse:
{ "list": [{ "userName": "TestPlayer1", "currency": "CNY", "acctId": "TESTPLAYER1", "balance": 1000, "isOnline": 0 }], "resultCount": 1, "pageCount": 1, "merchantCode": "TEST", "msg": "success", "code": 0, "serialNo": "20120802152140143938" }
Example in Http client:


Query user balance (One Wallet)
Usage Scenario : Search for user balance.
Interface Name : getBalance
API Provider : Merchant
API Requestor : Game Provider
Request Message Definition for GetBalanceRequest:
| Name | Data type | Mandatory | Example | Remarks |
|---|---|---|---|---|
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Acct Id |
| token (For Staging Only) | Varchar(128) | Yes | TEST | |
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| serialNo | Varchar(50) | Yes | 20120722224255982841 | Generated by merchant to indicate message sequence. |
| currency | Char(3) | No | CNY | Currency Code |
Response message definition for GetBalanceResponse:
| Name | Data type | Mandatory | Example | Remarks |
|---|---|---|---|---|
| acctInfo | AcctInfo[] | Yes | AcctInfo | acctInfo |
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Unique player ID |
| userName | Varchar(15) | No | TestPlayer | Player name |
| currency | Char(3) | Yes | CNY | Currency Code |
| balance | Decimal(12, 4) | Yes | 0 | Current player balance |
| siteId | Varchar(10) | No | SITE_CNY1 | Unique site ID for merchant |
GetBalance (Request and response messages example) :
JSON GetBalanceRequest::
{ "acctId": "TESTPLAYER1", "token": "fe1a85adc54545d2963b661a22d09c9e", (For Staging Only) "merchantCode": "TEST", "serialNo": "20120802152140143938", "currency": "CNY" }
JSON GetBalanceResponse:
{ "acctInfo": { "userName": "TestPlayer1", "currency": "CNY", "acctId": "TESTPLAYER1", "balance": 1000 }, "merchantCode": "TEST", "msg": "success", "code": 0, "serialNo": "20120802152140143938" }
Transfer (One Wallet)
Usage Scenario :
- When player place bet, Game Provider will send the transfer request to merchant, and merchant will deduct the player balance.
- When Game Provider payout, Game Provider will send the transfer request to merchant, and merchant will increase the player balance.
- If the player lose the bet, Game Provider will send a transfer request stated payout = 0.
Interface Name : transfer
API Provider : Merchant
API Requestor : Game Provider
Request Message Definition for TransferRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| transferId | Varchar(50) | Yes | a3b0c9dd1ab041 | Unique transfer ID |
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Player ID |
| currency | Char(3) | Yes | USD | Currency code |
| amount | Decimal(20, 9) | Yes | 1000 | Transfer amount (Must greater than 0) |
| type | Int | Yes | 1 | 1 = Place bet 2 = Cancel Bet 4 = Payout 6 = Jackpot payout by merchant & game provider 7 = Jackpot payout by merchant (pending release) 8 = Jackpot payout by game provider (pending release) 9 = Tournament payout by merchant & game provider (pending release) 10 = Tournament payout by merchant (pending release) 11 = Tournament payout by game provider (pending release) 12 = Red packet payout by merchant & game provider (pending release) 13 = Red packet payout by merchant (pending release) 14 = Red packet payout by game provider (pending release) 20 = Bonus mission payout |
| channel | Varchar(10) | Yes | Web / Mobile, APP-i / APP-A / PC |
Ticket for mobile or web |
| gameCode | Varchar(10) | Yes | sLongX3 | Game Code |
| ticketId | Varchar(20) | No | 641482277 | |
| referenceId | Varchar(50) | No | a8ab9cc8f1a277de | Reference to transfer ID |
| specialGame | SpecialGame | SpecialGame Type | ||
| mainBetId (For Staging Only) | Varchar(50) | No | 1ab9bdca06c14811b24653468e60988 | Reference to the first place bet transfer Id |
| token (For Staging Only) | Varchar(128) | Yes | fe1a85adc54545d2963b661a22d09c9e |
SpecialGame type definition:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| type | Varchar(20) | No | Free | Differentiate the special game type. Example: bonus, free, bonusfree, freebonus. |
| count | Int | No | 10 | Total count on the special game |
| sequence | Int | No | 1 | Count on the completed special game |
**specialGame only will pass during type = 4, payout**
Note:
- If the transfer Id received is duplicated, merchant need to check the transfer status and reply the status to Game Provider. CANNOT process the transfer with same transfer id.
- If the transfer Id are duplicated or not found, Merchant should return us Error Code: 109. Except this error code, provider will continue resend you the reference Id.
- Check if transfer Id exist (for all type)
- Check if place bet transaction (reference Id) of this transaction exists or not (for type 2 and type 4 only)
- Check if place bet transaction (reference Id) of this transaction has another cancel bet or payout transaction (for type 2 or type 4 only)
Response message definition for TransferResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| transferId | Varchar(50) | Yes | a3b0c9dd1ab041 | Unique transfer Id. |
| merchantTxId | Varchar(20) | No | 498036704 | Merchant transaction id |
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Player ID |
| balance | Decimal(12, 4) | Yes | 1000 | Player balance after transfer |
Transfer (Request and response messages example):
JSON TransferRequest:
{ "acctId": "TESTPLAYER1", "transferId": "0ab9bdca06c14811b24653468e60988", "currency": "USD", "amount": 10, "type": 4, "ticketId": "234950357", "channel": "Web", "gameCode": "sLongX3", "merchantCode": "TEST", "serialNo": "20120722231413699735", "referenceId": "dfffdca06c14811b24653468e60", "mainBetId": "1ab9bdca06c14811b24653468e60988", (For Staging Only) "token": "fe1a85adc54545d2963b661a22d09c9e", (For Staging Only) "specialGame": { "type": "Free", "count": 10, "sequence": 1 } }


JSON TransferResponse:
{ "transferId": "0ab9bdca06c14811b24653468e609838", "merchantCode": "TEST", "merchantTxId": "20130813014319279367", "acctId": "TestPlayer1", "balance": "1050", "msg": "success", "code": 0, "serialNo": "20120722231413699735" }
Transfer Jackpot (Request and response messages example):
JSON TransferRequest:
{ "acctId": "TESTPLAYER1", "transferId": "0ab9bdca06c14811b24653468e60988", "currency": "USD", "amount": 10, "type": 6, "ticketId": "234950357", "channel": "Web", "gameCode": "sRoma", "merchantCode": "TEST", "serialNo": "20210917171413632534" "referenceId": "dfffdca06c14811b24653468e60", }
JSON TransferResponse:
{ "transferId": "0ab9bdca06c14811b24653468e60988", "merchantCode": "TEST", "merchantTxId": "20210917014319279367", "acctId": "TestPlayer1", "balance": "1250", "msg": "success", "code": 0, "serialNo": "20210917171413632534" }
Transfer History (One Wallet)
Usage Scenario :
- Search for transfer history.
Interface Name : transferHistory
API Provider : Game Provider
API Requestor : Merchant
Request Message Definition for TransferHistoryRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| beginDate | char(15) | Yes | 20120720T230043 | Start date range to search. Format yyyymmdd’T’24hhmmss |
| endDate | char(15) | Yes | 20120722T230043 | End date range to search. Format yyyymmdd’T’24hhmmss |
| pageIndex | Integer | Yes | 1 | Page number. |
| merchantCode | Varchar(20) | Yes | TEST | Unique code that identifies the Merchant. |
Response message definition for TransferHistoryResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| resultCount | Integer | Yes | 100 | Total record count. |
| pageCount | Integer | Yes | 1 | Total page count. |
| merchantCode | Varchar(20) | Yes | TEST | Unique code that identifies the Merchant. |
| Code | Integer | Yes | 1 | Processed result status. |
| msg | Varchar(255) | Yes | Success | Processed result description. |
| serialNo | Varchar(50) | Yes | 20210312T1705371679 | Generated by merchant to indicate message sequence. |
| list | TransferInfo[] | Yes | TransferInfo array. |
TransferInfo definition:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| transferId | Varchar(50) | Yes | a3b0c9dd1ab041 | Unique transfer Id. |
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Player Id. |
| ticketId | Varchar(20) | Yes | 641482277 | |
| transferTime | Char(15) | Yes | 20120722T225043 | Transfer Time. |
| gameCode | Varchar(10) | Yes | sLongX3 | Game code. |
| type | Int | Yes | 1 | 1 = Place bet 2 = Cancel Bet 4 = Payout 6 = Jackpot payout by merchant & game provider 7 = Jackpot payout by merchant 8 = Jackpot payout by game provider 9 = Tournament payout by merchant & game provider 10 = Tournament payout by merchant 11 = Tournament payout by game provider 12 = Red packet payout by merchant & game provider 13 = Red packet payout by merchant 14 = Red packet payout by game provider |
| amount | Decimal(20,4) | Yes | 1000 | TransferAmount. |
| status | Int | Yes | 0 | Transfer status. |
| channel | Varchar(10) | Yes | Web/Mobile, APP-i/APP-A/PC |
Ticket from mobile or web. |
TransferHistory (Request and response messages example):
JSON TransferHistoryRequest:
{ "beginDate": "20120721T175139", "endDate": "20120723T174139", "pageIndex": 1, "merchantCode": "TEST" }
JSON TransferHistoryResponse:
{ "list": [{ "transferId": "667706462", "acctId": "TEST10001", "ticketId": "749084635", "type": 1, "amount": 20, "transferTime": "20130908T151100", "gameCode": "sLongX3", "status": 0, "channel": "Web", }], "resultCount": 1, "pageCount": 1, "merchantCode": "TEST", "code": 0, "msg": "success", "serialNo": "20120726214956563472" }
TransferHistory Jackpot (Request and response messages example):
JSON TransferHistoryRequest:
{ "beginDate": "20210917T175139", "endDate": "20210920T174139", "pageIndex": 1, "merchantCode": "TEST" }
JSON TransferHistoryResponse:
{ "list": [{ "transferId": "667706462", "acctId": "TEST10001", "ticketId": "749084635", "type": 6, "amount": 1250, "transferTime": "20210918T151100", "gameCode": "sRoma", "status": 0, "channel": "Web", }], "resultCount": 1, "pageCount": 1, "merchantCode": "TEST", "code": 0, "msg": "success", "serialNo": "20210917171413632534" }
Deposit (Balance Transfer)
Usage Scenario :When merchant wishes to transfer money to Game provider wallet for a particular member.
Interface Name: deposit
API Provider: Game Provider
API Requestor: Merchant
Request Message Definition for DepositRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Unique player ID |
| currency | Char(3) | Yes | CNY | Currency Code |
| amount | Decimal(12, 4) | Yes | 1000 | Amount to be added to player balance. |
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| serialNo | Varchar(50) | Yes | 20120722224255982841 | Generated by merchant to indicate message sequence. |
Response message definition for DepositResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| transactionId | Varchar(20) | Yes | 498036704 | System generated unique id. |
| beforeBalance | Decimal(12, 4) | Yes | 1000.0000 | Player’s before balance |
| afterBalance | Decimal(12, 4) | Yes | 1500.0000 | Player’s after balance |
Note:
- Serial No is the identity of the message, and one Serial No for one request or response. Please make sure the Serial No is unique for deposit and withdraw message.
- We advise to use GUID (UUID), or the date+time+random string as the Serial No
- Acct ID format: [a-zA-Z0-9_-@]{1,50}. Example: TestPlayer_1
Deposit (Request and response messages example):
JSON DepositRequest:
{ "acctId": "TESTPLAYER1", "amount": 200, "currency": "CNY", "merchantCode": "TEST", "serialNo": "20120722231413699735" }
JSON DepositResponse:
{ "newPlayer": false, "beforeBalance": 1000.0000, "afterBalance": 1500.0000, "transactionId": "500648408", "merchantCode": "TEST", "msg": "success", "code": 0, "serialNo": "20120722231413699735" }
Example in Http client:

Withdrawal
Usage Scenario: When merchant wishes to transfer money from Game provider wallet for a particular member.
Interface Name: withdraw
API Provider: Game Provider
API Requestor: Merchant
Request Message Definition for WithdrawRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Unique player ID |
| currency | Char(3) | Yes | CNY | Currency Code |
| amount | Decimal(12, 4) | Yes | 1000 | Amount to be reduced from player balance. |
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| serialNo | Varchar(50) | Yes | 20120722224255982841 | Generated by merchant to indicate message sequence. |
Response message definition for WithdrawResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| transactionId | Varchar(20) | Yes | 498036704 | System generated unique id. |
| beforeBalance | Decimal(12, 4) | Yes | 1500.0000 | Player’s before balance |
| afterBalance | Decimal(12, 4) | Yes | 1000.0000 | Player’s latest balance |
Note:
- Serial No is the identity of the message, and one Serial No for one request or response. Please make sure the Serial No is unique for deposit and withdraw message
- We advise to use GUID (UUID), or the date+time+random string as the Serial No.
- Acct ID format: [a-zA-Z0-9_-@]{1,50}. Example: TestPlayer_1
Withdraw (Request and response messages example):
JSON WithdrawRequest:
{ "acctId": "TESTPLAYER1", "amount": 200, "currency": "CNY", "merchantCode": "TEST", "serialNo": "20120722231413699735" }
JSON WithdrawResponse:
{ "newPlayer": false, "beforeBalance": 1500.0000, "afterBalance": 1000.0000, "transactionId": "500648408", "merchantCode": "TEST", "msg": "success", "code": 0, "serialNo": "20120722231413699735" }
Example in Http client:

Check Transfer
Usage Scenario :
- Search for transfer history.
Interface Name : checkTransfer
API Provider : Game Provider
API Requestor : Merchant
Request Message Definition for CheckTransferRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| merchantCode | Varchar(30) | Yes | TEST | Unique code that identifies the Merchant. |
| serialNo | Varchar(200) | Yes | 2020012004074 | Generate by merchant to indicate message sequence. |
Response message definition for CheckTransferResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| status | Integer | Yes | 1 | Transfer status. 0 = Unsuccesful Transfer 1 = Successful Transfer |
| currency | Char(3) | Yes | PTS | Currency code. |
| acctId | Varchar(70) | Yes | TESTPLAYER1@TEST | Unique player ID. |
| valueBefore | Decimal(20,6) | Yes | 199992.000000 | Before transferred value. |
| valueChange | Decimal(20,6) | Yes | 1000.000000 | Transferred amount requested by player. |
| valueAfter | Decimal(20,6) | Yes | 200992.000000 | After transferred value. |
| merchantCode | Varchar(30) | Yes | TEST | Unique code that identifies the Merchant. |
| code | Integer | Yes | 0 | Processed result status. |
| msg | Varchar(255) | Yes | Success | Processed result description. |
| serialNo | Varchar(200) | Yes | 2020012004074 | Generate by merchant to indicate message sequence. |
CheckTransfer (Request and response messages example):
JSON CheckTransferRequest:
{ "merchantCode": "TEST", "serialNo": "2020012004074" }
JSON CheckTransferResponse:
{ "status": 1, "currency": "PTS", "acctId": "TESTPLAYER1@TEST", "valueBefore": 199992.000000, "valueChange": "1000.000000", "valueAfter": 200992.000000, "merchantCode": "TEST", "code": 0, "msg": "Success", "serialNo": "2020012004074" }
Example in Http client:


Query Player Betting History
Usage Scenario: Search for bet history
Interface Name: getBetHistory
API Provider: Game Provider
API Requestor: Merchant
Note :
- Merchant be advised to limit the search date by 2 hours per batch
- Nextspin recommend to have an interval of 3 to 5 seconds between batches
Request Message Definition for GetBetHistoryRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| beginDate | Char(15) | Yes | 20120720T230043 | Start date range to search. Format must be in yyyymmdd’T’24hhmmss |
| endDate | Char(15) | Yes | 20120720T230043 | End date range to search. Format must be in yyyymmdd’T’24hhmmss |
| pageIndex | Integer | Yes | 1 | Page number |
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| serialNo | Varchar(50) | Yes | 20120722224255982841 | Generated by merchant to indicate message sequence. |
Response message definition for GetBetHistoryResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| resultCount | Integer | Yes | 100 | Total record count |
| pageCount | Integer | Yes | 1 | Total page count |
| list | BetInfo[] | Yes | BetInfo Array |
BetInfo definition:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| ticketId | Long | Yes | 641482277 | Ticket number. |
| acctId | Varchar(50) | Yes | TESTPLAYER1 | Player’s unique Id |
| ticketTime | Char(15) | Yes | 20120722T225417 | Date time when ticket is bet |
| categoryId | Varchar(10) | Yes | SM or TB or AD or BN | Game category |
| gameCode | Varchar(10) | Yes | sLongX3 | Game Code |
| currency | Char(3) | Yes | CNY | Currency ISO code |
| betAmount | Decimal(18, 6) | Yes | 20 | Bet Amount |
| result | Varchar(1024) | No | 23415 | Result |
| winLoss | Decimal(18, 6) | Yes | -20 | Member win loss. |
| jackpotAmount | Decimal(18, 6) | Yes | 0 | |
| betIp | Varchar(20) | Yes | 8.8.8.8 | Player's IP Address |
| luckyDrawId | Long | No | 10 | |
| completed | boolean | Yes | True | Game is completed flag |
| roundId | Long | Yes | 1823 | Game Round ID |
| sequence | Integer | Yes | 0, 1, 2, 3 | 0 = No jackpot win |
| channel | Varchar(10) | Yes | Mobile/Web | Ticket for mobile or web |
| balance | Decimal(18, 6) | Yes | 234.000000 | Previous Balance |
| jpWin | Decimal(18, 6) | Yes | -100.000000 | Jackpot Win |
| referenceId | Varchar(50) | Yes | 4445780193 | Reference to transfer ID (Only for one wallet) |
| isCascade | boolean | Yes | true/false | Check if gets any cascade |
| isBuyFeature | Varchar(5) | Yes | true/false/NA | Check if free spin is from buy feature(NA means don't have buy feature) |
More details Please refer to appendix-4"Appendix-4".
GetBetHistory (Request and response messages example):
JSON GetBetHistoryRequest:
{ "beginDate": "20120721T175139", "endDate": "20120723T174139", "pageIndex": 1, "merchantCode": "TEST", "serialNo": "20120723175139440637" }
JSON GetBetHistoryResponse:
{ "list": [{ "ticketId": 633161396, "acctId": "Test10001", "categoryId": "SM", "gameCode": "sLongX3", "ticketTime": "20130908T161044", "betIp": "8.8.8.8", "betAmount": 20, "winLoss": 30, "currency": "CNY", "result": "23412", "jackpotAmount": 1.5, "luckyDrawId": 0, "completed": True, "roundId": 1879, "sequence": 0, "channel": web, "balance": 234.000000, "jpWin": -100.000000 "referenceId": "" "isCascade": true "isBuyFeature": false }], "resultCount": 1, "pageCount": 1, "merchantCode": "TEST", "msg": "success", "code": 0, "serialNo": "20120723175139440637" }
JSON Jackpot GetBetHistoryResponse:
{ "channel": Web, "result": "{\"ticketId\":\"31\",\"jpCategory\":\"1\",\"jpCode\":\"Roma\"}", "currency": "XXX", "acctId": "TestPlayer488", "balance": 20000024.4, "jpWin": 0.0, "gameCode": "sRoma", "sequence": 0, "referenceId": "", "ticketId": 35, "categoryId":"SM", "luckyDrawId": 0, "roundId": 0, "betAmount": 0.0, "completed": true, "jackpotAmount": 0.0, "ticketTime": "20221103T160952", "betIp": "xxx.xxx.xxx.xxx" }
Example in Http client:


Query Bet Detail
Usage: Merchant may use the link to generate bet details without logon in BO.
Interface Name: Query Bet Detail
API Provider:Game Provider
Direct link for query bet detail:
https://gameapi.backoffice-domain.com/betDetails?merchantId=MERCHANT_CODE&token=MD5_HASH&lang=en&ticketId=TICKET_ID
- For secretKey, merchant may request from support agent.
- Use MD5 hash "ticketId|secretKey" for the token parameter.
Force Logout for Online Members
Usage Scenario: Kick selected user or all users out of E-games
Interface Name: kickAcct
API Provider: Game Provider
API Requestor: Merchant
Request Message Definition for KickAcctRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| acctId | Varchar(50) | No | TESTPLAYER1 | Player ID, Leave empty to force all “online” users to log out of E-games/Lottery. |
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| serialNo | Varchar(50) | Yes | 20120722224255982841 | Generated by merchant to indicate message sequence. |
Response message definition for KickAcctResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| List | String[] | Yes | [TESTPLAYER1] | List of members that have been kicked out. |
KickAcct (Request and response messages example):
JSON KickAcctRequest:
{ "acctId": "Test10001", "merchantCode": "TEST", "serialNo": "20130430164644935780" }
JSON KickAcctResponse:
{ "list": ["Test10001"], "merchantCode": "TEST", "code": 0, "msg": "success", "serialNo": "20130430164644935780" }
Example in Http client:


Retrieve Game List
Usage Scenario: Provide a list of available games with details
Interface Name: getGames
API Provider: Game Provider
API Requestor: Merchant
Request Message Definition of GetGamesRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| merchantCode | Varchar(50) | Yes | TEST | Merchant Code |
| serialNo | Varchar(50) | Yes | 20120722224255982841 | Generated by merchant to indicate message sequence |
Response message definition for GetGamesResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| games | Game[] | Yes | Game |
Game type definition:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| gameCode | Varchar(50) | Yes | sLongX3 | Game code |
| gameName | Varchar(50) | Yes | Long Long Long | Game name |
| cnName | Varchar(50) | Yes | 龙龙龙 | Game name(CN) |
| line | Integer | Yes | 1 | Game line |
| category | Varchar(50) | Yes | SM | Game category |
GetGames (Request and response messages example):
JSON GetGamesRequest:
{ "merchantCode": "TEST", "serialNo": "20130430164644935780" }
JSON GetGamesResponse:
{ "games": [{ "gameCode": "sLongX3", "gameName": "Long Long Long", "cnName": "龙龙龙", "line": 1, "category": "SM" }] }
Example in Http client:


Retrieve Domain List
Usage Scenario: Provide a list of available domains
Interface Name: getDomainList
API Provider: Game Provider
API Requestor: Merchant
Request Message Definition of GetDomainListRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| merchantCode | Varchar(50) | Yes | TEST | Merchant Code |
| serialNo | Varchar(50) | Yes | 20210920224255982841 | Generated by merchant to indicate message sequence |
Response message definition for GetDomainListResponse:
| Name | Date Type | Mandatory | Example | Description |
|---|---|---|---|---|
| domains | String[] | Yes | ["https://lobby.sample.com"] | Domain |
| merchantCode | Varchar(50) | Yes | TEST | Merchant Code |
| code | Integer | Yes | 0 | Processed result status |
| msg | Varchar(128) | Yes | success | Processed result description. |
| serialNo | Varchar(50) | Yes | 20210920224255982841 | Generated by merchant to indicate message sequence |
GetDomainList (Request and response messages example):
JSON GetDomainListRequest:
{ "merchantCode": "TEST", "serialNo": "20210920164644935780" }
JSON GetDomainListResponse:
{ "domains": [ "https://lobby1.sample.com", "https://lobby2.sample.com", "https://lobby3.sample.com" ] "merchantCode": "TEST" "code": 0 "msg": "Success" "serialNo": "20210920224255982841" }
Example in Http client:


Retrieve Profit Loss List
Usage Scenario: Retrieve profit loss details
Interface Name: getProfitLoss
API Provider: Game Provider
API Requestor: Merchant
Note :
- Merchant be advised to limit the search date within a month
Request Message Definition of GetProfitLossRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| beginDate | Char(15) | Yes | 20220901T000000 | Start date range to search. Format must be in yyyymmdd’T’24hhmmss |
| endDate | Char(15) | Yes | 20220902T000000 | End date range to search. Format must be in yyyymmdd’T’24hhmmss |
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| isAll | boolean | No | true / false | Show all sub-merchants under its merchant |
| currency | Varchar(3) | No | CNY | Currency ISO Code |
| pageIndex | Integer | Yes | 1 | Page number |
Response message definition for GetProfitLossResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| resultCount | Integer | Yes | 100 | Total record count |
| pageCount | Integer | Yes | 1 | Total page count |
| list | ProfitLossInfo | Yes | ProfitLoss information |
ProfitLossInfo definition:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| currency | Varchar(3) | Yes | CNY | Currency ISO Code |
| betCount | Integer | Yes | 149612 | Total Page Number |
| betAmount | Decimal(18,6) | Yes | 285725.320000 | Bet Amount |
| validBetAmount | Decimal(18,6) | Yes | 285725.320000 | Valid Bet Amount |
| totalWL | Decimal(18,6) | Yes | -7271.780000 | Total Win Loss |
| jpContributeAmt | Decimal(18, 6) | Yes | 0.000000 | Jackpot Contribute Amount |
| jpAmt | Decimal(18, 6) | Yes | 0.000000 | Jackpot Amount |
| jpTotalWL | Decimal(18, 6) | Yes | -7271.779999 | Jackpot Total Win Loss |
| bonusAmt | Decimal(18, 6) | Yes | 0.000000 | Bonus Amount |
| bonusBearAmt | Decimal(18, 6) | Yes | 0 | Bonus Bear Amount |
GetProfitLoss (Request and response messages example):
JSON GetProfitLossRequest:
{ "beginDate": "20220901T000000", "endDate": "20220902T000000", "merchantCode": "TEST", "isAll": true, "currency": "CNY", "pageIndex": 1 }
JSON GetProfitLossResponse:
{ "list": [{ "merchantCode": "TEST", "currency": "CNY", "betCount": 149612, "betAmount": 285725.32, "validBetAmount": 285725.32, "totalWL": -7271.78, "jpContributeAmt": 0.0, "jpAmt": 0.000000, "jpTotalWL": -7271.779999, "bonusAmt": 0.0, "bonusBearAmt": 0 }], "pageCount": 1, "resultCount": 1, "merchantCode": "TEST", "code": 0, "msg": "success", "serialNo": "20230419T1526329782" }
Example in Http client:


Retrieve Unfinished Game List
Usage Scenario: Retrieve unfinished game details
Interface Name: getUnfinishedGameLog
API Provider: Game Provider
API Requestor: Merchant
Request Message Definition of GetUnfinishedGameLogRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| beginDate | Char(15) | Yes | 20220929T000000 | Start date range to search. Format must be in yyyymmdd’T’24hhmmss |
| endDate | Char(15) | Yes | 20221001T000000 | End date range to search. Format must be in yyyymmdd’T’24hhmmss |
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| isAll | boolean | No | true / false | Show all sub-merchants under its merchant |
| acctId | Varchar(50) | No | TestPlayer678 | Unique Player ID |
| gameCode | Varchar(10) | No | sShkThaiX2 | Game Code |
| pageIndex | Integer | Yes | 1 | Page number |
Response message definition for GetUnfinishedGameLogResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| resultCount | Integer | Yes | 100 | Total record count |
| pageCount | Integer | Yes | 1 | Total page count |
| list | UnfinishGameInfo[] | Yes | UnfinishedGameInfo |
UnfinishedGameInfo definition:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| acctId | Varchar(50) | Yes | TESTPLAYER678@TEST | Unique Player ID |
| loginId | Varchar(50) | Yes | TestPlayer678 | Unique Player ID |
| gameCode | Varchar(10) | Yes | sShkThaiX2 | Game Code |
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| unfinishedBonus | Integer | Yes | 0 | Amount of Unfinished Bonus Game |
| unfinishedFree | Integer | Yes | 12 | Amount of Unfinished Free Spin |
| unfinishedFreeMultiplyer | Integer | Yes | 1 | Amount of Unfinished Free Multiplyer |
| createDate | DateTime | Yes | 20220929T080000 | Generated date of Player unfinished game |
GetUnfinishedGameLog (Request and response messages example):
JSON GetUnfinishedGameLogRequest:
{ "beginDate": "20220929T000000", "endDate": "20221001T000000", "merchantCode": "TEST", "isAll": true, "acctId": "TestPlayer678", "gameCode": "sShkThaiX2", "pageIndex": 1 }
JSON GetUnfinishedGameLogResponse:
{ "list": [{ "acctId": "TESTPLAYER678@TEST", "loginId": "TestPlayer678", "gameCode": "sShkThaiX2", "merchantCode": "TEST", "unfinishedBonus": 0, "unfinishedFree": 12, "unfinishedFreeMultiplyer": 1, "createDate": "20220929T080000" }], "pageCount": 1, "resultCount": 1, "merchantCode": "TEST", "code": 0, "msg": "success, " "serialNo": "20230419T2105028176" }
Example in Http client:


Query Online Player Info
Usage Scenario: Retrieve the total number of online players currently active on the platform
Interface Name: getOnlinePlayerInfo
API Provider: Game Provider
API Requestor: Merchant
Request Message Definition of GetOnlinePlayerInfoRequest:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| merchantCode | Varchar(10) | Yes | TEST | Merchant Code |
| serialNo | Varchar(50) | Yes | 20210920224255982841 | Generated by merchant to indicate message sequence |
Response message definition for GetOnlinePlayerInfoResponse:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| resultCount | Integer | Yes | 100 | Total record count |
| pageCount | Integer | Yes | 1 | Total page count |
| list | OnlinePlayerInfo[] | Yes | OnlinePlayerInfo |
OnlinePlayerInfo definition:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| userName | Varchar(15) | Yes | TESTPLAYER678 | Player name |
| currency | Char(3) | Yes | CNY | Currency code |
| acctId | Varchar(50) | Yes | TESTPLAYER678 | Unique Player ID |
GetOnlinePlayerInfo (Request and response messages example):
JSON GetOnlinePlayerInfoRequest:
{ "merchantCode": "TEST", "serialNo": "1111-1111-1111" }
JSON GetOnlinePlayerInfoResponse:
{ { "serialNo": "1111-1111-1111", "code": 0, "msg": "Success", "merchantCode": "TEST", "resultCount": 1, "pageCount": 1, "list": [ { "userName": "TESTPLAYER901", "currency": "USD", "acctId": "TESTPLAYER901" }
Example in Http client:


API Tournament Definition
The domain for the tournament is same as the available domain. https://tournament.sampledomain.com
The staging for the tournament. https://tournament_staging.sampledomain.com
The production for the tournament. https://tournament.sampledomain.com
Retrieve Tournament List
Usage Scenario: Get list of available tournaments according to merchant
Endpoint Name: /tournament/get
API Provider: Game Tournament Domain
API Requestor: Merchant
Method: POST
Request Message Definition of Tournament List:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| merchant | Varchar(10) | Yes | TEST | Unique code that identifies the Merchant. |
| language | Varchar(10) | Yes | en_US | Language to display game lobby in. |
| game | Varchar(10) | No | sLongX3 | game code |
Response message definition for Tournament List:
| Name | Date Type | Mandatory | Example | Description |
|---|---|---|---|---|
| isShow | boolean | Yes | true | Validation |
| info | String[] | No | "id": "1000", | Show list of information |
| id | Varchar(10) | Yes | 1000 | Account ID |
| name | Varchar(255) | Yes | Songkran Festival Tournament | Event Name |
| startDate | Vachar(24) | Yes | 2023-04-01T00:00:00.000Z | Start date |
| endDate | Vachar(24) | Yes | 2023-04-14T23:59:59.000Z | End date |
| desc | Varchar(1024) | Yes | Spin & Soak up the Big Wins | Description |
Tournament List (Request and response messages example):
JSON Request:
{ "merchant": "TEST", "language": "en_US", "game": "sCandyXmas" }
JSON Success Response:
{ "isShow": true, "info": [ { "id": "1000", "name": "Songkran Festival Tournament", "startDate": "2023-04-01T00:00:00.000Z", "endDate": "2023-04-14T23:59:59.000Z", "desc": "Spin & Soak up the Big Wins" } ] }
JSON Info Not Available Response:
{ "isShow": false, }
Retrieve Tournament Prize List
Usage Scenario: Get prize list of available tournaments according to merchant and currency
Endpoint Name: /tournament/prize/get
API Provider: Game Tournament Domain
API Requestor: Merchant
Method: POST
Request Message Definition of Tournament Prize List:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| tid | Varchar(10) | Yes | 1000 | Tournament ID |
| merchant | Varchar(10) | Yes | TEST | Unique code that identifies the Merchant. |
| currency | Varchar(3) | Yes | USD | Currency code |
Response message definition for Tournament Prize List:
| Name | Date Type | Mandatory | Example | Description |
|---|---|---|---|---|
| rank | Varchar(10) | Yes | 1 | Prize position |
| prize | Varchar(50) | Yes | USD$ 500 | Player Prize |
Tournament Prize List (Request and response messages example):
JSON Request:
{ "tid": "1000", "merchant": "TEST", "currency": "USD" }
JSON Response:
[ { "rank": "1", "prize": "USD$ 500" }, { "rank": "2", "prize": "USD$ 300" }, { "rank": "3", "prize": "USD$ 300" }, { "rank": "4", "prize": "USD$ 200" }, { "rank": "5-10", "prize": "USD$ 100" } ]
Retrieve Tournament Rank List
Usage Scenario: Get rank list of tournaments
Endpoint Name: /tournament/rank/get
API Provider: Game Tournament Domain
API Requestor: Merchant
Method: POST
Request Message Definition of Tournament Rank List:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| tid | Varchar(10) | Yes | 1000 | Tournament ID |
| merchant | Varchar(10) | Yes | TEST | Unique code that identifies the Merchant. |
| game | Varchar(10) | No | sRoma | game code |
Response message definition for Tournament Rank List:
| Name | Date Type | Mandatory | Example | Description |
|---|---|---|---|---|
| rank | Integer | Yes | 1 | Prize position |
| playerId | Varchar(10) | Yes | TESTPLAYERID | Player ID |
| score | Decimal(18,6) | Yes | 3809.523809 | Player Score |
Tournament Rank List (Request and response messages example):
JSON Request:
{ "tid": "1000", "merchant": "TEST", "game": "sRoma" }
JSON Response:
[ { "rank": "1", "playerId": "TESTPLAYER1", "score": "771402.857142" }, { "rank": "2", "playerId": "TESTPLAYER2", "score": 3809.523809 }, { "rank": "3", "playerId": "TESTPLAYER3", "score": 1000 }, { "rank": "4", "playerId": "TESTPLAYER4", "score": 12.619047 }, { "rank": "5", "playerId": "TESTPLAYER5", "score": 1.428571 } ]
Retrieve Tournament Player's Rank
Usage Scenario: Get specific player's rank in tournaments
Endpoint Name: /tournament/rank/player/get
API Provider: Game Tournament Domain
API Requestor: Merchant
Method: POST
Request Message Definition of Tournament Player's Rank:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| tid | Varchar(10) | Yes | 1000 | Tournament ID |
| merchant | Varchar(10) | Yes | TEST | Unique code that identifies the Merchant. |
| playerId | Varchar(50) | Yes | TESTPLAYER1 | Player ID |
| game | Varchar(10) | No | sRoma | game code |
Response message definition for Tournament Player's Rank:
| Name | Date Type | Mandatory | Example | Description |
|---|---|---|---|---|
| score | Decimal(18,6) | Yes | 3809.523809 | Player Score |
| bet | Decimal(18,6) | Yes | 16000 | Player Bet |
| rank | Integer | Yes | 2 | Player Rank |
Tournament Player's Rank (Request and response messages example):
JSON Request:
{ "tid": "1000", "merchant": "TEST", "playerId": "TESTPLAYER1", "game": "sRoma" }
JSON Response:
{ "score": 3809.523809, "bet": 16000, "rank": 2 }
Retrieve Tournament Player's Bet Details
Usage Scenario: Get player's details according to merchant and tournament
Endpoint Name: /tournament/details/get
API Provider: Game Tournament Domain
API Requestor: Merchant
Method: POST
Request Message Definition of Tournament Player's Bet Details:
| Name | Data Type | Mandatory | Example | Description |
|---|---|---|---|---|
| tid | Varchar(10) | Yes | 1000 | Tournament ID |
| merchant | Varchar(10) | Yes | TEST | Unique code that identifies the Merchant. |
| playerId | Varchar(50) | No | TESTPLAYER1 | Player ID |
| beginDate | char(24) | No | 2022-09-01 00:00:00 | Start date range to search. Format yyyy-MM-dd HH:mm:ss |
| endDate | char(24) | No | 2022-09-10 00:00:00 | End date range to search. Format yyyy-MM-dd HH:mm:ss |
| pageNo | Integer | No | 1 | Page number |
| pageSize | Integer | No | 10 | Total record |
Response message definition for Tournament Player's Bet Details:
| Name | Date Type | Mandatory | Example | Description |
|---|---|---|---|---|
| merchantCode | Varchar(10) | Yes | TEST | Unique code that identifies the Merchant. |
| playerId | Varchar(50) | Yes | TESTPLAYER1 | Player ID |
| currency | Varchar(6) | Yes | MYR | Currency |
| betCount | Integer | Yes | 19856 | Total page number |
| ttlBet | Decimal(18,6) | Yes | 3239892 | Total Bet |
| wlAmt | Decimal(18,6) | Yes | -3131821.12 | winLoss Amount |
| score | Decimal(18,6) | Yes | 771402.857142 | Player Score |
| rank | Integer | Yes | 1 | Player Rank |
Tournament Player's Bet Details (Request and response messages example):
JSON Request:
{ "tid": "1000", "merchant": "TEST", "playerId": "TESTPLAYER1", "beginDate": "2022-09-01 00:00:00", "endDate": "2022-09-10 00:00:00", "currency": "USD", "pageNo": 1, "pageSize": 10 }
JSON Response:
[ { "merchant": "TEST", "playerId": "TESTPLAYER1", "currency": "USD", "betCount": 19856, "ttlBet": 3239892, "wlAmt": -3131821.12, "score": -771402.857142, "rank": 1 }, { "merchant": "TEST", "playerId": "TESTPLAYER2", "currency": "MYR", "betCount": 18, "ttlBet": 16000, "wlAmt": -6152, "score": 3809.523809, "rank": 2 }, { "merchant": "TEST", "playerId": "TESTPLAYER3", "currency": "MYR", "betCount": 44, "ttlBet": 4200, "wlAmt": 28028, "score": 1000, "rank": 3 } ]
Retrieve Tournament Player's Result
Usage Scenario: Get player's result according to merchant and tournament
Endpoint Name: /tournament/results/get
API Provider: Game Tournament Domain
API Requestor: Merchant
Method: POST
Request Message Definition of Tournament Player's Result Details:
| Name | DataType | Mandatory | Example | Description |
|---|---|---|---|---|
| tid | Varchar(10) | Yes | 1000 | Tournament ID |
| merchant | Varchar(10) | Yes | TEST | Unique code that identifies the Merchant |
| currency | Varchar(3) | No | USD | Currency code of Prize |
Response message definition for Tournament Player's Result Details:
| Name | DataType | Mandatory | Example | Description |
|---|---|---|---|---|
| merchant | Varchar(10) | Yes | TEST | Unique code that identifies the Merchant |
| playerId | Varchar(10) | Yes | TESTPLAYERID | Player ID |
| currency | Varchar(3) | Yes | USD | Currency code of Player |
| score | Varchar(50) | Yes | USD$ 500 | Player Score |
| rank | Varchar(10) | Yes | 1 | Prize position |
| prize | Varchar(50) | Yes | USD$ 500 | Player's Prize |
Tournament Player's Result(Request and response messages example):
JSON Request:
{ "tid": "1000", "merchant": "TEST", "currency": "USD" }
JSON Response:
[ { "merchantCode": "TEST", "playerId": "TESTPLAYER431", "currency": "USD", "ttlBet": 6795069, "score": 6795069, "rank": 1 "prize": USD$ 2,118 } ]
Tournament Page
Usage: Tournament page.
Endpoint Name:/tournament
API Provider: Game Tournament Domain
API Requestor:Merchant
| Name | Data type | Mandatory | Example | Description |
|---|---|---|---|---|
| merchant | Varchar(10) | Yes | TEST | Unique code that identifies the Merchant. |
| language | Varchar(10) | Yes | en_US | Language to display game lobby in. |
| currency | char(3) | Yes | MYR | Currency |
| playerId | Varchar(50) | No | TESTPLAYER1 | Unique Player ID |
- For language, Refer to Appendix-2.
- Kindly refer 4.15 Domain List to get the latest domain.
Tournament Page Redirect URL and Parameters:
https://tournament.sampledomain.com/tournament?merchant=TEST&lang=en_US&cy=USD&tid=1000
Appendix 1 Response Code Definition
| code | Chinese caption | English caption | Description |
|---|---|---|---|
| 0 | 成功 | Success | Interface call is successful. |
| 1 | 系统错误 | System Error | Internal system error at Game provider. Example: Program bug or database connection failed. |
| 2 | 非法请求 | Invalid Request | Request is not support by Game provider. |
| 3 | 服务暂时不可用 | Service Inaccessible | Game provider API down. |
| 100 | 请求超时 | Request Timeout | |
| 101 | 用户调用次数超限 | Call Limited | |
| 104 | 请求被禁止 | Request Forbidden | |
| 105 | 缺少必要的参数 | Missing Parameters | |
| 106 | 非法的参数 | Invalid Parameters | |
| 107 | 批次号重复 | Duplicated Serial No | |
| 108 | Apk 版本及 Pc 版本商家登录 Key 错误 | Merchant Key Error | |
| 109 | 重复Transfer | Duplicate Transfer | |
| 110 | 批次号不存在 | Record Id Not Found | |
| 10113 | Merchant 不存在 | Merchant Not Found | |
| 112 | Api 调用次数超限 | Api Call Limited | Exceed the limit of calling API |
| 113 | Acct Id 不正确 | Invalid Acct Id | Acct ID incorrect format |
| 50100 | 用户不存在 | Acct Not Found | |
| 50101 | 帐号未激活 | Acct Inactive | |
| 50102 | 帐号已锁 | Acct Locked | |
| 50103 | 帐号 Suspend | Acct Suspend | |
| 50104 | Token 验证失败 | Token Validation Failed | |
| 50110 | 帐号余额不足 | Insufficient Balance | |
| 50111 | 超过帐号交易限制 | Exceed Max Amount | |
| 50112 | 币种不支持 | Currency Invalid | Deposit/withdraws currency code are not consistent with Player’s default currency code or merchant does not use the currency code. |
| 50113 | 金额不合法 | Amount Invalid | Deposit/withdraw Amount must be greater than > 0 |
| 10104 | 会员密码不正确 | Password Invalid | Password not match |
| 30003 | 设置不完整 | Bet Setting Incomplete | |
| 10103 | 会员不存在 | Acct Not Found | |
| 10105 | 账号为激活 | Acct Status Inactived | |
| 10110 | 账号已锁 | Acct Locked | |
| 10111 | 帐号 Suspend | Acct Suspend | |
| 11101 | 余额不足 | Bet Insufficient Balance | |
| 11102 | 投注失效 | Bet Draw Stop Bet | |
| 11103 | 玩法为开放 | Bet Type Not Open | |
| 11104 | 下注信息不完整 | Bet Info Incomplete | |
| 11105 | 帐号信息异常 | Bet Acct Info Incomplete | |
| 11108 | 下注请求不合法 | Bet Request Invalid | |
| 12001 | 设置不完整 | Bet Setting Incomplete | |
| 1110801 | 下注最大值超过上限 | Bet Request Invalid Max | |
| 1110802 | 下注最小值超下线 | Bet Request Invalid Min | |
| 1110803 | 下注金额错误 | Bet Request Invalid Totalbet | |
| 50200 | 游戏在该货币未激活 | Game Currency Not Active |
Appendix 2 Language Code Definition
| ISO code for language | Description | |
|---|---|---|
| bn_BD | Bangladeshi | |
| de_DE | German | |
| en_US | English | |
| es_ES | Spanish | |
| fil_PH | Philippine | |
| hi_IN | Hindi | |
| id_ID | Indonesian | |
| ja_JP | Japanese | |
| kh_KM | Khmer | |
| ko_KR | Korean | |
| my_MM | Myanmar | |
| pt_PT | Potuguese | |
| sv_SE | Swedish | |
| th_TH | Thai | |
| vi_VN | Vietnamese | |
| zh_CN | Simplified Chinese | |
| zh_TW | Traditional Chinese |
Appendix 3 Currency Code Definition (ISO)
| Currency Code | Description | Description(cn) | Ratio | |
|---|---|---|---|---|
| AED | United Arab Emirates Dirham | 阿联酋迪拉姆 | 1:1 | |
| AMD | Armenian Dram | 亚美尼亚德拉姆 | 1:1 | |
| AOA | Angolan Kwanza | 安哥拉匡撒 | 1:1 | |
| ARS | Argentine Peso | 阿根廷比索 | 1:1 | |
| AUD | Australian Dollar | 澳洲元 | 1:1 | |
| BDT | Bangladeshi taka | 孟加拉塔卡 | 1:1 | |
| BND | Brunei Dollar | 汶萊元 | 1:1 | |
| BRL | Brazilian Real | 巴西雷亚尔 | 1:1 | |
| CAD | Canadian Dollar | 加元 | 1:1 | |
| CNY | Chinese Yuan (Renminbi) | 人民币 | 1:1 | |
| COP | Colombian Peso | 哥伦比亚比索 | 1:1000 | |
| CO2 | Colombian Peso | 哥伦比亚比索 | 1:1 | |
| CLP | Chilean Peso | 智利比索 | 1:1 | |
| DZD | Algerian Dinar | 阿尔及利亚第纳尔 | 1:1 | |
| EUR | Euro | 欧元 | 1:1 | |
| ETB | Ethiopian Birr | 埃塞俄比亚比尔 | 1:1 | |
| FKP | Falkland Pound | 福克兰群岛镑 | 1:1 | |
| GBP | British Pound | 英镑 | 1:1 | |
| GHS | Ghanaian Cedi | 加纳塞地 | 1:1 | |
| HKD | Hong Kong Dollar | 港元 | 1:1 | |
| IDR | Indonesia Rupiah | 印尼盾 | 1:1000 | |
| ID2 | Indonesia Rupiah | 印尼盾 | 1:1 | |
| INR | Indian Rupee | 印度卢比 | 1:1 | |
| JPY | Japanese Yen | 日圓 | 1:1 | |
| KHR | Cambodian Riel | 柬埔寨瑞尔 | 1:1 | |
| KWD | Kuwaiti Dinar | 科威特第纳尔 | 1:1 | |
| KRW | South Korean Won | 韩圆 | 1:1 | |
| LAK | Laotian Kip | 寮國基普 | 1:1000 | |
| MAD | Moroccan Dirham | 摩洛哥迪拉姆 | 1:1 | |
| MMK | Myanmar Kyat | 缅甸元 | 1:1000 | |
| MK2 | Myanmar Kyat | 缅甸元 | 1:1 | |
| MNT | Mongolian Tughrik | 蒙古图格里克 | 1:1000 | |
| MN2 | Mongolian Tughrik | 蒙古图格里克 | 1:1 | |
| MYR | Malaysia Ringgit | 马来西亚零吉 | 1:1 | |
| MXN | Mexican Peso | 墨西哥比索 | 1:1 | |
| NGN | Nigerian Naira | 尼日利亚奈拉 | 1:1 | |
| NPR | Nepalese rupee | 尼泊尔卢比 | 1:1 | |
| PHP | Philippine peso | 菲律宾比索 | 1:1 | |
| PEN | Peruvian Sol | 秘鲁索尔 | 1:1 | |
| PGK | Papua New Guinean Kina | 巴布亚新几内亚基那 | 1:1 | |
| PKR | Pakistani rupee | 巴基斯坦卢比 | 1:1 | |
| RUB | Russian Ruble | 俄罗斯卢布 | 1:1 | |
| SEK | Swedish krona | 瑞典克朗 | 1:1 | |
| SGD | Singapore Dollar | 新加坡元 | 1:1 | |
| THB | Thailand Baht | 泰铢 | 1:1 | |
| TH2 | Thailand Baht | 泰铢 | 1:100 | |
| TND | Tunisian Dinar | 突尼斯第納爾 | 1:1 | |
| TRY | Turkish Lira | 土耳其里拉 | 1:1 | |
| TZS | Tanzanian Shilling | 坦尚尼亞先令 | 1:1000 | |
| USD | United States Dollar | 美元 | 1:1 | |
| UZS | Uzbekistani Som | 乌兹别克斯坦苏姆 | 1:1000 | |
| VES | Venezuelan Bolívares | 委内瑞拉玻利瓦尔 | 1:1 | |
| VND | Viet Nam Dong | 越南盾 | 1:1000 | |
| VN2 | Viet Nam Dong | 越南盾 | 1:1 | |
| XAF | Central African CFA Franc | 中非法郎 | 1:1 |
Appendix 4 Cryptocurrency Code Definition (ISO)
| Currency Code | Description | Ratio | |
|---|---|---|---|
| ET2 | milli Etherium | 1:0.001 | |
| FTN | FastToken | 1:1 | |
| LT2 | milli Litecoin | 1:0.001 | |
| BC2 | milli Bitcoin Cash | 1:0.001 | |
| TET | Tether USDT | 1:1 | |
| TON | Toncoin | 1:0.001 | |
| XB3 | micro-Bitcoin | 1:0.000001 | |
| XRP | Ripple | 1:1 |
-
Regional Restriction
At present, there are no restrictions on access to Nextspin from any country, ensuring that users from around the world can enjoy our services without limitations.
-
Time Zone in Nextspin Server
The Nextspin server operates on GMT 8+, which allows us to provide efficient and synchronized services to our global user base, regardless of their geographical location.
-
Official website
For detailed information about Nextspin and our offerings, please visit out official website at https://nextspin.com/. Here, you can explore our wide range of services and stay updated with the latest news and updates.
-
Demo website
To experience the immersive world of Nextspin and get a taste of our games, visit our demo website at https://nextspin.com/game. This platform offers a sneak peek into the thrilling gameplay and features that await our users.
-
Customer Service Team and Technicians Service Time
Our dedicated Customer Service Team and skilled Technicians are available to assist you during the following service hours:
Monday to Friday: 9am to 6pm.
Saturday to Sunday: Our team will promptly respond to urgent matters to ensure a seamless user experience even on weekends.
-
Nextspin Maintenance Time
To ensure optimal performance and address any potential issues, we conduct routine maintenance on Tuesdays from 9am to 11am. Any changes to this schedule will be promptly communicated through our Skype group chat and/or Telegram. In the event of emergency maintenance, notifications will also be sent through the same group , ensuring our users stay informed and updated.
-
Which platform does NextSpin support?
Nextspin supports all major browsers, including iOS and Android. However, Internet Explorer (IE) is not preferred as it has reached the end of its service.
-
What is cascade feature?
Cascade is an exciting feature where winning symbols disappear, causing the remaining symbols to move down. This creates empty spaces at the top, which are then filled with new symbols on each reel. The cascade feature continues until there are no more winning symbols.
-
Are NS system API case sensitive?
Yes, all API parameters in the NS system are case sensitive.
-
Game List
The Game List file provided by Nextspin in Google Excel contains information about their latest games.
-
Which games offer free spins?
To find out which games offer free spins, please refer to the "free Games" column.
-
Do free spin games have an expiration time? What is the retention time for these games?
Free spin games do not have an expiration time. They can be played indefinitely without any time restrictions.
-
If a player quits or refreshes a game, will NS auto-complete the bonus game? (Applicable to specific games only)
Yes, Nextspin will automatically complete the bonus game if a player quits or refreshes the game. Please note that this feature is only applicable to certain games.
-
Deposit & Withdraw Ratio for Specify Currency.
All currencies have a deposit and withdrawal ratio of 1:1. For example, when a player deposits 1 USD, they will receive 1 USD in the game.
** For VND and IDR, the display ratio is always 1:1000, both for financial transactions and game display. For instance, depositing 1,000 IDR will be displayed as Rp.1.00 in the game. (e.g., Deposit 1,000 IDR = Rp1.00 showed in game)
-
What is the average return to player (RTP) rate of your games?
The average return to player (RTP) rate of Nextspin games is 97%. This indicates the percentage of the total wagered amount that players can expect to win back over time.
-
Could you assist us in adding API whitelist function to restrict access to non-affiliated personnel and sub-agent, preventing them from calling API information?
Additionally, merchants are required to provide us with their IP addresses to be whitelisted for API and back- office (BO) access.
-
Does Nextspin have a Staging Environment that can be provided to our operators?
May inform Support Team if merchant need to access staging environment for testing.
-
What information is required to whitelist the back-office (BO), including both the production and staging environments?
To whitelist the back-office (BO), we need the IP address(es) associated with the desired environment(s).
-
What kind of information is needed to investigate abnormal bets?
For inquiries regarding abnormal bets, please provide the Ticket ID, Player ID, and the specific time range. Additionally, if applicable, screenshots or videos related to the issue would be helpful for further investigation.
-
Is there a limit on the amount of a single transfer?
No, there is no limit on the amount for a single transfer.
-
Is it possible to modify the bet limit? If so, what information is required?
Yes, it is possible to modify the bet limit. Merchants need to provide the desired bet amounts for each respective game.
-
Is it possible to modify the Odds?
No, modifying the odds is not possible.
-
Supported Currencies.
Currently, the following currencies are supported. If merchants wish to add a new currency, they can discuss it with the relevant team. The list of supported currencies can also be found in the API documentation: [API document (EN)] | [API document (CN)].
-
Supported Language
The API documentation is available in both English and Chinese. You can access it in your preferred language: [API Doc Language (EN)] | [API Doc Language (CN)].
-
Is one operator restricted to a single currency? If we need to enable other currencies, how should we proceed?
No, one merchant code can have multiple currencies. It follows a one-to-many (1: N) relationship, allowing merchants to operate with multiple currencies if needed.
-
How long is the data saved in Backoffice.
The data is saved for a period of 60 days. If merchants require data retention beyond 30 days, they can request us to extract it. However, please note that extracting data after 60 days may take a linger time as most of the data is already achieved.
**Note: It may take a longer period to extract as most of the data has already been archived after 60 days.
-
What is the retention time of Backoffice information (Bet transaction)?
Backoffice information, specifically Bet transactions, is retained for a period of 2 months / 60 days.
-
Can we recharge the player's amount through Backoffice?
Unfortunately, recharging the player's amount via Backoffice is not available.
-
How can a Backoffice account be unlocked?
To unlock the Backoffice account, please reach out to our customer service. They will assist you in the process.
-
What is the procedure to reset the password?
For password resets, please contact our customer service. They will guide you through the necessary steps.
-
A player claimed to win the game but did not receive the payout. What should be done?
In such cases, we kindly request the player to provide the ticket ID and a screenshot as evidence. If possible, it would be helpful to provide a time range as well. We will then check with our customer service to investigate the issue further.
-
The Backoffice report does not tally. What should be done?
If you encounter any discrepancies or inconsistencies in the Backoffice report, please report the issue to our customer service. We assure you that we will promptly address and resolve the matter during our working days.
-
How can the secret key be obtained?
To obtain the secret key, please contact our customer services. They will assist you in acquiring the secret key.
-
Unable to Enter Game / Lobby. What should I do?
If you are experiencing any errors while trying to access the game or lobby, please provide us with the game link, including the merchant code, token authorization, and any relevant images (if applicable). This information is necessary for us to investigate the issue thoroughly.
Sample game link:
https://lobby.sampledomain.com/DEMO/auth/?acctId=TESTPLAYER1&language=zh_CN&token=fe1a85adc54545d2963b661a22d09c9e&channel=Web&isLobby=true
-
How to Remove Players from Games
API Doc KickAcc(EN) | API Doc KickAcc(CN) provides comprehensive instructions on how to utilize the API accordingly. By following these guidelines, you’ll be able to integrate KickAcc seamlessly into your game and maintain a fair and enjoyable gaming experience for all players.
-
What is the use of Query Bet Detail (API 4.12)
The provided link enables the generation of bet details without the need to login to the Back Office (BO).
**Note: Please replace the placeholders (sample domain, MERCHANT_CODE, MD5_HASH and ticket_ID) with the appropriate values to access the bet details. Use the following format for the URL:
https://gameapi.sampledomain.com/betDetails?merchantId=MERCHANT_CODE&token=MD5_HASH&lang=en&ticketId=TICKET_ID
