Web Service API

Technical Guide

  1. Introduction
  2. Version
  3. API Calling Restriction Information
  4. Encryption
    1. Encryption Requirements
    2. Encryption Procedures
    3. Example to call API
    4. Error handling
  5. Web Service Interface
    1. User Account Manipulation
      1. RegUserInfo
      2. VerifyUsername
      3. GetUserStatusDV
      4. QueryBetLimit
      5. SetAllBetLimit
      6. GetUserMaxBalance
      7. SetUserMaxBalance
      8. SetUserMaxWinning
      9. QueryUserBetLimit
    2. Login Access
      1. LoginRequest
      2. LoginRequestForFun
      3. KickUser
    3. Bet Records Query
      1. GetAllBetDetailsDV
      2. GetAllBetDetailsForTimeIntervalDV
      3. GetAllBetDetailsForTransactionID
      4. GetUserBetItemDV
      5. GetUserBetAmountDV
      6. GetUserWinLost
      7. GetTransactionDetails
      8. GetActiveHostList
      9. GetCancelledBetDetails
      10. GetGameErrorDetail
    4. Transfer Wallet
      1. DebitBalanceDV
      2. DebitAllBalanceDV
      3. CreditBalanceDV
      4. CheckOrderId
      5. CheckOrderDetailsDV
    5. Seamless Wallet
      1. ResendTransaction
  6. Seamless Wallet Integration
    1. Introduction
    2. Workflow
    3. Seamless Wallet Protocol
      1. Encryption procedures
      2. POST
      3. Response data
    4. GetUserBalance
    5. Fund Transfer
      1. PlaceBet
      2. PlayerWin
      3. PlayerLost
      4. PlaceBetCancel
    6. Error code list
  7. Error message code reference
  8. Game Launching Procedures
    1. Live Game
  9. UserBetItem
    1. GameType
    2. Baccarat
      1. GameResult of Baccarat
      2. CardDetail of Baccarat
      3. BetType for Baccarat
      4. ResultDetail for Baccarat
    3. Dragon & Tiger
      1. GameResult of Dragon Tiger
      2. BetType for Dragon Tiger
      3. ResultDetail for Dragon Tiger
    4. Sic Bo
      1. GameResult of Sic Bo
      2. BetType for Sic Bo
      3. ResultDetail for Sic Bo
    5. Roulette
      1. GameResult of Roulette
      2. BetType for Roulette
      3. ResultDetail for Roulette
    6. Pok Deng
      1. GameResult of Pok Deng
      2. BetType for Pok Deng
      3. ResultDetail for Pok Deng
      4. Result state for Pok Deng
      5. Total point for Pok Deng
    7. Andar Bahar
      1. GameResult of Andar Bahar
      2. BetType for Andar Bahar
      3. ResultDetail for Andar Bahar
    8. Teen Patti 20-20
      1. GameResult of Teen Patti 20-20
      2. BetType for Teen Patti 20-20
      3. ResultDetail for Teen Patti 20-20
    9. Blackjack
      1. GameResult of Blackjack
      2. BetType for Blackjack
      3. ResultDetail for Blackjack
    10. Xóc Đĩa
      1. GameResult of Xóc Đĩa
      2. BetType for Xóc Đĩa
      3. ResultDetail for Xóc Đĩa
  10. Host ID to Game mapping
  11. Supported Currencies
  12. Resources

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.53
  1. Add new supported currency “Swazi Lilangeni - SZL”
2024/01/29
3.0.54
  1. Add new lang parameter "ar_001" - Arabic Fosha
2024/03/04
3.0.55
  1. Add new supported currency CDF, COP, ILS, IRR, KHR2, TZS, UGX, UZS
2024/03/18
3.0.56
  1. Add new supported currency - PYG & PYG2
  2. Remove Cow Cow Baccarat related information
2024/04/08
3.0.57
  1. API PlayerWin & PlayerLost- add new parameter "payoutdetails"
2024/04/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
GetCancelledBetDetailsEvery 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 places. 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/HTTPS POST request to API url.
  • 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/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
UsernameUsernameString (48)Y
CurrencyTypeCurrency:
USD
Refer to Supported currencies
String (16)Y
Result
NameDescriptionType and LimitRequired?
UsernameUsernameString (48)Y
ErrorMsgIdError message:
0: Success
108: Username length/format incorrect
113: Username duplicated
114: Currency not exist
133: Create user failed
ByteY
ErrorMsgError message detailsStringY

Output

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
UsernameUsernameString (48)Y
Result
NameDescriptionType and LimitRequired?
UsernameUsernameString (48)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 (48)Y
Result
NameDescriptionType and LimitRequired?
IsSuccessSuccess?
True: Success
False: Failed
BoolY
UsernameUsernameString (48)Y
BalanceActive balance, excluding betted amount. Correct to cent. (Not applicable for seamless wallet)DecimalY
OnlineOnline?BoolY
BettedBetted? (Not applicable for seamless wallet)BoolY
BettedAmountTotal betted amount (Not applicable for seamless wallet)DecimalY
MaxBalanceUpper limit in user's balance to place bet (Not applicable for seamless wallet)DecimalY
MaxWinningDaily winning limitation to allow place betDecimalY
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
Gametypeandarbahar - Andar Bahar
baccarat – Baccarat
blackjack – Blackjack
dragontiger - Dragon Tiger
pokdeng - Pok Deng
roulette - Roulette
sicbo - SicBo
teenpatti2020 - Teen Patti 20-20
xocdia – Xóc Đĩa

