Skip to content

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)