RetryBet - Bet Retry
When item and Operator Card bet operations timeout or fail due to network issues or system exceptions, VP will call this API until the operator responds with transaction success
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": "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 | Games Round Number, used to identify a specific Games round |
| transferId | string | Yes | Transaction Unique Identifier (expected to be removed) |
| betId | string | Yes | Bet ID, unique VP value |
| 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 Games related information |
| actualBetAmt | number | Yes | Actual Bet Amount |
| validBetAmt | number | Yes | Valid Bet Amount (used 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 | Determine | Whether to Trigger Retry | Bet Slip 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: Transaction source codes can be referred to in the Appendix
- Retry Strategy: If no Success is received, retries will continue
- Retry Frequency: Retries once every half hour, 5 times per retry, each retry uses an an exponential backoff policy (1s, 3s, 5s, 7s, 9s)
- Retry Duration: Maximum 7 days; if no Success response is received within 7 days, retries stop
- Idempotency: Must ensure that the same roundId + betId combination only processes one transaction
- Balance Consistency: Ensure retries do not lead to duplicate deductions or credits
- Parameter Adjustment: transferId will be removed and replaced by betId
- Jackpot Parameters: Currently no jackpot function, related parameters are reserved Fields, current default is 0