To query bet limit for all game types, please use:
Gametype="all"
StringY
Result
NameDescriptionType and LimitRequired?
BetLimitListBetLimit listsXML StructureY
ErrorMsgIdError message:
0: Success
114: Currency not exist
155: Incorrect/missing game type
ByteY
ErrorMsgError message detailStringY
BetLimit structure
NameDescriptionType and LimitRequired?
RuleIDID of the bet limitInt64Y
GameTypeThe game type of return dataAttributeY
MinMinimum of the limit IntY
MaxMaximum of the limitIntY

BetLimit example

5.1.5.SetAllBetLimit #

Set bet limit for individual game type to a user.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "SetAllBetLimit"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (48)Y
CurrencyCurrency:
USD
Refer to Supported currencies
String (16)Y
ListSetID from QueryBetLimit

RuleID list retrieved from QueryBetLimit, Comma separated.
Eg. 10108405000150004,10108405000250005,10108402000120005

Example 1:
In QueryBetLimit:
Currency = THB
GameType = baccarat
RuleID “10107645000050002” for the bet limit of “5-500” will be returned.

Currency = THB
GameType = dragontiger
RuleID “10207641000110003” for the bet limit of “10-1000” will be returned.

In SetAllBetLimit, update the above THB bet limit for both Baccarat and DragonTiger:
Currency = THB
ListSet = “10107645000050002, 10207641000110003”

Example 2:
In QueryBetLimit:
Currency = VND
GameType = baccarat
RuleID “10107043000130005” and “10107041000320004” for the bet limit of “30-300,000” and “1,000 – 20,000” will be returned.

In SetAllBetLimit, update the above VND bet limit for Baccarat:
Currency = VND
ListSet = “10107043000130005, 10107041000320004”
String (Max)Y
Result
NameDescriptionType and LimitRequired?
ErrorMsgIdError message:
0: Success
102: Secret key incorrect
108: Username length/format incorrect
114: Currency not exist
116: Username does not exist
142: Parameter(s) error
157: ListSet error, up to 5 items is acceptable for each game type
158: Duplicate/Invalid bet limit rules occur
190: Function not for trial account
ByteY
ErrorMsgError message detailStringY

Output

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 (48)Y
Result
NameDescriptionType and LimitRequired?
MaxBalanceMaximum balanceDecimalY
ErrorMsgIdError message:
0: Success
100: Username error
108: Username length/format incorrect
116: Username does not exist
159: This API is for transfer wallet
ByteY
ErrorMsgError message detailStringY

Output

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 (48)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
159: This API is for transfer wallet
ByteY
ErrorMsgError message detailStringY

Output

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 (48)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

Output

5.1.9.QueryUserBetLimit #

Query all of the bet limit for specified user.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "QueryUserBetLimit"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (48)Y
GametypeGame type
To query bet limit for all game types, use:
Gametype="all"
StringY
Result
NameDescriptionType and LimitRequired?
UsernameUsernameString (48)Y
BetLimitListBetLimit listsXML StructureY
ErrorMsgIdError message:
0: Success
108: Username length/format incorrect
116: Username does not exist
155: Incorrect/missing game type
ByteY
ErrorMsgError message detailStringY
BetLimit structure
NameDescriptionType and LimitRequired?
RuleIDID of the bet limitInt64Y
GameTypeThe game type of return dataAttributeY
MinMinimum of the limit IntY
MaxMaximum of the limitIntY

BetLimit example

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
UsernameUsernameString (48)Y
CurrencyTypeCurrency:
USD
Refer to Supported currencies
String (16)Y
Result
NameDescriptionType and LimitRequired?
Token #Token for Live gameStringY
DisplayName *Internal assigned usernameString (52)Y
ErrorMsgIdError message:
0: Success
129: System under maintenance
130: User account is locked (disabled)
133: Create user failed
135: Game access denied
ByteY
ErrorMsgError message detailStringY

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

* All username will be added a suffix @xxx. The DisplayName will be the actual username in our database.

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 amount, with upper limit of US$100 or equivalent value for other currencies. If the requested amount exceeds the upper limit, the system will automatically adjust to the upper limit.DecimalY
CurrencyTypeCurrency:
USD
Refer to Supported currencies
String (16)Y
Result
NameDescriptionType and LimitRequired?
Token#Token for Live gameStringY
DisplayNameInternal assigned usernameString (52)Y
ErrorMsgIdError message:
0: Success
129: System under maintenance
135: Game access denied
ByteY
ErrorMsgError message detailStringY

Output

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
UsernameUsernameString (48)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

Output

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
UsernameUsernameString (48)N
DateDate for details “yyyy-MM-dd”
DateN
Result
NameDescriptionType and LimitRequired?
NumOfRecordThe number of record(s) returnedIntY
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
UsernameUsernameString (48) Y
HostIDHost table IDInt (16)Y
DetailReserved StringN
GameIDGame ID String (64)Y
RoundGame Round IntY
SetGame Set IntY
BetIDBet ID Int (64)Y
CurrencyCurrency:
USD
Refer to Supported currencies
String (16)Y
BetAmountBet amount DecimalY
RollingValid bet amountDecimalY
ResultAmountPayout DecimalY
BalanceBalance after this bet (Not applicable for seamless wallet)DecimalY
GameTypeGame type. For details please click hereStringY
BetTypeLive game: Bet type of different games IntY
BetSource
2640Web - Single Bet
2641Web - Multi Bet
8792Mobile - Single Bet, Other OS
8793Mobile - Multi Bet, Other OS
8920Mobile - Single Bet, iOS
8921Mobile - Multi Bet, iOS
9048Mobile - Single Bet, Android
9049Mobile - Multi Bet, Android
IntY
TransactionIDSeamless wallet PlaceBet transaction ID.
-1 if not using seamless wallet
Int (64)Y
GameResultThe result of the game
Baccarat
Dragon Tiger
Sicbo
Roulette
Pok Deng
Andar Bahar
Teen Patti 20-20
Blackjack
Xóc Đĩa
XMLY

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
UsernameUsernameString (48)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?
NumOfRecordThe number of record(s) returnedIntY
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 GetAllBetDetailsDV.

