technical guide - documentation1. construct a query string (qs) with required parameters (including...

85
TECHNICAL GUIDE Web Service API Version 3.0.10 The information presented herein this document is Confidential Information of SA Gaming created and owned by SA Gaming and is also protected by copyright and applicable laws. Unauthorised use, copying, transmission and disclosure of such information to any person is strictly prohibited without SA Gaming’s prior written consent. In the absence of any specific agreement to the contrary, reverse engineering, recompilation and disassembly are prohibited in any event as to any information or software content/materials provided by SA Gaming. While all efforts have been made to ensure that the content of this document is accurate at the time of publication, the data upon which this document is based is subject to future change at the sole and discretion of SA Gaming. Updated version of this document will be released when necessary, resources permitting.

Upload: others

Post on 03-Feb-2021

12 views

Category:

Documents


0 download

TRANSCRIPT

  • TECHNICAL GUIDE Web Service API

    Version 3.0.10 The information presented herein this document is Confidential Information of SA Gaming created and owned by SA Gaming and is also protected by copyright and applicable laws. Unauthorised use, copying, transmission and disclosure of such information to any person is strictly prohibited without SA Gaming’s prior written consent. In the absence of any specific agreement to the contrary, reverse engineering, recompilation and disassembly are prohibited in any event as to any information or software content/materials provided by SA Gaming. While all efforts have been made to ensure that the content of this document is accurate at the time of publication, the data upon which this document is based is subject to future change at the sole and discretion of SA Gaming. Updated version of this document will be released when necessary, resources permitting.

  • TECHNICAL GUIDE

    Content  1. Introduction 5

    2. Version 5

    3. API Calling Restriction Information 5 Accuracy of point value 6

    4. Encryption Procedures 6 Encryption Requirements 6 Encryption Procedures 8 Example to call API 8 Error handling 9

    5. Web service interface 10 User Account Manipulation 10

    RegUserInfo 10 VerifyUsername 11 GetUserStatusDV 12 QueryBetLimit 14 SetBetLimit 15 GetUserMaxBalance 16 SetUserMaxBalance 17 SetUserMaxWinning 17

    Login Access 18 LoginRequest 18 LoginRequestForFun 19 KickUser 20

    Bet Records Query 21 GetAllBetDetailsDV 21

    BetDetail structure 22 GetAllBetDetailsForTimeIntervalDV 24 GetAllBetDetailsFor30secondsDV 25 GetAllBetDetailsForTransactionID 25 GetUserBetItemDV 26 GetUserBetAmountDV 28 GetUserWinLost 29 GetTransactionDetails 30

    Transfer Wallet 31 DebitBalanceDV 31

    Copyright © SA Gaming 2019 All right reserved 2/85

  • TECHNICAL GUIDE

    DebitAllBalanceDV 33 CreditBalanceDV 34 CheckOrderId 35

    6. Seamless Wallet Integration 36 Introduction 36 Workflow 36 Seamless Wallet Protocol 37

    Encryption procedures 37 ASP.Net version 37 PHP version 38

    POST 39 Response data 39

    GetUserBalance 39 Fund Transfer 41

    PlaceBet 41 PlayerWin 44 PlayerLost 46 PlaceBetCancel 47

    Error code list 50

    7. Error message code reference 50

    8. Game Launching Procedures 53

    9. UserBetItem 54 GameType 55 Baccarat 55

    GameResult of Baccarat 55 CardDetail 56 BetType for Baccarat 56 ResultDetail for Baccarat 57

    Dragon Tiger 58 GameResult of Dragon Tiger 58 BetType for Dragon Tiger 58 ResultDetail for Dragon Tiger 58

    Sic Bo 60 GameResult of Sic Bo 60 BetType for Sic Bo 60 ResultDetail for Sic Bo 62

    Fan Tan 66

    Copyright © SA Gaming 2019 All right reserved 3/85

  • TECHNICAL GUIDE

    GameResult of Fan Tan 66 BetType for Fan Tan 66 ResultDetail for Fan Tan 67

    Roulette 68 GameResult of Roulette 69 BetType for Roulette 69 ResultDetail for Roulette 71

    Money Wheel 74 GameResult of Money Wheel 74 BetType for Money Wheel 74 ResultDetail for Roulette 75

    Tips 76 GameResult for Tips 76 BetType for Money Wheel 76 ResultDetails for Tips 76

    10. Host ID to Game mapping 76

    11. Supported currencies 77

     

       

    Copyright © SA Gaming 2019 All right reserved 4/85

  • 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 

    Version Description Date

    3.0.5 ● Adjust the naming of different Integer (8/16/32/64bit). ● Change LoginRequest's GameURL to include all

    necessary parameters, no need to append unless you need to customize it.

    ● NEW API: SetUserMaxWinning: A function to limit the player's maximum winning amount per day.

    ● NEW PARAMETERS: "MaxWinning" and “MaxBalance” were added to GetUserStatusDV's response.

    ● Added Gametype parameter in SetBetLimit to set Roulette bet limit.

    2019/03/04

    3.0.6 ● Baccarat table ID 611, 612 and 613 will change to 619, 620 and 621. If you use defaulttable to enter those tables, you have to change the table ID.

    2019/04/15

    3.0.7 ● Add new game type: Money Wheel and Tips 2019/07/10

    3.0.8 ● Added a new parameter in GetUserStatusDV response to indicate how much amount the system has been holding for playing certain games.

    2019/10/14

    3.0.9 ● Add new field GameResult in GetAllBetDetails****DV 2019-12-09

    3.0.10 ● GetTransactionDetails returns details for each currency

    ● New API for Seamless Wallet: GetAllBetDetailsForTransactionID to query bets from PlayerWin or PlayerLost transaction ID

    ● Seamless wallet PlaceBet contains bet details and user's IP

    ● Seamless wallet PlaceBet, PlayerWin, PlayerLost and PlaceBetCancel contains timestamp

    2019/12/23

    Copyright © SA Gaming 2019 All right reserved 5/85

  • TECHNICAL GUIDE

    3. API Calling Restriction Information 

    The following APIs have calling restriction.

    Name of API Frequency of calls

    GetAllBetDetailsDV Every 5 minutes no more than 10 calls

    GetAllBetDetailsFor30secondsDV Every 30 seconds no more than 2 calls

    GetAllBetDetailsForTimeIntervalDV Every 5 minutes no more than 10 calls

    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 Procedures 

    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:

    1. Secret Key 2. EncrypKey 3. MD5Key 4. API url 5. Client loader 6. Lobby name (supplied during startup the client)

    Example DES Encrypt function: protected byte [] EncryptKey = ASCIIEncoding .ASCII.GetBytes( "ask_us_for_key" );

    public string DESEncrypt( string inString)

    {

    MemoryStream ms = new MemoryStream ();

    CryptoStream cs = new CryptoStream (ms, new

    DESCryptoServiceProvider ().CreateEncryptor(EncryptKey, EncryptKey),

    CryptoStreamMode .Write);

    Copyright © SA Gaming 2019 All right reserved 6/85

  • TECHNICAL GUIDE

    StreamWriter sw = new StreamWriter (cs);

    sw.Write(inString);

    sw.Flush();

    cs.FlushFinalBlock();

    sw.Flush();

    return Convert.ToBase64String(ms.GetBuffer(), 0, ( int )ms.Length);

    }

    DES Encrypt function in PHP

    Example in PHP

    Example MD5 function: public string BuildMD5( string inString)

    {

    byte [] hashed = MD5 .Create().ComputeHash( Encoding .UTF8.GetBytes(inString));

    StringBuilder sb = new StringBuilder (hashed.Length * 2);

    for ( int i = 0; i < hashed.Length; i++)

    {

    sb.Append(hashed[i].ToString( "x2" ));

    }

    return sb.ToString();

    }

    Copyright © SA Gaming 2019 All right reserved 7/85

  • TECHNICAL GUIDE

    Example in PHP

    4.2 Encryption Procedures 

    1. Construct a Query String (QS) with required parameters (including the web service

    method name itself (e.g. method=RegUserInfo)

    2. DES encrypt the Query String with the supplied EncryptKey and obtain the encrypted

    query string (q)

    3. Build a MD5 hash according to (QS) and other parameters to form a signature (s)

    4. Use HTTP POST request to call the web service.

    5. Obtain the resulting XML response.

    4.3 Example to call API 

    Let’s take RegUserInfo as an example:

    Encryption required parameters:

    method (String, “RegUserInfo”)

    Key (String, the Secret Key)

    Time (DateTime, Current Time, in yyyyMMddHHmmss format)

    Username (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):

    Copyright © SA Gaming 2019 All right reserved 8/85

  • TECHNICAL GUIDE

    QS =

    “method=RegUserInfo&Key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&Time=20140101123456&U

    sername=DemoUser001”;

    q = HttpUtility.UrlEncode( DESencrypt(QS) );

    For example, q = 'j4tjorjwarfj3trwise0safrwg2wt4awari0fwjfeoh'

    Example MD5 String for building the signature (QS + md5key + Time + Key): s = BuildMD5(QS + “YYYYYYYY” + “20140101123456” +

    “XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”);

    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:

    DemoUser001

    0

    Success

    4.4 Error handling 

    When we received the q and s, if it is decrypted with error or the md5 is not match, a generic error response will be output.

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

    128

    Decryption error

    Copyright © SA Gaming 2019 All right reserved 9/85

  • TECHNICAL GUIDE

    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:

    Copyright © SA Gaming 2019 All right reserved 10/85

  • TECHNICAL GUIDE

    Name Description Type and Limit Required?

    method must be “RegUserInfo” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name. Alphanumeric (5~20 characters)

    String (20) Y

    CurrencyType Currency: CNY USD Refer to 11. Supported currencies

    String (4) Y

    Result:

    Name Description Type and Limit Required?

    Username User name String Y

    ErrorMsgId Error message: 0: Success 108: Username length/format incorrect 113: Username duplicated 114: Currency not exist 133: Create user failed

    Byte Y

    ErrorMsg Error message detail String Y

    5.1.2 VerifyUsername 

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

    Parameters:

    Name Description Type and Limit Required?

    method must be “VerifyUsername” String (32) Y

    Key secret key String (32) Y

    Copyright © SA Gaming 2019 All right reserved 11/85

  • TECHNICAL GUIDE

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    Result:

    Name Description Type and Limit Required?

    IsExist User exist? True: user existing False: user not existing

    Bool Y

    Username User name String Y

    ErrorMsgId Error message: 0: Success 108: Username length/format incorrect

    Byte Y

    ErrorMsg Error message detail String Y

    Output:

    True

    DemoUser001

    0

    Success

    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:

    Name Description Type and Limit Required?

    Copyright © SA Gaming 2019 All right reserved 12/85

  • TECHNICAL GUIDE

    method must be “GetUserStatusDV” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    Result:

    Name Description Type and Limit Required?

    IsSuccess Success? True: Success False: Failed

    Bool Y

    Username User name String Y

    Balance Active balance, excluding betted amount. Correct to cent.

    Decimal Y

    Online online? Bool Y

    Betted betted? Bool Y

    BettedAmount Total betted amount Decimal Y

    MaxBalance Upper limit in user's balance to place bet Decimal Y

    MaxWinning Daily winning limitation to allow place bet Decimal Y

    WithholdAmount Amount withhold in the system from the balance

    Decimal Y

    ErrorMsgId Error message 0: Success 100: Username error 108: Username length/format incorrect 116: Username does not exist

    Byte Y

    ErrorMsg Error message detail String Y

    Output:

  • TECHNICAL GUIDE

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    True

    DemoUser001

    1234567.89

    False

    False

    0

    0

    0

    0

    0

    Success

    5.1.4 QueryBetLimit 

    Query all of the bet limit for specified currency.

    Parameters:

    Name Description Type and Limit Required?

    method must be “QueryBetLimit” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Currency Currency: CNY USD Refer to 11. Supported currencies

    String (4) Y

    Result:

    Name Description Type and Limit

    Required?

    BetLimitList

    1 5 500

    Structure Y

    Copyright © SA Gaming 2019 All right reserved 14/85

  • TECHNICAL GUIDE

    2 100 5000

    ErrorMsgId Error message: 0: Success 114: Currency not exist

    Byte Y

    ErrorMsg Error message detail String Y

    5.1.5 SetBetLimit 

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

    Parameters:

    Name Description Type and Limit Required?

    method must be “SetBetLimit” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    Currency Currency: CNY USD Refer to 11. Supported currencies

    String (4) Y

    Set1 ID from QueryBetLimit Int64 Y

    Set2 ID from QueryBetLimit Int64 N

    Set3 ID from QueryBetLimit Int64 N

    Set4 ID from QueryBetLimit Int64 N

    Set5 ID from QueryBetLimit Int64 N

    Gametype roulette - for Roulette, otherwise no need this parameter or empty

    Int64 N

    Copyright © SA Gaming 2019 All right reserved 15/85

  • TECHNICAL GUIDE

    Result:

    Name Description Type and Limit Required?

    ErrorMsgId Error 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

    Byte Y

    ErrorMsg Error message detail String Y

    5.1.6 GetUserMaxBalance 

    Return the user's maximum balance limit.

    Parameters:

    Name Description Type and Limit Required?

    method must be “GetUserMaxBalance” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    Result:

    Name Description Type and Limit Required?

    MaxBalance Maximum balance Decimal Y

    ErrorMsgId Error message 0: Success 100: Username error 108: Username length/format incorrect 116: Username does not exist

    Byte Y

    ErrorMsg Error message detail String Y

    Copyright © SA Gaming 2019 All right reserved

    16/85

  • TECHNICAL GUIDE

    5.1.7 SetUserMaxBalance 

    Set the maximum balance limit to a user.

    Parameters:

    Name Description Type and Limit Required?

    method must be “SetUserMaxBalance” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    MaxBalance Maximum balance Decimal Y

    Result:

    Name Description Type and Limit Required?

    ErrorMsgId Error message 0: Success 116: Username does not exist 142: Parameter(s) error 148: MaxBalance not zero or smaller than user balance

    Byte Y

    ErrorMsg Error message detail String Y

    5.1.8 SetUserMaxWinning 

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

    this setting. Parameters:

    Name Description Type and Limit Required?

    method must be “SetUserMaxWinning” String (32) Y

    Key secret key String (32) Y

    Copyright © SA Gaming 2019 All right reserved 17/85

  • TECHNICAL GUIDE

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    MaxWinning Maximum daily winning Decimal Y

    Result:

    Name Description Type and Limit Required?

    ErrorMsgId Error message 0: Success 116: Username does not exist 142: Parameter(s) error

    Byte Y

    ErrorMsg Error message detail String Y

    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:

    Name Description Type and Limit Required?

    method must be “LoginRequest” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name (5 ~ 20 characters)

    String (20) Y

    CurrencyType Currency: CNY USD Refer to 11. Supported currencies

    String (4) Y

    Copyright © SA Gaming 2019 All right reserved

    18/85

  • TECHNICAL GUIDE

    Result:

    Name Description Type and Limit Required?

    Token Token for login# String Y

    DisplayName* Internal assigned username String (31) Y

    ErrorMsgId Error message 0: Success 129: System under maintenance 130: User account is locked (disabled) 133: Create user failed

    Byte Y

    ErrorMsg Error message detail String Y

    # If login request failed, there is no Token node in the response. * All username will be added a suffix @XX. The DisplayName will be the actual username in our database. You must provide this DisplayName to later login to our server!

    Output:

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    ”cstest@cs”

    0

    Success

    5.2.2 LoginRequestForFun 

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

    Parameters:

    Name Description Type and Limit Required?

    method must be “LoginRequestForFun” String (32) Y

    Key secret key String (32) Y

    Time current time in DateTime Y

    Copyright © SA Gaming 2019 All right reserved 19/85

  • TECHNICAL GUIDE

    “yyyyMMddHHmmss” format

    Amount Initial amount Decimal Y

    CurrencyType ISO Currency ID String (4) Y

    Result:

    Name Description Type and Limit Required?

    Token Token for login# String Y

    DisplayName* Internal assigned username String (31) Y

    ErrorMsgId Error message 0: Success 129: System under maintenance

    Byte Y

    ErrorMsg Error message detail String Y

    # If login request failed, there is no Token node in the response. * All username will be added a suffix @XX. The DisplayName will be the actual username in our database. You must provide this DisplayName to later login to our server!

    Output:

    sa-test1@xx

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    0

    Success

    5.2.3 KickUser 

    Kick user to offline.

    Parameters:

    Name Description Type and Limit Required?

    Copyright © SA Gaming 2019 All right reserved 20/85

  • TECHNICAL GUIDE

    method must be “KickUser” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    Result:

    Name Description Type and Limit Required?

    ErrorMsgId Error message 0: Success 102: Secret key incorrect 104: Service not available 108: Username length/format incorrect 116: Username does not exist 125: Kick user fail

    Byte Y

    ErrorMsg Error message detail String Y

    Output:

    0

    Success

    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 5 times per 5 minutes otherwise it will throw an error.

    Parameters:

    Name Description Type and Limit

    Required?

    Copyright © SA Gaming 2019 All right reserved 21/85

  • TECHNICAL GUIDE

    method must be “GetAllBetDetailsDV” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username (optional)

    User name String (20) N

    Date (optional) Date for details “yyyy-MM-dd”

    Date N

    Result:

    Name Description Type and Limit Required?

    BetDetailList Bet details structure XML Y

    ErrorMsgId Error message 0: Success 108: Username length/format incorrect 112: API recently called 116: Username does not exist 128: Decryption error 142: Parameter(s) error

    Byte Y

    ErrorMsg Error message detail String Y

    BetDetail structure: 

    Name Description Type and Limit Required?

    BetTime Bet start time Date Time Y

    PayoutTime Payout Time DateTime Y

    Username Player name String(31) Y

    HostID Host table ID (0 for Multiplayer game) Int16 Y

    Detail Reserved String N

    GameID Game ID String Y

    Copyright © SA Gaming 2019 All right reserved 22/85

  • TECHNICAL GUIDE

    Round Game Round Int Y

    Set Game Set Int Y

    BetID Bet ID Int64 Y

    BetAmount Bet amount Decimal Y

    Rolling Rolling Decimal Y

    ResultAmount Payout Decimal Y

    Balance Balance after this bet Decimal Y

    GameType Game type String Y

    BetType Live game: Bet type of different games Int Y

    BetSource

    2 / 2114 /2640

    Web

    3 / 2115 /2641

    Multibet in Web

    16 / 600/ 8792/8793

    HTML5 Mobile Web

    1160/1161/5248/5249

    iOS app

    1288/1289/5379/5377

    Android app

    Int Y

    TransactionID Seamless wallet PlaceBet transaction ID. -1 if not using seamless wallet

    Int64 Y

    GameResult The result of the game (details in another table) Baccarat Dragon Tiger Roulette Sicbo Fantan Money Wheel

    String Y

    Copyright © SA Gaming 2019 All right reserved 23/85

  • TECHNICAL GUIDE

    Output:

    2014-01-01T00:00:00

    2014-01-01T00:01:12

    DemoUser001

    123

    1234567890123456

    10

    34

    1234567890

    123.45

    123.45

    434456.35

    246.90

    bac

    123

    2

    2

    2

    12

    1

    11

    3

    9

    3

    5

    1

    13

    0

    Success

    Copyright © SA Gaming 2019 All right reserved 24/85

  • TECHNICAL GUIDE

    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 5 times per 5 minutes otherwise it will throw an error.

    Parameters:

    Name Description Type and Limit Required?

    method must be “GetAllBetDetailsForTimeIntervalDV”

    String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format DateTime Y

    Username (optional)

    User name String (20) N

    FromTime Date for details “yyyy-MM-dd hh:mm:ss”

    DateTime Y

    ToTime Date for details “yyyy-MM-dd hh:mm:ss”

    DateTime Y

    Result:

    Name Description Type and Limit Required?

    BetDetailList Bet details structure XML Y

    ErrorMsgId Error 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

    Byte Y

    ErrorMsg Error message detail String Y

    5.3.3 GetAllBetDetailsFor30secondsDV 

    This web service will fetch bet details of a lobby for last 30 seconds. The frequency of the

    Copyright © SA Gaming 2019 All right reserved 25/85

  • TECHNICAL GUIDE

    call should be made to this API 2 times per 30 seconds otherwise it will throw an error. Parameters:

    Name Description Type and Limit Required?

    method must be “GetAllBetDetailsFor30secondsDV” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format DateTime Y

    Result:

    Name Description Type and Limit Required?

    BetDetailList Bet details structure XML Y

    ErrorMsgId Error message 0: Success 108: Username length/format incorrect 112: API recently called

    Byte Y

    ErrorMsg Error message detail String Y

    5.3.4 GetAllBetDetailsForTransactionID 

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

    Parameters:

    Name Description Type and Limit Required?

    method must be “GetAllBetDetailsForTransactionID” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format DateTime Y

    TransactionID Transaction ID of a PlayerWin or PlayerLost String (16) Y

    Result:

    Copyright © SA Gaming 2019 All right reserved 26/85

  • TECHNICAL GUIDE

    Name Description Type and Limit Required?

    Result The result of the game (details in another table) Baccarat Dragon Tiger Roulette Sicbo Fantan Money Wheel

    XML Y

    BetList Bet details structure XML Y

    ErrorMsgId Error message 0: Success 106: Server not ready 152: Transaction ID not found

    Byte Y

    ErrorMsg Error message detail String Y

    BetDetail structure: 

    Name Description Type and Limit Required?

    BetTime Bet start time Date Time Y

    PayoutTime Payout Time DateTime Y

    Username Player name String(31) Y

    HostID Host table ID (0 for Multiplayer game) Int16 Y

    GameID Game ID String Y

    Round Game Round Int Y

    Set Game Set Int Y

    BetID Bet ID Int64 Y

    BetAmount Bet amount Decimal Y

    Rolling Rolling Decimal Y

    ResultAmount Payout Decimal Y

    Balance Balance after this bet Decimal Y

    Copyright © SA Gaming 2019 All right reserved 27/85

  • TECHNICAL GUIDE

    GameType Game type String Y

    BetType Live game: Bet type of different games Int Y

    BetSource

    2 / 2114 /2640

    Web

    3 / 2115 /2641

    Multibet in Web

    16 / 600/ 8792/8793

    HTML5 Mobile Web

    1160/1161/5248/5249

    iOS app

    1288/1289/5379/5377

    Android app

    Int Y

    Detail Reserved String N

    TransactionID Seamless wallet PlaceBet transaction ID. -1 if not using seamless wallet

    Int64 Y

    Samples of each game type GameResult:

    1

    4

    3

    4

    2

    2

    4

    12

    false

    true

    false

    true

    false

    false

    Copyright © SA Gaming 2019 All right reserved 28/85

  • TECHNICAL GUIDE

    true

    false

    true

    false

    false

    true

    false

    true

    false

    true

    false

    false

    true

    false

    true

    false

    4

    4

    2

    1

    false

    true

    false

    1

    2

    6

    9

    2

    1

    true

    true

    false

    false

    false

    true

    0

    false

    9

    true

    false

    false

    false

    true

    false

    false

    false

    true

    Copyright © SA Gaming 2019 All right reserved 29/85

  • TECHNICAL GUIDE

    false

    false

    false

    false

    false

    false

    0

    2

    false

    false

    false

    false

    31

    13

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    true

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    true

    false

    true

    false

    false

    true

    Copyright © SA Gaming 2019 All right reserved 30/85

  • TECHNICAL GUIDE

    false

    true

    false

    false

    true

    4

    false

    true

    false

    false

    false

    true

    false

    false

    false

    true

    false

    false

    false

    false

    false

    false

    false

    false

    false

    true

    true

    true

    false

    true

    false

    true

    false

    true

    true

    false

    true

    true

    false

    true

    true

    false

    false

    false

    false

    true

    true

    true

    0

    12

    true

    Copyright © SA Gaming 2019 All right reserved 31/85

  • TECHNICAL GUIDE

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    true

    5.3.5 GetUserBetItemDV 

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

    Parameters:

    Name Description Type and Limit Required?

    method must be “GetUserBetItemDV” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    FromTime Query start time: “yyyy-MM-dd” or “yyyy-MM-dd HH:mm:ss”

    DateTime Y

    ToTime Query end time: “yyyy-MM-dd” or “yyyy-MM-dd HH:mm:ss”

    DateTime Y

    Offset Query offset id. First query input 0. For the next query, using the offset from result

    Int64 Y

    Result:

    Name Description Type and Limit Required

    Copyright © SA Gaming 2019 All right reserved 32/85

  • TECHNICAL GUIDE

    ?

    Username User name String Y

    FromTime Query start time DateTime Y

    ToTime Query end time DateTime Y

    Offset Offset Int64 Y

    More True: data still existing for query, using the Offset to start again. False: all data has been send

    Bool Y

    ItemCount Number of item queried Int Y

    UserBetItemList User betted item detail list XML Y

    ErrorMsgId Error message 0: Success 111: Query time range out of limitation 116: Username does not exist

    Byte Y

    ErrorMsg Error message detail String Y

    Output:

    DemoUser001

    2014-01-01 00:00:00

    2014-02-01 23:59:59

    0

    false

    2

    1

    2014-04-24T11:20:49

    135450624

    301

    百家樂1 bac

    1

    2

    2

    5

    5

    2

    3

    Copyright © SA Gaming 2019 All right reserved 33/85

  • TECHNICAL GUIDE

    4

    J

    1

    9

    3

    K

    false

    false

    true

    true

    false

    false

    0

    0

    true

    3

    2014-04-24T11:23:00

    269668352

    301

    百家樂1 bac

    1

    4

    2

    5

    5

    0

    0

    true

    0

    Success

    5.3.6 GetUserBetAmountDV 

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

    Parameters:

    Name Description Type and Limit Required?

    Copyright © SA Gaming 2019 All right reserved 34/85

  • TECHNICAL GUIDE

    method must be “GetUserBetAmounDV” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) N

    StartDate Query start date/time: “yyyy-MM-dd” (default time 00:00:00) or “yyyy-MM-dd HH:mm:ss”

    DateTime N

    TimeRange Range in hour from 0 to 23 (default 0 = 24 hours)

    Int N

    Result: A series of follow records will return.

    Name Description Type and Limit

    Required?

    Username user name String (31) Y

    StakeAmount Sum of bet amount for all games Decimal Y

    ErrorMsgId Error message 0: Success 108: Username length/format incorrect 116: Username does not exist

    Byte Y

    ErrorMsg Error message detail String Y

    Output:

    user001

    1105.45

    0

    Success

    Copyright © SA Gaming 2019 All right reserved 35/85

    http://www.w3.org/2001/XMLSchema-instance

  • TECHNICAL GUIDE

    5.3.7 GetUserWinLost 

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

    Parameters:

    Name Description Type and Limit Required?

    method must be “GetUserWinLost ” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    FromTime Start date and time DateTime Y

    ToTime End of date and time DateTime Y

    Type 0 - includes win and loss 1 - only includes win 2 - only includes loss

    Int N

    Result:

    Name Description Type and Limit Required?

    Username Username String (20) Y

    Winlost Win or loss summary value Decimal Y

    ErrorMsgId Error 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

    Byte Y

    ErrorMsg Error message detail String Y

    Copyright © SA Gaming 2019 All right reserved 36/85

  • TECHNICAL GUIDE

    5.3.8 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:

    Name Description Type and Limit Required?

    method must be “GetTransactionDetails ” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username (optional)

    User name String (20) N

    FromTime Date for details “yyyy-MM-dd HH:mm:ss”

    DateTime Y

    ToTime Date for details “yyyy-MM-dd HH:mm:ss”

    DateTime Y

    Result:

    Name Description Type and Limit Required?

    TransactionDetails

    Transaction details structure XML Y

    ErrorMsgId Error message 0: Success 106: Server not ready 111: Query time range out of limitation 116: Username does not exist

    Byte Y

    ErrorMsg Error message detail String Y

    TransactionDetails structure: 

    Name Description Type and Limit Required?

    CurrencyName Currency: CNY USD Refer to 11. Supported currencies

    String (4) Y

    Copyright © SA Gaming 2019 All right reserved 37/85

  • TECHNICAL GUIDE

    Count Number of transactions Integer 32bit Y

    Winlost Win/lose Decimal Y

    TotalBet Total bet amount Decimal Y

    TotalRolling Total rolling amount Decimal Y

    0

    Success

    CNY

    9

    -40

    275

    75

    THB

    1

    -20

    20

    20

    VND

    1

    -20

    20

    20

    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 be processed twice. Using a new OrderID for the same transfer may cause the duplicated transfer. Even you have checked the OrderID not existing by using CheckOrderID, you should still use the same OrderID.

    Copyright © SA Gaming 2019 All right reserved 38/85

  • TECHNICAL GUIDE

    5.5.1 DebitBalanceDV 

    Transfer from the user’s balance.

    Parameters:

    Name Description Type and Limit Required?

    method must be “DebitBalanceDV” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name Alphanumeric (5~20 characters)

    String (20) Y

    OrderId Order ID: OUT+yyyyMMddHHmmss+Username e.g. “OUT20131129130345peter1235”

    String (40) Y

    DebitAmount Debit amount. Maximum two decimal only.

    Decimal Y

    Result:

    Name Description Type and Limit

    Required?

    Username User name String Y

    Balance Remained active balance Decimal Y

    DebitAmount Debited amount. Decimal Y

    OrderId Order ID String (40) Y

    ErrorMsgId Error 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

    Byte Y

    Copyright © SA Gaming 2019 All right reserved 39/85

  • TECHNICAL GUIDE

    124: Database error 127: Invalid order ID format 142: Error Parameter 145: Parameter decimal point greater than 2

    ErrorMsg Error message detail String Y

    5.5.2 DebitAllBalanceDV 

    Transfer all amount from the user’s balance.

    Parameters:

    Name Description Type and Limit Required?

    method must be “DebitAllBalanceDV” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    OrderId Order ID: OUT+yyyyMMddHHmmss+Username e.g. “OUT20131129130345peter1235”

    String (40) Y

    Result:

    Name Description Type and Limit Required?

    Username User name String Y

    DebitAmount Debited amount. Decimal Y

    OrderId Order ID String (40) Y

    ErrorMsgId Error message Byte Y

    Copyright © SA Gaming 2019 All right reserved 40/85

  • TECHNICAL GUIDE

    0: Success 106: Server not ready. Try again later. 108: Username length/format incorrect 116: Username does not exist 122: Order ID already exists 124: Database error 127: Invalid order ID format

    ErrorMsg Error message detail String Y

     

    5.5.3 CreditBalanceDV 

    Transfer fund to user’s balance.

    Parameters:

    Name Description Type and Limit Required?

    method must be “CreditBalanceDV” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    Username User name String (20) Y

    OrderId Order ID: IN+yyyyMMddHHmmss+Username e.g. “IN20131129130345peter1235”

    String (40) Y

    CreditAmount Credit amount. Decimal Y

    Result:

    Name Description Type and Limit

    Required?

    Username User name String Y

    Balance Remained active balance Decimal Y

    CreditAmount Credited amount. Decimal Y

    Copyright © SA Gaming 2019 All right reserved 41/85

  • TECHNICAL GUIDE

    OrderId Order ID String (40) Y

    ErrorMsgId Error 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

    Byte Y

    ErrorMsg Error message detail String Y

    5.5.4 CheckOrderId 

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

    Parameters:

    Name Description Type and Limit Required?

    method must be “CheckOrderId” String (32) Y

    Key secret key String (32) Y

    Time current time in “yyyyMMddHHmmss” format

    DateTime Y

    OrderId The OrderId used in ● DebitBalanceDV ● DebitAllBalanceDV ● CreditBalanceDV

    String (40) Y

    Result:

    Name Description Type and Limit Required?

    isExist The OrderId exist or not ● true - existing ● false - not existing

    Bool Y

    Copyright © SA Gaming 2019 All right reserved 42/85

  • TECHNICAL GUIDE

    ErrorMsgId Error message 0: Success 106: Server not ready. Try again later. 124: Database error

    Byte Y

    ErrorMsg Error message detail String Y

    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 CreditBalance/DebitBalance/DebitAllBalance 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:

    1. GetUserBalance 2. 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, the total amount (including stakes) will send to partner system. If there are timeout or error, the request will be retried after n seconds within m tries. An expired request will move to the unsuccessful transaction list for back office to further process. Those unsuccessful transactions can be retired by the operator through the back office.

    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. If there are timeout or error, the request will be retried after n seconds within m tries. An expired request will move to the unsuccessful transaction

    Copyright © SA Gaming 2019 All right reserved 43/85

  • TECHNICAL GUIDE

    list for back office to further process. Those unsuccessful transactions can be retry by the operator through the back office.

    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. If there are timeout or error, the request will be retried after n seconds within m tries. An expired request will move to the unsuccessful transaction list for back office to further process. Those unsuccessful transactions can be retry by the operator through the back office.

    General Case:

    ● Received GetUserBalance request: No balance adjustment is required, return error=0 with user’s latest balance.

    ● Received PlaceBet request: Deduct the bet amount, return us error=0 with user’s latest balance.

    ● Received PlayerWin request: Credit balance to user, return us error=0 with user’s latest balance.

    ● Received PlayerLost request: No balance adjustment is required, return us error=0 with user’s latest balance.

    ● Received PlaceBetCancel request: Refund the corresponding PlaceBet bet amount to user, return us error=0 with user’s latest balance.

    Special Case:

    ● Received PlaceBetCancel request before PlaceBet request. No balance adjustment is required, return us error=0 with user’s latest balance. > We suggested to record “txn_reverse_id” in PlaceBetCancel request, and check for every PlaceBet request, if the PlaceBet request “txnid” match with the recorded “txn_reverse_id“, ignore that PlaceBet request.

    ● Received duplicate PlayerWin, PlayerLost or PlaceBetCancel request. No balance adjustment is required, return us error=0 with user’s latest 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 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 and /PlaceBetCancel.aspx

    Copyright © SA Gaming 2019 All right reserved 44/85

  • TECHNICAL GUIDE

    ** 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:

    username=peter1234&currency=CNY

    6.3.1 Encryption procedures 

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

    ASP.Net version 

    protected byte [] EncryptKey = ASCIIEncoding .ASCII.GetBytes( "ask_us_for_key" );

    public string DESEncrypt( string inString)

    {

    MemoryStream ms = new MemoryStream ();

    CryptoStream cs = new CryptoStream (ms, new

    DESCryptoServiceProvider ().CreateEncryptor(EncryptKey, EncryptKey),

    CryptoStreamMode .Write);

    StreamWriter sw = new StreamWriter (cs);

    sw.Write(inString);

    sw.Flush();

    cs.FlushFinalBlock();

    sw.Flush();

    return Convert.ToBase64String(ms.GetBuffer(), 0, ( int )ms.Length);

    }

    public string DESDecrypt( string inString)

    {

    try

    {

    return new StreamReader ( new CryptoStream ( new MemoryStream (

    Convert .FromBase64String(inString)), new

    DESCryptoServiceProvider ().CreateDecryptor(EncryptKey, EncryptKey),

    CryptoStreamMode .Read)).ReadToEnd();

    }

    catch

    {

    }

    return "";

    }

    Copyright © SA Gaming 2019 All right reserved 45/85

  • TECHNICAL GUIDE

    PHP version 

    DES Encrypt/Decrypt function in PHP

    6.3.2 POST 

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

    POST / HTTP/1.0

    Content-Type: text/plain

    kuVJgHRMSXOT7a7enWsOyki0NTSd7tTraFXJ%2F7xui4V5nWyik20DSurYFWlkzdMGMhbbqkrO5A2o

    SUpPWXyrW1yFWFCOdU1GasqDd3WtnWv6htNdXqGw3uIcj%2Bc%2BYUDP2IQIVNL1hQrpytFPyIJisb

    Eobll66Wb2IodCT%2Bqq3iDsQeu%2FVd2%2Bb7%2FZjExJOlGisn264ogMCoDsw5ya%2Bo9RDOOLZ6

    RS2WHxI99nIOvmkPccx1wGWhT0%2Fw%3D%3D

    Copyright © SA Gaming 2019 All right reserved 46/85

  • TECHNICAL GUIDE

    Partner system have to url decode 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:

    peter1234

    CNY

    1532.36

    0

    6.4 GetUserBalance 

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

    Input parameters:

    Name Description Type and Limit

    Required?

    Copyright © SA Gaming 2019 All right reserved 47/85

  • TECHNICAL GUIDE

    username Username of the user String (20) Y

    currency ISO 3 characters e.g. CNY/USD. Except mXBT String (4) Y

    E.g.

    username=peter1234&currency=CNY

    Response parameters:

    Name Description Type and Limit

    Required?

    username Username of the user String (20) Y

    currency ISO 3 characters e.g. CNY/USD. Except mXBT String (4) Y

    amount Decimal format and max. 2 decimal places Decimal Y

    error Error code Int Y

    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.

    Name Description Type and Limit

    Required?

    username Username of the user String (20) Y

    currency ISO 3 characters e.g. CNY/USD String (4) Y

    amount Amount to bet (decimal format and max. 2 decimal places)

    Decimal Y

    txnid A unique id for all fund transfer String (16) Y

    Copyright © SA Gaming 2019 All right reserved 48/85

  • TECHNICAL GUIDE

    timestamp Timestamp in yyyy-MM-dd HH:mm:ss.fff (GMT +8) E.g. 2019-10-22 13:34:45.456

    DateTime Y

    ip IP of the user String Y

    gametype Game type bac - Baccarat dtx - Dragon & Tiger sicbo - Sic Bo rot - Roulette ftan - Fan Tan moneywheel - Money Wheel tip - Tips minigame - Mini Game

    String Y

    platform 0 - desktop 1 - mobile

    Byte Y

    gamecode When gametype is “minigame”, it is the game code

    String N

    hostid Host ID, please refer to Section 10. Int N

    gameid Game ID String Y

    betdetails Bet details array type - Bet type amount - Bet amount

    JSON Y

    E.g.

    username=peter1234&currency=CNY&amount=25.00&txnid=843828123434&timestamp=2019

    -10-25

    12:34:56.789&ip=121.122.123.124&gametype=bac&platform=0&host=601&gameid=133849

    980&betdetails={“details”:[{“type”:1,”amount”:5},{“type”:2,”amount”:10},{“type

    ”:41,”amount”:10}]}

    Response parameters:

    Name Description Type and Limit

    Required?

    username Username of the user String (20) Y

    currency ISO 3 characters e.g. CNY/USD. Except mXBT String (4) Y

    amount Amount after adjustment (decimal format and Decimal Y

    Copyright © SA Gaming 2019 All right reserved 49/85

  • TECHNICAL GUIDE

    max. 2 decimal places)

    error Error code Int Y

    Copyright © SA Gaming 2019 All right reserved 50/85

  • TECHNICAL GUIDE

    6.5.2 PlayerWin 

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

    Copyright © SA Gaming 2019 All right reserved 51/85

  • TECHNICAL GUIDE

    Name Description Type and Limit

    Required?

    username Username of the user String (20) Y

    currency ISO 3 characters e.g. CNY/USD String (4) Y

    amount Amount to add back (decimal format and max. 2 decimal places)

    Decimal Y

    txnid A unique id for all fund transfer String (16) Y

    timestamp Timestamp in yyyy-MM-dd HH:mm:ss.fff (GMT +8) E.g. 2019-10-22 13:34:45.456

    DateTime Y

    gametype Game type bac - Baccarat dtx - Dragon & Tiger sicbo - Sic Bo rot - Roulette ftan - Fan Tan moneywheel - Money Wheel minigame - Mini Game

    String Y

    gamecode When gametype is “minigame”, it is the game code

    String N

    Payouttime Time of the payout DateTime Y

    hostid Host ID, please refer to Section 10. Int N

    gameid Game ID String Y

    E.g.

    username=peter1234&currency=CNY&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:

    Name Description Type and Limit

    Required?

    username Username of the user String (20) Y

    currency ISO 3 characters e.g. CNY/USD. Except mXBT String (4) Y

    Copyright © SA Gaming 2019 All right reserved 52/85

  • TECHNICAL GUIDE

    amount Amount after adjustment (decimal format and max. 2 decimal places)

    Decimal Y

    error Error code Int Y

     

    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.

    Name Description Type and Limit

    Required?

    username Username of the user String (20) Y

    currency ISO 3 characters e.g. CNY/USD String (4) Y

    txnid A unique id for all fund transfer String (16) Y

    timestamp Timestamp in yyyy-MM-dd HH:mm:ss.fff (GMT +8) E.g. 2019-10-22 13:34:45.456

    DateTime Y

    gametype Game type bac - Baccarat dtx - Dragon & Tiger sicbo - Sic Bo rot - Roulette ftan - Fan Tan moneywheel - Money Wheel tip - Tips minigame - Mini Game

    String Y

    gamecode When gametype is “minigame”, it is the game code

    String N

    Payouttime Time of the payout DateTime Y

    hostid Host ID, please refer to Section 10. Int N

    gameid Game ID String Y

    E.g.

    Copyright © SA Gaming 2019 All right reserved 53/85

  • TECHNICAL GUIDE

    username=peter1234&currency=CNY&txnid=8438234356625&timestamp=2019-10-25

    12:34:56.789&gametype=bac&payouttime=2018-02-03 12:34:56&gameid=133849980

    Response parameters:

    Name Description Type and Limit

    Required?

    username Username of the user String (20) Y

    currency ISO 3 characters e.g. CNY/USD. Except mXBT String (4) Y

    amount Amount after adjustment (decimal format and max. 2 decimal places)

    Decimal Y

    error Error code Int Y

     

    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 the 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 the previous transaction by the txn_reverse_id, you have to send us error = 0, else we will keep sending this request.

    Name Description Type and Limit

    Required?

    username Username of the user String (20) Y

    currency ISO 3 characters e.g. CNY/USD String (4) Y

    amount Amount to reverse (decimal format and max. 2 decimal places)

    Decimal Y

    txnid A unique id for all fund transfer String (16) Y

    timestamp Timestamp in yyyy-MM-dd HH:mm:ss.fff (GMT +8) E.g. 2019-10-22 13:34:45.456

    DateTime Y

    gametype Game type bac - Baccarat dtx - Dragon & Tiger

    String Y

    Copyright © SA Gaming 2019 All right reserved 54/85

  • TECHNICAL GUIDE

    sicbo - Sic Bo rot - Roulette ftan - Fan Tan moneywheel - Money Wheel tip - Tips minigame - Mini Game

    gamecode When gametype is “minigame”, it is the game code

    String N

    hostid Host ID, please refer to Section 10. Int N

    gameid Game ID String Y

    txn_reverse_id Previous txnid in PlaceBet request which the response was not received within 3 seconds or responded with an error.

    String (16) Y

    E.g.

    username=peter1234&currency=CNY&amount=20.00&txnid=4345234534534&timestamp=201

    9-10-25 12:34:56.789&gametype=bac&gameid=133849980&txn_reverse_id=843828123434

    Response parameters:

    Name Description Type and Limit

    Required?

    username Username of the user String (20) Y

    currency ISO 3 characters e.g. CNY/USD. Except mXBT String (4) Y

    amount Amount after adjustment (decimal format and max. 2 decimal places)

    Decimal Y

    error Error code Int Y

    Copyright © SA Gaming 2019 All right reserved 55/85

  • TECHNICAL GUIDE

    Copyright © SA Gaming 2019 All right reserved 56/85

  • TECHNICAL GUIDE

    6.6 Error code list 

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

    ID Description

    0 Success

    1000 User account doesn’t exist

    1001 Invalid currency

    1002 Invalid amount

    1003 Locked account

    1004 Insufficient balance

    1005 General error

    1006 Decryption error

    1007 Session expired error

    9999 System error

     

    7. Error message code reference 

    Common error message code

    ID Description

    100 Username error

    101 Account locked

    102 Secret key incorrect

    104 Service not available

    105 Client side error

    Copyright © SA Gaming 2019 All right reserved 57/85

  • TECHNICAL GUIDE

    106 Server busy. Try again later.

    107 Username empty

    108 Username length/format incorrect

    110 User not online

    111 Query time range out of limitation

    112 API recently called

    113 Username duplicated

    114 Currency not exist

    116 Username does not exist

    120 Amount must greater than zero

    121 Not enough points to credit/debit/bet

    122 Order ID already exists

    125 Kick user fail

    127 Invalid order ID format

    128 Decryption error

    129 System under maintenance

    130 User account is locked (disabled)

    131 Wrong network

    132 Sign unmatch

    133 Create user failed

    136 Not enough point to bet

    137 Bet string error

    138 Bet time ended or not started

    142 Parameter(s) error

    144 Query type invalid

    145 Parameter decimal point greater than 2

    Copyright © SA Gaming 2019 All right reserved 58/85

  • TECHNICAL GUIDE

    146 API access denied

    147 BetLimit does not existed

    148 MaxBalance not zero or smaller than user balance

    149 Input amount under minimum value

    150 Function has been deprecated

    151 Duplicate login

    152 Transaction ID not found

    8. Game Launching Procedures 

    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.)

    Parameter Description Required?

    username The username display in the client. Y

    token The token returned from LoginRequest. Y

    lobby The lobby code we provided, it is to show the correct logo while loading.

    Y

    lang Default language to be used in the client. Check in the table below for details.

    N

    returnurl Optional parameter. The URL will be invoked when client logout.

    N

    mobile Optional parameter. true - Start the client in HTML5 mobile version.

    N

    h5web Optional parameter: true - Start the client in HTML5 desktop version. It will ignore “h5web” parameter if both h5web and mobile is true.

    N

    options Optional parameters to enable feature while entering lobby (URL Encoding will be needed)

    1. defaulttable=

    N

    Copyright © SA Gaming 2019 All right reserved 59/85

  • TECHNICAL GUIDE

    ○ To go into table directly (601~616/630~632/640/660)

    ○ To go into multiple bet view (multibet)

    For example: http://xx.sa-api.net/app.aspx?username=demo888&token=e93a9aeb9981da12b3&lobby=A999&lang=en_US&returnurl=http://yourdomain.com/yourlocation

    lang Description

    zh_TW Traditional Chinese

    zh_CN Simplified Chinese

    en_US English

    jp Japanese

    th Thai

    vn Vietnamese

    id Bahasa Indonesia

    ms Malay

    es Spanish

    9. UserBetItem 

    Name Description Type and Limit Required?

    BetID Bet record Id Int64 Y

    BetTime Bet time DateTime Y

    PayoutTime Payout time DateTime Y

    GameID Game ID String Y

    HostID Host table Id (0 for Multiplayer game) Int16 Y

    HostName Host table name String Y

    Copyright © SA Gaming 2019 All right reserved 60/85

  • TECHNICAL GUIDE

    GameType Game type name (see below) String Y

    Detail Reserved String N

    Set Set Int Y

    Round Round Int Y

    BetType Bet item (details in other table) Baccarat Dragon Tiger Roulette Sicbo Fantan Money Wheel Tips

    Byte Y

    BetAmount Bet amount (correct to cent) Decimal Y

    Rolling Rolling (correct to cent) Decimal Y

    GameResult Result of the game (details in other table) Baccarat Dragon Tiger Roulette Sicbo Fantan Money Wheel

    String Y

    ResultAmount Win or Lost amount (correct to cent) Decimal Y

    Balance Remain balances (correct to cent) Decimal Y

    GameType 

    Code name Description

    bac Baccarat

    dtx Dragon Tiger

    sicbo Sic Bo

    ftan Fan Tan

    rot Roulette

    Copyright © SA Gaming 2019 All right reserved 61/85

  • TECHNICAL GUIDE

    moneywheel Money Wheel

    tip Tips

    minigame Mini game

    Baccarat 

    GameResult of Baccarat 

    Name Description Type and Limit

    PlayerCard1 CardDetail Structure

    PlayerCard2 CardDetail Structure

    PlayerCard3 CardDetail (may not exist) Structure

    BankerCard1 CardDetail Structure

    BankerCard2 CardDetail Structure

    BankerCard3 CardDetail (may not exist) Structure

    ResultDetail Details of the result Structure

    CardDetail 

    Suit ♠ = 1 ♥ = 2 ♣ = 3 ♦ = 4 Byte

    Rank A = 1 2 = 2 … 10 = 10 J = 11 Q = 12 K = 13

    Byte

    BetType for Baccarat 

    ID Description

    0 Tie

    Copyright © SA Gaming 2019 All right reserved 62/85

  • TECHNICAL GUIDE

    1 Player

    2 Banker

    3 Player Pair

    4 Banker Pair

    25 NC. Tie

    26 NC.Player

    27 NC. Banker

    28 NC. Player Pair

    29 NC. Banker Pair

    30 SuperSix

    36 Player Natural

    37 Banker Natural

    40 NC. Player Natural

    41 NC. Banker Natural

    42 Cow Cow Player

    43 Cow Cow Banker

    44 Cow Cow Tie

    ResultDetail for Baccarat 

    Name Description Type and Limit

    BRTie Tie Bool

    BRPlayerWin Player Bool

    BRBankerWin Banker Bool

    BRPlayerPair Player Pair Bool

    BRBankerPair Banker Pair Bool

    Copyright © SA Gaming 2019 All right reserved 63/85

  • TECHNICAL GUIDE

    BRSSTie NC. Tie Bool

    BRSSPlayerWin NC. Player Bool

    BRSSBankerWin NC. Bander Bool

    BRSSPlayerPair NC. Player Pair Bool

    BRSSBankerPair NC. Banker Pair Bool

    BRSSSuperSix SuperSix Bool

    BRPlayerNatural Player Natural Bool

    BRBankerNatural Banker Natural Bool

    BRSSPlayerNatural NC. Player Natural Bool

    BRSSBankerNatural NC. Banker Natural Bool

    BRCowPlayerWin Cow Cow Player Bool

    BRCowBankerWin Cow Cow Banker Bool

    BRCowTie Cow Cow Tie Bool

    Dragon Tiger 

    GameResult of Dragon Tiger 

    Name Description Type and Limit

    DragonCard CardDetail Structure

    TigerCard CardDetail Structure

    ResultDetail Details of the result Structure

    BetType for Dragon Tiger 

    ID Description

    0 Tie

    1 Dragon

    Copyright © SA Gaming 2019 All right reserved 64/85

  • TECHNICAL GUIDE

    2 Tiger

    ResultDetail for Dragon Tiger 

    Name Description Type and Limit

    DTRTie Tie game Bool

    DTRDragonWin Dragon win Bool

    DTRTigerWin Tiger win Bool

    Copyright © SA Gaming 2019 All right reserved 65/85

  • TECHNICAL GUIDE

    Sic Bo 

    GameResult of Sic Bo 

    Name Description Type and Limit

    Dice1 Dice 1 Int

    Dice2 Dice 2 Int

    Dice3 Dice 3 Int

    ResultDetail Details of the result Structure

    BetType for Sic Bo 

    ID Description ID Description

    0 Small 55 Three Even

    1 Big 56 1 2 3 4

    2 Odd 57 2 3 4 5

    3 Even 58 2 3 5 6

    4 Number 1 59 3 4 5 6

    5 Number 2 60 112

    6 Number 3 61 113

    7 Number 4 62 114

    8 Number 5 63 115

    9 Number 6 64 116

    10 All 1 65 221

    11 All 2 66 223

    12 All 3 67 224

    13 All 4 68 225

    14 All 5 69 226

    Copyright © SA Gaming 2019 All right reserved 66/85

  • TECHNICAL GUIDE

    15 All 6 70 331

    16 All same 71 332

    17 Point 4 72 334

    18 Point 5 73 335

    19 Point 6 74 336

    20 Point 7 75 441

    21 Point 8 76 442

    22 Point 9 77 443

    23 Point 10 78 445

    24 Point 11 79 446

    25 Point 12 80 551

    26 Point 13 81 552

    27 Point 14 82 553

    28 Point 15 83 554

    29 Point 16 84 556

    30 Point 17 85 661

    31 Specific double 1, 2 86 662

    32 Specific double 1, 3 87 663

    33 Specific double 1, 4 88 664

    34 Specific double 1, 5 89 665

    35 Specific double 1, 6 90 126

    36 Specific double 2, 3 91 135

    37 Specific double 2, 4 92 234

    38 Specific double 2, 5 93 256

    39 Specific double 2, 6 94 346

    40 Specific double 3, 4 95 123

    Copyright © SA Gaming 2019 All right reserved 67/85

  • TECHNICAL GUIDE

    41 Specific double 3, 5 96 136

    42 Specific double 3, 6 97 145

    43 Specific double 4, 5 98 235

    44 Specific double 4, 6 99 356

    45 Specific double 5, 6 100 124

    46 Pair 1 101 146

    47 Pair 2 102 236

    48 Pair 3 103 245

    49 Pair 4 104 456

    50 Pair 5 105 125

    51 Pair 6 106 134

    52 Three Odd 107 156

    53 Two Odd One Even 108 246

    54 Two Even One Odd 109 345

    ResultDetail for Sic Bo 

    Name Description Type and Limit

    SRBigSmall 0 - Triple 1 - Big 2 - Small

    Byte

    SROddEven 0 - Triple 1 - Odd 2 - Even

    Byte

    SRTripleArmyOne Triple army 1 Bool

    SRTripleArmyTwo Triple army 2 Bool

    SRTripleArmyThree Triple army 3 Bool

    SRTripleArmyFour Triple army 4 Bool

    Copyright © SA Gaming 2019 All right reserved 68/85

  • TECHNICAL GUIDE

    SRTripleArmyFive Triple army 5 Bool

    SRTripleArmySix Triple army 6 Bool

    SRTriple 0 - NA 1 - Triple 1 2 - Triple 2 3 - Triple 3 4 - Triple 4 5 - Triple 5 6 - Triple 6

    Byte

    SRAllTriple All triple Bool

    SRPoint 0 - 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

    SRLongOneTwo Long 1 2 Bool

    SRLongOneThree Long 1 3 Bool

    SRLongOneFour Long 1 4 Bool

    SRLongOneFive Long 1 5 Bool

    SRLongOneSix Long 1 6 Bool

    SRLongTwoThree Long 2 3 Bool

    SRLongTwoFour Long 2 4 Bool

    SRLongTwoFive Long 2 5 Bool

    SRLongTwoSix Long 2 6 Bool

    SRLongThreeFour Long 3 4 Bool

    Copyright © SA Gaming 2019 All right reserved 69/85

  • TECHNICAL GUIDE

    SRLongThreeFive Long 3 5 Bool

    SRLongThreeSix Long 3 6 Bool

    SRLongFourFive Long 4 5 Bool

    SRLongFourSix Long 4 6 Bool

    SRLongFiveSix Long 5 6 Bool

    SRShort 0 - NA 1 - Short 1 2 - Short 2 3 - Short 3 4 - Short 4 5 - Short 5 6 - Short 6

    Byte

    SROddEvenCombination 0 - Three Odd 1 - Two Odd One Even 2 - Two Even One Odd 3 - Three Even

    Byte

    SR_1_2_3_4 1 2 3 4 Bool

    SR_2_3_4_5 2 3 4 5 Bool

    SR_2_3_5_6 2 3 5 6 Bool

    SR_3_4_5_6 3 4 5 6 Bool

    SRCombination 0 - 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

    Byte

    Copyright © SA Gaming 2019 All right reserved 70/85

  • TECHNICAL GUIDE

    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

    Copyright © SA Gaming 2019 All right reserved 71/85

  • TECHNICAL GUIDE

    Fan Tan 

    GameResult of Fan Tan 

    Name Description Type and Limit

    Point Remain buttons count: 1, 2, 3 or 4 Int

    ResultDetail Details of the result Structure

    BetType for Fan Tan 

    ID Description ID Description

    0 Odd 21 4 Nim 3

    1 Even 22 12 Kwok

    2 1 Zheng 23 41 Kwok

    3 2 Zheng 24 23 Kwok

    4 3 Zheng 25 34 Kwok

    5 4 Zheng 26 1 Tong 23

    6 1 Fan 27 1 Tong 24

    7 2 Fan 28 1 Tong 34

    8 3 Fan 29 2 Tong 13

    9 4 Fan 30 2 Tong 14

    10 1 Nim 2 31 2 Tong 34

    11 1 Nim 3 32 3 Tong 12

    12 1 Nim 4 33 3 Tong 14

    13 2 Nim 1 34 3 Tong 24

    14 2 Nim 3 35 4 Tong 12

    15 2 Nim 4 36 4 Tong 13

    16 3 Nim 1 37 4 Tong 23

    Copyright © SA Gaming 2019 All right reserved 72/85

  • TECHNICAL GUIDE

    17 3 Nim 2 38 123 Chun

    18 3 Nim 4 39 124 Chun

    19 4 Nim 1 40 134 Chun

    20 4 Nim 2 41 234 Chun

    ResultDetail for Fan Tan 

    Name Description Type and Limit

    FTROdd Odd Bool

    FTREven Even Bool

    FTRZhengOne 1 Zheng Bool

    FTRZhengTwo 2 Zheng Bool

    FTRZhengThree 3 Zheng Bool

    FTRZhengFour 4 Zheng Bool

    FTRFanOne 1 Fan Bool

    FTRFanTwo 2 Fan Bool

    FTRFanThree 3 Fan Bool

    FTRFanFour 4 Fan Bool

    FTROneNimTwo 1 Nim 2 Bool

    FTROneNimThree 1 Nim 3 Bool

    FTROneNimFour 1 Nim 4 Bool

    FTRTwoNimOne 2 Nim 1 Bool

    FTRTwoNimThree 2 Nim 3 Bool

    FTRTwoNimFour 2 Nim 4 Bool

    FTRThreeNimOne 3 Nim 1 Bool

    FTRThreeNimTwo 3 Nim 2 Bool

    FTRThreeNimFour 3 Nim 4 Bool

    Copyright © SA Gaming 2019 All right reserved 73/85

  • TECHNICAL GUIDE

    FTRFourNimOne 4 Nim 1 Bool

    FTRFourNimTwo 4 Nim 2 Bool

    FTRFourNimThree 4 Nim 3 Bool

    FTRKwokOneTwo 12 Kwok Bool

    FTRKwokOneFour 14 Kwok Bool

    FTRKwokTwoThree 23 Kwok Bool

    FTRKwokThreeFour 34 Kwok Bool

    FTROneTongTwoThree 23 Tong 1 Bool

    FTROneTongTwoFour 24 Tong 1 Bool

    FTROneTongThreeFour 34 Tong 1 Bool

    FTRTwoTongOneThree 13 Tong 2 Bool

    FTRTwoTongOneFour 14 Tong 2 Bool

    FTRTwoTongThreeFour 34 Tong 2 Bool

    FTRThreeTongOneTwo 12 Tong 3 Bool

    FTRThreeTongOneFour 14 Tong 3 Bool

    FTRThreeTongTwoFour 24 Tong 3 Bool

    FTRFourTongOneTwo 12 Tong 4 Bool

    FTRFourTongOneThree 13 Tong 4 Bool

    FTRFourTongTwoThree 23 Tong 4 Bool

    FTRChunOneTwoThree 123 Chun Bool

    FTRChunOneTwoFour 124 Chun Bool

    FTRChunOneThreeFour 134 Chun Bool

    FTRChunTwoThreeFour 234 Chun Bool

    Roulette 

    Copyright © SA Gaming 2019 All right reserved 74/85

  • TECHNICAL GUIDE

    GameResult of Roulette 

    Name Description Type and Limit

    Point 0 to 36 Int

    ResultDetail Details of the result Structure

    BetType for Roulette 

    ID Description ID Description

    0~36 0~36 97 0,1,2

    37 0,1 98 0,2,3

    38 0,2 99 1,2,3

    39 0,3 100 4,5,6

    40 1,2 101 7,8,9

    41 1,4 102 10,11,121

    42 2,3 103 13,14,15

    43 2,5 104 16,17,18

    44 3,6 105 19,20,21

    45 4,5 106 22,23,24

    46 4,7 107 25,26,27

    47 5,6 108 28,29,30

    48 5,8 109 31,32,33

    49 6,9 110 34,35,36

    50 7,8 111 1,2,4,5

    51 7,10 112 2,3,5,6

    52 8,9 113 4,5,7,8

    53 8,11 114 5,6,8,9

    Copyright © SA Gaming 2019 All right reserved 75/85

  • TECHNICAL GUIDE

    54 9,12 115 7,8,10,11

    55 10,11 116 8,9,11,12

    56 10,13 117 10,11,13,14

    57 11,12 118 11,12,14,15

    58 11,14 119 13,14,16,17

    59 12,15 120 14,15,17,18

    60 13,14 121 16,17,19,20

    61 13,16 122 17,18,20,21

    62 14,15 123 19,20,22,23

    63 14,17 124 20,21,23,24

    64 15,18 125 22,23,25,26

    65 16,17 126 23,24,26,27

    66 16,19 127 25,26,28,29

    67 17,18 128 26,27,29,30

    68 17,20 129 28,29,31,32

    69 18,21 130 29,30,32,33

    70 19,20 131 31,32,34,35

    71 19,22 132 32,33,35,36

    72 20,21 133 1,2,3,4,5,6

    73 20,23 134 4,5,6,7,8,9

    74 21,24 135 7,8,9,10,11,12

    75 22,23 136 10,11,12,13,14,15

    76 22,25 137 13,14,15,16,17,18

    77 23,24 138 16,17,18,19,20,21

    78 23,26 139 19,20,21,22,23,24

    Copyright © SA Gaming 2019 All right reserved 76/85

  • TECHNICAL GUIDE

    79 24,27 140 22,23,24,25,26,27

    80 25,26 141 25,26,27,28,29,30

    81 25,28 142 28,29,30,31,32,33

    82 26,27 143 31,32,33,34,35,36

    83 26,29 144 1st 12 (1~12)

    84 27,30 145 2nd 12 (13~24)

    85 28.29 146 3rd 12 (25~36)

    86 28,31 147 1st Row (1~34)

    87 29,30 148 2nd Row (2~35)

    88 29,32 149 3rd Row (3~36)

    89 30,33 150 1~18 (Small)

    90 31,32 151 19~36 (Big)

    91 31,34 152 Odd

    92 32,33 153 Even

    93 32,35 154 Red

    94 33,36 155 Black

    95 34,35 156 0,1,2,3

    96 35,36

    ResultDetail for Roulette 

    Name Description Type and Limit

    RRZero 0 Bool

    RROne 1 Bool

    RRTwo 2 Bool

    RRThree 3 Bool

    RRFour 4 Bool

    Copyright © SA Gaming 2019 All right reserved 77/85

  • TECHNICAL GUIDE

    RRFive 5 Bool

    RRSix 6 Bool

    RRSeven 7 Bool

    RREight 8 Bool

    RRNine 9 Bool

    RRTen 10 Bool

    RREleven 11 Bool

    RRTwelve 12 Bool

    RRThirteen 13 Bool

    RRForteen 14 Bool

    RRFifthteen 15 Bool

    RRSixteen 16 Bool

    RRSeventeen 17 Bool

    RREighteen 18 Bool

    RRNineteen 19 Bool

    RRTwenty 20 Bool

    RRTwentyOne 21 Bool

    RRTwentyTwo 22 Bool

    RRTwentyThree 23 Bool

    RRTwentyFour 24 Bool

    RRTwentyFive 25 Bool

    RRTwentySix 26 Bool

    RRTwentySeven 27 Bool

    RRTwentyEight 28 Bool

    RRTwentyNine 29 Bool

    RRThirty 30 Bool

    Copyright © SA Gaming 2019 All right reserved 78/85

  • TECHNICAL GUIDE

    RRThirtyOne 31 Bool

    RRThirtyTwo 32 Bool

    RRThirtyThree 33 Bool

    RRThirtyFour 34 Bool

    RRThirtyFive 35 Bool

    RRThirtySix 36 Bool

    RRSet1 1st 12 (1~12) Bool

    RRSet2 2nd 12 (13~24) Bool

    RRSet3 3rd 12 (25~36) Bool

    RRRow1 1st Row (1~34) Bool

    RRRow2 2nd Row (2~35) Bool

    RRRow3 3rd Row (3~36) Bool

    RR1To18 Small Bool

    RR19To36 Big Bool

    RROdd Odd Bool

    RREven Even Bool

    RRRed Red Bool

    RRBlack Black Bool

    Copyright © SA Gaming 2019 All right reserved 79/85

  • TECHNICAL GUIDE

    Money Wheel 

    GameResult of Money Wheel 

    Name Description Type and Limit

    Main

    0 1

    1 2

    2 9

    3 16

    4 24

    5 SA-Gold (50)

    6 SA-Black (50)

    Int

    Side

    7 Fish

    8 Prawn

    9 Crab

    10 Coin

    11 Gourd

    12 Rooster

    Int

    ResultDetail Details of the result Structure

    BetType for Money Wheel 

    ID Description

    0 1

    Copyright © SA Gaming 2019 All right reserved 80/85

  • TECHNICAL GUIDE

    1 2

    2 9

    3 16

    4 24

    5 50 Gold

    6 50 Black

    7 Fish

    8 Prawn

    9 Crab

    10 Coin

    11 Gourd

    12 Rooster

    ResultDetail for Money Wheel 

    Name Description Type and Limit

    MWRMain1 1 Bool

    MWRMain2 2 Bool

    MWRMain3 9 Bool

    MWRMain4 16 Bool

    MWRMain5 24 Bool

    MWRMain6 50 Gold Bool

    MWRMain7 50 Black Bool

    MWRSide1 Fish Bool

    MWRSide2 Prawn Bool

    Copyright © SA Gaming 2019 All right reserved 81/85

  • TECHNICAL GUIDE

    MWRSide3 Crab Bool

    MWRSide4 Coin Bool

    MWRSide5 Gourd Bool

    MWRSide6 Rooster Bool

    Tips 

    GameResult for Tips 

    There is no GameResult for Tips.

    BetType for Tips 

    ID Description

    254 Tips

    ResultDetails for Tips 

    There is no ResultDetials for Tips.

     

    10. Host ID to Game mapping 

     

    ID Game

    402 Mini game

    601 Baccarat 1

    602 Baccarat 2

    603 Baccarat 3

    604 Baccarat 4

    605 Baccarat 5

    Copyright © SA Gaming 2019 All right reserved 82/85

  • TECHNICAL GUIDE

    606 Baccarat 6

    607 Baccarat 7

    608 Baccarat 8

    609 Baccarat 9

    610 Baccarat 10

    619 Baccarat 11

    620 Baccarat 12

    621 (remove on 7/22) Baccarat 13

    611 (remove on 4/15) Baccarat 11

    612 (remove on 4/15) Baccarat 12

    613 Baccarat 13

    614 Baccarat 14

    615 Baccarat 15

    616 Baccarat 16

    630 Roulette

    631 Sic Bo

    632 Fan Tan

    640 Dragon & Tiger

    660 Money Wheel

     

    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 name Currency

    Copyright © SA Gaming 2019 All right reserved 83/85

  • TECHNICAL GUIDE

    CNY Chinese yen

    USD US Dollar

    EUR Euro

    JPY Japanese yen

    VND* Vietnamese Dong

    AUD Australian Dollar

    TWD Taiwan New Dollar

    MYR Malaysian Ringgit

    IDR* Indonesian Rupiah

    SGD Singapore Dollar

    GBP British Pound

    THB Thai Baht

    TRY Turkish Lira

    UAH Ukrainian Hryvnia

    mXBT milli Bitcoin

    BND Bruneian Dollar

    CAD Canadian Dollar

    MMK* Burmese Kyat

    NOK Norwegian Krone

    SEK Swedish Krone

    ZAR South Africa Rand

    BDT Bangladeshi Taka

    LKR Sri Lankan Rupee

    INR Indian Rupee

    RUB Russian Ruble

    PLN Polish Zloty

    Copyright © SA Gaming 2019 All right reserved 84/85

  • TECHNICAL GUIDE

    AED Emirati Dirham

    KHR* Cambodian Riel

    BRL Brazilian Real

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

    Copyright © SA Gaming 2019 All right reserved 85/85