Appendix
This page lists all possible Status Codes and their Descriptions in the Transfer Wallet API, as well as additional lists.
Status Code Overview
| Code | Response Message | Description | Related API |
|---|---|---|---|
| 0 | No error | Request Successful | All APIs |
| 2 | The balance is not enough | Insufficient Balance | Transfer, Full Withdrawal |
| 3 | The transaction already exist | Transaction already exists | Transfer, Full Withdrawal |
| 4 | The transaction doesn't exist | Transaction does not exist | Query Transaction Detail |
| 5 | Game is not found | Game not found or removed | Open Game, Query Bet Logs, Query Bet Detail, Query Bet Replay |
| 6 | The username already exist | Player Account already exists | Create Player |
| 7 | Internal server error | Internal system error | All APIs |
| 8 | The User is not exist | Player does not exist | Query Player Balance, Transfer, Full Withdrawal, Open Game, Query Bet Detail |
| 10 | Agent code was not found or block | Agent not found or blocked | Get Access Token |
| 11 | Parameters error | Parameters error | All APIs |
| 14 | The BetId is not exist | Query Bet Logs does not exist | Query Bet Detail, Query Bet Replay |
| 19 | Invalid account | Invalid Player Account | Query Player Balance, Transfer, Full Withdrawal, Open Game |
| 20 | Member wallet is temporarily locked | Player wallet temporarily locked | Transfer, Full Withdrawal |
| 35 | The transaction is pending | Transaction in progress | Transfer, Full Withdrawal, Query Transaction Detail |
| 37 | The Function is not supported | This function is not supported | Query Bet Detail, Query Bet Replay |
| 38 | Query not allowed as the betId has expired | Transaction details/replay have exceeded the query time limit | Query Bet Detail, Query Bet Replay |
| 77 | Too many request, please try again later | Too many requests | Query Bet Logs, Query Daily Report, Query Player Report |
| 78 | Operator card spinId was used | Item ID has been used | Send Operator Card, Send Simple FreeSpin Operator Card |
| 81 | Branch config not found | Branch config not found | Query Player Balance, Transfer, Full Withdrawal, Open Game, Query Bet Logs, Force Logout, Query Player Session |
| 82 | Please check siteId is for this player | siteId does not match Player | Open Game |
| 83 | Signature verification failed | Signature verification failed | All APIs requiring verification |
| 84 | Encryption failed | Encryption failed | All APIs requiring encryption |
| 85 | Key config setting error | Encryption setting read anomaly | All APIs |
| 86 | Game is restricted | Game rejected due to restrictions | Open Game, Send Operator Card, Send Simple FreeSpin Operator Card, Send Simple FeatureGame Operator Card |
| 87 | Invalid item parameter value | Operator Card Parameter Combination Error | Send Operator Card, Send Simple FreeSpin Operator Card, Send Simple FeatureGame Operator Card |
| 89 | The item has not been used yet, or the spinId does not exist | Item not yet used, cannot query result | Send Operator Card, Send Simple FreeSpin Operator Card, Send Simple FeatureGame Operator Card |
| 100 | The server is busy, please try again later | Service busy | Open Game |
Error Code Classification
Success Codes
| Code | Description |
|---|---|
| 0 | Request successful, no errors |
Player Management Errors
| Code | Description | Possible Cause | Handling Suggestion |
|---|---|---|---|
| 6 | Player Account already exists | Attempted to create Player with an already registered Player Account | Use a different Player Account |
| 8 | Player does not exist | Querying or operating on a non-existent Player | Confirm Player ID or Player Account is correct, call Create Player API first |
| 19 | Invalid Player Account | Incorrect Player Account format or abnormal status | Check Player Account format and status |
| 20 | Player wallet temporarily locked | Player wallet temporarily locked for various reasons | Try again later or contact Customer Support Team |
Transaction-Related Errors
| Code | Description | Possible Cause | Handling Suggestion |
|---|---|---|---|
| 2 | Insufficient Balance | Insufficient balance during withdrawal or betting | Check Player Balance to ensure sufficiency |
| 3 | Transaction already exists | Used a duplicate transaction ID (transId) | Use a new unique transaction ID |
| 4 | Transaction does not exist | Querying non-existent transaction records | Confirm transaction ID is correct |
| 35 | Transaction in progress | Transaction is being processed, not yet completed | Wait or query transaction status |
| 37 | This function is not supported | This query transaction does not support this API function | Confirm whether the transaction is within the queryable range |
| 38 | Transaction details/replay have exceeded the query time limit | Transaction occurred more than 30 days ago | Contact Customer Support Team |
| 78 | Duplicate Item Transaction ID | Item ID has been used | Change the spinId parameter |
Game Management Errors
| Code | Description | Possible Cause | Handling Suggestion |
|---|---|---|---|
| 5 | Game not found | Used invalid Game Code or Game has been removed | Confirm Game Code is correct |
| 82 | siteId mismatch | siteId does not correspond to Player | Contact Customer Support Team, provide logUUID |
| 86 | Game rejected due to restrictions | This game cannot be opened due to currency, line, or other reasons | First check whether the Game List document has a description, then contact Customer Support Team, provide logUUID |
| 100 | Service busy, unable to generate new game link | Service has reached its player capacity, more players are rejected to ensure quality | Try again later |
Query Bet Log Errors
| Code | Description | Possible Cause | Handling Suggestion |
|---|---|---|---|
| 14 | Query Bet Logs does not exist | Querying non-existent Query Bet Logs or incorrect txTime | Confirm betId and txTime parameters are correct |
System Level Errors
| Code | Description | Possible Cause | Handling Suggestion |
|---|---|---|---|
| 7 | Internal system error | Internal server error | Contact Customer Support Team, provide logUUID |
| 10 | Agent error | Incorrect agentId or secret, or Agent is blocked | Check authentication information, contact administrator to confirm status |
| 11 | Parameters error | Missing, incorrectly formatted, or non-compliant request parameters | Check all Required parameters and format |
| 77 | Too many requests | Too many requests sent within a short period | Reduce request frequency, try again later |
| 81 | Branch config not found | System configuration missing | Contact Customer Support Team |
| 83 | Signature verification failed | Incorrect signature calculation or request header | Check signature generation logic and request header |
| 84 | Encryption failed | Incorrect encryption key or encryption method | Check encryption configuration and implementation |
| 85 | Encryption setting read anomaly | System unable to read valid key information | Contact Customer Support Team |
| 87 | Operator Card Parameter Combination Error | Please check the corresponding API Operator Card sending rules | Reconfirm parameter rules or contact Customer Support Team |
| 89 | The item has not been used yet, or the spinId does not exist | Item not fully used | Reconfirm whether the item has been used or if the item is expired/non-existent |
Authentication Related Error Details
10 - Agent Error
Occurs in /v2/auth API. Possible causes:
- agentId does not exist: Used an unregistered Agent ID
- Incorrect secret: The secret parameter, after decryption, does not match the agentId
- Agent is blocked: Agent ID has been deactivated by the system
Handling Suggestion:
- Confirm agentId and secret are correct
- Contact Customer Support Team to check Agent status
- Check whether the x-agentid request header matches the agentId in the body
83 - Signature Verification Failed
This is the most common authentication error, which may be caused by the following reasons:
-
Incorrect signature string combination order
- The correct order should be: agentId + timestamp + nonce + cipherText
- Use SHA256 (not HMAC-SHA256) for hashing
-
Timestamp verification failed
- Operator and server time difference exceeds the allowed range (usually ±1 minute)
- Incorrect timestamp format (should be a 13-digit millisecond timestamp)
-
Nonce verification failed
- Used a duplicate nonce value (must be unique for each request)
-
Missing or incorrect request header
- Missing required headers: x-agentid, x-timestamp, x-nonce, x-signature
- Request header values do not match the values used for actual signature calculation
Handling Suggestion:
- Refer to Authentication Overview to check signature generation logic
- Ensure server time synchronization (using NTP)
- Generate a new nonce for each request
- Confirm all request headers are correctly set
84 - Encryption Failed
Encryption/decryption-related errors:
- Incorrect encryption method: Must use AES-256-GCM
- Incorrect key: Encryption key configuration is incorrect
- Incorrect data format: Data format before encryption is incorrect
Handling Suggestion:
- Check whether the encryption implementation uses AES-256-GCM
- Confirm encryption key is correct
- Refer to the encryption example in Authentication Overview
Game Kind Mapping Table
| Code | Description |
|---|---|
| 1 | SLOT (Slot Machine) |
| 6 | FISH (Fishing Game) |
Language
| Code | Description |
|---|---|
| en | English (default language, if VP does not support the corresponding language, the default language is used) |
| zh-Hans | Simplified Chinese |
| th | Thai |
| my | Burmese |
| id | Indonesian |
| vi | Vietnamese |
| jp | Japanese |
| pt | Portuguese |
| ko | Korean |
| tl | Tagalog |
| hi | Hindi |
| ms | Malay |
| bn | Bengali |
| es | Spanish |
Currencies
For MYR1 and THB1, the "display 100:1 in games" only affects the currency display ratio within games. API value transmission does not require ratio conversion; transmit at 1:1.
| Code | Description |
|---|---|
| AED | UAE Dirham |
| AUD | Australian Dollar |
| BDT | Bangladeshi Taka |
| BRL | Brazilian Real |
| CAD | Canadian Dollar |
| CNY | Chinese Yuan |
| COP | Colombian Peso |
| EGP | Egyptian Pound |
| EUR | Euro |
| GBP | British Pound |
| HKD | Hong Kong Dollar |
| IDR | Indonesian Rupiah(1:1000) |
| IDR1 | Indonesian Rupiah(1:1) |
| INR | Indian Rupee |
| JPY | Japanese Yen |
| KES | Kenyan Shilling |
| KHR | Cambodian Riel |
| KRW | Korean Won(1:1) |
| KRW1 | Korean Won(1:1000) |
| LAK | Lao Kip(1:1000) |
| LAK1 | Lao Kip(1:1) |
| LKR | Sri Lankan Rupee |
| MMK | Myanmar Kyat(1:1000) |
| MMK1 | Myanmar Kyat(1:1) |
| MXN | Mexican Peso |
| MYR | Malaysian Ringgit |
| MYR1 | Malaysian Ringgit(display 100:1 in games) |
| NGN | Nigerian Naira |
| NPR | Nepalese Rupee |
| NZD | New Zealand Dollar |
| PGK | Papua New Guinean Kina |
| PHP | Philippine Peso |
| PKR | Pakistani Rupee |
| SAR | Saudi Riyal |
| SGD | Singapore Dollar |
| THB | Thai Baht |
| THB1 | Thai Baht(display 100:1 in games) |
| TRY | Turkish Lira |
| USD | US Dollar |
| USDT | Tether |
| UZS | Uzbekistani Som |
| VND | Vietnamese Dong(1:1000) |
| VND1 | Vietnamese Dong(1:1) |
| XOF | West African CFA franc |
| ZAR | South African Rand |
Transaction Source Codes
| Code | Description |
|---|---|
| 1 | Normal Bet |
| 2 | Task System |
| 3 | Prize |
| 4 | System Reward |
| 5 | Treasure Chest |
| 6 | Cash Ticket |
| 7 | Multi Quest |
| 8 | Card |
| 9 | Operator Card |
| 13 | Fish Game Special Transaction (Jackpot and Card) |
Feature Mode
Used to indicate additional game modes triggered or used during Normal Bet (betSourceId = 1).
| Code | Description |
|---|---|
| 0 | baseGame |
| 1 | freeGame |
| 2 | buyBonus |
| 3 | buyBonusWithGem |
| 4 | extraBet |