Web Service API v3.0.16

Technical Guide

1.Introduction

The Web Service API interface is for accessing the SA Gaming Platform. Including user registration, user balance query, user betting records and charging to or withdraw from a user account. This document includes both Transfer Wallet and Seamless Wallet.

2.Version

VersionDescriptionDate
3.0.13
  • Add new Baccarat tables 851-858 and Dragon Tiger table 850. If you use defaulttable to enter tables, you have to consider the new Host ID.
2020/06/03
3.0.14
  • Add new field gamecancel in PlaceBetCancel for brief reason of cancellation.
  • New API for Seamless Wallet: ResendTransaction to resend the timeout request of PlayerWin, PlayerLost or PlaceBetCancel.
  • Remove API GetAllBetDetailsFor30secondsDV
  • Add new Dragon Tiger table 820. If you use defaulttable to enter tables, you have to consider the new Host ID.
2020/06/30
3.0.15
  • Add new Baccarat tables 831-835 and Roulette table 830. If you use defaulttable to enter tables, you have to consider the new Host ID.
2020/07/17
3.0.16
  • Add new Baccarat tables 839, 841. Add new Sic Bo table 842. Add new Dragon Tiger table 843. If you use defaulttable to enter tables, you have to consider the new Host ID.
2020/12/07
3.0.17
  • Added Gametype parameter in SetBetLimit to set SicBo bet limit.
2021/02/22

3.API Calling Restriction Information

The following APIs have calling restriction.

Name of APIFrequency of calls
GetAllBetDetailsDVEvery 5 minutes no more than 10 calls
GetAllBetDetailsForTimeIntervalDVEvery 5 minutes no more than 10 calls
ResendTransactionEvery 5 minutes no more than 1 call

Accuracy of point value

The accuracy of all point value is limited two decimal place. For example:
1000.23, 89.32, 1002304.89

4.Encryption

4.1.Encryption Requirements

All of the web service queries require DES encryption and MD5 hashing before sending to ensure the content has no modification during transmission.

Please ask us for the following information:

  • Secret Key
  • EncrypKey
  • MD5Key
  • API url
  • Live game client loader
  • Lobby name (supplied during startup the client)

Example DES Encrypt function in ASP.Net C#:

Example DES Encrypt function in PHP:

Example in PHP:

Example MD5 function in ASP.Net C#:

Example MD5 function in PHP:

4.2.Encryption Procedures

  • Construct a Query String (QS) with required parameters (including the web service method name itself (e.g. method=RegUserInfo)
  • DES encrypt the Query String with the supplied EncryptKey and obtain the encrypted query string (q)
  • Build an MD5 hash according to (QS) and other parameters to form a signature (s)
  • Use HTTP POST request to call the web service.
  • Obtain the resulting XML response.

4.3.Example to call API

Let’s take RegUserInfo as an example.

Encryption requires the following parameters

  • method (String, “RegUserInfo”)
  • Key (String, the Secret Key)
  • Time (DateTime, Current Time, in yyyyMMddHHmmss format)
  • Username (String)
  • CurrencyType (String)

method, Key and Time are always inserted. Other parameters please follow the parameter list in each API function.

Let say, the Secret Key is XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX and md5key is YYYYYYYY.

Example Query String (QS):

For example, q = ‘j4tjorjwarfj3trwise0safrwg2wt4awari0fwjfeoh’

Example MD5 String for building the signature (QS + md5key + Time + Key):

For example, s = ‘1234567890abcdef’

Resulting POST method query  (using “Content-Type: application/x-www-form-urlencoded”):

q=j4tjorjwarfj3trwise0safrwg2wt4awari0fwjfeoh&s=1234567890abcdef

POST to: http://<api-domain>/api/api.aspx

Output

4.4.Error handling

If there are decryption error or the md5 not matching, a generic error response will be output.

ErrorMsgId 128 for decryption error.
ErrorMsgId 132 for md5 sign unmatch.

5.Web Service Interface

All services require a secret key to access. Please contact us to get one.

5.1.User Account Manipulation

5.1.1.RegUserInfo

Create a user by username and currency type.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "RegUserInfo"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUser name. Alphanumeric (5~20 characters)String (20)Y
CurrencyTypeCurrency:
USD
Refer to Supported currencies
String (16)Y
Result
NameDescriptionType and LimitRequired?
UsernameUser nameStringY
ErrorMsgIdError message:
0: Success
108: Username length/format incorrect
113: Username duplicated
114: Currency not exist
133: Create user failed
ByteY
ErrorMsgError message detailsStringY

5.1.2.VerifyUsername

Check if a username is already existing in database of a lobby.

Parameters
NameDescriptionType and LimitRequired?
methodMust be “VerifyUsername”String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in “yyyyMMddHHmmss” formatDateTimeY
UsernameUser nameString (20)Y
Result
NameDescriptionType and LimitRequired?
UsernameUser nameString (20)Y
IsExistUser existing?
True: user existing
False: user not existing
BoolY
ErrorMsgIdError message:
0: Success
108: Username length/format incorrect
ByteY
ErrorMsgError message detailsStringY

Output

 

5.1.3.GetUserStatusDV

The status of a user including:

  • Online/offline
  • Bet exist
  • Bet amount and remain balance
  • Maximum balance
  • Maximum daily winning
Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetUserStatusDV"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)Y
Result
NameDescriptionType and LimitRequired?
IsSuccessSuccess?
True: Success
False: Failed
BoolY
UsernameUsernameStringY
BalanceActive balance, excluding betted amount. Correct to cent.DecimalY
Onlineonline?BoolY
Bettedbetted?BoolY
BettedAmountTotal betted amountDecimalY
MaxBalanceUpper limit in user's balance to place betDecimalY
MaxWinningDaily winning limitation to allow place betDecimalY
WithholdAmountAmount withhold in the system from the balanceDecimalY
ErrorMsgIdError message
0: Success
100: Username error
108: Username length/format incorrect
116: Username does not exist
ByteY
ErrorMsgError message detailStringY

5.1.4.QueryBetLimit

Query all of the bet limit for specified currency.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "QueryBetLimit"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
CurrencyCurrency:
USD
Refer to Supported currencies
String (16)Y
Result
NameDescriptionType and LimitRequired?
BetLimitListBetLimit listsXML StructureY
ErrorMsgIdError message:
0: Success
114: Currency not exist
ByteY
ErrorMsgError message detailStringY
BetDetail structure
NameDescriptionType and LimitRequired?
RuleIDID of the bet limitInt64Y
MinMinimum of the limit IntY
MaxMaximum of the limitIntY

BetLimit structure

5.1.5.SetBetLimit

Set a maximum 5 sets of bet limit to a user.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "SetBetLimit"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)Y
CurrencyCurrency:
USD
Refer to Supported currencies
String (16)Y
Set1ID from QueryBetLimit
Int64Y
Set2ID from QueryBetLimit
Int64N
Set3ID from QueryBetLimit
Int64N
Set4ID from QueryBetLimit
Int64N
Set5ID from QueryBetLimit
Int64N
Gametyperoulette - for Roulette
sicbo - for SicBo
others - for the rest of gametype

