SportsBook SingleWallet Service Interface Description 2.0.1.7 0
History........................................................................................................................................................... 4 Common...................................................................................................................................................... 15 1.1 SPORTSBOOK ENTRY................................................................................................................................................. 15 1.2 Authentication Process..............................................................................................................................................18 API Function................................................................................................................................................. 21 2.0 PROTOCOL and API User Guide................................................................................................................................. 21 2.1 Create User................................................................................................................................................................. 24 2.2 Online Users............................................................................................................................................................... 26 2.3 Kick User.....................................................................................................................................................................28 2.4 Is online...................................................................................................................................................................... 30 2.5 Check User Exists...................................................................................................................................................... 32 2.6 Betrecord.................................................................................................................................................................... 34 2.7 Parlay Betrecord........................................................................................................................................................ 44 2.8 Language Info............................................................................................................................................................ 53 2.9 Get Message............................................................................................................................................................... 55 2.10 Match Result............................................................................................................................................................. 57 2.11 Get Bet Setting......................................................................................................................................................... 60 2.12 Get Member Setting................................................................................................................................................. 63 2.13 Set Member Template..............................................................................................................................................66 1
2.14 Update Member Setting.......................................................................................................................................... 68 2.15 Cashout Betrecord................................................................................................................................................... 72 2.16 Get Hotevent............................................................................................................................................................ 75 2.17 Update Template Setting......................................................................................................................................... 86 2.18 Get Sport Category List............................................................................................................................................ 90 2.19 CreateTemplate........................................................................................................................................................ 92 2.20 CheckTemplateSetting............................................................................................................................................ 96 2.21 GetTemplateList..................................................................................................................................................... 100 2.22 GetTemplateUserList............................................................................................................................................. 103 2.23 DeleteTemplate...................................................................................................................................................... 105 2.24 Get Deduct Balance Invalid Ticket........................................................................................................................ 107 2.25 Get Update Balance InvalidTicket......................................................................................................................... 111 SingleWallet Function................................................................................................................................. 115 3.0 SingeWallet API Guidelines...................................................................................................................................... 115 3.1 GetBalance............................................................................................................................................................... 123 3.2 DeductBalance......................................................................................................................................................... 128 3.3 UpdateBalance.........................................................................................................................................................137 Appendix.................................................................................................................................................... 144 Apx.1 Currency/Language............................................................................................................................................. 144 2
Apx.2 Bet Type/SportType............................................................................................................................................. 149 Apx.3 Bet Position.......................................................................................................................................................... 156 3
History 2025/7/1 2.0.1.7 1. Respond Object Update ‒ Single Wallet Invalid Ticket Retrieval API 1.InvalidDeductById Respond Object: A new field "SourceName" will be added. 2.InvalidUpdateById Respond Object: The field name "UserName" will be changed to "SourceName". 2025/6/13 2.0.1.6 1. Add New API Functions: 2.19 CreateTemplate 2.20 CheckTemplateSetting 2.21 GetTemplateList 2.22 GetTemplateUserList 2.23 DeleteTemplate 2025/5/29 2.0.1.5 1. appx.2 Sport Type added Virtual Sports SportType 2. 2.6 Betrecord added Virtual Sport relate setting 3. 2.10 Matchresult added Virtual Sport relate setting 4
2025/4/23 2.0.1.4 1. 2.4 Online Users Correction Note: If no user is online, the value is empty. 2025/4/16 2.0.1.3 1. BetSource Types Added to the Betrecord Related APIs: 12 = E-Sport MemberUI 14 = VS Web 15 = VS Web Asian 16 = VS Smart 2025/3/24 2.0.1.2 1. appx.1 Currency/Language added currency NPR, PGK, NGN, BND, TONU. 2025/3/3 2.0.1.1 1. 2.14 UpdateMemberSetting: Adjustment of the maximum value for Commission settings to 0.01. 2. 2.17 Update Template Setting: Adjustment of the maximum value for Commission settings to 0.01. 2025/2/18 2.0.0.9 1. 2.20 Get Deduct Balance Invalid Ticket Added Request Date Limit2 2. 2.21 Get Update Balance InvalidTicket Added Request Date Limit. 5
2025/1/7 2.0.0.8 1. 2.14 Update Member Setting,Response example results have been updated. 2. 3.2 DeductBalance update "Request Parameters" to "BalancePackage Decryption Parameters". 3. 3.2 DeductBalance BalancePackage Decryption Parameters Added more Info. 4. 3.2 DeductBalance Request Decrypted String Result Deduct Info Updated. 5. 3.2 DeductBalance Request Template Encrypted string template Updated. 2024/12/24 2.0.0.7 1. 3.2 DeductBalance Deduct Process Added BetFailed StatusCode = -9001 Description. 2. 3.2 DeductBalance StatusCode List Added StatusCode (-9001). 3. 3.2 DeductBalance Notes Updated: If the reply StatusCode is not in (100,-9001) or the reply pending to Time Out, the error count will be added. If there is a successful reply, the error count will be refreshed. If the error count reaches the setting value, the system will be enforced to close the Partner, please request restored partner from CMD Operations Services. 4. 3.2 DeductBalance Response Template Updated: Add Succeed And Insufficient Balance Respond Template. 5. 3.2 DeductBalance Request Template Encrypted string template Updated. 6. 3.2 DeductBalance Request Decrypted String Result Deduct Info Updated. 2024/12/13 2.0.0.6 1. 2.14 Update Member Settings,Request example: Remove the "Comm" parameter from the 6
Betsettings content. 2. 2.17 Update Template Setting,Request example: Remove the parameters "Comm," "SystemType," and "SportName" from the Betsettings content. 3. 2.6 Betrecord: Added ByWorkingDate function. 2024/12/9 2.0.0.5 1. 2.14 Update Member Settings,ErrorCode=-1 (BetSettingsError) is changed to ErrorCode=-8136 (BetSettingsError). 2. 2.17 Update Template Setting,ErrorCode=-1 (BetSettingsError) is changed to ErrorCode=-8136 (BetSettingsError). 2024/10/25 2.0.0.4 1. 2.9 GetMessage Response Data Description Type Remove 2 = system. 2. 3.3 UpdateBalance Update Notes:Partner should handle requests using the original PackageId backup to avoid processing failures, when CMD receives the response from the Partner with StatusCode 100, CMD will no longer resend the specific PackageId. If Partner does receive the processed Package, please stop that update process. 3. Correct APX02_TransType for the 1X2 betting type, adjusting the codes for Bet 1, Bet 2, and Double Chance (DC) Bet 12. 7
2024/10/4 2.0.0.3 1. 3. 3 UpdateBalance Ticket Information TransRefNo added 2. 2.7 ParlayBetrecord responding to example content amendments. 2024/8/22 2.0.0.2 1. appx.1 Currency/Language added Currency: TRY, KES, and LAK(1:000) 2. appx.1 Currency/Language Currency updated: IDR 1 : 1000 (1 in system equal to 1000 in actual currency) 2024/8/15 2.0.0.1 1. 2.15 Cashoutbetrecord Response Data Description, StatusUpdateTS => StateUpdateTS 2. 2.8 Language Info Added Parameter type = 3 3. 2.12 API GetMessage added 4. 3. PARTNER IMPLEMENT FUNCTION INTERFACE, 4. REQUEST ENCRYPT / RESPONSE DECRYPT TEMPLATE combines into SingleWallet chapter. 5. 7. Appendix, part of the appendix has been returned to the original API chapter sub-item. 6. 1. PROTOCOL, 2. SPORTSBOOK ENTRY combines into Common chapter. 2024/1/18 1.0.1.4 1. 7.7 SportType Sport Added 2. 6.15 GetHotEvent Notes updated 8
3. 6.6 Betrecord Notes updated 2023/11/1 1.0.1.3 1. 3.3 UpdateBalance format example updated 2. 6.6 Betrecord Notes updated 2023/5/29 1.0.1.2 1. 6.3 Kick User Notes added 2023/2/14 1.0.1.1 1. 7.11 Description Update 2. 6.12 Set User Template Notes Updated 3. 6.1 CreateMember UserName Parameter Description Updated 4. 5. Sportsbook Entry UserName Parameter Description Updated 5. 7.2 Currency Code added 2022/11/2 1.0.1.0 1. 6.6 Query Bet Record Parameter & Notesd Updated 2022/9/22 1.0.0.9 1. 3.3.3 Response Status Notes added 9
2. 3.2.3 Response Status Notes added 3. 3.1.3 Response Status Notes added 4. Member Bet Ticket Information SpecialId Description Updated 5. 6.16 Update Template Setting Member Setting Format Updated 2022/9/6 1.0.0.8 1. 5 SPORTSBOOK ENTRY Updated 2. 7.5 Parlay Bet Ticket Information updated 3. 7.2 Currency Code Added 4. 6.15 Hot Event remark updated 2022/7/18 1.0.0.7 1. 7.11 Hot Event Information updated 2. 7.4 Member Bet Ticket Information 2022/7/7 1.0.0.6 1. 7.11 Hot Event Information updated 2. 6.15 Hot Event Information updated 2022/2/15 1.0.0.5 1. 7.13 Get SportCategory List Information added 10
2. 6.18 Get SportCategory List API added 3. 7.12 Get Template Setting Information added 4. 6.17 Get Template Setting API added 5. 6.16 Update Template Setting API added 6. 7.3 Member Bet Setting Information updated 7. 6.8 Query Language Info Notesd updated 8. 3.3.3 Response Status Notes updated 9. 3.2.3 Response Status Notes updated 10. 3.1.3 Response Status Notes updated 2021/5/20 1.0.0.4 1. 7.4 Member Transfer Information (SingleWallet not available) Remove 2. API Request URL / SingleWallet Request URL Remove SportsApi.Aspx 3. 7.9 Bet Position update Bet Position 4. 7.7 Bet Type update BetType 2020/9/24 1.0.0.2 1. 2.2.2 Betting Process Content picture changed 11
2020/9/24 1.0.0.3 1. 4.2 Encryption content correction 2. 3.1.1 Request from CMD ActionID DataType changed 3. 2.2.3 UpdateBalance Process Content picture changed 4. 4.2.3 UpdateBalance Response to CMD Decrypted Format example update 5. 4.2.2 DeductBalance Response to CMD Decrypted Format example update 6. 4.2.1 GetBalance Response to CMD Decrypted Format example update 7. 4.1.3 UpdateBalance Request from CMD Decrypted result update 8. 4.1.2 DeductBalance Request from CMD Decrypted result update 9. 4.1.1 GetBalance Request from CMD Decrypted result update 10. 4.2.3 UpdateBalance Response to CMD balancePackage remove 11. 4.2.2 DeductBalance Response to CMD balancePackage remove 12. 4.2.1 GetBalance Response to CMD balancePackage remove 13. 4.1.3 UpdateBalance Request from CMD balancePackage update 14. 4.1.2 DeductBalance Request from CMD Decrypted result: Deduct TransactionAmount update 15. 4.1.2 DeductBalance Request from CMD balancePackage update 16. 4.1.1 GetBalance Request from CMD balancePackage update 17. 4.2.3 UpdateBalance Response to CMD Template Partnerkey update 18. 4.2.2 DeductBalance Response to CMD Template Partnerkey update 19. 4.2.1 GetBalance Response to CMD Template Partnerkey update 12
20. 4.1.3 UpdateBalance Request from CMD Template Partnerkey update 21. 4.1.2 DeductBalance Request from CMD Template Partnerkey update 22. 4.1.1 GetBalance Request from CMD Template Partnerkey update 23. 4.2 Encrypt Description update 24. 4.1 Decrypt Description update 25. 3.3.2 Response to CMD <StatusCode> DataType update 26. 3.2.2 Response to CMD <StatusCode> DataType update 27. 3.1.2 Response to CMD <StatusCode> DataType update 28. 3.3.1 Request from CMD add <method> data 29. 3.2.1 Request from CMD add <method> data 30. 3.1.1 Request from CMD add <method> data 31. 4.12 Hot Event Information 9 AwayTeamName Description Correction 32. 4.12 Hot Event Information 9 HomeTeamName Description Correction 33. 4.12 Hot Event Information 7 LeagueName Description Correction 34. 4.12 Hot Event Information 6 SportName Description Correction 35. 7.6 Parlay Bet Ticket Information 13 WinAmt Length update 36. 7.5 Member Bet Ticket Information 13 WinAmount Length update 37. 7.5 Member Bet Ticket Information 29 Odds Type MR remove 38. 5. SPORTSBOOK ENTRY Login Entry / No-Login Entry change to https 13
2020/8/28 1.0.0.1 1. 4.2 Encryption content correction 2. 4.1 Decryption content correction 3. 3.3 UpdateBalance Content correction 4. 3.2 DeductBalance Content correction 5. 3.1 GetBalance Content correction 14
Common 1.1 SPORTSBOOK ENTRY CMD will provide the partner MIF information, which contains all the API information of the partner, as well as the domain name <PlatformDomain> of the UI of each platform, which is used by the members to log in to the correspondsing platform according to the requirements of the partner. 1. <PlatformDomain> is the URL of WebRoot / MobileRoot / New Mobile Root in the MIF file provided by us, according to the selected <PlatformDomain>, you can enter into the interface of each platform. 2. MobileRoot and NewMobileRoot can only be used with v1 or v3 of the above two styles, if the login page shows a View Setting Error! message, it means that this view style is not supported. 3. Partners are required to prepare and provide a session authentication address <AuthenticationURL> to FlashTech, as described in Common 1.2 Authentication Process. Login Entry: https://<PlatfromDomain>/auth.aspx?lang=<LanguageCode>&user=<UserName>&token=<Token>&currency=<CurrencyCode>&templat ename=<TemplateName>&view=<View> No-Login Entry: https://<PlatfromDomain>/auth.aspx?lang=<LanguageCode>&templatename=<TemplateName> 15
Parameter: Name Type Description <Lang> VARCHAR(5) Language code, see apx.1 Currency/Language. <UserName> VARCHAR(20) Username only allowed letters (a-z), numbers (0-9), and symbols( . )( _ )( - )( @ ). <Currency> VARCHAR(5) Currency codes, see apx.1 Currency/Language... <TemplateName> VARCHAR(10) Sportsbook template style, please refer to SportsBook Style. <Token> VARCHAR(50) Auth Token (Create by merchant) <View> VARCHAR(2) Sportsbook template style, please refer to SportsBook Style. SportsBook Style: Name Type Description <TemplateName> VARCHAR(10) Total 6 web templates: aliceblue blue bluegray 16
darker gray green <View> VARCHAR(2) Template style: v1 = traditional style v2 = new Asian style v3 = eSports style Default is set to v1 if not specified. Login Example: aaaa.1win888.net/auth.aspx?lang=en-US&user=Test001&token=667788995848987fb&view=v1&currency=USD No-Login Example: aaaa.1win888.net/auth.aspx?lang=en-US&view=v1&currency=USD 17
1.2 Authentication Process When the CMD User requests to login to Sportsbook, CMD will receive the Login request, CMD will sends the token and Secretkey to the Partner to verify the login token with the CMD User if is valid, the Partner will need to reply with the confirmation token and Secretkey result. 1. If User Login shows the [Token Authentication Failed] message, please ask CMD for AuthLog to check the issue. 2. The User Login URL Must refer to the Login Entry URL parameter, otherwise it will direct to the NonLogin Entry Page when the parameter is lost. 3. The CMD server will request the token valid by the Get method. 4. The <SecretKey> will be [Empty] if Partner does not apply the setting. 5. Token Authentication will use the XML format. 18
Token Authentication URL Request: http://<AuthenticationURL>?token=<Token>&secret_key=<SecretKey> XML Success Response: <?xml version="1.0" encoding="UTF-8"?> <authenticate> <member_id>TestUser001</member_id> <status_code>0</status_code> <message>Success</message> </authenticate> XML Failed Response: <?xml version="1.0" encoding="UTF-8"?> <authenticate> <member_id></member_id> <status_code>2</status_code> <message>Failed</message> </authenticate> Response Parameters: Name Type Description member_id VARCHAR(20) Username only allowed letters (a-z), numbers (0-9), and symbols( . )( _ )( - )( @ ). status_code INT 0 : Success Otherwise : Failed 19
Message NVARCHAR(256) Member login status information. 20
API Function 2.0 PROTOCOL and API User Guide CMD uses JSON data type to do request and reply, the request method supports GET and POST, each API uses different method call and HTTP content type, please follow the requirements in the API description to avoid request failure. 1. The response <Code> only indicates that the request was processed successfully. The final result must be checked against the <Data>details. 2. All the Requests will be blocked when the IP without whitelist. 3. All the API Responses will reply by the method Get. Request: <APIDomain>/?Method=<Method>&PartnerKey=<PartnerKey>&Parameter=<Parameter> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information: PartnerKey. <Method> String Please refer to the API information. 21
Example: <APIDomain>/?Method=<Method>&PartnerKey=<PartnerKey>&Parameter=<Parameter> Response Data Description: Name Type Description SerialKey VARCHAR(50) Operation Serial Key Timestamp Long Operation time stamp. Format: yyyyMMddHHmmssfff Code INT 0 = Process Success Otherwise = Process Failed Message VARCHAR(512) Message Data Object The Method response will have different data with JSON format Response: {"SerialKey":<SerialKey>,"Timestamp":<Timestamp>,"Code":<Code>,"Message":"<Message>","Data":<Data>} 22
23
2.1 Create User This function is used to create a CMD user, the partner must provide the UserName and currency, please note that the currency must have been applied 1. When Code=-104 (Maximum characters exceeded), it means the Username is greater than 20 characters 2. When Code=-8102 (CurrencyCode not uppercase / CurrencyCode not support), it means the CurrencyCode need uppercase / Not support in the CurrencyCode List. 3. When Code=-8017 (CurrencyNotDefinedOrDownlineMaxed), it means the Partner has not yet applied this currency. 4. Template of new member will follow currency default template (Check in BO), Member settings will follow currency default template settings. Request: <APIDomain>/?Method=createmember&PartnerKey=<PartnerKey>&UserName=<UserName>&Currency=<Currency> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <UserName> VARCHAR(20) Only letters (a-z), numbers (0-9) and special symbols (.) are supported for user names. (_)(-)(@) 24
<Currency> VARCHAR(5) Currency code, see apx.1 Currency Code. Example: <APIDomain>/?Method=createmember&PartnerKey=111111111111111&UserName=TestUser01&Currency=CNY Response Data Description: Name Type Description Data[0] VARCHAR(20) Partner API request for UserName. Data[1] VARCHAR(20) User Name of Sportsbook System Response: {"SerialKey":"3067aa09-2414-4523-ba7e-6be21b071f6a","Timestamp":20240509222933293,"Code":0,"Message":"Success","Data":["TEST.user001"," zk0100000i78"]} 25
2.2 Online Users This function obtains information about all CMD users online. 1. If no user is online, the value is empty. Request: <APIDomain>/?Method=onlineusers&PartnerKey=<PartnerKey> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. Example: <APIDomain>/?Method=onlineusers&PartnerKey=111111111111111 Response Data Description: Name Type Description 26
UserName VARCHAR(20) User Name LastLoginTime BIGINT UCT+8 DateTime().Ticks LastLoginIP VARCHAR(50) Login IP Response: {"SerialKey":"0123987567_0HKMMvuDOfnS7dbw","Timestamp":20170525145606256,"Code":0,"Message":"Success","Data":[{"UserName":"test01", "LastLoginTime":1376731735000," LastLoginIP":"58.46.55.123"},{"UserName":"test03","LastLoginTime":1376731734300,"LastLoginIP":"112.54.34.98"}]} 27
2.3 Kick User This function is used to kick out online CMD users, if there are no users online, -97 (UserNotExists) will also be displayed. 1. if you need to kick out all users, execute the kick out all online users request, UserName = All, need to conform to the correct case or it will display -97 (UserNotExists). Request: <APIDomain>/?Method=kickuser&PartnerKey=<PartnerKey>&UserName=<UserName> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <UserName> VARCHAR(20) User Name If value is [ All ], then kick all users Example: <APIDomain>/?Method=kickuser&PartnerKey=111111111111111&UserName=TestUser01 28
Response: {"SerialKey":"bbecc28d-ae4b-466f-a172-7fe5d4ee70fd","Timestamp":20170525145606256,"Code":0,"Message":"Success","Data":true} 29
2.4 Is online This function is used to check if a specific CMD user is online. 1. "IsOnline" = false, Could be that the user is not online or has yet been created. Request: <APIDomain>/?Method=isonline&PartnerKey=<PartnerKey>&UserName=<UserName> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <UserName> VARCHAR(20) User Name Example: <APIDomain>/?Method=isonline&PartnerKey=111111111111111&UserName=TestUser01 30
Response Data Description: Name Type Description UserName VARCHAR(20) User Name IsOnline BOOLEAN true : Online false : Not Online or yet been created. Response: {"SerialKey":"f95e769a-c4ef-489a-968c-69a0726bed78","Timestamp": 20170525145606256,"Code":0,"Message":"Success","Data":[{"UserName":"TestUser01" ,"IsOnline":false}]} 31
2.5 Check User Exists This function is used to check if the CMD user exists. 1. <Data> is true = Exists 2. <Data> is false = Not Exists Request: <APIDomain>/?Method=exist&PartnerKey=<PartnerKey>&UserName=<UserName> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <UserName> VARCHAR(20) User Name Example: <APIDomain>/?Method=exist&PartnerKey=111111111111111&UserName=TEST.User001 32
Response: {"SerialKey":"067b4787-5c48-4bee-ab8f-ca384b3dcf1d","Timestamp":20170525145606256,"Code":0,"Message":"Success","Data":true} 33
2.6 Betrecord This function is used to query the status of CMD user's bet ticket lists, the data with the same ReferenceNo number comes with the latest status by the largest Id number, please be sure to record the status of each update, to store the complete Bet history , this function will be returned max 1000 tickets per request. 1. For the initial operation, the request value should use version = 0, because the API only respond to the data ID over than you requested, and use the maximum ID you received as the Version key for the next record. 2. Code=-102, means that the partner has exceeded the minimum request time. 3. BetrecordByRefNo: will responds to the latest status information of this ticket. 4. BetrecordByDate: StartDate / EndDate The date can span a day, but not more than 24 hours. 34
Request: <APIDomain>/?Method=betrecord&PartnerKey=<PartnerKey>&Version=<Version> byDate: <APIDomain>/?Method=betrecordbydate&PartnerKey=<PartnerKey>&TimeType=<TimeType>&StartDate=<StartDate>&EndDate=<EndD ate>&Version=<Version> byRefNo: <APIDomain>/?Method=betrecordbyrefno&PartnerKey=<PartnerKey>&RefNo=<RefNo> byWorkingDate: <APIDomain>/?Method=betrecordbyworkingdate&PartnerKey=<PartnerKey>&WorkingDate=<WorkingDate>&Version=<Version> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <Version> BIGINT Currently max <Id> value <TimeType> Int Using Date via:1.TransDate / 2.StateUpdateTs <StartDate> DATE StartDate 35
<EndDate> DATE EndDate <RefNo> VARCHAR(20) Transaction No <WorkingDate> DATE WorkingDate Example: <APIDomain>/?Method=betrecord&PartnerKey=111111111111111&Version=0 <APIDomain>/?Method=betrecordbydate&PartnerKey=111111111111111&TimeType=1&StartDate=2024-05-17T00:00:00&EndDate=2024-05-17T12: 00:00&Version=0 <APIDomain>/?Method=betrecordbyrefno&PartnerKey=111111111111111&RefNo=HDP2195154661 <APIDomain>/?Method=betrecordbyworkingdate&PartnerKey=111111111111111&WorkingDate=20240501&version=0 Response Data Description: Name Type Description Id BIGInt Auto increment ID SourceName String(20) The name of user in partner 36
ReferenceNo String(50) Transaction No SocTransId Int Data ID IsFirstHalf Bool Whether it is first half TransDate Long Bet date IsHomeGive Bool Whether it is home give IsBetHome Bool Whether it bet home BetAmount Decimal(18,2) Bet amount Outstanding Decimal(18,4) User outstanding balance Hdp Decimal(18,2) The number of giving Odds Decimal(18,2) Bet odds Currency String Currency code WinAmount Decimal(18,4) Win or lose amount ExchangeRate Decimal(18,2) The exchange rate of user's currency exchanging to Malaysian Ringgit 37
WinLoseStatus String(5) Win or lose status WA = Win All WH = Win Half LA = Lose All LH = Lose Half D = Draw P = Pending TransType String(5) Bet type DangerStatus String(2) D: Ticket of handling N: Today or early ticket which had been accepted. A: Ticket of accepted C: canceled ticket(Normally, it is caused by match canceled) R: Rejected ticket MemCommission Decimal(18,2) Commission of user own BetIp String(50) Bet IP HomeScore Int The final score of home team 38
AwayScore Int The final score of away team RunHomeScore Int The score of home team when betting RunAwayScore Int The score of away team when betting IsRunning Bool Whether it is running match RejectReason String(100) Reject reason SportType String(5) Sport type Choice Int Bet position WorkingDate Int Working date OddsType String(5) Odds type MY: Malay ID: Indo HK: Hong Kong DE: Decimal US: US 39
MatchDate Long Match date HomeTeamId Int Id of home team AwayTeamId Int Id of away team LeagueId Int Id of league SpecialId String Special Id can query API LanguageInfo by checking special bet name.The SpecialId can be paired with the neutral attribute. If the neutral attribute is repeatedly turned on, the following changes: 1000,15874 (Open neutral) ,15874 (Close neutral) 15874,1000 (2nd open neutral) 15874, (2nd close the neutral) StatusChange Int Whether there was recalculation (>= 2, means this ticket had recalculation) StateUpdateTs Long Bet settlement time (if the bet is reopened after the settlement, the settlement time is based on the final ending time.) MemCommissionSet Decimal(18,4) Commission setting value of user 40
IsCashOut BOOLEAN true = user enable <CashOut> and sell ticket. CashOutTotal Decimal(18,4) If user sell ticket, this is total sell value. CashOutTakeBack Decimal(18,4) If user sell ticket, this is how much balance user take back. CashOutWinLoseAmount Decimal(18,4) If user sell ticket, this is win or lose amount from sell ticket. BetSource Int Bet platform 1 = Desktop 7 = Mobile(v1) 9 = New Mobile(v1) 10 = Mobile E-Sport(v3) 11 = New Mobile E-Sport(v3) 12 = E-Sport MemberUI 14 = VS Web 15 = VS Web Asian 16 = VS Smart AOSExcluding String(512) If user bet AOS, this is which score AOS not include MMRPercent Decimal(18,4) Only available for MMK, other currencies will return 0.0000. 41
MatchID Int Id of match MatchGroupID String(50) Unique id of match, If SportType = VS, the MatchGroupID will always return as "00000000-0000-0000-0000-000000000000". BetRemarks String(128) Special data for OddsTrader system. Return String.Empty if data is not from OddsTrader system. IsSpecial BOOLEAN Is it a special match. Response: {"SerialKey":"2babd480-df80-410e-a834-776889b4019b","Timestamp":20240509230211059,"Code":0,"Message":"Success","Data":[{"Id":266983855 9,"SourceName":"FLASH.kayeCNY002ft","ReferenceNo":"HDP163864137","SocTransId":16386413,"IsFirstHalf":false,"TransDate":638459195850000 000,"IsHomeGive":true,"IsBetHome":true,"BetAmount":1.00,"Outstanding":0.0000,"Hdp":-1.000,"Odds":-0.900,"Currency":"CNY","WinAmount":-0.9 000,"ExchangeRate":0.600000,"WinLoseStatus":"LA","TransType":"HDP","DangerStatus":"N","MemCommissionSet":0.0010,"MemCommission":0.00 10,"BetIp":"10.0.83.137","HomeScore":0,"AwayScore":0,"RunHomeScore":0,"RunAwayScore":0,"IsRunning":true,"RejectReason":"","SportType":"S" ,"Choice":"1","WorkingDate":20240312,"OddsType":"MY","MatchDate":638458740000000000,"HomeTeamId":314392,"AwayTeamId":314390,"Leagu eId":87350,"SpecialId":"","IsCashOut":false,"CashOutTotal":0.0000,"CashOutTakeBack":0.0000,"CashOutWinLoseAmount":0.0000,"BetSource":4,"S tatusChange":1,"StateUpdateTs":638459206650000000,"AOSExcluding":"","MMRPercent":-999.0000,"MatchID":11131588,"MatchGroupID":"e55c795 42
f-a87d-4493-b772-2bedb8e655f9","BetRemarks":"API Tester","IsSpecial":false}]} 43
2.7 Parlay Betrecord This function is used for querying the status of the CMD user's mix parlay bet record. 1. The API requires SocTransId for the request, it can be obtained from a related API function Request: <APIDomain>/?Method=parlaybetrecord&PartnerKey=<PartnerKey>&SocTransId=<SocTransID> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <SocTransID> INT SocTransId Example: <APIDomain>/?Method=parlaybetrecord&PartnerKey=111111111111111&SocTransId=181546682 44
Response Data Description: Name Type Description SourceName String(20) The name of user in partner Amt Decimal(18,2) Bet amount AwayId Int Id of away team AwayScore Int The score of Away team when betting Choice Int Bet position CreateTS Long Create date CurCode String(5) Currency code DangerStatus String(2) D: Ticket of handling N: Today or early ticket which had been accepted. A: Ticket of accepted C: canceled ticket(Normally, it is caused by match canceled) R: Rejected ticket 45
ExRate Decimal(18,2) The exchange rate of user FTScore String(10) The score situation of full time HAG Int The situation of goal 1: Home team goal first, Home team goal last 2: Home team goal first, Away team goal last 3: Away team goal first, Home team goal last 4 : Away team goal first , Awayteam goal last 5: No goal Hdp Decimal(18,2) The number of giving HomeId Int Id of home team HomeScore Int The score of home team when betting HTScore String(10) The score situation of half time IsBetHome Boolean Whether it bet home IsFH Boolean Whether it is first half 46
IsHomeGive Boolean Whether it is home give IsRun Boolean Whether it is running match LeagueId Int Id of league MatchGroupId String(50) Unique id of match MatchId Int Id of match Odds Decimal(18,2) Bet odds ParDangerStatus String(2) The status of parlay ticket D: Ticket of handling N: Today or early ticket which had been accepted. A: Ticket of accepted C: canceled ticket(Normally, it is caused by match canceled) R: Rejected ticket 47
ParOdds Decimal(18,2) Bet odds of parlay ParStatus String(2) Win or lost status WA = Win All WH = Win Half LA = Lose All LH = Lose Half D = Draw P = Pending ParTransType String(5) Bet type of parlay RefNo String(50) Transaction No RiskLose Decimal(18,2) How much is expected to lose 48
RiskWin Decimal(18,2) How much is expected to win SocTransId Int Data ID SocTransParId Int Parlay data ID SpecialId String(20) Special Id can query API LanguageInfo by checking special bet name.The SpecialId can be paired with the neutral attribute. If the neutral attribute is repeatedly turned on, the following changes: 1000,15874 (Open neutral),15874 (Close neutral)15874,1000 (2nd open neutral)15874, (2nd close the neutral) SportType String(5) Sport type Status String(2) Win or lose status WA = Win All WH = Win Half LA = Lose All 49
LH = Lose Half D = Draw P = Pending TransDate Long Bet date TransType String(5) Bet type UpdateTS Long Date of updating WinAmt Decimal(18,4) Win or lose amount WinRate Decimal(18,2) -1 lose all -0.5 lose half 0 draw 0.5 win half 1 win all StateUpdateTs Long- Bet settlement time (if the bet is reopened after the settlement, the settlement time is 50
based on the final ending time.) AOSExcluding String(512) If user bet AOS, this is which score AOS not include. Response: { "SerialKey": "982c66e9-a115-4ba7-88e2-7de34e5b570b", "Timestamp": 20241021171207700, "Code": 0, "Message": "Success", "Data": [ { "SourceName": "TEST001", "Amt": 1, "AwayId": 313778, "AwayScore": 0, "Choice": "1", "CreateTS": 600905952000000000, "CurCode": "IDR", "DangerStatus": "N", "ExRate": 0.27, "FTScore": "0-2", "HAG": 5, "Hdp": 2.5, "HomeId": 313777, "HomeScore": 0, "HTScore": "0-2", "IsBetHome": true, "IsFH": false, "IsHomeGive": true, "IsRun": true, "LeagueId": 87055, "MatchGroupId": "ec9e75f2-e8ea-4453-920f-587653f5d9a6", "MatchId": 11313636, "Odds": 8.615, "ParDangerStatus": "N", "ParOdds": 2.05, "ParStatus": "LA", "ParTransType": "OU", "RefNo": "PAR175387967", "RiskLose": -1, "RiskWin": 7.61, "SocTransId": 17538796, "SocTransParId": 10128558, "SpecialId": "", "SportType": "S", "Status": "LA", "TransDate": 638593199843930000, "TransType": "PAR", "UpdateTS": 600905952000000000, "WinAmt": -1, "WinRate": -1, "StateUpdateTs": 638593210408330000, "AOSExcluding": "" }, { "SourceName": "TEST001", "Amt": 1, "AwayId": 313780, "AwayScore": 0, "Choice": "1", "CreateTS": 600905952000000000, "CurCode": "IDR", "DangerStatus": "N", "ExRate": 0.27, "FTScore": "2-0", "HAG": 5, "Hdp": 1.5, "HomeId": 313779, "HomeScore": 0, "HTScore": "2-0", "IsBetHome": true, "IsFH": false, "IsHomeGive": true, "IsRun": true, "LeagueId": 87055, "MatchGroupId": "57a4bc6a-06db-4dd9-a4a5-7e1fde912d33", "MatchId": 11313637, "Odds": 8.615, "ParDangerStatus": "N", "ParOdds": 2.04, "ParStatus": "WA", "ParTransType": "HDP", "RefNo": "PAR175387967", "RiskLose": -1, "RiskWin": 7.61, "SocTransId": 17538796, "SocTransParId": 10128559, "SpecialId": "", "SportType": "S", "Status": "LA", "TransDate": 638593199843930000, "TransType": "PAR", "UpdateTS": 600905952000000000, "WinAmt": -1, "WinRate": 1, "StateUpdateTs": 638593210408330000, "AOSExcluding": "" }, { "SourceName": "TEST001", "Amt": 1, "AwayId": 313776, 51
"AwayScore": 0, "Choice": "1", "CreateTS": 600905952000000000, "CurCode": "IDR", "DangerStatus": "N", "ExRate": 0.27, "FTScore": "3-0", "HAG": 5, "Hdp": 1.5, "HomeId": 313775, "HomeScore": 0, "HTScore": "3-0", "IsBetHome": true, "IsFH": false, "IsHomeGive": true, "IsRun": true, "LeagueId": 87055, "MatchGroupId": "6c5a1dcb-dab5-4472-ae60-b35b5e2cf704", "MatchId": 11313635, "Odds": 8.615, "ParDangerStatus": "N", "ParOdds": 2.06, "ParStatus": "WA", "ParTransType": "HDP", "RefNo": "PAR175387967", "RiskLose": -1, "RiskWin": 7.61, "SocTransId": 17538796, "SocTransParId": 10128557, "SpecialId": "", "SportType": "S", "Status": "LA", "TransDate": 638593199843930000, "TransType": "PAR", "UpdateTS": 600905952000000000, "WinAmt": -1, "WinRate": 1, "StateUpdateTs": 638593210408330000, "AOSExcluding": "" } ] } 52
2.8 Language Info This function is used to query the language information of various IDs such as team name and league, it could be obtained in the relevant API functions. e.g. LeagueId or TeamID. 1. This API can only query a single ID for each time. Resquest: <APIDomain>/?Method=languageinfo&PartnerKey=<PartnerKey>&Type=<Type>&ID=<ID> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <Type> INT 0 = team name 1 = league name 2 = special bet name 3 = sport name <ID> VARCHAR(10) ID 53
Example: <APIDomain>/?Method=languageinfo&PartnerKey=111111111111111&Type=0&ID=54280 Response: {"SerialKey":"9cd904bc-3c7e-4df3-8a72-3d3a4217e281","Timestamp":20170525145606256,"Code":0,"Message":"Success","Data":{"en-US":"Casaca stalda","zh-CN":"卡萨卡斯塔尔达","th-TH":"คาซา่แคสทลัดา","vi-VN":"Casacastalda","ja-JP":"Casacastalda","zh-TW":"卡萨卡斯塔尔达 ","id-ID":"Casacastalda","es-ES":"Casacastalda","ko-KR":"Casacastalda"}} 54
2.9 Get Message This API function is used to capture CMD public information and private information of the Partner CMD user. 1. StartDate supports up to 14 days before the requested date. 2. <Code>=-102 (Request Limit) means request time under 10 seconds between the last request. 3. When MessageType = 0 (public), SourceName will be empty. Request: <APIDomain>/?Method=GetMessage&PartnerKey=<PartnerKey>&Lang=<Lang>&StartDate=<StartDate>&EndDate=<EndDate> Parameter: Name Type Description PartnerKey VARCHAR(20) Please refer to the MIF information PartnerKey. Lang String Language code, see apx.1 Currency/Language. StartDate Long Operation time stamp. Format: yyyyMMddHHmmss EndDate Long Operation time stamp. Format: yyyyMMddHHmmss 55
Example: <APIDomain>/?Method=GetMessage&PartnerKey=111111111111111&Lang=zh-CN&StartDate=20240801000000&EndDate=20240810000000 Response Data Description: Name Type Description SourceName String Multiple Members *MessageType = 0 (public)時, Member為empty. MessageInfo JSON Message Detail Content String Message Info CreateTimes String Operation Date, Ticks Data MessageType INT 0 = Public, 1 = Private Response: {[{"SourceName":[""],"MessageInfo":{"Content":"TESTMessage1","CreateTimes":"/Date(1687429214027)/","MessageType":0}},{"SourceName":["Tes t001","Test003"],"MessageInfo":{"Content":"TESTMessage2","CreateTimes":"/Date(1687429214027)/","MessageType":1}} 56
2.10 Match Result This function is used to query the result of a race by the ticket id, which needs to be requested by SocTransId, The SocTransId can be obtained from a related API function. 1. If the SoctransId is not found, it will return Null value. 2. For search Virtual Sport match result, please set isVS = 1; else isVS=0. Request: <APIDomain>/?Method=matchresult&PartnerKey=<PartnerKey>&SocTransId=<SocTransID>&isVS=0 Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <SocTransID> BIGINT SocTransID <isVS> Bool Is it Virtual Sport 0= Sport book 1= Virtual Sport 57
Example: <APIDomain>/?Method=matchresult&PartnerKey=111111111111111&SocTransId=181546682 Response Data Description: Name Type Dsecription HTHomeScore INT The score of home team in half time HTAwayScore INT The score of away team in half time HomeScore INT The score of home team in full time AwayScore INT The score of away team in full time FHMatchOver INT Whether half time is over. 1 is over. 0 is not over. FTMatchOver INT Whether full time is over. 1 is over. 0 is not over 58
Response: {"SerialKey":"c0fa7bc2-0f7d-4f9c-b12f-cb3f7afcdb1d","Timestamp":20170525145606256,"Code":0,"Message":"Success","Data":{"HTHomeScore":0, "HTAwayScore":0,"HomeScore":0,"AwayScore":0,"FHMatchOver":1,"FTMatchOver":1}} 59
2.11 Get Bet Setting This function is used to get the default bet limit for the currency. 1. The bet limit by the user cannot exceed the currency limit setting. Request: <APIDomain>/?Method=getbetsetting&PartnerKey=<PartnerKey>&CurrencyCode=<CurrencyCode> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <CurrencyCode> VARCHAR(5) Currency Code Example: <APIDomain>/?Method=getbetsetting&PartnerKey=111111111111111&CurrencyCode=CNY 60
Response Data Description: Name Type Description SportType String Choose one of these: S, PAR, OT S: Soccer PAR: Parlay OT: Other sports *The Sub OT sports can be added independently SportCategoryId: *Needs to use SportCategoryId as SportType setting. For related information, please refer to API function GetSportCategory MaxBetLimit Int Max bet amount of each ticket MaxBetMatch Int Max bet amount of each match MinBetLimit Int Min Bet amount of each ticket Response: {"SerialKey":"f6654ece-edbb-49b0-bcc7-208cb3745876","Timestamp":20170525145606256,"Code":0,"Message":"Success","Data":[{"MaxBetLimit": 61
500000,"MaxBetMatch":1000000,"MinBetLimit":1,"SportType":"S"},{"MaxBetLimit":500000,"MaxBetMatch":0,"MinBetLimit":1,"SportType":"PAR"},{ "MaxBetLimit":500000,"MaxBetMatch":1000000,"MinBetLimit":1,"SportType":"OT"}]} 62
2.12 Get Member Setting Get User Default Bet Limit 1. If the CMD user is not found, it will return UserNotExists. Request: <APIDomain>/?Method=getmembersetting&PartnerKey=<PartnerKey>&UserName=<UserName> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <UserName> VARCHAR(20) User Name Example: <APIDomain>/?Method=getmembersetting&PartnerKey=111111111111111&UserName=TEST.User001v 63
Response Data Description: Name Type Description SportType String Choose one of these: S, PAR, OT S: Soccer PAR: Parlay OT: Other sports *The Sub OT sports can be added independently SportCategoryId: *Needs to use SportCategoryId as SportType setting. For related information, please refer to API function GetSportCategory MaxBetLimit Int Max bet amount of each ticket MaxBetMatch Int Max bet amount of each match MinBetLimit Int Min Bet amount of each ticket 64
Response: {SerialKey:"4fba55f0-54ca-4caa-b24a-25a3e159d7bf",Timestamp:20191218135836176,Code:0,Message:"Success",Data:{User:"MYLV.posen",BetLimi t:[{MaxBetLimit:100,MaxBetMatch:500,MinBetLimit:100,SportType:"ES"},{MaxBetLimit:500000,MaxBetMatch:1000000,MinBetLimit:500,SportType: "S"},{MaxBetLimit:100,MaxBetMatch:100,MinBetLimit:10,SportType:"BB"},{MaxBetLimit:500000,MaxBetMatch:1000000,MinBetLimit:5,SportType:" CH"},{MaxBetLimit:100,MaxBetMatch:190,MinBetLimit:10,SportType:"CK"},{MaxBetLimit:500000,MaxBetMatch:500000,MinBetLimit:5,SportType:" PAR"},{MaxBetLimit:100,MaxBetMatch:101,MinBetLimit:10,SportType:"OT"}]}} 65
2.13 Set Member Template This function is used by partners to set the CMD users to the specific templates. 1. Move CMD user into the target template, which will affect the bet setting by the target template setting. 2. Only method: Post support multiple members to update the specified template in a single request; Usernames up to 1000, must be separated by(,). 3. If multiple members request received Error responds, the request will be invalid. Request: <APIDomain>/?Method=setmembertemplate&PartnerKey=<PartnerKey>&UserName=<UserName>&TemplateName=<TemplateName> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <UserName> VARCHAR(20) User Name <TemplateName> VARCHAR(20) Template Name 66
Example: <APIDomain>/?Method=setmembertemplate&PartnerKey=111111111111111&UserName=TestUser01&TemplateName=CNY01 Response: {"SerialKey":"8fb7333e-b15e-4917-a39b-cc27d842321f","Timestamp": 20170525145606256,"Code":0,"Message":"Success","Data":true} 67
2.14 Update Member Setting This function is used to update the CMD user's personal settings, Update member settings removes the member from the original template, and the template to which the member belongs is displayed as [None]. 1. Commission Value, please check our BO for the current setting. 2. MinBetLimit & MaxBetLimit can't be larger than MaxBetMatch, which will cause the request failure. 3. When Code=-8136 (BetSettingsError), means the error setting of Betlimit parameter. 4. When Code=-8136(MissingParameter), means the Parameter Missing in Json Format. 5. When Code=-1 (UpLineLimit), means the BetLimit value over the Currency default BetLimit. 6. JSON of setting please delete all Enter key and Space. Request: <APIDomain>/?Method=updatemembersetting&PartnerKey=<PartnerKey>&UserName=<UserName>&MemberSetting=<SettingDetail> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <UserName> VARCHAR(20) User Name 68
<MemberSetting> JSON Setting Detail Example: <APIDomain>/?method=updatemembersetting&PartnerKey=1111111111111111&UserName=B365.qwtest4&MemberSetting={"GroupType":"B","C ashOut":true,"CommSettings":[{"CommType":"Comm","Comm":0.0},{"CommType":"CommOBT","Comm":0.0},{"CommType":"Comm1X2","Comm ":0.0},{"CommType":"CommPAR","Comm":0.0},{"CommType":"CommMMR","Comm":0.0}],"BetSettings":[{"MaxBetLimit":330000,"MaxBetMatch":3 30000,"MinBetLimit":0,"SportType":"S"}]} MemberSetting Data Description: Name Type Dsecription GroupType VARCHAR(20) A,B,C,D are supported CashOut BOOLEAN true = enable CashOut false = disable CashOut CommSettings JSON Commission Settings: Comm - is for HDP, OU & OE. CommOBT - is for CS, TG, HTFT & FGLG. 69
Comm1X2 ‒ is for 1X2 & DC CommPAR ‒ is for Parlay P.S. CommMMR parameter is only available for Myanmar currency. Other currencies, please set to 0. BetSettings JSON (Bet settings) The Other Sport includes all sports except S and PAR. If you need to set an independent betting limit for a single sport in Other Sport, please refer (Sport Type) BetSettings Data Description: Name Type Description SportType String Choose one of these: S, PAR, OT S: Soccer PAR: Parlay OT: Other sports, The Sub OT sports can be added independently. SportCategoryId: Needs to use SportCategoryId as SportType setting, for related information, please refer to API function GetSportCategory 70
MaxBetLimit Int Max bet amount of each ticket MaxBetMatch Int Max bet amount of each match MinBetLimit Int Min Bet amount of each ticket Response: {"SerialKey":"ce846485-5c30-4886-bae7-0218eab51726","Timestamp":20250107153132576,"Code":0,"Message":"Success","Data":true} 71
2.15 Cashout Betrecord This function is used to query the details of the note that has been Cashout(SellTicket), which needs to be requested through SocTransId, and the query method can be obtained with the related API. 1. If the SoctransId is not found, it will return null. Request: <APIDomain>/?Method=cashoutbetrecord&PartnerKey=<PartnerKey>&SocTransId=<SocTransID> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <SocTransID> INT SocTransID Example: <APIDomain>/?Method=cashoutbetrecord&PartnerKey=111111111111111&SocTransId=181546682 72
Response Data Description: Name Type Description SocTransId Int Main Ticket ID CashOutTransId Int Cash Out Ticket ID CashOutRefNo String(20) Cash Out Ticket No. CashOutAmount Decimal(18,4) Cash Out Amount CashOutRiskWin Decimal(18,4) If success. This is how much can take back. CashOutWinLoseAmount Decimal(18,4) Cash Out Win Lose Amount CashOutDangerStatus String(5) X: Pending S: accepted J: Rejected Y: Rejected(Due to the main ticket rejected) C: Canceled G: Canceled(Due to the Match faced goal event) E: Canceled(Due to the Match faced red card event) 73
TransDate Long Cash Out Date StateUpdateTs Long Update Date Response: {"SerialKey":"ce44c850-048b-4015-9c1d-370faf0983f1","Timestamp":20170525145606256,"Code":0,"Message":"Success","Data":[{"SocTransId":183 172464,"CashOutTransId":10121334,"CashOutRefNo":"TRD101213348","CashOutAmount":20,"CashOutRiskWin":16.6,"CashOutWinLoseAmount":-3 .4,"CashOutDangerStatus":"S","TransDate":636087749200000000,"StateUpdateTs":636087749200000000}]} 74
2.16 Get Hotevent This operation provides the hot event match Info, the matches info will only show the HDP, OU, and 1X2 TransType odds. When odds show [String.Empty], which means the odds are unset. 1. HotEvent's odds will be updated every 2 minutes. 2. <Code>=-102 (Request Limit) means request time under 10 seconds between the last request. 3. Output URL only provides Classic and New Asia WebRoot Login URL. 4. Home ImgUrl and Away ImgUrl will show empty, which means the team Logo has yet uploaded. 5. ShowLiveMatch = 1 will additionally include live matches. Request: <APIDomain>/?Method=gethotevent&PartnerKey=<PartnerKey>&ShowLiveMatch=< ShowLiveMatch> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <ShowLiveMatch> INT ShowLiveMatch 75
Example: <APIDomain>/?Method=gethotevent&PartnerKey=111111111111111&ShowLiveMatch=1 Response Data Description: Name Type Description MatchGroupID String Maches with same MatchGroupID means it is the same match. MatchID Int Match id MatchDate String Match date MarketType Int 1 = Early 2 = Today 3 = Running SportType String Sport type SportName String Sport name LeagueID Int League id 76
LeagueName String League name HomeTeamID Int Home team id HomeTeamName String Home team name HomeImgUrl Hyper Link Home team logo url AwayTeamID Int Away team id AwayTeamName String Away team name AwayImgUrl Hyper Link Away team logo url HDP_SpecialValue_FT String Full time HPD special value MY_HDP_OddsValue_Hom e_FT String Home team full time HDP MY odds type value HK_HDP_OddsValue_Hom e_FT String Home team full time HDP HK odds type value DE_HDP_OddsValue_Hom e_FT String Home team full time HDP DE odds type value 77
ID_HDP_OddsValue_Home _FT String Home team full time HDP ID odds type value US_HDP_OddsValue_Hom e_FT String Home team full time HDP US odds type value MY_HDP_OddsValue_Away _FT String Away team full time HDP MY odds type value HK_HDP_OddsValue_Away _FT String Away team full time HDP HK odds type value DE_HDP_OddsValue_Away _FT String Away team full time HDP DE odds type value ID_HDP_OddsValue_Away _FT String Away team full time HDP ID odds type value US_HDP_OddsValue_Away _FT String Away team full time HDP US odds type value OU_SpecialValue_FT String Full time OU special value 78
MY_OU_OddsValue_Home _FT String Home team first half HDP MY odds type value HK_OU_OddsValue_Home _FT String Home team first half HDP HK odds type value DE_OU_OddsValue_Home _FT String Home team first half HDP DE odds type value ID_OU_OddsValue_Home_ FT String Home team first half HDP ID odds type value US_OU_OddsValue_Home _FT String Home team first half HDP US odds type value MY_OU_OddsValue_Away_ FT String Away team first half HDP MY odds type value HK_OU_OddsValue_Away_ FT String Away team first half HDP HK odds type value DE_OU_OddsValue_Away_ String Away team first half HDP DE odds type value 79
FT ID_OU_OddsValue_A way _FT String Away team first half HDP ID odds type value US_OU_OddsValue_A way _FT String Away team first half HDP US odds type value X12_OddsValue_1_FT String 1X2 full time 1 DE odds type value X12_OddsValue_X_FT String 1X2 full time X DE odds type value X12_OddsValue_2_FT String 1X2 full time 2 DE odds type value HDP_SpecialValue_FH String First half HPD special value MY_HDP_OddsValue_Hom e_FH String Home team first half HDP MY odds type value HK_HDP_OddsValue_Hom e_FH String Home team first half HDP HK odds type value DE_HDP_OddsValue_Hom String Home team first half HDP DE odds type value 80
e_FH ID_HDP_OddsValue_Home _FH String Home team first half HDP ID odds type value US_HDP_OddsValue_Hom e_FH String Home team first half HDP US odds type value MY_HDP_OddsValue_Away _FH String Away team first half HDP MY odds type value HK_HDP_OddsValue_Away _FH String Away team first half HDP HK odds type value DE_HDP_OddsValue_Away _FH String Away team first half HDP DE odds type value ID_HDP_OddsValue_Away _FH String Away team first half HDP ID odds type value US_HDP_OddsValue_Away _FH String Away team first half HDP US odds type value 81
OU_SpecialValue_FH String First half OU special value MY_OU_OddsValue_Home _FH String Home team first half OU MY odds type value HK_OU_OddsValue_Home _FH String Home team first half OU HK odds type value DE_OU_OddsValue_Home _FH String Home team first half OU DE odds type value ID_OU_OddsValue_Home_ FH String Home team first half OU ID odds type value US_OU_OddsValue_Home _FH String Home team first half OU US odds type value MY_OU_OddsValue_Away_ FH String Away team first half OU MY odds type value HK_OU_OddsValue_Away_ FH String Away team first half OU HK odds typevalu 82
DE_OU_OddsValue_Away_ FH String Away team first half OU DE odds type value ID_OU_OddsValue_Away_ FH String Away team first half OU ID odds type value US_OU_OddsValue_Away_ FH String Away team first half OU US odds type value X12_OddsValue_1_FH String 1X2 full half 1 DE odds type value X12_OddsValue_X_FH String 1X2 full half X DE odds type value X12_OddsValue_2_FH String 1X2 full half 2 DE odds type value MatchUrl_For_ClassicEditi on Hyper Link Traditional WebRoot OutPut URL MatchUrl_For_AsianEditio n Hyper Link New Asia WebRoot OutPut URL MatchPeriod String MatchStatus (0: NT(No Time) / 1: 1H(First Half) / 2: HT(Half Time) / 3: 2H(Second 83
Half) / 4: FT(Full Time) HomeScore String HomeScore AwayScore String AwayScore HomeRedCard String HomeRedCard AwayRedCard String AwayRedCard Response: {"SerialKey":"b4013259-a544-448e-90b1-609a959c4210","Timestamp":20200210160148116,"Code":0,"Message":"Success","Data":[{"MatchGroupID ":"07E8F7C6-E494-4177-8B55-C415D3340C32","MatchID":"1234567","MatchDate":"2020-01-1612:00:00","MarketType":2,"SportType":"BB","SportNa me":"Basketball","LeagueID":356,"LeagueName_en-US":"NBA-1STQUARTER","HomeTeamID":1956,"HomeTeamName_en-US":"LALakers","HomeI mgUrl":"","AwayTeamID":2326,"AwayTeamName_en-US":"GoldenStateWarriors""AwayImgUrl":"","HDP_SpecialValue_FT":1.5,"MY_HDP_OddsValu e_Home_FT":-0.94,"HK_HDP_OddsValue_Home_FT":1.06,"DE_HDP_OddsValue_Home_FT":2.06,"ID_HDP_OddsValue_Home_FT":1.06,"MY_HDP_ OddsValue_Away_FT":0.82,"HK_HDP_OddsValue_Away_FT":0.82,"DE_HDP_OddsValue_Away_FT":1.82,"ID_HDP_OddsValue_Away_FT":-1.21,"OU_ SpecialValue_FT":6,"MY_OU_OddsValue_Over_FT":-0.94,"HK_OU_OddsValue_Over_FT":1.06,"DE_OU_OddsValue_Over_FT":2.06,"ID_OU_OddsVal ue_Over_FT":1.06,"MY_OU_OddsValue_Under_FT":0.82,"HK_OU_OddsValue_Under_FT":0.82,"DE_OU_OddsValue_Under_FT":1.82,"ID_OU_OddsV alue_Under_FT":-1.21,"X12_OddsValue_1_FT":-999,"X12_OddsValue_X_FT":-999,"X12_OddsValue_2_FT":-999,"HDP_SpecialValue_FH":1.5,"MY_HD 84
P_OddsValue_Home_FH":-0.94,"HK_HDP_OddsValue_Home_FH":1.06,"DE_HDP_OddsValue_Home_FH":2.06,"ID_HDP_OddsValue_Home_FH":1.0 6,"MY_HDP_OddsValue_Away_FH":0.82,"HK_HDP_OddsValue_Away_FH":0.82,"DE_HDP_OddsValue_Away_FH":1.82,"ID_HDP_OddsValue_Away_F H":-1.21,"OU_SpecialValue_FH":6,"MY_OU_OddsValue_Over_FH":-0.94,"HK_OU_OddsValue_Over_FH":1.06,"DE_OU_OddsValue_Over_FH":2.06,"I D_OU_OddsValue_Over_FH":1.06,"MY_OU_OddsValue_Under_FH":0.82,"HK_OU_OddsValue_Under_FH":0.82,"DE_OU_OddsValue_Under_FH":1.8 2,"ID_OU_OddsValue_Under_FH":-1.21,"X12_OddsValue_1_FH":-999,"X12_OddsValue_X_FH":-999,"X12_OddsValue_2_FH":-999,"MatchUrl_For_Cl assicEdition":"http://thor.partnermember.com/?date=20200318&sportType=S&groupId=96d81898-3e61-4d93-9bb6dadf4a25f0fe&mType=1","Matc hUrl_For_AsianEdition":"http://thor.partnermember.com/new/main.aspx?date=20200318&sportType=S&groupId=96d818983e61-4d93-9bb6-dadf 4a25f0fe&mType=1""HomeScore":0,"AwayScore":0,"HomeRedCard":0,"AwayRedCard":0,"MatchPeriod":0}]} 85
2.17 Update Template Setting This function is used to update the CMD BackOffice user template settings. 1. The Default user template does not allow setting IsDefault value to False, it can only set other templates' IsDefault value to True to override it. 2. Commission Value, please check our BO for the current setting. 3. MinBetLimit & MaxBetLimit can’t larger than MaxBetMatch, which will cause the request failure. 4. Code=-8136 (BetSettingsError), means the error setting of Betlimit parameter. 5. Code=-8136 (MissingParameter), means the Parameter Missing in JSON Format. 6. Code=-1 (UpLineLimit), means the BetLimit value over the Currency default BetLimit. Request: <APIDomain>/?Method=updatetemplatesetting&PartnerKey=<PartnerKey>&TemplateName=<TemplateName>&SettingDetail=<Setting Detail> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <TemplateName> VARCHAR(50) User Name 86
<SettingDetail> JSON Setting Detail Example: <APIDomain>/?SportsApi.aspx?method=updatetemplatesetting&PartnerKey=111111111111111&TemplateName=ProvDefARS&SettingDetail={"IsD efault":true,"Cashout":true,"GroupType":"A","GroupColor":"ffffff","CommA":0.0030,"CommB":0.0050,"CommC":0.0075,"CommD":0.0100,"CommOt her":0.0100,"Comm1X2":0.0025,"CommParlay":0.0100,"BetSettings":[{"SportType":"S","MinBetLimit":0,"MaxBetLimit":4250000,"MaxBetMatch":85 00000},{"SportType":"PAR","MinBetLimit":0,"MaxBetLimit":4250000,"MaxBetMatch":8500000},{"SportType":"OT","MinBetLimit":0,"MaxBetLimit":42 50000,"MaxBetMatch":8500000}]} SettingDetail Description: Name Type Description IsDefault BOOLEAN true = Default Template false = Non-Default Template Cashout BOOLEAN true = enable CashOut false = disable CashOut GroupType VARCHAR(1) A,B,C,D are supported 87
GroupColor VARCHAR(20) Group Color CommA Int Commission A CommB Decimal(18,4) Commission B CommC Decimal(18,4) Commission C CommD Decimal(18,4) Commission D CommOther Decimal(18,4) Commission Other Comm1X2 Decimal(18,4) Commission 1X2 CommParlay Decimal(18,4) Commission Parlay BetSettings JSON (Bet settings) The Other Sport includes all sports except S and PAR. If you need to set an independent betting limit for a single sport in Other Sport, please refer (Sport Type) 88
BetSettings Data Description: Name Type Description SportType String Sport Type MaxBetLimit Int Max bet amount of each ticket MaxBetMatch Int Max bet amount of each match MinBetLimit Int Min Bet amount of each ticket Response: {"SerialKey":"4a36f701-492d-4a7c-8f0f-871ea7132e36","Timestamp": 20170525145606256,"Code":0,"Message":"Success","Data":true} 89
2.18 Get Sport Category List This function is used to obtain virtual soccer/basketball sport category information. 1. This API will return the CategoryName that can be used on Other Template SportType from the Back Office. Request: <APIDomain>/?SportsApi.aspx?Method=getsportcategorylist&PartnerKey=<PartnerKey> Parameter: Name Type Description <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. Example: <APIDomain>/?SportsApi.aspx?Method=getsportcategorylist&PartnerKey=111111111111111 Response Data Description: Name Type Description 90
SportCategoryId Int SportCategoryId SportType String(20) SportType CategoryName_EN String(50) CategoryName_EN CategoryName_CN String(50) CategoryName_CN Response: {"SerialKey":"e879c60e-63e3-48ef-8e79-cd1cf920e539","Timestamp":20211220163008627,"Code":0,"Message":"Success","Data":[{"SportCategoryI d":22,"SportType":"BB","CategoryName_EN":"QATESTE-Basketballl","CategoryName_CN":"QATESTE-Basketballl"},{"SportCategoryId":26,"SportTy pe":"BE","CategoryName_EN":"QATESTE-Baseball","CategoryName_CN":"QATESTE-Baseball"}]} 91
2.19 CreateTemplate This function is used to update the CMD BackOffice user template settings. 1. Please use API GetBetSetting or access the BO to get the Currency Bet Limit, check the BetLimit before you start to create. 2. CommParlay, 1X2, and Other are not mandatory. If omitted, it will automatically set the value to 0. 3. When Code=-9306 (CommGroup Order Error), it means the CommGroup Value must follow the Order(D>C>B>A). 4. When Code=-8114 (BetSettingsError), means the error setting of Betlimit parameter. 5. When Code=-8115 (TemplateName exists), it means TemplateName has already been used. 6. Commission Value, please check our BO for the current setting. Request: <APIDomain>/SportsApi.aspx?method=CreateTemplate&Currency=<Currecy>&PartnerKey=<PartnerKey>&TemplateName=<TemplateN ame>&SettingDetail=<SettingDetail> Parameter: Name Type Description <Currecy> VARCHAR(5) CurrecyCode <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. 92
<TemplateName> VARCHAR(50) TemplateName <SettingDetail> JSON Setting Detail Example: <APIDomain>/SportsApi.aspx?method=CreateTemplate&Currency=USD&PartnerKey=111111111111111&TemplateName=USDTest008&SettingDet ail= { "IsDefault": true, "Cashout": true, "GroupType": "A", "GroupColor": "ffffff", "CommA": 0.003, "CommB": 0.005, "CommC": 0.0075, "CommD": 0.01, "CommOther": 0.01, "Comm1X2": 0.0025, "CommParlay": 0.01, "BetSettings": [ { "SportType": "S", "MinBetLimit": 5, "MaxBetLimit": 3000000, "MaxBetMatch": 3000000 }, { "SportType": "PAR", "MinBetLimit": 5, "MaxBetLimit": 3000000, "MaxBetMatch": 3000000 }, { "SportType": "OT", "MinBetLimit": 5, "MaxBetLimit": 10000, "MaxBetMatch": 10000 }, { "SportType": "BB", "MinBetLimit": 5, "MaxBetLimit": 10000, "MaxBetMatch": 10000 } ] } SettingDetail Description: Name Type Description IsDefault BOOLEAN true = Default Template false = Non-Default Template Cashout BOOLEAN true = enable CashOut 93
false = disable CashOut GroupType VARCHAR(1) A,B,C,D are supported GroupColor VARCHAR(20) Group Color CommA Decimal(18,4) Commission A CommB Decimal(18,4) Commission B CommC Decimal(18,4) Commission C CommD Decimal(18,4) Commission D CommOther Decimal(18,4) Commission Other Comm1X2 Decimal(18,4) Commission 1X2 CommParlay Decimal(18,4) Commission Parlay BetSettings JSON (Bet settings) The Other Sport includes all sports except S and PAR. If you need to set an independent betting limit for a single sport in Other Sport, please refer (Sport Type) 94
BetSettings Data Description: Name Type Description SportType String Sport Type MaxBetLimit Int Max bet amount of each ticket MaxBetMatch Int Max bet amount of each match MinBetLimit Int Min Bet amount of each ticket Response: {"SerialKey":"c679af4b-0266-4020-8b10-8b8363d29e87","Timestamp":20250602164026368,"Code":0,"Message":"Success","Data":true} 95
2.20 CheckTemplateSetting This function is used to check user template settings. 1. If the template is not found it will show empty. Request: <APIDomain>/SportsApi.aspx?method=CheckTemplateSetting&Currency=<Currency>&PartnerKey=<PartnerKey>&TemplateName=<Te mplateName> Parameter: Name Type Description <Currecy> VARCHAR(5) CurrecyCode <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <TemplateName> VARCHAR(50) User Name Example: <APIDomain>/SportsApi.aspx?method=CheckTemplateSetting&Currency=USD&PartnerKey=111111111111111&TemplateName=TESTUSD001 96
Response Data Description: Name Type Description BetLimitList JSON Bet Limit Setting IsDefault BOOLEAN Ture = IsDefault False = NonDefault TemplateName VARCHAR(50) TemplateName CreateDate Datetime CreateDate Currency VARCHAR(10) Currency CommTypeMain VARCHAR(1) A,B,C,D are supported IsTradeInAllowed BOOLEAN true = enable CashOut false = disable CashOut GroupColor VARCHAR(20) Group Color 97
CommA Int Commission A CommB Decimal(18,4) Commission B CommC Decimal(18,4) Commission C CommD Decimal(18,4) Commission D CommOther Decimal(18,4) Commission Other Comm1X2 Decimal(18,4) Commission 1X2 CommParlay Decimal(18,4) Commission Parlay BetLimitList JSON Commission Settings: Comm - is for HDP, OU & OE. CommOBT - is for CS, TG, HTFT & FGLG. Comm1X2 ‒ is for 1X2 & DC CommPAR ‒ is for Parlay P.S. CommMMR parameter is only available for Myanmar currency. Other currencies, please set to 0. 98
BetLimitList Data Desctiption: Name Type Desctiption MaxBetLimit Int Max bet amount of each ticket MaxBetMatch Int Max bet amount of each match MinBetLimit Int Min Bet amount of each ticket SportType String Sport Type Response: {"SerialKey":"4a36f701-492d-4a7c-8f0f-871ea7132e36","Timestamp": 20170525145606256,"Code":0,"Message":"Success","Data":true} 99
2.21 GetTemplateList This function is used to get the template list for a specific currency. 1. The default template will show isDefault = True. Request: <APIDomain>/SportsApi.aspx?method=GetTemplateList&Currency=<Currency>&PartnerKey=<PartnerKey> Parameter: Name Type Description <Currecy> VARCHAR(5) CurrecyCode <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. Example: <APIDomain>/SportsApi.aspx?method=GetTemplateList&Currency=USD&PartnerKey=111111111111111 100
Response Data Description: Name Type Description TemplateName VARCHAR(50) TemplateName IsDefault BOOLEAN true = Default Template false = Non-Default Template Response: {"SerialKey":"74d3dfbc-c2f4-48a4-8aa8-1b3ff4f02e22","Timestamp":20250603111731039,"Code":0,"Message":"Success","Data":[{"TemplateName": "ProvDefUSD","IsDefault":true},{"TemplateName":"GROUP1","IsDefault":false},{"TemplateName":"USDTEST12","IsDefault":false},{"TemplateName ":"TEST","IsDefault":false},{"TemplateName":"FLASHBNPUSD","IsDefault":false},{"TemplateName":"USDTEST","IsDefault":false},{"TemplateName" :"TESTUUUUU","IsDefault":false},{"TemplateName":"LAUSDTEST","IsDefault":false},{"TemplateName":"JOYCEUSD","IsDefault":false},{"TemplateNa me":"MILIUSD","IsDefault":false},{"TemplateName":"AMBERUSDF","IsDefault":false},{"TemplateName":"AMBERUSDG","IsDefault":false},{"Template Name":"KEVINUSDSU","IsDefault":false},{"TemplateName":"SAMBERUSD","IsDefault":false},{"TemplateName":"SINAMBERUSD","IsDefault":false},{ "TemplateName":"MILIUSD1","IsDefault":false},{"TemplateName":"JESUSDTEST","IsDefault":false},{"TemplateName":"JOYCEUSD1","IsDefault":fals e},{"TemplateName":"JOYCEUSD2","IsDefault":false},{"TemplateName":"JANEUSD1","IsDefault":false},{"TemplateName":"LALANEWUSD","IsDefaul t":false},{"TemplateName":"KEVINUSDNEW","IsDefault":false},{"TemplateName":"JANEUSD2","IsDefault":false},{"TemplateName":"JANEUSDCOM", "IsDefault":false},{"TemplateName":"KONGUSD01","IsDefault":false},{"TemplateName":"LALANEWUSD1","IsDefault":false},{"TemplateName":"KO 101
NGUSD02","IsDefault":false},{"TemplateName":"JANEUSDGC1","IsDefault":false},{"TemplateName":"AMBERUSDA","IsDefault":false},{"TemplateNa me":"MILIUSDE","IsDefault":false},{"TemplateName":"AMBERUSDJ","IsDefault":false},{"TemplateName":"AMBERUSDD","IsDefault":false},{"Templat eName":"KAYEUSD","IsDefault":false},{"TemplateName":"USDTEST002","IsDefault":false},{"TemplateName":"USDTEST003","IsDefault":false}]} 102
2.22 GetTemplateUserList This function is used to return the specific template user list. Request: <APIDomain>/SportsApi.aspx?method=GetTemplateUserList&Currency=<Currecy>&PartnerKey=<PartnerKey>&TemplateName=<Templ ateName> Parameter: Name Type Description <Currecy> VARCHAR(5) CurrecyCode <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <TemplateName> VARCHAR(50) User Name Example: <APIDomain>/SportsApi.aspx?method=GetTemplateUserList&Currency=USD&PartnerKey=111111111111111&TemplateName=USDTest001 103
Response: { "SerialKey": "37b02605-8637-4a01-9cab-a2a8f9d11b86", "Timestamp": 20250603140410670, "Code": 0, "Message": "Success", "Data": [ "FLASH.alexlee", "FLASH.amberloki", "FLASH.AutoTest002", "FLASH.AutoTest010", "FLASH.AutoTest013", "FLASH.AutoTest016", "FLASH.AutoTest023", "FLASH.AutoTest024", "FLASH.AutoTest025", "FLASH.AutoTest026", "FLASH.AutoTest030", "FLASH.AutoTest034", "FLASH.AutoTest035", "FLASH.AutoTest037", "FLASH.AutoTestIDR275", "FLASH.AutoTestIDR284", "FLASH.beal100", "FLASH.bnp09", "FLASH.bnpapi01", "FLASH.fishfish", "FLASH.janeUSDf0", "FLASH.janeUSDf1", "FLASH.janeUSDf13", "FLASH.janeUSDf2"]} 104
2.23 DeleteTemplate This function is used to delete a specific non-default non user template. 1. Code=-8107 (Please remove all users from the template) means need to remove all users from this template. 2. Code=-8109 (The template is not exist), means can't find this Template in the specific currency. 3. Code=-8108 (The default template cannot be removed), means this template is is default template could not be delete. Request: <APIDomain>/SportsApi.aspx?method=DeleteTemplate&Currency=<Currecy>&PartnerKey=<PartnerKey>&TemplateName=<TemplateNa me> Parameter: Name Type Description <Currecy> VARCHAR(5) CurrecyCode <PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <TemplateName> VARCHAR(50) User Name 105
Example: <APIDomain>/SportsApi.aspx?method=DeleteTemplate&Currency=USD&PartnerKey=111111111111111&TemplateName=USDTest001 Response: {"SerialKey":"4a36f701-492d-4a7c-8f0f-871ea7132e36","Timestamp": 20170525145606256,"Code":0,"Message":"Success","Data":true} 106
2.24 Get Deduct Balance Invalid Ticket This API is used to query the invalid DeductBalance list or Package complete Info. 1. InvalidDeductById is used to query the complete request info by PackageId. 2. InvalidDeductByDate is used to query the invalid DeductBalance list by date. 3. The StartDate of ByDate function responds to the specific date of the query. 4. This API function is requested once every 10 seconds. 5. The data retention period is 14 days. Please update it yourself if it exceeds this period. 6. Partners with a WalletType of BalanceTransfer do not support this API. Request: ByID: <APIDomain>/SportsApi.aspx?method=InvalidDeductById&PartnerKey=<PartnerKey>&PackageId=<PackageId> ByDate: <APIDomain>/SportsApi.aspx?method=InvalidDeductByDate&PartnerKey=<PartnerKey>&StartDate=<StartDate> Parameter: Name Type Description 107
<PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <StartDate> DATE yyyymmdd <packageId> String Package ID Example: ByID: <APIDomain>/SportsApi.aspx?method=InvalidDeductById&PartnerKey=2357543694946785&PackageId=9085729a-d282-42d9-8ffa-f5c076dcd45a ByDate: <APIDomain>/SportsApi.aspx?method=InvalidDeductByDate&PartnerKey=2357543694946785&StartDate=20240723 ByID Response Data Description: Parameter Type Description SourceName VARCHAR(20) User Name RefNo String ReferenceNo 108
Amount DECIMAL(18,4) BetAmount Partner VARCHAR(5) PartnerCode StatusCode Int StatusCode StatusMessage String StatusMessage for this request by Partner provided DateReceived Long Received Time, Ticks data DateSent Long Sent Time, Ticks data ByDate Response Data Description: Parameter Type Description PackageId VARCHAR(20) Package ID StatusCode Int StatusCode StatusMessage String StatusMessage for this request by Partner provided 109
Response ByID: {"PackageId":"94f50f4e-1e5d-4cbe-ad93-a03a941f234e","SourceName":"SING.ChadTestA","Tickets":{"RefNo":"HDP192038271","Amount":-20000}," Partner":"SING","Results":[{"StatusCode":-100,"StatusMessage":"DeductBalanceisfailure.","DateReceived":638875940017635300,"DateSent":63887 5940017635300}]} Response ByDate: {"data":[{"packageId":"63384cdd-ae6a-4c9d-b11d-4c1725483f58","statusCode":-100,"statusMessage":"Failed"},{"packageId":"gggggaaa-ge1a-as11 -d112-1235213123","statusCode":-100,"statusMessage":"Failed"}]} 110
2.25 Get Update Balance InvalidTicket This API is used to query the invalid UpdateBalance list or Package complete Info. 1. InvalidUpdateById is used to query the complete request info by PackageId. 2. InvalidUpdateByDate is used to query the invalid UpdateBalance list by date. 3. The StartDate of ByDate function responds to the specific date of the query. 4. This API function is requested once every 10 seconds. 5. The data retention period is 14 days. Please update it yourself if it exceeds this period. 6. Partners with a WalletType of BalanceTransfer do not support this API. Request: ByID: <APIDomain>/SportsApi.aspx?method=InvalidUpdateById&PartnerKey=<PartnerKey>&PackageId=<PackageId> ByDate: <APIDomain>/SportsApi.aspx?method=InvalidUpdateByDate&PartnerKey=<PartnerKey>&StartDate=<StartDate> Parameter: Name Type Description 111
<PartnerKey> VARCHAR(20) Please refer to the MIF information PartnerKey. <StartDate> DATE yyyymmdd <packageId> String Package ID Example: ByID <APIDomain>/SportsApi.aspx?method=InvalidUpdateById&PartnerKey=2357543694946785&PackageId=866b95a8-d9f2-41a4-8410-54949f6518d5 ByDate <APIDomain>/SportsApi.aspx?method=InvalidUpdateByDate&PartnerKey=2357543694946785&StartDate=20240723 ByID Response Data Description: Parameter Type Description SourceName VARCHAR(20) User Name RefNo String ReferenceNo 112
TransRefNo VARCHAR(20) Tickets currently traded, Only use on ActionId 3001. Amount DECIMAL(18,4) UpdateBalance Partner VARCHAR(5) PartnerCode ActionId Short Action ID MatchId Int MatchId StatusCode Int StatusCode StatusMessage String StatusMessage for this request by Partner provided DateReceived Long Received Time, Ticks data DateSent Long Sent Time, Ticks data ByDate Response Data Description: Parameter Type Description PackageId VARCHAR(20) Package ID 113
StatusCode Int StatusCode StatusMessage String StatusMessage for this request by Partner provided Response ByID: {"PackageId":"fc74f97e-91e2-4b78-ad42-21bc869ee4b8","Tickets":[{"SourceName":"SING.ChadTestA","RefNo":"HDP192038218","TransRefNo":null, "Amount":18.6}],"Partner":"SING","ActionId":4002,"MatchId":11753849,"Results":[{"StatusCode":-100,"StatusMessage":"UpdateBalanceisfailure."," DateReceived":638875923756283500,"DateSent":638875923756283500}]} Response ByDate: {"data":[{"packageId":"63384cdd-ae6a-4c9d-b11d-4c1725483f58","statusCode":-100,"statusMessage":"Failed"},{"packageId":"gggggaaa-ge1a-as11 -d112-1235213123","statusCode":-100,"statusMessage":"Failed"}]} 114
SingleWallet Function 3.0 SingeWallet API Guidelines CMD uses AES Advanced Encryption Standard for encryption, all SingleWallet requests will be encrypted before sending, so the Partner needs to decrypt the request after receiving it. 1. The encryption and decryption keys are the same as the specific PartnerKey provided by CMD. GetBalance Process: 1. CMD user login CMD BetView. 2. Show Cmd User Current Balance at Sportsbook. DeductBalance Process: 1. CMD users place bets on CMD BetView. 115
UpdateBalance Process: 1. CMD User Betting Ticket Settlement/Resettlement 2. CMD sends SystemAdjustment to CMD users. Encryption and decryption formulas: namespace SportsAPI_Integration { public class Fn { #region EncryptString //加密 Encrypt , key 值为 PartnerKey public static string AESEncrypt(string text, string key) 116
{ var iv = string.Join("", key.ToCharArray().Reverse()); return AESEncrypt(text, key, iv); } //解密 Decrypt , key 值为 PartnerKey public static string AESDecrypt(string cipherText, string key) { var iv = string.Join("", key.ToCharArray().Reverse()); 117
return AESDecrypt(cipherText, key, iv); } public static string AESEncrypt(string text, string key, string iv) { var result = string.Empty; if (key.Length != 16 || iv.Length != 16) { return result; } 118
var sourceBytes = System.Text.Encoding.UTF8.GetBytes(text); var aes = System.Security.Cryptography.Aes.Create(); aes.Mode = System.Security.Cryptography.CipherMode.CBC; aes.Padding = System.Security.Cryptography.PaddingMode.PKCS7; aes.Key = System.Text.Encoding.UTF8.GetBytes(key); aes.IV = System.Text.Encoding.UTF8.GetBytes(iv); var transform = aes.CreateEncryptor(); result = Convert.ToBase64String(transform.TransformFinalBlock(sourceBytes, 0, sourceBytes.Length)); return result; 119
} public static string AESDecrypt(string text, string key, string iv) { var result = string.Empty; if (key.Length != 16 || iv.Length != 16) { return result; } var encryptBytes = System.Convert.FromBase64String(text); var aes = System.Security.Cryptography.Aes.Create(); 120
aes.Mode = System.Security.Cryptography.CipherMode.CBC; aes.Padding = System.Security.Cryptography.PaddingMode.PKCS7; aes.Key = System.Text.Encoding.UTF8.GetBytes(key); aes.IV = System.Text.Encoding.UTF8.GetBytes(iv); var transform = aes.CreateDecryptor(); result = System.Text.Encoding.UTF8.GetString(transform.TransformFinalBlock(encryptBytes, 0, encryptBytes.Length)); return result; } 121
#endregion } } 122
3.1 GetBalance The GetBalance API is used to request the last balance of a CMD User's membership by calling the Method Get (HTTP content-type: application). 1. CMD Request URL balancePackage encrypt string needs to URL decode first. Request: http://<GetBalanceURL>/?Method=GetBalance&balancePackage=<balancePackage>&packageId=<packageId>&dateSent=<dateSent> Parameter: Name Type Description <Method> String SingleWallet Request <balancePackage> String (Array)Encrypted SourceName and ActionID <packageId> String Package ID <dateSent> Long DateTime.Ticks 123
Partnerkey and Encrypted string template: Partnerkey : 0724955629056261 balancePackage : 9CuAok5ayWCJP2kFHKZp6rPjTmUD0jA3Y0JrsEI9/WjuBBJizsaz72j8RePti+v0 Decrypted String Result: {"SourceName":"USER","ActionId":1000} Parameter: Name Type Description <ActionId> Short Action ID <SourceName> String User Name Available Action ID list: ActionId Action Code Description 124
1000 GetBalance Request the User Balance Response to CMD 1. Partner needs to compose the response message into JSON, then process it into plaintext string (HTTP content-type: text/plain) through encryption mechanism and response back to CMD. 2. Please use the balancePackage encryption string from CMD request and Partnerkey to decryption. Partnerkey and Encrypted string template: Partnerkey : 0724955629056261 {"PackageId":"bb022743-1fb9-48d0-800e-bac1e3154662","StatusCode":100,"StatusMessage":"Success","Balance":300.0,"DateSent":637260194896 070000,"DateReceived":637260194896070000} Response Data Description: Name Type Description <StatusCode> Short StatusCode <StatusMessage> String StatusMessage for this request by Partner provided 125
<packageId> String Request from CMD URL Package ID <Balance> Decimal(18,4) User Balance <DateReceived> Long Partner receive Request from CMD date record DateTime.Ticks <DateSent> Long Partner sent Response to CMD date record DateTime.Ticks Response Status StatusCode List: StatusCode Description Remark 100 Success Notes: 1. If Partner reply StatusCode is not 100 or the reply pending to Time Out, the errors count will be added. If there is a successful reply, the errors count will be reset. If the errors count reaches the setting value, the system will be enforced to close the Partner, please request restored partner from CMD Operations Services. 2. If the customer reply the request over the specified time limit, the request will be canceled. 3. The CMD only accepts the reply Status Code =100 as success; otherwise, it will treat the request as failed. 126
127
3.2 DeductBalance DeductBalance Used to request Partner to deduct for CMD User betting in SportsBook, request Method POST(HTTP content-type: application) 1. CMD Request URL balancePackage encrypt string needs to URL decode first. Request: http://<DeductBalanceURL>/ Post content: { "Method": "DeductBalance", "balancePackage": <balancePackage>, "packageId": <packageId>, "dateSent": <dateSent>} Parameter: Name Type Description <Method> String SingleWallet Request <balancePackage> String (Array)Encrypted SourceName and ActionID <packageId> String Package ID <dateSent> Long DateTime.Ticks 128
Partnerkey and Encrypted string template: Partnerkey: 0724955629056261 balancePackage: UaF8sC6EO8p7jU7lRVtDshbCPjTpD+xKsdkWngq1IXBacpA055mYRDwANZXdz0iw2/248iEqHA31OmpmJF8G81K/W/KXQPTBYmu3AA6+SALBWW5PN/ NcJ+IiEBONESJT9F6Kgt5IvnoM9I0cuKBA2lMGlh2WSXGEpQZK11nESPab8XlYZKONZ8L5q92rMciUYP6pCSI+kpouBskwPdBQfDuhr4clnxqpOYw7UyJz gUYIB7cawC6k7bYt7zCzLI4omCZY6Dpa9oWPWROuKivsQrTQXoDeraSXjWW5F2ZX388Na508YIsm4Lmi8sK5fUkoy2iKpTGjmWDOtLhOM3FoLg88xuzYi GMuS5TejHQXNhRtlvPJfg3JGmWsCSw0uUWmKQlZyYmBRnwltZBEtQv3CZdlTIbQHf/PLQFLmYH2/eJV/rjcFYX+0pYg77tdxd8u+kD0fCRgdC2yqF2S0Rr SBkFhs8nw4YniLG4C9OBlzdlWhzaXnmcvfrYyYJn9Ul2XIvtZkSD0aUeR//xvRM/iLoX5QX6jzDIs3vwz2hFwe/5AxNAbFy5n2170/A50Iz1IY02lw/5CiX39TI3B ggr/fIWpJ+PjIlyiUiG9Nk6o+UtS2dB2ft7ISrnF4Qmd/l68LmDTP920J+z+MyTfpxUml1a9zbWhgHAjXGrezmZVFP+1W6n3Lyr2QvpeRMD1sWpd1vlFmmLf 89oRmskM3aK1AZyvtqLhlnjw3upYGTL6WQk= Decrypted String Result: {"ActionId":1003,"SourceName":"SING.madeeusd001","TransactionAmount":-10,"ReferenceNo":"PAR21477142867","TransType":"PAR","Hdp":1.25," IsFirstHalf":false,"Odds":9.719,"BetSource":1,"IsHomeGive":true,"IsBetHome":true,"BetIP":"211.23.76.12","Currency":"USD","MatchId":10084904," MatchGroupId":"d9f3a87f-c7e7-488b-8276-5796198bfe3c","LeagueId":43763,"HomeTeamId":172124,"AwayTeamId":172125,"SpecialId":"","SportTy pe":"S","MatchDate":638717940000000000,"IsRunning":true,"WorkingDate":20250106,"HomeTeamName":"obt-01","AwayTeamName":"obt-02","Le agueName":"J_OBT33"} 129
BalancePackage Decrypted Parameter: Name Type Description <ActionId> Short Action ID <SourceName> String User Name <TransactionAmount> Decimal(18,4) Bet Amount <ReferenceNo> String ReferenceNo <TransType> String(5) Bet type <Hdp> Decimal(18,2) The number of giving <IsFirstHalf> Bool Whether it is first half <Odds> Decimal(18,2) Bet odds <BetSource> Int Bet platform 1 = Desktop 7 = Mobile(v1) 9 = New Mobile(v1) 130
10 = Mobile E-Sport(v3) 11 = New Mobile E-Sport(v3) <IsHomeGive> Bool Whether it is home give <IsBetHome> Bool Whether it bet home <BetIP> String(50) Bet IP <Currency> String Currency <MatchId> Int MatchID <MatchGroupId> String(50) MatchGroupID <LeagueId> Int LeagueId <HomeTeamId> Int HomeTeamId <AwayTeamId> Int AwayTeamId <SpecialId> String Special Id can query API LanguageInfo by checking special bet name.The SpecialId can be paired with the neutral attribute. If the neutral attribute is repeatedly turned on, the following changes: 131
1000,15874 (Open neutral) ,15874 (Close neutral) 15874,1000 (2nd open neutral) 15874, (2nd close the neutral) <SportType> String(5) SportType <MatchDate> Long MatchDate <IsRunning> Bool Whether it is running match <WorkingDate> Int WorkingDate <HomeTeamName> String HomeTeam Name <AwayTeamName> String AwayTeam Name <LeagueName> String League Name Available Action ID list: ActionId Action Code Description 132
1003 PlaceBet Request the Partner to deduct the User's Balance for PlaceBet Response to CMD: 1. Partner needs to compose the response message into JSON, then process it into plaintext string (HTTP content-type: text/plain) through encryption mechanism and response back to CMD. 2. Please use the balancePackage encryption string from CMD request and Partnerkey to decryption. Partnerkey and Encrypted string template: Partnerkey : 0724955629056261 {"PackageId":"bb022743-1fb9-48d0-800e-bac1e3154663","StatusCode":100,"StatusMessage":"Success","Balance":200.0,"DateSent":637260194896 070000,"DateReceived":637260194896070000} Response Data Description: Name Type Description <StatusCode> Short StatusCode <StatusMessage> String StatusMessage for this request by 133
Partner provided <packageId> String Request from CMD URL Package ID <Balance> Decimal(18,4) User Balance <DateReceived> Long Partner receive Request from CMD date record DateTime.Ticks <DateSent> Long Partner sent Response to CMD date record DateTime.Ticks DeductBalance Process: 1. CMD User Bet in CMD betview. 2. While CMD receives the deduct request, CMD will send a DeductBalance Package Request. 3. Partner Side receives and processes the request. 4. Partner needs to check the user's balance and send a reply to the request. 5. If the user's balance is sufficient for betting, reply with StatusCode = 100 (Success); otherwise, reply with StatusCode = -9001 (Insufficient Balance). 6. If CMD Receives the reply Succeed(StatusCode = 100) means the User Balance Deduct succeeds, and the Bet Request will be accepted. 134
Response Template: Succeed: {"StatusCode":100,"StatusMessage":"DeductBalanceSucceed","PackageId":"bb022743-1fb9-48d0-800e-bac1e3154663","Balance":300.0,"DateRecei ved":637260194896070000,"DateSent":637260194896070000} Insufficient Balance: {"StatusCode":-9001,"StatusMessage":"Insufficient Balance","PackageId":"bb022743-1fb9-48d0-800e-bac1e3154663","Balance":300.0,"DateReceived":637260194896070000,"DateSent":63726019489 6070000} Response Status StatusCode List: StatusCode Description Remark 100 Success If the user's balance is sufficient for betting, reply with StatusCode = 100. -9001 Insufficient Balance If the user's balance is Insufficient for betting, please reply with Status Code = -9001, this StatusCode can ignore the Error count. 135
Notes: 1. The CMD only accepts the reply Status Code =100 as success; otherwise, it will treat the request as failed. 2. When CMD receives the Status Code = -9001, it will identify the User Insufficient Balance, and CMD will not record this PackageId in InValidDeductByDate and InValidDeductById. 3. If the customer reply the request over the specified time limit, the request will be canceled. 4. If the reply StatusCode is not in (100,-9001) or the reply pending to Time Out, the error count will be added. If there is a successful reply, the error count will be reset. If the error count reaches the setting value, the system will be enforced to close the Partner, please request restored partner from CMD Operations Services. 136
3.3 UpdateBalance UpdateBalance used to request Partner to update the User Balance when the match is over, request method POST(HTTP content-type: application/json). 1. CMD Request URL balancePackage encrypt string needs to URL decode first. 2. Partner must keep the PackageId to check if the request has already been processed. Request: http://<UpdateBalanceURL>/ Postcontent:{ "Method" : "UpdateBalance" , "balancePackage" : <balancePackage> , "packageId" : <packageId> , "dateSent" : <dateSent> } Parameter: Name Type Description <Method> String SingleWallet Request <balancePackage> String (Array)Encrypted SourceName and ActionID <packageId> String Package ID <dateSent> Long DateTime.Ticks 137
Partnerkey and Encrypted string template: Partnerkey:0724955629056261 balancePackage:THClT/T/QRjxTNjhhN7F6SiV0lUehwuIKb4xs1re64M/Sw6WPu4+A08Wx7pNR05lTy4/+k8Q2nnPJdy1B32vEQvtsSfjCz2R1egw/hzc7h+ T7DL6jEMWD/ikgCxUjS/Vi252CEECe/zYNlK7zzdpJ/TUPMlQehHg0XJNmN8RUWEMbbOx5UPYaqIJyp8Id/Uq Decrypted String Result: {"ActionId":4002,"MatchID":"464273","TicketDetails":[{"SourceName":"UserName","TransactionAmount":100.0,"ReferenceNo":"HDP12345678"}]} Parameter: Name Type Description <ActionId> Short Action ID <MatchID> LONG Match ID <TicketDetails> Array (Array)Ticket information detail 138
Ticket Information Description: Name Data Type Description <SourceName> String UserName <ReferenceNo> String ReferenceNo <TransactionAmount> Decimal(18,4) Transaction Amount for this ticket, increase or decrease user balance according to positive and negative values <TransRefNo> String Tickets currently traded, Only used on ActionId 3001. Available Action ID list: ActionId Action Code Description 2001 DangerRefund The ticket was canceled due to dangerous ball, request Partner to refund to Member. 2002 ResettleTicket The abnormal state manually Reject or accepts theticket, request Partner to update Member balance. 3001 BTBuyBack The ticket has been cash out, request Partner to update Member balance. 139
4001 SettleHT The first half match is over, request Partner to update Member balance. 4002 SettleFT The match is over, request Partner to updateMember balance. 4003 SettleParlay The mix parlay match are over, request Partner to update Member balance. 5001 UnsettleHT The result of the first half match is rollbacked fromsettle to proceed, request Partner to updateMember balance. 5002 UnsettleFT The result of the full time match is rollbacked fromsettle to proceed, request Partner to updateMember balance. 5003 UnsettleParlay The result of the mix parlay match is rollbackedfrom settle to proceed, request Partner to updateMember balance. 6001 CancelHT The first half match is canceled, request Partner to refund to Member. 6002 CancelFT The full time match is canceled, request Partner to refund to Member. 7001 UncancelHT The first half match is rollbacked to uncanceled,request Partner to update Member balance. 7002 UncancelFT The full time match is rollbacked to uncanceled,request Partner to update Member 140
balance. 9000 SystemAdjustment SystemAdjustment Notes: 1. Because the huge package requires quite of processing time, recommend that Partner responds (StatusCode 100) to the CMD before the package processing. 2. Partner should handle requests using the original PackageId backup to avoid processing failures, when CMD receives the response from the Partner with StatusCode 100, CMD will no longer resend the specific PackageId. If Partner does receive the processed Package, please stop that update process. 3. If the package is damaged or cannot be recovered for any reason, please request a backup from CMD Operations Services for manual adjustment. Response to CMD Response Template: 1. Partner needs to compose the response message into JSON, then process it into plaintext string (HTTP content-type: text/plain) through encryption mechanism and response back to CMD. 2. Please use the balancePackage encryption string from CMD request and Partnerkey to decryption. 141
Parameter: Name Type Description <StatusCode> Short StatusCode <StatusMessage> String StatusMessage for this request by Partner provided <PackageId> String Request from CMD URL Package ID <DateReceived> Long Partner receive Request from CMD date record DateTime.Ticks <DateSent> Long Partner sent Response to CMD date record DateTime.Ticks Partnerkey and Encrypted string template: Partnerkey : 0724955629056261 {"PackageId":"bb022743-1fb9-48d0-800e-bac1e3154664","StatusCode":100,"StatusMessage":"Success","DateSent":637260194896070000,"DateRec eived":637260194896070000} UpdateBalance Request Process: 1. CMD sends the UpdateBalance Package. 142
2. The Partner receives the package and keeps a copy as a record. 3. Partner responds (StatusCode 100) to CMD. 4. Partner proceedsthe Package for update User Balance. Response Status StatusCode List: StatusCode Description Remark 100 Success Notes: 1. The CMD only accepts the reply Status Code =100 as success; otherwise, it will treat the request as failed. 2. If the Partner did not reply the request in Setting Number of second, the request will be canceled. 3. If the customer reply the request over the specified time limit, the request will be canceled. 4. If the reply StatusCode is not 100 or the reply pending to Time Out, the errors count will be added. If there is a successful reply, the errors count will be reset. If the errors count reaches the setting value, the system will be enforced to close the Partner, please request restored partner from CMD Operations Services 143
Appendix Apx.1 Currency/Language Currency Currency Code Currency Code MYR Malaysian Ringgit USD US Dollar CNY Chinese Yuan Renminbi VD Vietnamese Dong 1 : 1000 (1 in system equal to 1000 in actual currency) THB Thai Baht HKD Hong Kong Dollar IDR Indonesia Rupiah 1 : 1000 144
(1 in system equal to 1000 in actual currency) EUR Euro SGD Singapore Dollar JPY Japanese Yen 1 : 100 (1 in system equal to 100 in actual currency) KRW South Korean Won AUD Australian Dollar BDT Bangladeshi Taka INR Indian Rupee BRL Brazilian Real USDT Tether PHP Philippine Peso 145
MXN Mexico Pese PKR Pakistani Rupee EGP Egyptian Pound ARS Argentine Peso RUB Russia Ruble TRY Turkish Lira KES Kenya, Shilling LAK Lao Kip 1:1000 (1 in system equal to 1000 in actual currency) NPR Nepalese Rupee PGK Papua New Guinean Kina NGN Nigerian Naira 146
BND Bruneian Dollar TONU TONT USDT(Cryptocurrency) Language Code Description zh-CN Simplified Chinese en-US English th-TH Thai zh-TW Traditional Chinese vi-VN Vietnamese id-ID Indonesian pt-PT Portuguese es-ES Spanish 147
ko-KR Korean 148
Apx.2 Bet Type/SportType TransType Type Description Virtual Sport Bet Type 1 Bet 1 in 1X2 VS supports this Bet type 2 Bet 2 in 1X2 VS supports this Bet type CS Correct Score VS supports this Bet type FLG First Goal / Last Goal - HDP Handicap VS supports this Bet type HFT Half Time / Full Time - OE Odd / Even - OU Over / Under VS supports this Bet type OUT Outright - PAR Parlay - 149
TG Total Goal X Bet X in 1X2 VS supports this Bet type 1X Bet 1X in Double Chance(DC) 12 Bet 12 in Double Chance(DC) X2 Bet X2 in Double Chance(DC) ETG Exact Total Goals HTG Exact Home Team Goals ATG Exact Away Team Goals HP3 3 Way Handicap CNS Clean Sheet 150
SportType Type Description S Soccer BB Basketball FS Futsal BC Beach Soccer UF US Football BE Baseball IH Ice Hockey TN Tennis FB Financial Bets BA Badminton GF Golf 151
CK Cricket VB Volleyball HB Handball PL Pool BL Billiard NS Snooker RB Rugby GP MotoGP DT Darts BX Boxing AT Athletics AR Archery CH Chess 152
DV Diving EQ Equestrian ET Entertainment CN Canoeing CS Combat Sports CY Cycling HK Hockey GM Gymnastics FL Floor Ball NT Novelties OL Olympic OT Others PO Politics 153
QQ Squash MN Swimming RU Rugby Union TT Table Tennis WG Weightlifting WI Winter Sports WP Water Polo WS Speedway ES E-Sports MT Muay Thai NB Net Ball VFLM Virtual Football League VFEC Virtual Football Euro Cup 154
VFAS Virtual Football Asian Cup VFNC Virtual Football Nations Cup VFWC Virtual Football World Cup VFCC Virtual Football Champions Cup VBL Virtual Basketball League 155
Apx.3 Bet Position Bets Type List Bet Type Bet Position Description HDP 1: HomeTeam 2: AwayTeam OU 1: Over 2: Under OE 1: Odd 2: Even 1X2 1: 1 2: X 3: 2 CS 1: 1-0 2: 2-0 3: 2-1 156
4: 3-0 5: 3-1 6: 3-2 7: 4-0(FT) 8: 4-1(FT) 9: 4-2(FT) 10: 4-3(FT) 11: 5-0 UP(Disable) 12: 0-5 UP(Disable) 13: 0-0 14: 1-1 15: 2-2 16: 3-3 17: 4-4(FT) 18: 0-1 19: 0-2 20: 1-2 21: 0-3 22: 1-3 157
23: 2-3 24: 0-4(FT) 25: 1-4(FT) 26: 2-4(FT) 27: 3-4(FT) -99: AOS TG 1: 0-1 2: 2-3 3: 4-6 4: 7&Over TG(1H) 1: 0-1(1H) 2: 2-3(1H) 3: 4 and over(1H) FLG 1: HF (Home First Goal) 2: AF (Away First Goal) 3: HL (Home Last Goal) 4: AL (Away Last Goal) 158
5: NG (No Goal) HFT 1: HH 2: HD 3: HA 4: DH 5: DD 6: DA 7: AH 8: AD 9: AA OUT 1: HomeTeam PAR 1: " " DC 1: 1X 2: 12 3: X2 ETG 1: 0 159
2: 1 3: 2 4: 3 5: 4 6: 5 7: 6&Over ETG(1H) 1: 0 2: 1 3: 2 4: 3&Over HTG 1: 0 2: 1 3: 2 4: 3&Over ATG 1: 0 2: 1 3: 2 160
4: 3&Over HP3 1: Home team 2: draw 3: Away team CNS 1: Home Yes 2: Home No 3: Away Yes 4: Away No 161
162