5.3.3.GetAllBetDetailsForTransactionID #

This web service is used for seamless wallet to fetch the bet records details of a PlaceBet, PlayerWin or PlayerLost transaction ID. Example:
1. use PlaceBet’s transaction ID will return the related transaction ID’s bet details
2. use PlayerWin or PlayerLost transaction ID will return whole game round result of the related player.

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?
NumOfRecordThe number of record(s) returnedIntY
ResultThe result of the game
Baccarat
Dragon Tiger
Roulette
Sicbo
Pok Deng
Andar Bahar
Teen Patti 20-20
Blackjack
Xóc Đĩa
XMLY
BetDetailListBet details structureXMLY
ErrorMsgIdError message
0: Success
106: Server not ready
152: Transaction ID not found
160: This API is for seamless wallet
ByteY
ErrorMsgError message detailStringY
BetDetail structure:
NameDescriptionType and LimitRequired?
BetTimeBet start timeDate TimeY
PayoutTimePayout timeDate TimeY
UsernameUsernameString (48)Y
HostIDHost table IDInt16Y
GameIDGame IDStringY
RoundGame RoundIntY
SetGame SetIntY
BetIDBet IDInt64Y
CurrencyCurrency:
USD
Refer to Supported currencies
String (16)Y
BetAmountBet amountDecimalY
RollingValid bet amountDecimalY
ResultAmountPayoutDecimalY
BalanceBalance after this bet (Not applicable for seamless wallet)DecimalY
GameTypeGame type. For details please click hereStringY
BetTypeLive game: Bet type of different gamesIntY
BetSource
2640Web - Single Bet
2641Web - Multi Bet
8792Mobile - Single Bet, Other OS
8793Mobile - Multi Bet, Other OS
8920Mobile - Single Bet, iOS
8921Mobile - Multi Bet, iOS
9048Mobile - Single Bet, Android
9049Mobile - Multi Bet, Android
IntY
DetailReservedStringN
TransactionIDSeamless wallet PlaceBet transaction ID.
-1 if not using seamless wallet
Int64Y

Output:

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 (48)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 (48)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 (48)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 (48)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 (48)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?
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

Output

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 (48)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
WinloseWin/loseDecimalY
TotalBetTotal bet amountDecimalY
TotalRollingTotal valid bet amountDecimalY

5.3.8.GetActiveHostList #

Check the list of active hosts.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetActiveHostList"String (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
KeySecret keyString (32)Y
Result
NameDescriptionType and LimitRequired?
HostListHost listXML StructureY
ErrorMsgIdError message:
0: Success
ByteY
ErrorMsgError message detailsStringY
HostList structure
NameDescriptionType and LimitRequired?
HostIDHost IDInt(16)Y
GameTypeGame typeStringY
HostNameHost nameStringY
Enabledtrue – Enabled in Backoffice by operator
false – Disabled in Backoffice by operator
BoolY
GameStatus0 - Table is opened
1 - Table is closed
IntY

HostList example

5.3.9.GetCancelledBetDetails #

This web service is used to fetch the cancelled bet records. If date range is not input or is not correct, previous 2 months + current month data will be returned.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetCancelledBetDetails"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (48)N
GameIDGame IDString (64)N
FromTimeDate for details “yyyy-MM-dd HH:mm:ss”
Date TimeN
ToTimeDate for details “yyyy-MM-dd HH:mm:ss”
Date TimeN
Result
NameDescriptionType and LimitRequired?
UsernameThe input usernameString (48)Y
GameIDThe input GameIDString (64)Y
FromTimeThe input FromTimeDateTimeY
ToTimeThe input ToTimeDateTimeY
NumOfRecordThe number of record(s) returnedIntY
CancelledBetDetailListCancelledBetDetail structureXMLY
ErrorMsgIdError message ID
ByteY
ErrorMsgError message descriptionStringY
CancelledBetDetailList structure:
NameDescriptionType and LimitRequired?
StartTimeGame start timeDateTimeY
CancelledTimeGame cancelled timeDateTimeY
GameIDGame IDStringY
HostIDHost IDInt16Y
GameTypeGame typeStringY
RoundGame RoundIntY
SetGame SetIntY
BetTimeBet timeDateTimeY
UsernameUsernameString (48)Y
TransactionIDSeamless wallet PlaceBet transaction ID.
-1 if not using seamless wallet
Int64Y
BetIDBet IDInt64Y
CurrencyCurrencyString (16)Y
BetAmountBet amountDecimalY
BetTypeBet typeIntY
BetSource
2640Web - Single Bet
2641Web - Multi Bet
8792Mobile - Single Bet, Other OS
8793Mobile - Multi Bet, Other OS
8920Mobile - Single Bet, iOS
8921Mobile - Multi Bet, iOS
9048Mobile - Single Bet, Android
9049Mobile - Multi Bet, Android
IntY

Output:

5.3.10.GetGameErrorDetail #

This web service is used to fetch the game error bet records. If date range is not input or is not correct, previous 2 months + current month data will be returned.