Please noted that without Gametype parameter, the bet limit will be applied to "others" by default. If you have never assigned "roulette" nor "sicbo" to a player, the "others" will also include the game types not assigned.

If need to change two types or more at the same time, each parameter have to use comma to separate:
Gametype=roulette,sicbo,others
StringN
Result
NameDescriptionType and LimitRequired?
ErrorMsgIdError message:
0: Success
108: Username length/format incorrect
114: Currency not exist
116: Username does not exist
142: Parameter(s) error
147: BetLimit does not existed
ByteY
ErrorMsgError message detailStringY

5.1.6.GetUserMaxBalance

Return the user’s maximum balance limit.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetUserMaxBalance"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)Y
Result
NameDescriptionType and LimitRequired?
MaxBalanceMaximum balanceDecimalY
ErrorMsgIdError message:
0: Success
100: Username error
108: Username length/format incorrect
116: Username does not exist
ByteY
ErrorMsgError message detailStringY

5.1.7.SetUserMaxBalance

Set the maximum balance limit to a user.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "SetUserMaxBalance"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)Y
MaxBalanceMaximum balanceDecimalY
Result
NameDescriptionType and LimitRequired?
ErrorMsgIdError message:
0: Success
116: Username does not exist
142: Parameter(s) error
148: MaxBalance not zero or smaller than user balance
ByteY
ErrorMsgError message detailStringY

5.1.8.SetUserMaxWinning

Set the user’s maximum daily winning. User cannot place bet if his winning exceed this setting.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "SetUserMaxWinning"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)Y
MaxWinningMaximum daily winningDecimalY
Result
NameDescriptionType and LimitRequired?
ErrorMsgIdError message:
0: Success
116: Username does not exist
142: Parameter(s) error
ByteY
ErrorMsgError message detailStringY

5.2.Login Access

5.2.1.LoginRequest

It is the function to request the login token. If the username doesn’t exist, it will be created automatically.

Parameters
NameDescriptionType and LimitRequired?
methodMust be “LoginRequest”String (32)Y
KeySecret keyString (32)Y
Timecurrent time in “yyyyMMddHHmmss” formatDateTimeY
UsernameUser name
(5 ~ 20 characters)
String (20)Y
CurrencyTypeCurrency:
USD
Refer to Supported currencies
String (16)Y
Result
NameDescriptionType and LimitRequired?
Token#Token for Live gameStringY
DisplayNameInternal assigned usernameString (31)Y
ErrorMsgIdError message:
0: Success
129: System under maintenance
130: User account is locked (disabled)
133: Create user failed
134: Game code not found
135: Game access denied
ByteY
ErrorMsgError message detailStringY

# If login request failed, there is no Token node in the response.

Output

5.2.2.LoginRequestForFun

Login to the system in Fun mode. The username will be generated automatically.

Parameters
NameDescriptionType and LimitRequired?
methodMust be “LoginRequestForFun”String (32)Y
KeySecret keyString (32)Y
Timecurrent time in “yyyyMMddHHmmss” formatDateTimeY
AmountInitial amountDecimalY
CurrencyTypeCurrency:
USD
Refer to Supported currencies
String (16)Y
Result
NameDescriptionType and LimitRequired?
Token#Token for Live gameStringY
DisplayNameInternal assigned usernameString (31)Y
ErrorMsgIdError message:
0: Success
129: System under maintenance
134: Game code not found
135: Game access denied
ByteY
ErrorMsgError message detailStringY

5.2.3.KickUser

Kick user to offline.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "KickUser"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUser nameString (20)Y
Result
NameDescriptionType and LimitRequired?
ErrorMsgIdError message:
0: Success
104: Service not available
108: Username length/format incorrect
116: Username does not exist
125: Kick user fail
ByteY
ErrorMsgError message detailStringY

5.3.Bet Records Query

5.3.1.GetAllBetDetailsDV

This Web service will fetch bet details for the current lobby of the specified date from 12:00 PM to 11:59:59 AM. If no Date input, the current date will be used. The frequency of the call should be made to this API 10 times per 5 minutes otherwise it will throw an error.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetAllBetDetailsDV"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUser nameString (20)N
DateDate for details “yyyy-MM-dd”
DateN
Result
NameDescriptionType and LimitRequired?
BetDetailListBet details structureXMLY
ErrorMsgIdError message:
0: Success
108: Username length/format incorrect
112: API recently called
116: Username does not exist
142: Parameter(s) error
ByteY
ErrorMsgError message detailStringY
BetDetail structure
NameDescriptionType and LimitRequired?
BetTimeBet start timeDate TimeY
PayoutTime Payout time Date TimeY
UsernamePlayer nameString(20) Y
HostIDHost table IDInt16 Y
DetailReserved StringN
GameIDGame ID StringY
RoundGame Round IntY
SetGame Set IntY
BetIDBet ID Int64 Y
BetAmountBet amount DecimalY
RollingRolling DecimalY
ResultAmountPayout DecimalY
BalanceBalance after this bet DecimalY
GameTypeGame type. For details please click hereStringY
BetTypeLive game: Bet type of different games IntY
BetSource
2/2114/2640Web
3/2115/2641Multibet in Web
16/600/8792/8793Mobile Web
1160/1161/5248/5249iOS app
1288/1289/5376/5377Android app
IntY
TransactionIDSeamless wallet PlaceBet transaction ID.
-1 if not using seamless wallet
Int64Y
GameResultThe result of the game (details in another table)
Baccarat
Dragon Tiger
Sicbo
Fantan
Roulette
Money Wheel
StringY

Output

 

5.3.2.GetAllBetDetailsForTimeIntervalDV

This web service will fetch bet details of a lobby for a time interval maximum 24 hours. The frequency of the call should be made to this API is 10 times per 5 minutes otherwise it will throw an error.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetAllBetDetailsForTimeIntervalDV"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUser nameString (20)N
FromTimeDate for details “yyyy-MM-dd HH:mm:ss”
Date TimeY
ToTimeDate for details “yyyy-MM-dd HH:mm:ss”
Date TimeY
Result
NameDescriptionType and LimitRequired?
BetDetailListBet details structureXMLY
ErrorMsgIdError message:
0: Success
108: Username length/format incorrect
111: Query time range out of limitation
112: API recently called
116: Username does not exist
142: Parameter(s) error
ByteY
ErrorMsgError message detailStringY

BetDetails is the same as GameAllBetDetailsDV.

5.3.3.GetAllBetDetailsForTransactionID

This web service is used for seamless wallet to fetch the bet records details of a PlayerWin or PlayerLost transaction ID.

