BetNSettle - Bet and Settle
Execute bet and settlement operations, this is the core API of the game.
Request Parameters
Request Before Decryption
{
"cipherText": "G0ZMDELeJwx+7JcIfIFOLJjkSzANPu6krGM2uw==..."
}
info
For encryption details, refer to Operator API Implementation Guide
Request After Decryption
{
"action": "betNSettle",
"uid": "testaccount01",
"roundId": "testroundId001",
"transferId": "testroundId001",
"betId": "7634846433511800000",
"brand": "VP",
"currency": "THB",
"gameCode": "VP_230001_1",
"betTime": "2025-11-17T16:01:13.155Z",
"txTime": "2025-11-17T16:01:13.155Z",
"gameInfo": "{\"featureBuy\":0,\"spinID\":[\"7634278403511200000\",\"7634278403512200000\",\"7634278403513700000\"],\"cardType\":1,\"isFeatureGame\":\"\",\"deviceType\":0}",
"actualBetAmt": 0,
"validBetAmt": 0,
"winAmt": 1.3,
"jackpotWin": 0,
"jackpotContribute": 0,
"betSourceId": 1
}
| Parameter | Type | Required | Description |
|---|---|---|---|
| action | string | Yes | Fixed value "betNSettle" |
| uid | string | Yes | Player Account |
| roundId | string | Yes | Game round number |
| transferId | string | Yes | Transaction Unique Identifier (planned for removal) |
| betId | string | Yes | Bet ID, a unique value assigned by VP |
| brand | string | Yes | Brand code, fixed value VP |
| currency | string | Yes | Currency code |
| gameCode | string | Yes | Game Code |
| betTime | string | Yes | Bet time |
| txTime | string | Yes | Settlement time |
| gameInfo | string | Yes | JSON string containing game-related information |
| actualBetAmt | number | Yes | Actual Bet Amount |
| validBetAmt | number | Yes | Valid bet amount |
| winAmt | number | Yes | Amount won, can be 0 or a positive number |
| jackpotWin | number | Yes | Jackpot amount won, default is 0 |
| jackpotContribute | number | Yes | Jackpot contribution amount, default is 0 |
| betSourceId | number | Yes | Transaction source code |
Response Format
info
The response is in plaintext JSON and does not need to be encrypted.
Success Response
{
"status": "0000",
"errText": "",
"balance": 12345.67,
"responseTime": "2024-12-11T01:23:38.271Z"
}
| Field | Type | Description |
|---|---|---|
| status | string | Status code, see the status code description below |
| errText | string | Error message, empty string when successful |
| balance | number | Player's Balance after the transaction |
| responseTime | string | Response time |
Response Status and Transaction Result
| Status | Bet Status | Whether It Triggers a Retry | Bet Slip Status |
|---|---|---|---|
| 0000 | Success | No | Valid |
| 9999 | Failed | Yes | Voided |
| 1006 | Failed | No | Voided |
| 2001 | Success | No | Valid |
| 2002 | Failed | No | Voided |
| Timeout | Failed | Yes | Voided |
Important Notes
- Atomic Operation: BetNSettle is an atomic operation; it will either fully succeed or fully fail
- Balance Calculation: afterBalance = beforeBalance - actualBetAmt + winAmt
- betId Uniqueness: The betId is unique for each game round
- Retry Strategy: Retries will continue until a success response is received
- Retry Frequency: Retries up to 5 times, using an exponential backoff policy between each retry (1s, 3s, 5s, 7s, 9s)
- Parameter Adjustment: transferId will be removed and replaced by betId
- Jackpot Parameters: There is currently no jackpot feature; the related parameters are reserved fields, currently all defaulting to 0