Freebet Flow Diagrams¶
This page shows visual diagrams for common freebet scenarios.
Basic Flow: Award → Bet → Settle Win¶
sequenceDiagram
participant JB as Journey Builder
participant GR8 as GR8 Tech System
participant Wallet as Your Wallet
participant Player as Player
Note over JB,Player: 1. Award Freebet
JB->>GR8: Trigger freebet award
GR8->>Wallet: POST /perform-transaction<br/>type: award, reason: freebet award<br/>bonus: +1000
Wallet->>Wallet: Add 1000 to bonus balance
Wallet-->>GR8: balances: {bonus: 1000}
GR8-->>Player: Freebet available
Note over JB,Player: 2. Place Bet
Player->>GR8: Place bet using freebet<br/>(1000, odds: 4.0)
GR8->>Wallet: POST /perform-transaction<br/>type: withdrawal, reason: freebet<br/>bonus: -1000
Wallet->>Wallet: Deduct 1000 from bonus
Wallet-->>GR8: balances: {bonus: 0}
GR8-->>Player: Bet placed
Note over JB,Player: 3. Settle Win
GR8->>GR8: Event settled, bet wins
GR8->>Wallet: POST /perform-transaction<br/>type: deposit, reason: settle freebet<br/>cash: +3000, retract: +1000
Wallet->>Wallet: Add 3000 to cash<br/>Add 1000 to retract
Wallet-->>GR8: balances: {cash: 8000, retract: 1000}
GR8-->>Player: Winnings credited Flow: Award → Bet → Settle Lose¶
sequenceDiagram
participant GR8 as GR8 Tech System
participant Wallet as Your Wallet
participant Player as Player
Note over GR8,Player: 1. Award Freebet
GR8->>Wallet: POST /perform-transaction<br/>type: award<br/>bonus: +1000
Wallet-->>GR8: balances: {bonus: 1000}
Note over GR8,Player: 2. Place Bet
Player->>GR8: Place bet (1000, odds: 2.5)
GR8->>Wallet: POST /perform-transaction<br/>type: withdrawal<br/>bonus: -1000
Wallet-->>GR8: balances: {bonus: 0}
Note over GR8,Player: 3. Settle Lose
GR8->>GR8: Event settled, bet loses
GR8->>Wallet: POST /perform-transaction<br/>type: deposit, reason: settle freebet<br/>cash: 0, retract: +1000
Wallet->>Wallet: Add 1000 to retract<br/>(no cash added)
Wallet-->>GR8: balances: {cash: 5000, retract: 1000}
GR8-->>Player: Bet lost Flow: Award → Bet → Rollback¶
sequenceDiagram
participant GR8 as GR8 Tech System
participant Wallet as Your Wallet
participant Player as Player
Note over GR8,Player: 1. Award Freebet
GR8->>Wallet: POST /perform-transaction<br/>type: award<br/>bonus: +1000
Wallet-->>GR8: balances: {bonus: 1000}
Note over GR8,Player: 2. Place Bet
Player->>GR8: Place bet (1000)
GR8->>Wallet: POST /perform-transaction<br/>type: withdrawal<br/>bonus: -1000
Wallet-->>GR8: balances: {bonus: 0}
Note over GR8,Player: 3. Rollback Bet
GR8->>GR8: Bet cancelled<br/>(event postponed/cancelled)
GR8->>Wallet: POST /perform-transaction<br/>type: rollback<br/>bonus: +1000
Wallet->>Wallet: Return 1000 to bonus
Wallet-->>GR8: balances: {bonus: 1000}
GR8-->>Player: Freebet returned Flow: Settlement Correction (Cancel Settle → Settle)¶
sequenceDiagram
participant GR8 as GR8 Tech System
participant Wallet as Your Wallet
participant Player as Player
Note over GR8,Player: Initial Settlement (Win)
GR8->>Wallet: POST /perform-transaction<br/>type: deposit, reason: settle freebet<br/>cash: +3000, retract: +1000
Wallet-->>GR8: balances: {cash: 8000, retract: 1000}
Note over GR8,Player: Cancel Settlement
GR8->>GR8: Result was incorrect<br/>Need to correct
GR8->>Wallet: POST /perform-transaction<br/>type: withdrawal, reason: cancelsettle freebet<br/>cash: -3000, retract: -1000
Wallet->>Wallet: Remove 3000 from cash<br/>Remove 1000 from retract
Wallet-->>GR8: balances: {cash: 5000, retract: 0}
Note over Wallet: Bet returns to unsettled state
Note over GR8,Player: New Settlement (Corrected)
GR8->>Wallet: POST /perform-transaction<br/>type: deposit, reason: settle freebet<br/>cash: 0, retract: +1000
Wallet->>Wallet: Add 1000 to retract<br/>(bet actually lost)
Wallet-->>GR8: balances: {cash: 5000, retract: 1000}
GR8-->>Player: Corrected result applied Flow: Resettle (Direct Result Correction)¶
sequenceDiagram
participant GR8 as GR8 Tech System
participant Wallet as Your Wallet
participant Player as Player
Note over GR8,Player: Initial Settlement (Win)
GR8->>Wallet: POST /perform-transaction<br/>type: deposit, reason: settle freebet<br/>cash: +3000, retract: +1000
Wallet-->>GR8: balances: {cash: 8000, retract: 1000}
Note over GR8,Player: Resettle (Correction)
GR8->>GR8: Result needs adjustment<br/>(e.g., odds changed)
GR8->>Wallet: POST /perform-transaction<br/>type: withdrawal, reason: resettle freebet<br/>cash: -1000
Wallet->>Wallet: Remove 1000 from cash<br/>(payout adjustment)
Wallet-->>GR8: balances: {cash: 7000, retract: 1000}
GR8-->>Player: Payout adjusted Flow: Unused Freebet Retract¶
sequenceDiagram
participant JB as Journey Builder
participant GR8 as GR8 Tech System
participant Wallet as Your Wallet
participant Player as Player
Note over JB,Player: 1. Award Freebet
JB->>GR8: Trigger freebet award
GR8->>Wallet: POST /perform-transaction<br/>type: award<br/>bonus: +1000
Wallet-->>GR8: balances: {bonus: 1000}
Note over JB,Player: 2. Player doesn't use freebet
Player->>Player: Time passes...<br/>Freebet not used
Note over JB,Player: 3. Freebet Expires
JB->>GR8: Freebet expired
GR8->>Wallet: POST /perform-transaction<br/>type: retract, reason: freebet release<br/>bonus: -1000
Wallet->>Wallet: Remove 1000 from bonus
Wallet-->>GR8: balances: {bonus: 0}
GR8-->>Player: Freebet expired Multiple Active Freebets¶
sequenceDiagram
participant GR8 as GR8 Tech System
participant Wallet as Your Wallet
participant Player as Player
Note over GR8,Player: Player has 3 active freebets
GR8->>Wallet: Award Freebet A (100)<br/>sportBonusPlayerOfferId: "abc..."
Wallet-->>GR8: balances: {bonus: 100}
GR8->>Wallet: Award Freebet B (500)<br/>sportBonusPlayerOfferId: "def..."
Wallet-->>GR8: balances: {bonus: 600}
GR8->>Wallet: Award Freebet C (1000)<br/>sportBonusPlayerOfferId: "ghi..."
Wallet-->>GR8: balances: {bonus: 1600}
Note over GR8,Player: Player chooses Freebet B for bet
Player->>GR8: Place bet using Freebet B
GR8->>Wallet: POST /perform-transaction<br/>sportBonusPlayerOfferId: "def..."<br/>bonus: -500
Wallet->>Wallet: Deduct 500 from bonus
Wallet-->>GR8: balances: {bonus: 1100}
Note over Wallet: Freebets A (100) and C (1000)<br/>still available Settlement Corrections¶
For detailed explanation of Cancel Settle vs Resettle logic, see Settlement Corrections in Transaction Types Reference.
Quick summary:
- Cancel Settle - Completely reverts settlement, bet returns to unsettled, then new Settle follows
- Resettle - Direct payout adjustment without reverting to unsettled state
Cancel Settle example: Bet was settled as Win, but event was actually cancelled → Cancel Settle (remove winnings) → Settle as Return (refund bet)
Resettle example: Bet was settled with odds 4.0, but correct odds were 3.5 → Resettle (adjust payout difference)