Parameters:
NameDescriptionType and LimitRequired?
methodmust be "GetAllBetDetailsForTransactionID"String (32)Y
Keysecret keyString (32)Y
Timecurrent time in "yyyyMMddHHmmss" formatDateTimeY
TransactionIDTransaction ID of a PlayerWin or PlayerLostString (16)Y
Result:
NameDescriptionType and LimitRequired?
ResultThe result of the game (details in another table)
Baccarat
Dragon Tiger
Roulette
Sicbo
Fantan
Money Wheel
XMLY
BetListBet details structureXMLY
ErrorMsgIdError message
0: Success
106: Server not ready
152: Transaction ID not found
ByteY
ErrorMsgError message detailStringY
BetDetail structure:
NameDescriptionType and LimitRequired?
BetTimeBet start timeDate TimeY
PayoutTimePayout timeDate TimeY
UsernamePlayer nameString(31)Y
HostIDHost table IDInt16Y
GameIDGame IDStringY
RoundGame RoundIntY
SetGame SetIntY
BetIDBet IDInt64Y
BetAmountBet amountDecimalY
RollingRollingDecimalY
ResultAmountPayoutDecimalY
BalanceBalance after this betDecimalY
GameTypeGame type. For details please click hereStringY
BetTypeLive game: Bet type of different gamesIntY
BetSource
2/2114/2640Web
3/2115/2641Multibet in Web
16/600/8792/8793Mobile Web
1160/1161/5248/5249iOS app
1288/1289/5376/5377Android app
IntY
DetailReservedStringN
TransactionIDSeamless wallet PlaceBet transaction ID.
-1 if not using seamless wallet
Int64Y

5.3.4.GetUserBetItemDV

Retrieve a list of bet record of a user within 7 days

Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetUserBetItemDV"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)Y
FromTimeQuery start time:
“yyyy-MM-dd” or
“yyyy-MM-dd HH:mm:ss”
DateTimeY
ToTimeQuery end time:
“yyyy-MM-dd” or
“yyyy-MM-dd HH:mm:ss”
DateTimeY
OffsetQuery offset id. First query input 0. For the next query, using the offset from resultInt64Y
Result
NameDescriptionType and LimitRequired?
UsernameUsernameString (20)Y
FromTimeQuery start timeDateTimeY
ToTimeQuery end timeDateTimeY
OffsetOffsetInt64Y
MoreTrue: data still existing for query, using the Offset to start again.

False: all data has been send
boolY
ItemCountNumber of item queriedIntY
UserBetItemListList of bet item details
UserBetItem
XMLY
ErrorMsgIdError message:
0: Success
111: Query time range out of limitation
116: Username does not exist
ByteY
ErrorMsgError message detailStringY

Output

 

5.3.5.GetUserBetAmountDV

This Web service will fetch the live game stake amount for a lobby.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetUserBetAmountDV"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)N
StartDateQuery start date/time:
“yyyy-MM-dd” (default time 00:00:00) or
“yyyy-MM-dd HH:mm:ss”
DateTimeN
TimeRangeRange in hour from 0 to 23
(default 0 = 24 hours)
IntN
Result
NameDescriptionType and LimitRequired?
UsernameUsernameString (20)Y
StakeAmountSum of bet amount for all gamesDecimalY
ErrorMsgIdError message:
0: Success
108: Username length/format incorrect
116: Username does not exist
142: Parameter(s) error
ByteY
ErrorMsgError message detailStringY

5.3.6.GetUserWinLost

This API function is to get a user’s win/loss summary for a period of time with maximum of 31 days.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetUserWinLost"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)Y
FromTimeDate for details “yyyy-MM-dd HH:mm:ss”DateTimeY
ToTimeDate for details “yyyy-MM-dd HH:mm:ss”DateTimeY
Type0 - includes win and loss
1 - only includes win
2 - only includes loss
IntN
Result
NameDescriptionType and LimitRequired?
UsernameUsernameString (20)Y
WinlostWin or loss summary valueDecimalY
ErrorMsgIdError message:
0: Success
106: Server not ready
108: Username length/format incorrect
111: Query time range out of limitation
116: Username does not exist
144: Query type invalid
ByteY
ErrorMsgError message detailStringY

5.3.7.GetTransactionDetails

This web service will fetch the transaction details of a lobby for a time interval maximum 31 days. You may specify an username to query transaction details of a certain user.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetTransactionDetails"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
Username Username String (20)N
FromTimeDate for details “yyyy-MM-dd HH:mm:ss”DateTimeY
ToTimeDate for details “yyyy-MM-dd HH:mm:ss”DateTimeY
Result
NameDescriptionType and LimitRequired?
TransactionDetailsTransaction details structureXMLY
ErrorMsgIdError message:
0: Success
106: Server not ready
111: Query time range out of limitation
116: Username does not exist
ByteY
ErrorMsgError message detailStringY
TransactionDetails structure:
NameDescriptionType and LimitRequired?
CurrencyNameCurrency:
USD
Refer to Supported currencies
String (16)Y
CountNumber of transactionsIntY
WinlostWin/loseDecimalY
TotalBetTotal bet amountDecimalY
TotalRollingTotal rolling amountDecimalY

5.4.Transfer Wallet

The Transfer wallet API includes a transfer in, out and order status checking functions.

Throughout those functions, there is an OrderID inside each of them. In case a transfer was failed due to network problem and become unsuccessful, be sure to use the same OrderID to initiate another try. We guarantee the same OrderID will not be processed twice. Using a new OrderID for the same transfer may cause a duplicate transfer. Even you have checked the OrderID not existing by using CheckOrderID, you should still use the same OrderID.

5.4.1.DebitBalanceDV

Transfer from the user’s balance.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "DebitBalanceDV"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)Y
OrderIdOrder ID: OUT+yyyyMMddHHmmss+Username
e.g. “OUT20131129130345peter1235”
String (40)Y
DebitAmountDebit amount. Maximum two decimal only.DecimalY
Result
NameDescriptionType and LimitRequired?
UsernameUsernameStringY
BalanceRemained active balanceDecimalY
DebitAmountDebited amountDecimalY
OrderIdOrder ID String (40)Y
ErrorMsgIdError message:
0: Success
106: Server not ready. Try again later.
108: Username length/format incorrect
116: Username does not exist
120: Amount must be larger than zero
121: Not enough points to credit/debit
122: Order ID already exists
124: Database error
127: Invalid order ID format
142: Error Parameter
145: Parameter decimal point greater than 2
ByteY
ErrorMsgError message detailStringY

5.4.2.DebitAllBalanceDV

Transfer all amount from the user’s balance.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "DebitAllBalanceDV"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)Y
OrderIdOrder ID: OUT+yyyyMMddHHmmss+Username
e.g. “OUT20131129130345peter1235”
String (40)Y
Result
NameDescriptionType and LimitRequired?
UsernameUsernameStringY
DebitAmountDebited amountDecimalY
OrderIdOrder ID String (40)Y
ErrorMsgIdError message:
0: Success
106: Server not ready. Try again later.
116: Username does not exist
122: Order ID already exists
124: Database error
127: Invalid order ID format
ByteY
ErrorMsgError message detailStringY

5.4.3.CreditBalanceDV