Parameters
NameDescriptionType and LimitRequired?
methodMust be "GetGameErrorDetail"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
UsernameUsernameString (48)N
GameIDGame IDString (64)N
HostListHost ID
If more than one, please use “,” as a delimiter
ListN
FromTimeDate for details “yyyy-MM-dd HH:mm:ss”
Date TimeN
ToTimeDate for details “yyyy-MM-dd HH:mm:ss”
Date TimeN
Result
NameDescriptionType and LimitRequired?
UsernameThe input usernameString (48)Y
GameIDThe input GameIDString (64)Y
HostListThe input HostListListY
FromTimeThe input FromTimeDateTimeY
ToTimeThe input ToTimeDateTimeY
NumOfRecordThe number of game error(s) returnedIntY
GameErrorResultListGameErrorResult structureXMLY
ErrorMsgIdError message ID
ByteY
ErrorMsgError message descriptionStringY
GameErrorResultList structure:
GameIDGame IDStringY
RoundGame RoundIntY
SetGame SetIntY
PayoutTimePayout timeDateTimeY
HostIDHost IDInt16Y
GameTypeGame typeStringY
IncorrectResultGame result (with ResultDetail)XMLY
CorrectResultGame result (with ResultDetail)XMLY
ImpactedTransactionListImpacted transaction listXMLY
ImpactedTransactionList structure:
NameDescriptionType and LimitRequired?
CountNumber of transactionsIntY
GETransactionDetailListGETransactionDetail structureXMLY
GETransactionDetailList structure:
NameDescriptionType and LimitRequired?
BetTimeBet timeDateTimeY
PayoutTimePayout timeDateTimeY
AdjustmentTimeGame error adjustment timeDateTimeY
UsernameUsernameString (48)Y
BetIDBet IDInt64Y
CurrencyCurrencyString (16)Y
BetTypeBet typeIntY
BetAmountBet amountDecimalY
OriginalWinloseOriginal Win/lose amount, before adjustmentDecimalY
AdjustedWinloseAdjusted Win/lose amount, after adjustmentDecimalY

Output:

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 (48)Y
OrderIdOrder ID: OUT+yyyyMMddHHmmss+Username
e.g. “OUT20131129130345peter1235”
String (64)Y
DebitAmountDebit amount. Maximum two decimal only.DecimalY
Result
NameDescriptionType and LimitRequired?
UsernameUsernameString (48)Y
BalanceRemained active balanceDecimalY
DebitAmountDebited amountDecimalY
OrderIdOrder ID String (64)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
159: This API is for transfer wallet
ByteY
ErrorMsgError message detailStringY

Output

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 (48)Y
OrderIdOrder ID: OUT+yyyyMMddHHmmss+Username
e.g. “OUT20131129130345peter1235”
String (64)Y
Result
NameDescriptionType and LimitRequired?
UsernameUsernameString (48)Y
DebitAmountDebited amountDecimalY
OrderIdOrder ID String (64)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
159: This API is for transfer wallet
ByteY
ErrorMsgError message detailStringY

Output

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 (48)Y
OrderIdOrder ID: IN+yyyyMMddHHmmss+Username
e.g. “IN20131129130345peter1235”
String (64)Y
CreditAmountCredit amountDecimalY
Result
NameDescriptionType and LimitRequired?
UsernameUsernameString (48)Y
BalanceBalance after creditDecimalY
CreditAmountCredited amountDecimalY
OrderIdOrder IDString (64)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
159: This API is for transfer wallet
ByteY
ErrorMsgError message detailStringY

Output

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 (64)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
159: This API is for transfer wallet
ByteY
ErrorMsgError message detailStringY

Output

5.4.5.CheckOrderDetailsDV #

Check the OrderId details of fund transfer orders (deposit & withdrawal)

Parameters
NameDescriptionType and LimitRequired?
methodMust be "CheckOrderDetailsDV"String (32)Y
KeySecret keyString (32)Y
TimeCurrent time in "yyyyMMddHHmmss" formatDateTimeY
OrderIdThe OrderId used in
  • DebitBalanceDV
  • DebitAllBalanceDV
  • CreditBalanceDV
String (64)Y
Result
NameDescriptionType and LimitRequired?
isExistThe OrderId exist or not
  • true - Existing
  • false - Not existing

If true, the Date, Type, Currency, Amount, PreviousBalance and Balance parameter will be returned
StringY
ErrorMsgIdError message:
0: Success
106: Server not ready. Try again later.
124: Database error
127: Invalid order ID format
159: This API is for transfer wallet
ByteY
ErrorMsgError message detailStringY
DateTransaction timeDateTimeN
Type
  • 0 - Deposit
  • 1 - Withdrawal
ByteN
CurrencyCurrency:
USD
Refer to Supported currencies
String (16)N
AmountTransfer amount (withdraw or deposit)
(decimal format and max. 2 decimal places)
DecimalN
PreviousBalanceAmount before adjustment (decimal format and max. 2 decimal places) (Not applicable for seamless wallet)DecimalN
BalanceAmount after adjustment (decimal format and max. 2 decimal places) (Not applicable for seamless wallet)DecimalN

Output

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
160: This API is for seamless wallet
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.

SA Gaming platform provides “Test Plan” to assist operators in integration. Please contact our CS for more information.

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.

**All above Fund Transfer functions provide a unique transaction ID and partner system should only process once and only once, but must always respond.

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/HTTPS 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 sent to the partner system to retrieve the balance of a user.

Input parameters:
NameDescriptionType and LimitRequired?
usernameUsernameString (48)Y
currencyISO 3 characters e.g. USD/EUR. Except mXBTString (16)Y

E.g.

Response parameters:
NameDescriptionType and LimitRequired?
usernameUsername String (48)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 note: Bets on Pok Deng Player 1 to Player 5 will withhold 2 times of the bet amount.

Parameters:
NameDescriptionType and LimitRequired?
usernameUsernameString (48)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 typeStringY
platform0 - desktop
1 - mobile
ByteY
hostidHost ID, please refer to Section 10. IntY
gameidGame IDStringY
betdetailsBet details array
type - Bet type
amount - Bet amount
JSONY

E.g. :

username=satest&currency=EUR&amount=200.00&txnid=312355&gametype=bac&platform=0&timestamp=2021-03-19 16:11:36.344&gameid=23547362930688&hostid=901&ip=121.122.123.124&betdetails={“details”:[{“type”:2,”amount”:100},{“type”:3,”amount”:100}]}

