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 details, refer to Operator API Implementation Guide
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 value "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, 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 (used for turnover calculation) |
| 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
Success Response
{
"status": "0000",
"errText": "",
"balance": 16.00,
"responseTime": "2025-11-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 operation |
| responseTime | string | Response time |
Response Status and Transaction Result
| Code | Result | Whether It Triggers a Retry | Bet Slip Status |
|---|---|---|---|
| 0000 | Success | No | Valid |
| 2001 | Success | No | Valid |
| 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: Refer to the Appendix for transaction source codes
- Retry Strategy: Retries will continue until a success response is received
- Retry Frequency: Retries once every half hour, 5 retries per attempt, using an exponential backoff policy between each retry (1s, 3s, 5s, 7s, 9s)
- Retry Duration: Up to 7 days; if no success response is received within 7 days, retries will stop
- Idempotency: The same roundId + betId combination must be processed only once
- Balance Consistency: Ensure that retries do not result in duplicate deductions or credits
- 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