Transfer fund to user’s balance.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "CreditBalanceDV"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (20)Y
OrderIdOrder ID: IN+yyyyMMddHHmmss+Username
e.g. “IN20131129130345peter1235”
String (40)Y
CreditAmountCredit amount. DecimalY
Result
NameDescriptionType and LimitRequired?
UsernameUsernameStringY
BalanceBalance after creditDecimalY
CreditAmountCredited amount.DecimalY
OrderIdOrder IDStringY
ErrorMsgIdError message:
0: Success
106: Server not ready. Try again later.
108: Username length/format incorrect
116: Username does not exist
120: Amount must be larger than zero
121: Not enough points to credit/debit
122: Order ID already exists
124: Database error
127: Invalid order ID format
142: Error Parameter
145: Parameter decimal point greater than 2
ByteY
ErrorMsgError message detailStringY

5.4.4.CheckOrderId

Check the OrderId that generated in DebitBalanceDV/DebitAllBalanceDV/CreditBalanceDV is existing or not in our system.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "CheckOrderId"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
OrderIdThe OrderId used in
  • DebitBalanceDV
  • DebitAllBalanceDV
  • CreditBalanceDV
String (40)Y
Result
NameDescriptionType and LimitRequired?
isExistThe OrderId exist or not
  • true - Existing
  • false - Not existing
stringY
ErrorMsgIdError message:
0: Success
106: Server not ready. Try again later.
124: Database error
127: Invalid order ID format
ByteY
ErrorMsgError message detailStringY

5.5.Seamless Wallet

5.5.1.ResendTransaction

For PlayerWin, PlayerLost & PlaceBetCancel request, SA will keep re-sending it until receiving proper response. If SA couldn’t receive proper response after 2 hours, SA will consider it as failed and move it to unsuccessful transaction list.

This Web service can be used for re-sending the requests under unsuccessful transaction list by gameid. The frequency of the call should be made to this API 1 per 5 minutes otherwise it will throw an error.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "ResendTransaction"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
GameIDGame IDStringY
Result
NameDescriptionType and LimitRequired?
TransactionDetailListTransaction ID details structureXMLY
ErrorMsgIdError message:
0: Success
142: Parameter(s) error
ByteY
ErrorMsgError message detailStringY
TransactionDetail structure
NameDescriptionType and LimitRequired?
IDSeamless wallet transaction ID.Int64Y

output:

6.Seamless Wallet Integration

6.1.Introduction

This section is to illustrate the detail of implementing seamless wallet in external partner system.

Important: While probably obvious, it’s worth stating that when Seamless Wallet is in use, the CreditBalanceDV/DebitBalanceDV/DebitAllBalanceDV API should not be used to modify a player’s balance.

6.2.Workflow

Basically the partner system have to provide a set of API functions for our system to call:

  • GetUserBalance
  • Fund Transfer

GetUserBalance will be called when the user login to our platform or user click refresh balance in the web client.

Fund Transfer function includes four types of transfer:

  1. PlaceBet
    • It is sent to the partner system when the user going to place a bet. The function will be timed out after 3 seconds and PlaceBetCancel will be sent.
  2. PlayerWin
    • When a bet placed before is winning (bet amount + result amount > 0), the total amount (including stakes) will send to partner system.
  3. PlayerLost
    • When a bet placed before is losing, this request will be sent to the partner system. Although it is no amount adjustment, it is still worth to let partner system to update the state of an open transaction.
  4. PlaceBetCancel
    • PlaceBetCancel will only be sent when previous PlaceBet is failed due to timeout or partner system error. Partner system should refund the user if the transaction has been done in the partner system side.

For PlayerWin, PlayerLost & PlaceBetCancel request, SA will keep re-sending it until receiving proper response. If SA couldn’t receive proper response after 2 hours, SA will consider it as failed and move it to unsuccessful transaction list.

For re-sending the requests under unsuccessful transaction list, operator can either visit back office or using API 5.5.1 ResendTransaction.

General Case:

  • Received GetUserBalance request: No balance adjustment is required, return error=0 with user’s current balance.
  • Received PlaceBet request: Deduct the bet amount, return us error=0 with user’s current balance.
  • Received PlayerWin request: Credit balance to user, return us error=0 with user’s current balance.
  • Received PlayerLost request: No balance adjustment is required, return us error=0 with user’s current balance.
  • Received PlaceBetCancel request: Refund the corresponding PlaceBet bet amount to user, return us error=0 with user’s current balance.

Special Case:

  • Received PlaceBetCancel without corresponding PlaceBet request. No balance adjustment is required, return us error=0 with user’s current balance.
    > We suggested to record “txn_reverse_id” in PlaceBetCancel request.
    > If partner system receive the corresponding PlaceBet request later than PlaceBetCancel request , some incorrect operation requests might happen at partner system. To deal with this weird situation, we suggest partner system should setup a job to run periodically (e.g. every 15 minutes)
  1. Check all pending PlaceBetCancel request, compare its txn_reverse_id with all PlaceBet request’s txnid for past 15 minutes
  2. If corresponding PlaceBet request is found, partner system should refund the bet amount to player and finish both PlaceBet & PlaceBetCancel request at partner end
  3. If corresponding PlaceBet request is NOT found, partner system should finish this PlaceBetCancel request

    Note: We suggest the regular check period in every 15 minutes, but it is configurable based on partner system needs.
  • Received duplicate PlayerWin, PlayerLost or PlaceBetCancel request. No balance adjustment is required, return us error=0 with user’s current balance.

**All above Fund Transfer functions provide a unique transaction ID and partner system should only process once and only once, but must always respond. SA Gaming platform assumes that the partner system will handle duplicate transaction request properly and send back a success response ( error=0 ) for a request that had already been processed.

Operator should provide these five individual aspx, php, etc. to allow SA Gaming platform to call:

E.g.:

  • /GetUserBalance.aspx
  • /PlaceBet.aspx
  • /PlayerWin.aspx
  • /PlayerLost.aspx
  • /PlaceBetCancel.aspx

** Operator can only use ONE type of extension, no multiple extension is allowed.

6.3.Seamless Wallet Protocol

SA Gaming platform will use HTTP POST request to communicate with the external wallet. All of the parameters will be encrypted and pass as a text value.

The following is an example of a request string that SA Gaming platform sends to external wallet before encryption:

6.3.1.Encryption procedures

We will use DES CBC encryption. The following are the example of DES Encrypt/Decrypt function:

ASP.Net version

PHP version

 

6.3.2.POST

After encrypted the request string, we will POST the encrypted string with urlencoded as plain text:

Partner system have to urldecode and decrypt the string by the provided key and perform the requested function.

6.3.3.Response data

Partner system should respond the request in XML format:

6.4.GetUserBalance

This request is send to the partner system to retrieve the balance of a user.

Input parameters:
NameDescriptionType and LimitRequired?
usernameUsername of the userString (20)Y
currencyISO 3 characters e.g. USD/EUR. Except mXBTString (16)Y

E.g.

Response parameters:
NameDescriptionType and LimitRequired?
usernameUsername of the userString (20)Y
currencyISO 3 characters e.g. USD/EUR. Except mXBTString (16)Y
amountDecimal format and max. 2 decimal placesDecimalY
errorError codeIntY

6.5.Fund Transfer