Response parameters:
NameDescriptionType and LimitRequired?
usernameUsernameString (48)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?
usernameUsernameString (48)Y
currencyISO 3 characters e.g. USDString (16)Y
amountAmount to add back (decimal format and max. 2 decimal places)DecimalY
rollingValid bet amountDecimalY
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 typeStringY
PayouttimeTime of the payoutDateTimeY
hostidHost ID, please refer to Section 10. IntY
gameidGame IDStringY
retry1st send: retry=0
2nd send: retry=1
IntY
payoutdetailsBetList - List of bets with detailsStructureY
BetList structure:
NameDescriptionType and LimitRequired?
betidBet IDInt64Y
bettypeBet typeIntY
betamountBet amountDecimalY
resultamountPayoutDecimalY
txnidA unique ID for all fund transferString (16)Y
betsourceBet sourceIntY
rollingValid bet amountDecimalY

E.g. :

username=demo888&currency=USD&amount=19.50&txnid=1748485&gametype=bac&Payouttime=2023-10-12 12:41:33&timestamp=2023-10-12 12:42:01.024&rolling=19.50&gameid=38495191461888&hostid=871&retry=0&payoutdetails={“betlist”:[{“betid”:30862073,”bettype”:2,”betamount”:10,”resultamount”:9.5,”txnid”:1748483,”betsource”:2640,”rolling”:9.5},{“betid”:30862074,”bettype”:4,”betamount”:10,”resultamount”:-10,”txnid”:1748484,”betsource”:2640,”rolling”:10}]}

Response parameters:
NameDescriptionType and LimitRequired?
usernameUsernameString (48)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?
usernameUsernameString (48)Y
currencyISO 3 characters e.g. USDString (3)Y
rollingValid bet amountDecimalY
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 typeStringY
PayouttimeTime of the payoutDateTimeY
hostidHost ID, please refer to Section 10.IntY
gameidGame IDStringY
retry1st send: retry=0
2nd send: retry=1
IntY
payoutdetailsBetList
- List of bets with details
- Refer to "PlayerWin" for details
StructureY

E.g. :

username=satest&currency=EUR&rolling=200&txnid=312358&gametype=bac&Payouttime=2021-03-19 16:12:28&timestamp=2021-03-19 16:12:18.531&gameid=23547362930688&hostid=901&retry=0&payoutdetails=
{“betlist”:[{“betid”:30862073,”bettype”:2,”betamount”:100,”resultamount”:-100,”txnid”:1748483,”betsource”:2640,”rolling”:100},{“betid”:30862074,”bettype”:4,”betamount”:100,”resultamount”:-100,”txnid”:1748484,”betsource”:2640,”rolling”:100}]}

Response parameters:
NameDescriptionType and LimitRequired?
usernameUsernameString (48)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?
usernameUsernameString (48)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 typeStringY
hostidHost ID, please refer to Section 10. IntY
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
retry1st send: retry=0
2nd send: retry=1
IntY
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=satest&currency=EUR&amount=100.00&txnid=312357&gametype=bac&txn_reverse_id=312356&timestamp=2021-03-19 16:12:05.312&gameid=23547362930688&hostid=901&retry=0&gamecancel=0

Response parameters:
NameDescriptionType and LimitRequired?
usernameUsernameString (48)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
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
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
154Trial Player Not Support
155Incorrect/missing game type
157ListSet error, up to 5 items is acceptable for each game type
158Duplicate/Invalid bet limit rules occur
160This API is for seamless wallet
190Function not for trial account

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 Game Client Launching URL (e.g. xx.sa-api.net/app.aspx.)

ParameterDescriptionRequired?
usernameThe username displayed 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=901,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=901,hidelogo=1

Lang parameter
CodeDescription
ar_001Arabic Fosha
bnBengali
en_USEnglish
esSpanish
hiHindi
idBahasa Indonesia
jpJapanese
msMalay
ptPortuguese
pt_BRPortuguês Brasileiro
teTelugu
thThai
vnVietnamese
zh_CNSimplified Chinese
zh_TWTraditional Chinese

9.UserBetItem #

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

NameDescriptionType and LimitRequired?
BetIDBet record IDInt64Y
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
Roulette
Pok Deng
Andar Bahar
Teen Patti 20-20
Blackjack
Xóc Đĩa
ByteY
BetAmountBet amount (correct to cent)DecimalY
RollingRolling (correct to cent)DecimalY
GameResultThe result of the game (details in another table)
Baccarat
Dragon Tiger
Sicbo
Roulette
Pok Deng
Andar Bahar
Teen Patti 20-20
Blackjack
Xóc Đĩa
XMLY
ResultAmountWin or Lost amount (correct to cent)DecimalY
BalanceRemain balances (correct to cent) (Not applicable for seamless wallet)DecimalY

GameResult sample of Baccarat:

GameResult sample of Dragon Tiger:

GameResult sample of Sicbo:

GameResult sample of Roulette:

GameResult sample of Pok Deng:

GameResult sample of Andar Bahar:

GameResult sample of Teen Patti 20-20:

GameResult sample of Blackjack:

GameResult sample of Xóc Đĩa:

9.1.GameType #

Code nameDescription
bacBaccarat
dtxDragon Tiger
sicboSic Bo
rotRoulette
pokdengPok Deng
andarbaharAndar Bahar
teenpatti2020Teen Patti 20-20
blackjackBlackjack
xocdiaXóc Đĩa

9.2.Baccarat #

