Skip to main content

BetNSettle - Bet and Settlement

Perform Bet and Settlement operations, this is the core API for the game.

Request Parameters

Request Before Decryption

{
"cipherText": "G0ZMDELeJwx+7JcIfIFOLJjkSzANPu6krGM2uw==..."
}
info

For Encryption Description, please refer to [Operator API Implementation Description](./overview.md#1-Security Requirements)

Decrypted Request

{
"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
roundIdstringYesGame round number
transferIdstringYesTransaction Unique Identifier (planned for removal)
betIdstringYesBet ID, unique to VP
brandstringYesBrand code, fixed as VP
currencystringYesCurrency code
gameCodestringYesGame Code
betTimestringYesBet time
txTimestringYesSettlement time
gameInfostringYesJSON string of game-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

StatusBet Status DeterminationTrigger Retry?Bet Status
0000SuccessNoEstablished
9999FailedYesVoided
1006FailedNoVoided
2001SuccessNoEstablished
2002FailedNoVoided
TimeoutFailedYesVoided

Important Notes

  1. Atomic Operation: BetNSettle is an atomic operation, it will either be all Success or all Failed
  2. Balance Calculation: afterBalance = beforeBalance - actualBetAmt + winAmt
  3. transferId Uniqueness: The transferId for each game round is unique
  4. Retry Policy: If Success is not received, retries will continue
    • Retry Frequency: Retries 5 times, with an exponential backoff policy between each retry (1s, 3s, 5s, 7s, 9s)
    • If all retries fail and it is not an item transaction, proceed to rollback phase
  5. Parameter Adjustment: transferId will be removed and replaced by betId
  6. Jackpot Parameters: Currently, there is no jackpot functionality, all related parameters are Reserved Fields, currently defaulting to 0