SA Gaming platform makes different fund transfer request to partner system to modify the balance of the player, either to withdraw funds for a bet, or to deposit funds for a win.

6.5.1.PlaceBet

When a player makes a bet in a game, SA Gaming platform will send this request to partner system. This request must be responded within 3 seconds, otherwise it is defined as timeout and PlaceBetCancel will be sent to cancel/refund the unsuccessful bet.

Please noted: Bets on Cow Cow Banker or Cow Cow Player will withhold 9 times of the bet amount

Parameters:
NameDescriptionType and LimitRequired?
usernameUsername of the userString (20)Y
currencyISO 3 characters e.g. USDString (16)Y
amountAmount to bet (decimal format and max. 2 decimal places)DecimalY
txnidA unique id for all fund transferString (16)Y
timestampTimestamp in yyyy-MM-dd HH:mm:ss.fff (GMT +8)
E.g. 2019-10-22 13:34:45.456
DateTimeY
ipIP of the userStringY
gametypeGame type
bac - Baccarat
dtx - Dragon & Tiger
sicbo - Sic Bo
rot - Roulette
ftan - Fan Tan
moneywheel - Money Wheel
tip - Tips
StringY
platform0 - desktop
1 - mobile
ByteY
hostidHost ID, please refer to Section 10. IntN
gameidGame IDStringY
betdetailsBet details array
type - Bet type
amount - Bet amount
JSONY

E.g. :

username=peter1234&currency=EUR&amount=25.00&txnid=843828123434&timestamp=2019-10-25 12:34:56.789&ip=121.122.123.124&gametype=bac&platform=0&hostid=601&gameid=133849980&betdetails={“details”:[{“type”:1,”amount”:5},{“type”:2,”amount”:10},{“type”:41,”amount”:10}]}

Response parameters:
NameDescriptionType and LimitRequired?
usernameUsername of the userString (20)Y
currencyISO 3 characters e.g. USD. Except mXBTString (16)Y
amount Amount after adjustment (decimal format and max. 2 decimal places)DecimalY
errorError codeIntY

6.5.2.PlayerWin

When a game completed and the player win (even bet return when result is Tie in Baccarat) PlayerWin will send to partner system to adjust the balance of the player. This request will keep trying if partner system no response or respond error.

Parameters:
NameDescriptionType and LimitRequired?
usernameUsername of the userString (20)Y
currencyISO 3 characters e.g. USDString (16)Y
amountAmount to add back (decimal format and max. 2 decimal places)DecimalY
txnidA unique id for all fund transferString (16)Y
timestampTimestamp in yyyy-MM-dd HH:mm:ss.fff (GMT +8)
E.g. 2019-10-22 13:34:45.456
DateTimeY
gametypeGame type
bac - Baccarat
dtx - Dragon & Tiger
sicbo - Sic Bo
rot - Roulette
ftan - Fan Tan
moneywheel - Money Wheel
StringY
PayouttimeTime of the payoutDateTimeY
hostidHost ID, please refer to Section 10. Only valid for bac/dtx/sicbo/rot/ftan game typesIntN
gameidGame IDStringY

E.g. :

username=peter1234&currency=EUR&amount=20.00&txnid=843828125323&timestamp=2019-10-25 12:34:56.789&gametype=bac&Payouttime=2018-02-03 12:34:56&hostid=123&gameid=133849980

Response parameters:
NameDescriptionType and LimitRequired?
usernameUsername of the userString (20)Y
currencyISO 3 characters e.g. USD. Except mXBTString (16)Y
amount Amount after adjustment (decimal format and max. 2 decimal places)DecimalY
errorError codeIntY

6.5.3.PlayerLost

When a game completed and the player lost. (no winning amount,) PlayerLost will be sent to the partner system. Since it is a loss so there is no amount parameter in the request. This request will keep trying if the partner system no response or responding error.

Parameters:
NameDescriptionType and LimitRequired?
usernameUsername of the userString (20)Y
currencyISO 3 characters e.g. USDString (3)Y
txnidA unique id for all fund transferString (16)Y
timestampTimestamp in yyyy-MM-dd HH:mm:ss.fff (GMT +8)
E.g. 2019-10-22 13:34:45.456
DateTimeY
gametypeGame type
bac - Baccarat
dtx - Dragon & Tiger
sicbo - Sic Bo
rot - Roulette
ftan - Fan Tan
moneywheel - Money Wheel
tip - Tips
StringY
PayouttimeTime of the payoutDateTimeY
hostidHost ID, please refer to Section 10. Only valid for bac/dtx/sicbo/rot/ftan game typesIntN
gameidGame IDStringY

E.g. :

username=peter1234&currency=EUR&txnid=8438234356625&timestamp=2019-10-25 12:34:56.789&gametype=bac&Payouttime=2018-02-03 12:34:56&hostid=801&gameid=133849980

Response parameters:
NameDescriptionType and LimitRequired?
usernameUsername of the userString (20)Y
currencyISO 3 characters e.g. USD. Except mXBTString (16)Y
amount Amount after adjustment (decimal format and max. 2 decimal places)DecimalY
errorError codeIntY

6.5.4.PlaceBetCancel

If a PlaceBet request timeout or partner system responded an error, a PlaceBetCancel request will send to partner system. SA Gaming platform will treat it as bet failed and report to player that his bet has been failed. Partner system must handle this request once and only once and must respond to our platform. In case you cannot find previous transaction by the txn_reverse_id, you have to send us error = 0, else we will keep sending this request.

Parameters:
NameDescriptionType and LimitRequired?
usernameUsername of the userString (20)Y
currencyISO 3 characters e.g. USDString (16)Y
amountAmount to add back (decimal format and max. 2 decimal places)DecimalY
txnidA unique id for all fund transferString (16)Y
timestampTimestamp in yyyy-MM-dd HH:mm:ss.fff (GMT +8)
E.g. 2019-10-22 13:34:45.456
DateTimeY
gametypeGame type
bac - Baccarat
dtx - Dragon & Tiger
sicbo - Sic Bo
rot - Roulette
ftan - Fan Tan
moneywheel - Money Wheel
tip - Tips
StringY
hostidHost ID, please refer to Section 10. IntN
gameidGame IDStringY
txn_reverse_idPrevious txnid in PlaceBet request which the response was not received within 3 seconds or responded with an error.String (16)Y
gamecancelBrief reason for cancellation
1 - Cancellation due to dealer operation problems
0 - other reasons (For example: PlaceBet response timeout or respond with error)
ByteY

E.g. :

username=peter1234&currency=EUR&amount=25.00&txnid=4345234534534&timestamp=2019-10-25 12:34:56.789&gametype=bac&hostid=801&gameid=133849980&txn_reverse_id=843828123434&gamecancel=0

Response parameters:
NameDescriptionType and LimitRequired?
usernameUsername of the userString (20)Y
currencyISO 3 characters e.g. USD. Except mXBTString (16)Y
amount Amount after adjustment (decimal format and max. 2 decimal places)DecimalY
errorError codeIntY

6.6.Error code list

Partner system should report to our platform with the following error codes:

IDDescription
0Success
1000User account doesn’t exist
1001Invalid currency
1002Invalid amount
1003Locked account
1004Insufficient balance
1005General error
1006Decryption error
1007Session expired error
9999System error

7.Error message code reference

Common error message code

IDDescription
100Username error
101Account locked
102Secret key incorrect
104Service not available
105Client side error
106Server busy. Try again later.
107Username empty
108Username length/format incorrect
110User not online
111Query time range out of limitation
112API recently called
113Username duplicated
114Currency not exist
116Username does not exist
120Amount must greater than zero
121Not enough points to credit/debit/bet
122Order ID already exists
125Kick user fail
127Invalid order ID format
128Decryption error
129System under maintenance
130User account is locked (disabled)
132Sign unmatch
133Create user failed
134Game code not found
135Game access denied
136Not enough point to bet
137Bet string error
138Bet time ended or not started
142Parameter(s) error
144Query type invalid
145Parameter decimal point greater than 2
146API access denied
147BetLimit does not existed
148MaxBalance not zero or smaller than user balance
149Input amount under minimum value
150Function has been deprecated
151Duplicate login
152Transaction ID not found
153The API does not exist

8.Game Launching Procedures

8.1.Live Game

The Token is required for each login. Please construct a query string with the following parameters and using GET to send to app.aspx (e.g. xx.sa-api.net/app.aspx.)

ParameterDescriptionRequired?
usernameThe username display in the clientY
tokenThe token returned from LoginRequestY
lobbyThe lobby code we provided, it is to show the correct logo while loadingY
langDefault language to be used in the client. Check in the table below for detailsN
returnurlOptional parameter
The URL will be invoked when the client logs out
N
mobileOptional parameter
true - Start the client in HTML5 mobile version
N
optionsOptional parameters to enable feature while entering game lobby (URL Encoding will be needed)
  1. defaulttable=<hostid>
    • To go into table directly HOST ID
    • To go into multiple bet view (multibet)
  1. hidelogo=1
    • hide the SA Logo/Operator logo
  1. webview=1
    • Used when launching SA in operator's native application Webview.

Each parameter have to use comma to separate:
options=defaulttable=612,hidelogo=1
N

For example:

https://xx.sa-api.net/app.aspx?username=demo888&token=e93a9aeb9981da12b3&lobby=A999&lang=en_US&returnurl=http://yourdomain.com/yourlocation&mobile=true&options=defaulttable=601,hidelogo=1

Lang parameter
CodeDescription
zh_TWTraditional Chinese
zh_CNSimplified Chinese
en_USEnglish
thThai
vnVietnamese
jpJapanese
idBahasa Indonesia
itItaliano
msMalay
esSpanish

9.UserBetItem

UserBetItem is a complex structure for the details of a bet per different game type.

NameDescriptionType and LimitRequired?
BetIDBet record Id
Int64Y
BetTimeBet timeDateTimeY
PayoutTimePayout timeDateTimeY
GameIDGame IDStringY
HostIDHost table IDInt16Y
HostNameTable nameStringY
GameTypeGame type name. Click here for detailsStringY
DetailReservedStringN
SetGame setIntY
RoundGame roundIntY
BetTypeBet item
Baccarat
Dragon Tiger
Sicbo
Fantan
Roulette
Money Wheel
Tip
ByteY
BetAmountBet amount (correct to cent)DecimalY
RollingRolling (correct to cent)DecimalY
GameResultThe result of the game (details in another table)
Baccarat
Dragon Tiger
Roulette
Sicbo
Fantan
Money Wheel
StringY
ResultAmountWin or Lost amount (correct to cent)DecimalY
BalanceRemain balances (correct to cent)DecimalY

Samples of each game type GameResult:

9.1.GameType

Code nameDescription
bacBaccarat
dtxDragon Tiger
sicboSic Bo
ftanFan Tan
rotRoulette
moneywheelMoney Wheel
tipTips

9.2.Baccarat

All baccarat type games share the same structure of section 9.2: GameResult, CardDetail, BetType and ResultDetail of Baccarat.
(Baccarat, Squeeze Baccarat, Speed Baccarat, Auto Baccarat)

9.2.1.GameResult of Baccarat

NameDescriptionType
PlayerCard1CardDetailStructure
PlayerCard2CardDetailStructure
PlayerCard3CardDetail (may not exist)Structure
BankerCard1CardDetailStructure
BankerCard2CardDetailStructure
BankerCard3CardDetail (may not exist)Structure
ResultDetailDetails of the resultStructure

9.2.2.CardDetail of Baccarat

NameDescriptionType
Suit♠ = 1 = 2 ♣ = 3 = 4Byte
RankA = 1
2 = 2

10 = 10
J = 11
Q = 12
K = 13
Byte

9.2.3.BetType for Baccarat

IDDescription
0Tie
1Player
2Banker
3Player Pair
4Banker Pair
54LuckySix
25NC. Tie
26NC. Player
27NC. Banker
28NC. Player Pair
29NC. Banker Pair
53NC. LuckySix
30SuperSix
36Player Natural
37Banker Natural
40NC. Player Natural
41NC. Banker Natural
42Cow Cow Player
43Cow Cow Banker
44Cow Cow Tie

9.2.4.ResultDetail for Baccarat

NameDescriptionType and
Limit
BRTieTieBool
BRPlayerWinPlayerBool
BRBankerWinBankerBool
BRPlayerPairPlayer PairBool
BRBankerPairBanker PairBool
BRSLuckySixLucky SixBool
BRSSTieNC. TieBool
BRSSPlayerWinNC. PlayerBool
BRSSBankerWinNC. BanderBool
BRSSPlayerPairNC. Player PairBool
BRSSBankerPairNC. Banker PairBool
BRSSSLuckySixNC. Lucky SixBool
BRSSSuperSixSuperSixBool
BRPlayerNaturalPlayer NaturalBool
BRBankerNaturalBanker NaturalBool
BRSSPlayerNaturalNC. Player NaturalBool
BRSSBankerNaturalNC. Banker NaturalBool
BRCowPlayerWinCow Cow PlayerBool
BRCowBankerWinCow Cow BankerBool
BRCowTieCow Cow TieBool

9.3.Dragon & Tiger

9.3.1.GameResult of Dragon Tiger

NameDescriptionType and Limit
DragonCardCardDetailStructure
TigerCardCardDetailStructure
ResultDetailDetails of the resultStructure

9.3.2.BetType for Dragon Tiger

IDDescription
0Tie
1Dragon
2Tiger

9.3.3.ResultDetail for Dragon Tiger

NameDescriptionType and Limit
DTRTieTie gameBool
DTRDragonWinDragon winBool
DTRTigerWinTiger winBool

9.4.Sic Bo

9.4.1.GameResult of Sic Bo

NameDescriptionType and Limit
Dice 1Dice 1Int
Dice 2Dice 2Int
Dice 3Dice 3Int
ResultDetailDetails of the resultStructure

9.4.2.BetType for Sic Bo