All baccarat type games share the same structure of section 9.2: GameResult, CardDetail, BetType and ResultDetail of Baccarat.
(Baccarat, Speed 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
25NC. Tie
26NC. Player
27NC. Banker
28NC. Player Pair
29NC. Banker Pair
36Player Natural
37Banker Natural
40NC. Player Natural
41NC. Banker Natural
53NC. Lucky Six
54Lucky Six

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
BRPlayerNaturalPlayer NaturalBool
BRBankerNaturalBanker NaturalBool
BRSSPlayerNaturalNC. Player NaturalBool
BRSSBankerNaturalNC. Banker NaturalBool

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
DTRTieTieBool
DTRDragonWinDragonBool
DTRTigerWinTigerBool

9.4.Sic Bo #

9.4.1.GameResult of Sic Bo #

NameDescriptionType and Limit
Dice1Dice 1Int
Dice2Dice 2Int
Dice3Dice 3Int
ResultDetailDetails of the resultStructure

9.4.2.BetType for Sic Bo #

IDDescriptionIDDescription
0Small55All Even
1Big561234
2Odd572345
3Even582356
4Number 1593456
5Number 260112
6Number 361113
7Number 462114
8Number 563115
9Number 664116
10Triple 165221
11Triple 266223
12Triple 367224
13Triple 468225
14Triple 569226
15Triple 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
52All Odd107156
532 Odd 1 Even108246
542 Even 1 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 1Bool
SRTripleArmyTwoTriple 2Bool
SRTripleArmyThreeTriple 3Bool
SRTripleArmyFourTriple 4Bool
SRTripleArmyFiveTriple 5Bool
SRTripleArmySixTriple 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 - All Odd
1 - 2 Odd 1 Even
2 - 2 Even 1 Odd
3 - All Even
Byte
SR_1_2_3_41234Bool
SR_2_3_4_52345Bool
SR_2_3_5_62356Bool
SR_3_4_5_63456Bool
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.Roulette #

9.5.1.GameResult of Roulette #

NameDescriptionType and Limit
Point0 to 36Int
ResultDetailDetails of the resultStructure

9.5.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
8427,301452nd 12
8528.291463rd 12
8628,311471st Row
8729,301482nd Row
8829,321493rd Row
8930,331501~18
9031,3215119~36
9131,34152Odd
9232,33153Even
9332,35154Red
9433,36155Black
9534,351560,1,2,3
9635,36

9.5.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 12Bool
RRSet22nd 12Bool
RRSet33rd 12Bool
RRRow11st RowBool
RRRow22nd RowBool
RRRow33rd RowBool
RR1To181-18Bool
RR19To3619-36Bool
RROddOddBool
RREvenEvenBool
RRRedRedBool
RRBlackBlackBool

9.6.Pok Deng #

9.6.1.GameResult of Pok Deng #

NameDescriptionType and Limit
Player1Card1CardDetailStructure
Player1Card2CardDetailStructure
Player2Card1CardDetailStructure
Player2Card2CardDetailStructure
Player3Card1CardDetailStructure
Player3Card2CardDetailStructure
Player4Card1CardDetailStructure
Player4Card2CardDetailStructure
Player5Card1CardDetailStructure
Player5Card2CardDetailStructure
BankerCard1CardDetailStructure
BankerCard2CardDetailStructure

9.6.2.BetType for Pok Deng #

IDDescription
0Player 1
1Player 2
2Player 3
3Player 4
4Player 5
5Player 1 Pair
6Player 2 Pair
7Player 3 Pair
8Player 4 Pair
9Player 5 Pair

9.6.3.ResultDetail for Pok Deng #

NameDescriptionType and Limit
PDR_BankerPointBanker total pointByte
PDR_BankerPairBanker PairBool
PDR_Player1PointPlayer 1 total pointByte
PDR_Player1ResultPlayer 1 result stateByte
PDR_Player1PairPlayer 1 PairBool
PDR_Player2PointPlayer 2 total pointByte
PDR_Player2ResultPlayer 2 result stateByte
PDR_Player2PairPlayer 2 PairBool
PDR_Player3PointPlayer 3 total pointByte
PDR_Player3ResultPlayer 3 result stateByte
PDR_Player3PairPlayer 3 PairBool
PDR_Player4PointPlayer 4 total pointByte
PDR_Player4ResultPlayer 4 result stateByte
PDR_Player4PairPlayer 4 PairBool
PDR_Player5PointPlayer 5 total pointByte
PDR_Player5ResultPlayer 5 result stateByte
PDR_Player5PairPlayer 5 PairBool

9.6.4.Result state for Pok Deng #

IDDescription
0No Result
1Player Win
2Banker Win
3Tie

9.6.5.Total point for Pok Deng #

IDDescription
0No Result
1Total point 0
2Total point 1
3Total point 2
4Total point 3
5Total point 4
6Total point 5
7Total point 6
8Total point 7
9Total point 7.1
10Total point 7.2
11Total point 7.3
12Total point 7.4
13Total point 7.5
14Total point 8
15Total point 9

9.7.Andar Bahar #

9.7.1.GameResult of Andar Bahar #

NameDescriptionType
GameCardCardDetailStructure
AndarCardDetail (may be more than 1 card)Structure
BaharCardDetail (may be more than 1 card)Structure

9.7.2.BetType for Andar Bahar #

IDDescription
0Andar
1Bahar
21-5
36-10
411-15
516-20
621-25
726-30
831-35
936-49 (Obsolete soon)
1036-40
1141-45
1246-49
13First 3
141st Andar
151st Bahar
16NC. Andar
17NC. Bahar
18NC. 1-5
19NC. 6-10
20NC. 11-15
21NC. 16-20
22NC. 21-25
23NC. 26-30
24NC. 31-35
25NC. 36-40
26NC. 41-45
27NC. 46-49

9.7.3.ResultDetail for Andar Bahar #

NameDescriptionType and
Limit
ABRAndarWinAndarBool
ABRBaharWinBaharBool
ABR1To51-5Bool
ABR6To106-10Bool
ABR11To1511-15Bool
ABR16To2016-20Bool
ABR21To2521-25Bool
ABR26To3026-30Bool
ABR31To3531-35Bool
ABR36To4936-49 (obsolete soon)Bool
ABR36To4036-40Bool
ABR41To4541-45Bool
ABR46To4946-49Bool
ABRFirst3First 3 card0 = No Win
1 = Flush
2 = Straight
3 = Straight Flush
ABRFirstAndarFirst AndarBool
ABRFirstBaharFirst BaharBool
ABRNCAndarWinNo commission Andar0 = No win
1 = First Andar
2 = Other
ABRNCBaharWinNo commission BaharBool
ABRNC1To5No commission 1-5Bool
ABRNC6To10No commission 6-10Bool
ABRNC11To15No commission 11-15Bool
ABRNC16To20No commission 16-20Bool
ABRNC21To25No commission 21-25Bool
ABRNC26To30No commission 26-30Bool
ABRNC31To35No commission 31-35Bool
ABRNC36To40No commission 36-40Bool
ABRNC41To45No commission 41-45Bool
ABRNC46To49No commission 46-49Bool

9.8.Teen Patti 20-20 #

9.8.1.GameResult of Teen Patti 20-20 #

NameDescriptionType
PlayerACard1CardDetail (Player A first card)Structure
PlayerACard2CardDetail (Player A second card)Structure
PlayerACard3CardDetail (Player A third card)Structure
PlayerBCard1CardDetail (Player B first card)Structure
PlayerBCard2CardDetail (Player B second card)Structure
PlayerBCard3CardDetail (Player B third card)Structure

9.8.2.BetType for Teen Patti 20-20 #

IDDescription
0Tie
1Player A
2Player B
3Player A Pair +
4Player B Pair +
56 Card Bonus

9.8.3.ResultDetail for Teen Patti 20-20 #

NameDescriptionType and Limit
TP20RPlayerAPlayer ABool
TP20RPlayerBPlayer BBool
TP20RTieTieBool
TP20RPlayerAPairPlusPlayer A Pair +
0 = No Win
1 = Pair
2 = Flush
3 = Straight
4 = Straight Flush
5 = Three of a Kind (2-K)
6 = Three of a Kind (A)
Integer
TP20RPlayerBPairPlusPlayer B Pair +
0 = No Win
1 = Pair
2 = Flush
3 = Straight
4 = Straight Flush
5 = Three of a Kind (2-K)
6 = Three of a Kind (A)
Integer
TP20RSixCardBonus6 card bonus
0 = No Win
1 = Three of a Kind
2 = Straight
3 = Flush
4 = Full House
5 = Four of a Kind
6 = Straight Flush
7 = Royal Flush
Integer
TP20RSixCard1CardDetail (First card)Structure
TP20RSixCard2CardDetail (Second card)Structure
TP20RSixCard3CardDetail (Third card)Structure
TP20RSixCard4CardDetail (Fourth card)Structure
TP20RSixCard5CardDetail (Fifth card)Structure

9.9.Blackjack #

9.9.1.GameResult of Blackjack #

NameDescriptionType
Player(X)Player’s position

Possible values:
Player1
Player2
Player3
Player5
Player6
Player7
Player8
title
Card(X)CardDetail
(may be more than 1 card)

Examples:
Card1
Card2
Card3
Structure
BankerCardDetail
(may be more than 1 card)

Examples:
Card1
Card2
Card3
Structure

9.9.2.BetType for Blackjack #

IDDescription
0Player 1 - Single
1Player 2 - Single
2Player 3 - Single
3Player 5 - Single
4Player 6 - Single
5Player 7 - Single
6Player 8 - Single
7Player 1 - Split
8Player 2 - Split
9Player 3 - Split
10Player 5 - Split
11Player 6 - Split
12Player 7 - Split
13Player 8 - Split
14Player 1 - Double Down
15Player 2 - Double Down
16Player 3 - Double Down
17Player 5 - Double Down
18Player 6 - Double Down
19Player 7 - Double Down
20Player 8 - Double Down
21Player 1 - Pair
22Player 2 - Pair
23Player 3 - Pair
24Player 5 - Pair
25Player 6 - Pair
26Player 7 - Pair
27Player 8 - Pair
28Insurance

9.9.3.ResultDetail for Blackjack #

NameDescriptionType and Limit
BJR_BankerPointBanker card point1-21 = Banker card point
22 = Banker Bush
255 = Banker Blackjack
BJR1_S1Player 1 - Single0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR1_S1_BJPlayer 1 - Single BlackjackBool
BJR1_S1_RefundPlayer 1 - Single refund Bool
BJR1_S2Player 1 - Split0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR1_S2_BJPlayer 1 - Split BlackjackBool
BJR1_S2_RefundPlayer 1 - Split refundBool
BJR2_S1Player 2 - Single0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR2_S1_BJPlayer 2 - Single BlackjackBool
BJR2_S1_Refund Player 2 - Single refund Bool
BJR2_S2 Player 2 - Split0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR2_S2_BJPlayer 2 - Split BlackjackBool
BJR2_S2_RefundPlayer 2 - Split refundBool
BJR3_S1Player 3 - Single 0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR3_S1_BJPlayer 3 - Single BlackjackBool
BJR3_S1_RefundPlayer 3 - Single refund Bool
BJR3_S2Player 3 - Split0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR3_S2_BJPlayer 3 - Split BlackjackBool
BJR3_S2_RefundPlayer 3 - Split refundBool
BJR5_S1Player 5 - Single0 = Player no hand
1 = Player win
2 = player lose
3 = Tie
BJR5_S1_BJPlayer 5 - Single Blackjack Bool
BJR5_S1_RefundPlayer 5 - Single refundBool
BJR5_S2Player 5 - Split0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR5_S2_BJPlayer 5 - Split BlackjackBool
BJR5_S2_RefundPlayer 5 - Split refundBool
BJR6_S1Player 6 - Single0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR6_S1_BJPlayer 6 - Single BlackjackBool
BJR6_S1_RefundPlayer 6 - Single refundBool
BJR6_S2Player 6 - Split0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR6_S2_BJPlayer 6 - Split BlackjackBool
BJR6_S2_RefundPlayer 6 - Split refundBool
BJR7_S1Player 7 - Single0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR7_S1_BJPlayer 7 - Single BlackjackBool
BJR7_S1_RefundPlayer 7 - Single refundBool
BJR7_S2Player 7 - Split0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR7_S2_BJPlayer 7 - Split BlackjackBool
BJR7_S2_RefundPlayer 7 - Split refundBool
BJR8_S1Player 8 - Single0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR8_S1_BJPlayer 8 - Single BlackjackBool
BJR8_S1_RefundPlayer 8 - Single refundBool
BJR8_S2Player 8 - Split0 = Player no hand
1 = Player win
2 = Player lose
3 = Tie
BJR8_S2_BJPlayer 8 - Split BlackjackBool
BJR8_S2_RefundPlayer 8 - Split refundBool

9.10.Xóc Đĩa #

9.10.1.GameResult of Xóc Đĩa #

NameDescriptionType
NoOfRedNumber of red token in game outcome (0-4)Int
ResultDetailDetails of the resultStructure

9.10.2.BetType for Xóc Đĩa #

IDDescription
04 Red
11 White 3 Red
22 White 2 Red
33 White 1 Red
44 White
54 White or 4 Red
6Big
7Small
8Odd
9Even

9.10.3.ResultDetail for Xóc Đĩa #

NameDescriptionType and Limit
XDR4r4 RedBool
XDR3r1w1 White 3 RedBool
XDR2r2w2 White 2 RedBool
XDR1r3w3 White 1 RedBool
XDR4w4 WhiteBool
XDR4ror4w4 White or 4 RedBool
XDRBigBigBool
XDRSmallSmallBool
XDROddOddBool
XDREvenEvenBool

10.Host ID to Game mapping #

IDGame
531M Xóc Đĩa
532M Sic Bo
533M Roulette
534M Dragon Tiger
535M Pok Deng
536M Blackjack
537M Andar Bahar
538M Teen Patti 20-20
861C Roulette
871Baccarat C01
872Baccarat C02
873Baccarat C03
874Baccarat C04
875Baccarat C05
876Baccarat C06
877Baccarat C07
878Speed Baccarat C08
901Baccarat D01
902Baccarat D02
903Baccarat D03
904Baccarat D04
905Baccarat D05
906Baccarat D06
907Baccarat D07
908Speed Baccarat D08

11.Supported Currencies #

This is the list of currencies we support. Please note that the currency has to be enabled to your api account before using it. You may contact our CS for enquiries.

Currency ISO Name (1:1)Currency
AEDUnited Arab Emirates Dirham
AMDArmenian Dram
ARSArgentina Peso
AUDAustralian Dollar
AZNAzerbaijani Manat
BDTBangladeshi Taka
BNDBruneian Dollar
BRLBrazilian Real
BYNBelarusian Ruble
CADCanadian Dollar
CHFSwiss Franc
CLPChilean Peso
CZKCzech Koruny
DKK Danish Krone
EUREuro
GBPBritish Pound
GELGeorgian Lari
GHSGhanaian Cedi
HTGHaitian Gourde
HUFHungarian Forint
ILSIsraeli Shekel
INRIndian Rupee
IQDIraqi Dinar
JPYJapanese yen
KESKenyan Shilling
KGSKyrgyzstani Som
KZTKazakhstani Tenge
LKRSri Lankan Rupee
MDLMoldovan Lei
MXNMexican Peso
MYRMalaysian Ringgit
mXBTmilli Bitcoin
NADNamibian Dollar
NGNNigerian Naira
NOKNorwegian Krone
NZDNew Zealand Dollar
PENPeruvian Nuevo Sol
PHPPhilippine peso
PKRPakistani Rupee
PLNPolish Zloty
RUBRussian Ruble
SEKSwedish Krone
SGDSingapore Dollar
SZLSwazi Lilangeni
THBThai Baht
TMTTurkmenistani Manat
TNDTunisian Dinar
TRYTurkish Lira
TWDTaiwan New Dollar
UAHUkrainian Hryvnia
USDUS Dollar
USDTTether
uXBTMicro-Bitcoins
VESVenezuelan Bolivar Soberano
XAFCentral African CFA Franc
XOFWest African CFA Franc
ZARSouth Africa Rand
ZMWZambian Kwacha

Special Currency Code (1:1)Currency
CDF2Congolese Franc
COP2Colombian Peso
IDR2Indonesian Rupiah
IRR2Iranian Rial
KHR2Cambodian Riel
LAK2Laotian Kip
MMK2Burmese Kyat
PYG2Paraguayan Guarani
TZS2Tanzanian Shilling
UGX2Ugandan Shilling
UZS2Uzbekistani Sum
VND2Vietnamese Dong

Currency ISO Name (1:1000)Currency
CDFCongolese Franc
COPColombian Peso
IDRIndonesian Rupiah
IRRIranian Rial
KHRCambodian Riel
LAKLaotian Kip
MMKBurmese Kyat
PYGParaguayan Guarani
TZSTanzanian Shilling
UGXUgandan Shilling
UZSUzbekistani Sum
VNDVietnamese Dong

Special Currency CodeCurrencyRemarks
IN5Indian Rupee0.2 INR
PK5Pakistani Rupee0.2 PKR

Suggest Edit