Skip to main content

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 description, please refer to [Operator API Implementation Guide](./overview.md#1-Security Requirements)

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
}
ParameterTypeRequiredDescription
actionstringYesFixed as "betNSettle"
uidstringYesPlayer Account
roundIdstringYesGames Round Number
transferIdstringYesTransaction Unique Identifier (expected to be removed)
betIdstringYesBet ID, unique VP value
brandstringYesBrand code, fixed as VP
currencystringYesCurrency Code
gameCodestringYesGame Code
betTimestringYesBet Time
txTimestringYesSettlement Time
gameInfostringYesJSON string of Games related information
actualBetAmtnumberYesActual Bet Amount
validBetAmtnumberYesValid Bet Amount
winAmtnumberYesWin Amount, can be 0 or positive
jackpotWinnumberYesJackpot Win Amount, default is 0
jackpotContributenumberYesJackpot Contribution Amount, default is 0
betSourceIdnumberYesTransaction Source Code

Response Format

info

Response is plaintext JSON, no encryption required.

Success Response

{
"status": "0000",
"errText": "",
"balance": 12345.67,
"responseTime": "2024-12-11T01:23:38.271Z"
}
FieldTypeDescription
statusstringStatus Code, see Status Code Description below
errTextstringError message, empty string on Success
balancenumberPlayer Balance after transaction
responseTimestringResponse Time

Response Status and Transaction Result

StatusDetermine Bet StatusWhether to Trigger RetryBet Slip Status
0000SuccessNoEstablished
9999FailedYesCanceled
1006FailedNoCanceled
2001SuccessNoEstablished
2002FailedNoCanceled
TimeoutFailedYesCanceled

Important Notes

  1. Atomic Operation: BetNSettle is an atomic operation; it will either fully Success or fully fail
  2. Balance Calculation: afterBalance = beforeBalance - actualBetAmt + winAmt
  3. betId Uniqueness: The betId for each Games round is unique
  4. Retry Strategy: If no Success is received, retries will continue
  • Retry Frequency: Retries 5 times, each retry uses an exponential backoff policy (1s, 3s, 5s, 7s, 9s)
    • If all above retries fail, general transactions enter the rollback stage
    • If all above retries fail, Item and Operator Card transactions enter the retryBet stage
  1. Parameter Adjustment: transferId will be removed and replaced by betId
  2. Jackpot Parameters: Currently no jackpot function, related parameters are reserved Fields, current default is 0