IDDescriptionIDDescription
0Small55Three Even
1Big561 2 3 4
2Odd572 3 4 5
3Even582 3 5 6
4Number 1593 4 5 6
5Number 260112
6Number 361113
7Number 462114
8Number 563115
9Number 664116
10All 165221
11All 266223
12All 367224
13All 468225
14All 569226
15All 670331
16All same71332
17Point 472334
18Point 573335
19Point 674336
20Point 775441
21Point 876442
22Point 977443
23Point 1078445
24Point 1179446
25Point 1280551
26Point 1381552
27Point 1482553
28Point 1583554
29Point 1684556
30Point 1785661
31Specific double 1, 286662
32Specific double 1, 387663
33Specific double 1, 488664
34Specific double 1, 589665
35Specific double 1, 690126
36Specific double 2, 391135
37Specific double 2, 492234
38Specific double 2, 593256
39Specific double 2, 694346
40Specific double 3, 495123
41Specific double 3, 596136
42Specific double 3, 697145
43Specific double 4, 598235
44Specific double 4, 699356
45Specific double 5, 6100124
46Pair 1101146
47Pair 2102236
48Pair 3103245
49Pair 4104456
50Pair 5105125
51Pair 6106134
52Three Odd107156
53Two Odd One Even108246
54Two Even One Odd109345

9.4.3.ResultDetail for Sic Bo

NameDescriptionType and Limit
SRBigSmall0 - Triple
1 - Big
2 - Small
Byte
SROddEven0 - Triple
1 - Odd
2 - Even
Byte
SRTripleArmyOneTriple army 1Bool
SRTripleArmyTwoTriple army 2Bool
SRTripleArmyThreeTriple army 3Bool
SRTripleArmyFourTriple army 4Bool
SRTripleArmyFiveTriple army 5Bool
SRTripleArmySixTriple army 6Bool
SRTriple0 - NA
1 - Triple 1
2 - Triple 2
3 - Triple 3
4 - Triple 4
5 - Triple 5
6 - Triple 6
Byte
SRAllTripleAll tripleBool
SRPoint0 - NA
4 - Point 4
5 - Point 5
6 - Point 6
7 - Point 7
8 - Point 8
9 - Point 9
10 - Point 10
11 - Point 11
12 - Point 12
13 - Point 13
14 - Point 14
15 - Point 15
16 - Point 16
17 - Point 17
Byte
SRLongOneTwoLong 1 2Bool
SRLongOneThreeLong 1 3Bool
SRLongOneFourLong 1 4Bool
SRLongOneFiveLong 1 5Bool
SRLongOneSixLong 1 6Bool
SRLongTwoThreeLong 2 3Bool
SRLongTwoFourLong 2 4Bool
SRLongTwoFiveLong 2 5Bool
SRLongTwoSixLong 2 6Bool
SRLongThreeFourLong 3 4Bool
SRLongThreeFiveLong 3 5Bool
SRLongThreeSixLong 3 6Bool
SRLongFourFiveLong 4 5Bool
SRLongFourSixLong 4 6Bool
SRLongFiveSixLong 5 6Bool
SRShort0 - NA
1 - Short 1
2 - Short 2
3 - Short 3
4 - Short 4
5 - Short 5
6 - Short 6
Byte
SROddEvenCombination0 - Three Odd
1 - Two Odd One Even
2 - Two Even One Odd
3 - Three Even
Byte
SR_1_2_3_41 2 3 4Bool
SR_2_3_4_52 3 4 5Bool
SR_2_3_5_62 3 5 6Bool
SR_3_4_5_63 4 5 6Bool
SRCombination0 - NA
1 - 112
2 - 113
3 - 114
4 - 115
5 - 116
6 - 221
7 - 223
8 - 224
9 - 225
10 - 226
11 - 331
12 - 332
13 - 334
14 - 335
15 - 336
16 - 441
17 - 442
18 - 443
19 - 445
20 - 446
21 - 551
22 - 552
23 - 553
24 - 554
25 - 556
26 - 661
27 - 662
28 - 663
29 - 664
30 - 665
31 - 126
32 - 135
33 - 234
34 - 256
35 - 346
36 - 123
37 - 136
38 - 145
39 - 235
40 - 356
41 - 124
42 - 146
43 - 236
44 - 245
45 - 456
46 - 125
47 - 134
48 - 156
49 - 246
50 - 345
Byte

9.5.Fan Tan

9.5.1.GameResult of Fan Tan

NameDescriptionType and Limit
PointRemain buttons count: 1, 2, 3 or 4Int
ResultDetailDetails of the resultStructure

9.5.2.BetType for Fan Tan

IDDescriptionIDDescription
0Odd214 Nim 3
1Even2212 Kwok
21 Zheng2341 Kwok
32 Zheng2423 Kwok
43 Zheng2534 Kwok
54 Zheng261 Tong 23
61 Fan271 Tong 24
72 Fan281 Tong 34
83 Fan292 Tong 13
94 Fan302 Tong 14
101 Nim 2312 Tong 34
111 Nim 3323 Tong 12
121 Nim 4333 Tong 14
132 Nim 1343 Tong 24
142 Nim 3354 Tong 12
152 Nim 4364 Tong 13
163 Nim 1374 Tong 23
173 Nim 238123 Chun
183 Nim 439124 Chun
194 Nim 140134 Chun
204 Nim 241234 Chun

9.5.3.ResultDetail for Fan Tan

NameDescriptionType and Limit
FTROddOddBool
FTREvenEvenBool
FTRZhengOne1 ZhengBool
FTRZhengTwo2 ZhengBool
FTRZhengThree3 ZhengBool
FTRZhengFour4 ZhengBool
FTRFanOne1 FanBool
FTRFanTwo2 FanBool
FTRFanThree3 FanBool
FTRFanFour4 FanBool
FTROneNimTwo1 Nim 2Bool
FTROneNimThree1 Nim 3Bool
FTROneNimFour1 Nim 4Bool
FTRTwoNimOne2 Nim 1Bool
FTRTwoNimThree2 Nim 3Bool
FTRTwoNimFour2 Nim 4Bool
FTRThreeNimOne3 Nim 1Bool
FTRThreeNimTwo3 Nim 2Bool
FTRThreeNimFour3 Nim 4Bool
FTRFourNimOne4 Nim 1Bool
FTRFourNimTwo4 Nim 2Bool
FTRFourNimThree4 Nim 3Bool
FTRKwokOneTwo12 KwokBool
FTRKwokOneFour41 KwokBool
FTRKwokTwoThree23 KwokBool
FTRKwokThreeFour34 KwokBool
FTROneTongTwoThree23 Tong 1Bool
FTROneTongTwoFour24 Tong 1Bool
FTROneTongThreeFour34 Tong 1Bool
FTRTwoTongOneThree13 Tong 2Bool
FTRTwoTongOneFour14 Tong 2Bool
FTRTwoTongThreeFour34 Tong 2Bool
FTRThreeTongOneTwo12 Tong 3Bool
FTRThreeTongOneFour14 Tong 3Bool
FTRThreeTongTwoFour24 Tong 3Bool
FTRFourTongOneTwo12 Tong 4Bool
FTRFourTongOneThree13 Tong 4Bool
FTRFourTongTwoThree23 Tong 4Bool
FTRChunOneTwoThree123 ChunBool
FTRChunOneTwoFour124 ChunBool
FTRChunOneThreeFour134 ChunBool
FTRChunTwoThreeFour234 ChunBool

