RetryBet - Bet Retry
When Items and Operator Cards Bet operations time out or fail due to network issues or system anomalies, VP will call this API to retry the Bet, ensuring transaction consistency.
Request Parameters
Request Before Decryption
{
"cipherText": "G0ZMDELeJwx+7JcIfIFOLJjkSzANPu6krGM2uw==..."
}
info
For Encryption Description, please refer to [Operator API Implementation Description](./overview.md#1-Security Requirements)
Request Before Decryption
{
"action": "retryBet",
"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 as "retryBet" |
| uid | string | Yes | Player Account |
| roundId | string | Yes | Game round number, used to identify a specific game round |
| transferId | string | Yes | Transaction Unique Identifier (planned for removal) |
| betId | string | Yes | Bet ID, unique to VP |
| brand | string | Yes | Brand code, fixed as 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 of game-related information |
| actualBetAmt | number | Yes | Actual Bet Amount |
| validBetAmt | number | Yes | Valid Bet Amount (for turnover calculation) |
| winAmt | number | Yes | Win Amount, can be 0 or positive |
| jackpotWin | number | Yes | Jackpot Win Amount, default is 0 |
| jackpotContribute | number | Yes | Jackpot Contribution Amount, default is 0 |
| betSourceId | number | Yes | Transaction source code |
Response Format
Success Response
{
"status": "0000",
"errText": "",
"balance": 16.00,
"responseTime": "2025-11-11T01:23:38.271Z"
}
| Field | Type | Description |
|---|---|---|
| status | string | Status Code, see Status Code Description below |
| errText | string | Error message, empty string on Success |
| balance | number | Player Balance after operation |
| responseTime | string | Response time |
Response Status and Transaction Result
| Code | Determination | Trigger Retry? | Bet Status |
|---|---|---|---|
| 0000 | Success | No | Established |
| 2001 | Success | No | Established |
| 9999 | Failed | Yes | Pending Retry |
| Timeout | Failed | Yes | Pending Retry |
Important Notes
- Trigger Timing: When item and Operator Card transaction responses timeout or error, this API will be called to retry
- Transaction Source: For transaction source codes, refer to the Appendix
- Retry Policy: If Success is not received, retries will continue
- Retry Frequency: Retries once every half hour, 5 retries each time, with an an exponential backoff policy between each retry (1s, 3s, 5s, 7s, 9s)
- Retry Duration: Maximum 7 days, if no Success response is received within 7 days, retries will stop
- Idempotency: Must ensure that the same roundId + transferId combination processes the transaction only once
- Balance Consistency: Ensure that retries do not lead to duplicate deductions or additions
- Parameter Adjustment: transferId will be removed and replaced by betId
- Jackpot Parameters: Currently, there is no jackpot functionality, all related parameters are Reserved Fields, currently defaulting to 0