9.6.Roulette

9.6.1.GameResult of Roulette

NameDescriptionType and Limit
Point0 to 36Int
ResultDetailDetails of the resultStructure

9.6.2.BetType for Roulette

IDDescriptionIDDescription
0~360~36970,1,2
370,1980,2,3
380,2991,2,3
390,31004,5,6
401,21017,8,9
411,410210,11,12
422,310313,14,15
432,510416,17,18
443,610519,20,21
454,510622,23,24
464,710725,26,27
475,610828,29,30
485,810931,32,33
496,911034,35,36
507,81111,2,4,5
517,101122,3,5,6
528,91134,5,7,8
538,111145,6,8,9
549,121157,8,10,11
5510,111168,9,11,12
5610,1311710,11,13,14
5711,1211811,12,14,15
5811,1411913,14,16,17
5912,1512014,15,17,18
6013,1412116,17,19,20
6113,1612217,18,20,21
6214,1512319,20,22,23
6314,1712420,21,23,24
6415,1812522,23,25,26
6516,1712623,24,26,27
6616,1912725,26,28,29
6717,1812826,27,29,30
6817,2012928,29,31,32
6918,2113029,30,32,33
7019,2013131,32,34,35
7119,2213232,33,35,36
7220,211331,2,3,4,5,6
7320,231344,5,6,7,8,9
7421,241357,8,9,10,11,12
7522,2313610,11,12,13,14,15
7622,2513713,14,15,16,17,18
7723,2413816,17,18,19,20,21
7823,2613919,20,21,22,23,24
7924,2714022,23,24,25,26,27
8025,2614125,26,27,28,29,30
8125,2814228,29,30,31,32,33
8226,2714331,32,33,34,35,36
8326,291441st 12 (1~12)
8427,301452nd 12 (13~24)
8528.291463rd 12 (25~36)
8628,311471st Row (1~34)
8729,301482nd Row (2~35)
8829,321493rd Row (3~36)
8930,331501~18 (Small)
9031,3215119~36 (Big)
9131,34152Odd
9232,33153Even
9332,35154Red
9433,36155Black
9534,351560,1,2,3
9635,36

9.6.3.ResultDetail for Roulette

NameDescriptionType and Limit
RRZero0Bool
RROne1Bool
RRTwo2Bool
RRThree3Bool
RRFour4Bool
RRFive5Bool
RRSix6Bool
RRSeven7Bool
RREight8Bool
RRNine9Bool
RRTen10Bool
RREleven11Bool
RRTwelve12Bool
RRThirteen13Bool
RRForteen14Bool
RRFifthteen15Bool
RRSixteen16Bool
RRSeventeen17Bool
RREighteen18Bool
RRNineteen19Bool
RRTwenty20Bool
RRTwentyOne21Bool
RRTwentyTwo22Bool
RRTwentyThree23Bool
RRTwentyFour24Bool
RRTwentyFive25Bool
RRTwentySix26Bool
RRTwentySeven27Bool
RRTwentyEight28Bool
RRTwentyNine29Bool
RRThirty30Bool
RRThirtyOne31Bool
RRThirtyTwo32Bool
RRThirtyThree33Bool
RRThirtyFour34Bool
RRThirtyFive35Bool
RRThirtySix36Bool
RRSet11st 12 (1~12)Bool
RRSet22nd 12 (13~24)Bool
RRSet33rd 12 (25~36)Bool
RRRow11st Row (1~34)Bool
RRRow22nd Row (2~35)Bool
RRRow33rd Row (3~36)Bool
RR1To18SmallBool
RR19To36BigBool
RROddOddBool
RREvenEvenBool
RRRedRedBool
RRBlackBlackBool

9.7.Money Wheel

9.7.1.GameResult of Money Wheel

NameDescriptionType and Limit
MainMultiplier:
01
12
29
316
424
5SA-Gold (50)
6SA-Black (50)
Int
SideSide bets:
7Fish
8Prawn
9Crab
10Coin
11Gourd
12Rooster
Int
ResultDetailDetails of the resultStructure

9.7.2.BetType for Money Wheel

IDDescription
01
12
29
316
424
550 Gold
650 Black
7Fish
8Prawn
9Crab
10Coin
11Gourd
12Rooster

9.7.3.ResultDetail for Money Wheel

NameDescriptionType and Limit
MWRMain11Bool
MWRMain22Bool
MWRMain39Bool
MWRMain416Bool
MWRMain524Bool
MWRMain650 GoldBool
MWRMain750 BlackBool
MWRSide1FishBool
MWRSide2PrawnBool
MWRSide3CrabBool
MWRSide4CoinBool
MWRSide5GourdBool
MWRSide6RoosterBool

9.8.Tips

9.8.1.BetType for Tips

IDDescription
254Tips

10.Host ID to Game mapping

IDGame
830E - Roulette
831Baccarat E01
832Baccarat E02
833Baccarat E03
834Baccarat E04
835Baccarat E05
836Baccarat E06
837Baccarat E07
838Baccarat E08
839Baccarat E09
841Baccarat E10
842E - Sic Bo
843E - Dragon Tiger
850P - Dragon Tiger
851Baccarat P01
852Baccarat P02
853Baccarat P03
854Baccarat P04
855Baccarat P05
856Baccarat P06
857Baccarat P07
858Baccarat P08

11.Supported currencies

The following is the list of currencies we supported. Please notice that currency has to be enabled in your api account before you can use it, you may contact our CS for queries.

Currency ISO nameCurrency
AEDEmirati Dirham
ARSArgentina Peso
AUDAustralian Dollar
BDTBangladeshi Taka
BNDBruneian Dollar
BRLBrazilian Real
CADCanadian Dollar
CHFSwiss Franc
CLPChilean Peso
DKK Danish Krone
EUREuro
GBPBritish Pound
HUFHungarian Forint
IDR*Indonesian Rupiah
INRIndian Rupee
JPYJapanese yen
KHR*Cambodian Riel
KZTKazakhstani Tenge
LKRSri Lankan Rupee
MMK*Burmese Kyat
MYRMalaysian Ringgit
mXBTmilli Bitcoin
NOKNorwegian Krone
NZDNew Zealand Dollar
PENPeruvian Nuevo Sol
PLNPolish Zloty
RUBRussian Ruble
SEKSwedish Krone
SGDSingapore Dollar
THBThai Baht
TNDTunisian Dinar
TRYTurkish Lira
TWDTaiwan New Dollar
UAHUkrainian Hryvnia
USDUS Dollar
USDTTether
USDT010 times of USDT
VND*Vietnamese Dong
ZARSouth Africa Rand

In our system, currency with * is divided by 1000 from real-world currency.

Suggest Edit