> For the complete documentation index, see [llms.txt](https://docs.terragon.io/documents/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.terragon.io/documents/terragon-manual/solutions/bonuses-module.md).

# Bonuses Module

## **Bonuses Module Documentation**

The **Bonuses Module** in the Terragon backoffice is designed to provide you with **comprehensive tools to create, manage, and track various types of bonuses and promotional programs**. This module allows you to **engage players, incentivize activity, and increase retention rates** through a variety of bonus mechanisms, including **rebates, loyalty rewards, referral incentives, and more**.

This documentation serves as a complete guide to understanding and utilizing the **Bonuses Module**, detailing each of its key functionalities and providing step-by-step instructions for effective bonus management.

### **Overview**

The **Bonuses Module** acts as the central hub for configuring and managing promotional campaigns within the platform. You can:

* **Create and customize bonuses** tailored to specific player activities.
* **Track bonus histories** to analyze player engagement.
* **Define eligibility rules** for different promotions.
* **Automate bonus issuance** based on predefined conditions.
* **Manage loyalty and referral programs** to reward player retention and referrals.

By leveraging the **Bonuses Module**, you can implement **structured, automated, and data-driven bonus campaigns** that optimize player acquisition and retention.

### **Scope**

The **Bonuses Module** consists of the following **submodules**:

1. [**Bonus List**](#id-1.-bonus-list) – View and manage all active and past bonus campaigns.
2. [**Bonus Histories**](#id-2.-bonus-histories-submodule) – Track bonus issuance and usage across all players.
3. [**Bonus Categories**](#id-3.-bonus-categories) – Define different types of bonus structures and classifications.
4. [**Loyalty Program**](#id-4.-loyalty-program-submodule-overview) – Configure and manage a player loyalty rewards system.
5. [**Rebate Program**](#id-5.-rebate-program) – Set up and monitor cashback rewards based on player activity.
6. [**Refer-Friend Program**](#id-6.-refer-friend-program) – Manage player referral-based bonus incentives.
7. [**Batch Bonus Issuance**](#id-7.-batch-bonus-issuance) – Issue bonuses in bulk based on predefined rules.
8. [**Accumulate Programs** ](#id-8.-accumulate-programs)– Configure progressive bonus accumulation models.
9. [**Referral Program**](#id-9.-referral-program) – Set up referral-based incentives, including:
   * [**Formula Management**](#id-9.1-formula-management) – Define custom referral reward calculations.
   * [**Referral Plan**](#id-9.2-referral-plan) – Manage referral structures and tiers.
10. [**Quests**](#id-10.-quests) – Engage players with challenge-based rewards, including:
    * [**Quests List**](#id-10.1-quests-list) – View and configure available quests.
    * [**Players Quests**](#id-10.3-players-quests) – Track player participation in quests.<br>

## **1. Bonus List**

The **Bonus List** submodule serves as the **central hub for managing all created bonuses** within the Terragon backoffice. It provides a **structured and organized view** of active, expired, and upcoming bonuses, allowing operators to **search, filter, update, and archive** bonuses efficiently.

This page is divided into **two main sections**:

1. **Search & Filter Panel** – A set of filtering options that helps operators quickly locate specific bonuses based on **bonus code, name, promo code, category, status, award type, and other conditions**. This section ensures that operators can efficiently manage large volumes of bonuses by narrowing down relevant results.
2. **Bonus List Table** – A structured list displaying **all available bonuses**, their key details (e.g., status, category, awarding type, start & end dates, and creation details), and **action controls** for modifying, deleting, or archiving bonuses.

Additionally, this submodule includes:

* **An option to archive and bulk archive bonuses**, ensuring effective bonus lifecycle management.
* **A "Create New Bonus" button** for setting up and configuring new promotional campaigns.

<figure><img src="/files/R1aZUQgDrM9jp7p9Ydvc" alt=""><figcaption></figcaption></figure>

### **1.1 Creating a New Bonus**

When creating a new bonus, the process consists of **five steps**:

1. **General**
2. **Eligibility**
3. **Awarding**
4. **Wagering Requirement**
5. **Liability**

<figure><img src="/files/ugMi19TF436aOXQBApT8" alt=""><figcaption></figcaption></figure>

#### **1.1.1 Fields in the General Information Step**

The **first step (General)** requires operators to provide the fundamental details of the bonus.

\- **Code (Required)** – A unique identifier for the bonus.\
\- **Name (Required)** – The official name of the bonus.\
\- **Product Type (Required)** – Select the product this bonus applies to (e.g., Sportsbook, Casino, Live Casino, etc.).\
\- **Exclude Game (Optional)** – Allows operators to **exclude certain game segments from contributing to the bonus progression**. Any game selected here **will not** count towards the wagering requirement.\
\- **Category (Required)** – Defines the type of bonus (e.g., **First-Time Deposit, Free Bet, Rebate**).\
\- **Start date (Required) & End Date** – Determines the **active period** of the bonus. If no end date is set, the bonus will remain active indefinitely.\
\- **Redeem Bonus In (Days)** – Specifies the **validity period** in which the player must redeem the bonus.\
\- **Expire On** – Sets the exact date the bonus will expire if unused.\
\- **Status (Required)** – Three options:

* **Inactive** – The bonus is disabled and cannot be claimed
* **Active** – The bonus is live and available for players to claim.
* **Draft** – Saves the bonus as a draft for future editing.\
  \- **External Use** – When enabled, the bonus can be utilized through **third-party integrations**, such as **FastTrack or Customer.io**, to allow external platforms to apply the bonus to users.\
  \- **Internal Programs** – Specifies if the bonus is **for internal promotional campaigns, tournaments** only.\
  \- **Description (Required)** – A brief explanation of the bonus.\
  \- **Promotion Code (Required)** – A unique code that can be **used on the front end** to apply the bonus. Operators can either enter a custom code or generate a **random code** using the provided button.

At the bottom, users have the options to:\
**Cancel** – Exit the process without saving.\
**Next** – Proceed to **Step 2: Eligibility**

<figure><img src="/files/D5SDbYPCZ55THdW2AdIG" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ZqrqjosPO74tbDMNh1IA" alt=""><figcaption></figcaption></figure>

#### **1.1.2 Step 2: Eligibility** – Configuring Bonus Eligibility Criteria

The **Eligibility step** defines **which players qualify for the bonus** based on **currencies, VIP levels, and player segments**. This ensures that only the targeted audience can claim the promotion.

#### **Fields & Options in the Eligibility Step**

\- **Currencies** – Specifies the **eligible currency/currencies** for this bonus. Players must have an account in the selected currency to qualify.

*Example: In this case, **EUR is selected**, meaning only players with EUR accounts can claim the bonus.*

\- **VIP Levels** – Allows selecting specific **VIP tiers** eligible for the bonus.

* Operators can **check or uncheck VIP levels** to customize eligibility.
* If a VIP level is **unchecked**, players in that tier will not qualify for the bonus.

*Example: Most VIP levels are selected here, except **Black Ultra**.*

\- **Segments** – Defines **player segmentation rules** for bonus eligibility.

* **Dropdown Selection** – Operators can select **specific player segments**.
* **“In Any” vs. “In All” Options**:
  * **“In Any”** – Players need to be in **at least one** of the selected segments to qualify.
  * **“In All”** – Players must be in **every** selected segment to be eligible.
* You can **skip** the step as well

<figure><img src="/files/1RAutf5qpz2JZOpa6bXG" alt=""><figcaption></figcaption></figure>

#### **1.1.3 Step 3: Awarding**

The **Awarding step** determines how and when the bonus is given to players. This section consists of three key components: **Awarding Type, Awarding Condition, and Bonus Amount Setup**.

**Awarding Type**

This section defines how the bonus is distributed:

* **Automatic** – The system automatically grants the bonus once the player meets the set conditions.
* **Manual** – The bonus must be manually awarded by an admin from the backoffice.

Additionally, operators can configure:

* **Multiple Instances** – Allows players to claim the same bonus multiple times. If a player claims the same bonus again while another is active, it will be marked as "Pending" until the previous one is cleared or canceled.
* **Recurrence Selection** – Determines how often the bonus can be claimed (Daily, Weekly, Monthly, or None).
* **Recurrence Limit** – Specifies the total number of times a player can successfully claim this bonus. A value of **0** means unlimited claims.

<figure><img src="/files/NaHL6g2qU4HBfJByqw1R" alt=""><figcaption></figcaption></figure>

**Awarding Condition**

The **Awarding Condition** defines the requirements that must be met before a player can receive the bonus.

* **Program Type:**
  * **Standard** – The bonus follows the general bonus awarding process.
  * **Refer Friend** – A referral-based program where the system determines whether the referrer or referee gets the bonus. Operators can set referral limits and configure referral-based bonuses separately.
* **Condition Type:**
  * **Deposit** – Bonuses triggered by player deposits (e.g., First Deposit Bonus, Reload Bonus).
  * **Minimum/Maximum Gameplay (Wager/Win/Loss/Rakeback)** –
    * **Wager** – Bonus based on total bet amount.
    * **Win** – Bonus based on total winnings.
    * **Loss** – Bonus based on total losses.
    * **Rakeback** – Bonus calculated using: Wagers\*House Edge\*Rakeback% (House Edge= 100%-RTP%)
  * **KYC Verified** – Bonus is awarded when a player successfully completes KYC verification.
  * **Signup** – Bonus is granted upon successful signup or first deposit.
  * **VIP Upgrade** – Bonus is triggered when a player reaches a specific VIP level. Multiple levels can be selected.
* **Payment Options:**
  * Determines which payment methods qualify for the bonus. If left blank, all payment methods will be eligible.
* **Difference for Each Currency:**
  * The system can handle currency-specific bonuses, ensuring that the correct equivalent is applied based on real-time exchange rates. The base currency is set during project setup and cannot be changed later.
* **Deposit Limits:**
  * **Minimum Deposit & Maximum Deposit** – Specifies the deposit amount range required to trigger the bonus.
  * **Deposit Number** – Determines how many deposits a player needs to make before receiving the bonus. The operator can select:
    * **“>” (Greater than)** – The player must make more than the specified number of deposits.
    * **“=” (Equal to)** – The player must make exactly the specified number of deposits.

<figure><img src="/files/83eKtqxQqEZOGD0VqRad" alt=""><figcaption></figcaption></figure>

**Bonus Amount Setup**

The **Bonus Amount Setup** section allows operators to configure how the bonus is awarded and any additional bonus types included.

* **In-Game Reward** – If enabled, the bonus will be credited as in-game rewards rather than a standard balance bonus.

<figure><img src="/files/VrJ9WIuji0OkadRrVjt6" alt=""><figcaption></figcaption></figure>

**Award As:**

* **Fixed Amount** – The bonus is awarded as a fixed sum, regardless of the player's deposit amount.
* **% of Amount** – The bonus is calculated as a percentage of the player's deposit or wager amount. If selected, operators must define:
  * **Percentage of Amount** – The percentage of the deposit or wager to be awarded as a bonus.
  * **Maximum Bonus Amount** – The highest possible bonus a player can receive.

<figure><img src="/files/jRL9JtJdFYCIKXmFXFym" alt=""><figcaption></figcaption></figure>

* **Difference for Each Currency** – Ensures the correct bonus amount is awarded based on the player’s selected currency. The system automatically converts the values using exchange rates.
* **Max Wager Amount (per transaction)** – The maximum amount a player can wager per transaction when using this bonus. The bet transaction will be failed when the player place bet in bonus wallet with bet amount greater than the maximum amount.
* **Exclude Game Segments** – Allows operators to specify game segments where the bonus **cannot** be used.
* **Player Claim Manually:**
  * **Apply Bonus as Pending** – When enabled, the bonus will not be activated immediately. Players must manually claim it.
  * **Allow Addon Bonuses** – If enabled, players can receive **additional addon bonuses** alongside this bonus. The operator can select from a predefined list of available addon bonuses.

Once all the bonus amount settings are configured, the operator can proceed to **Step 4: Wagering Requirement**.

<figure><img src="/files/sE9Yr98CmMCTMTPcaaEY" alt=""><figcaption></figcaption></figure>

#### **1.1.4 Step 4: Wagering Requirement**

The **"Bonus has wagering requirement"** option can be **unchecked** if the bonus does not require any wagering, allowing players to withdraw winnings without restrictions. However, if the option is **selected**, the following configurations must be set to determine the wagering conditions.

**Fields & Configurations**

\- **Wagering Multiplier**

* Specifies how many times the bonus amount (deposit + bonus or deposit) must be wagered before withdrawal is allowed.
* Example: If the multiplier is **x10** and the bonus is **€50**, the player must wager **€500** before cashing out.

\- **Multiply To**

* Defines what the wagering requirement applies to:
  * **Deposit** – The wagering applies only to the deposit amount.
  * **Deposit + Bonus** – The wagering applies to the total of deposit and bonus.
  * **Bonus** – The wagering applies only to the bonus amount.

\- **Game Segment**

* Allows selecting specific **game types** that contribute to fulfilling the wagering requirement (e.g., Slots, Live Casino, Sports).

\- **Bonus Engine Type**

* **Simple Bonus Engine** – The **Simple Bonus Engine** creates a **Bonus Wallet**, and players claim bonuses directly into this wallet.

***Fund Deduction Order**:*

*Main Wallet → Bonus Wallet*

*Winnings will be credited to whichever wallet was used for gameplay.*

*If both the **Main Wallet** and **Bonus Wallet** are used, **winnings will be split proportionally** based on the wagered amount from each wallet.*

*This engine offers a **more flexible approach**, allowing bonus funds to be used alongside the main balance.*

* **Locked Bonus Engine** – The **Locked Bonus Engine** creates a **Locked Wallet** and a **Bonus Wallet**, ensuring that bonus funds remain restricted until wagering conditions are met.

***Fund Deduction Order**:*

*Locked Wallet → Main Wallet → Bonus Wallet*

*Winnings will be credited to the **same wallet** used for the game bet, with exceptions:*

*If a **Locked Wallet** is used, winnings **will not** exceed the initial locked amount. Any excess winnings will be moved to the Bonus Wallet.*

*If multiple wallets are used for a single bet, **winnings will be credited to the Bonus Wallet**.*

***Bonus Cancellation Impact**:*

*Cancelling the bonus **forfeits the remaining bonus balance**.*

*If wagering conditions are met, funds from the **Locked Wallet** and **Bonus Wallet** will transfer to the **Main Wallet**.*

*This engine is **more restrictive** but ensures that bonus funds are fully wagered before withdrawal.*

\- **Exclusion Settings**

* **Cash Out** – If checked, players **cannot use cash-out options** to bypass wagering.
* **Odds Below** – Prevents **low-odds bets** from contributing to the wagering requirement.
* Example: If the **odds restriction** is set to **Decimal 1.5 / American -200**, wagers placed below these odds won’t count.

\- **Max Claimable Amount**

* Defines the maximum **withdrawable amount** from the bonus.
* Example: If set to **€100**, even if a player wins **€500**, only **€100** can be withdrawn.

Once all wagering settings are configured, click **"Next"** to proceed to **Step 5: Liability**.

<figure><img src="/files/SGMhrEBJtzxBRoyUcHKU" alt=""><figcaption></figcaption></figure>

#### **1.1..5 Step 5: Liability**

The **Liability step** allows operators to set **bonus limits** to control the total number of bonuses awarded and the maximum amount that can be distributed. These limits help manage financial risk and prevent excessive bonus distribution.

#### **Fields & Configurations**

\- **Limit Bonus (Checkbox)**

* If **checked**, the operator can set limits on the total number of bonuses awarded and the maximum amount allocated.
* If **unchecked**, no limits will be applied, and the bonus will be available without restrictions.

\- **Total Number of Awarded Bonus(es)**

* Defines the **maximum number of times** this bonus can be awarded across all eligible players.
* Example: If set to **1000**, only **1000 players** can claim the bonus before it becomes unavailable.

\- **Limit Amount (Currency-Specific)**

* Defines the **maximum total amount** allocated for this bonus.
* Operators can set different limits based on **currency selection** (e.g., NZD, AUD).
* Example: If set to **NZD 10,000**, once this amount is reached, no further bonuses will be issued.

Once configured, click **"Submit"** to complete the bonus creation process.

<br>

<figure><img src="/files/zAZcaCyBKegroSASqnQT" alt=""><figcaption></figcaption></figure>

### **1.2 Bonus List – Additional Functionalities**

After creating a bonus, all bonuses are listed in the **Bonus List** section, where you can manage, edit, or archive them.

**Managing Bonuses in the List**

**Archived Bonuses**

* The **"Archived"** toggle allows you to switch between viewing **active** and **archived** bonuses.
* You can also **bulk archive** multiple bonuses using the **Bulk Archive Bonus** button.

**Actions** (Located under the "Action" column)\
Each bonus has several action buttons that allow quick management:

* **🖊 Edit (Pen Icon)** – Modify an existing bonus.
* **👁 View (Eye Icon)** – Open the bonus details in read-only mode.
* **📄 Clone (Copy Icon)** – Duplicate an existing bonus to create a similar one quickly.
* **🗑 Delete (Bin Icon)** – Remove the bonus from the list.
* **🅳 Deactivate (D Icon, for Active Bonuses Only)** – If a bonus is **active**, you must **deactivate it first** before making any changes. Once edited, it can be **re-activated**.

## **2. Bonus Histories**

The **Bonus Histories** submodule provides a detailed record of all issued bonuses, including their status, type, and processing history. This section is essential for tracking **bonus distribution, user claims, and processing actions**.

#### **Search & Filtering Options**

At the top of the page, administrators can **search and filter** bonuses using various criteria:

* **Bonus Issuance Period** – Filters bonuses based on the date they were issued.
* **Expiry Dates** – Displays bonuses that are set to expire within a selected timeframe.
* **Product Type** – Selects the type of product (e.g., **Slots, Live Casino, Sports**).
* **Game Provider** – Filters based on specific game providers.
* **Username** – Search by **player username**.
* **Status** – Filters bonuses based on their **processing status** (e.g., Completed, Canceled, Processing).
* **Awarding Condition Type** – Filters bonuses based on how they were awarded.
* **Currency Selection** – Displays bonuses in a specific currency.
* **Additional Filters**:
  * **Include Accumulate Program** – If checked, includes bonuses related to accumulation programs.
  * **Include Tournament Program** – If checked, displays bonuses linked to tournaments.

#### **Bonus History List**

Below the search panel, the **Bonus History List** provides an overview of all **issued bonuses**. The table includes:

* **ID** – Unique identifier for each bonus record.
* **Bonus Code** – The assigned bonus code for tracking.
* **Product Type** – The type of product for which the bonus was issued (Slots, Live Casino, Sports, etc.).
* **Award Type** – Specifies whether the bonus is **Automatic or Manual**.
* **Award Condition** – Displays the condition under which the bonus was awarded (e.g., Deposit-Based, Signup Bonus).
* **Username** – The **player’s username** who received the bonus.
* **From Deposit** – If applicable, shows the deposit amount that triggered the bonus.
* **Bonus Amount** – The total value of the bonus issued.
* **Status** – The **current status** of the bonus:
  * **Completed** – The bonus has been successfully issued.
  * **Canceled** – The bonus was canceled and not applied.
  * **Processing** – The bonus is still pending and requires action.
  * **Expired** - The bonus has reached its expiration time and is no longer valid.
  * **On Hold** - Bonus FreeSpin is active and waiting for the player to complete the FreeSpins.
* **Created At & Expire At** – The date the bonus was created and its expiration date.
* **Processed By** – Indicates whether the bonus was processed by an **Admin or System**.

#### **Managing Bonuses in the History List**

Under the **Action** section, different options are available based on the **bonus status**:

\- **For All Bonuses:**

* **Show (Eye Icon)** – Opens a detailed view of the bonus.

\- **For "Processing" Status Bonuses:**

* **Complete (Check Icon)** – Manually **mark the bonus as completed** to finalize its issuance.
* **Cancel (Bin Icon)** – Cancel the bonus entry from the list.

\- **Exporting Bonus Data:**

* The **Export** button (top-right corner) allows you to **download the bonus history records** for reporting and analysis.

<figure><img src="/files/VQQ2qTG0K6Zk4nIj8SMV" alt=""><figcaption></figcaption></figure>

## **3. Bonus Categories**

The **Bonus Categories** submodule allows administrators to organize and manage different types of bonuses based on predefined categories. This helps in structuring promotional offers and makes it easier to filter and configure new bonuses.

On the **Bonus Category List** page, users can:

* **Search** for an existing category using the search bar.
* **View** the list of available categories with key details such as:
  * **ID**: The unique identifier of the bonus category.
  * **Name**: The category name.
  * **Code**: The internal code used for reference.
  * **Status**: Indicates whether the category is **Active** or not.
  * **Created At / Updated At**: The timestamps for when the category was created or last updated.
* **Edit** an existing category using the **pen/edit icon** under the **Action** section.
* **Create a New Bonus Category** using the **“ADD BONUS CATEGORY”** button at the top right.

<figure><img src="/files/Juhoav5KbOW653uoIFKD" alt=""><figcaption></figcaption></figure>

### **3.1 Adding a New Bonus Category**

When clicking on **"ADD BONUS CATEGORY"**, users will be redirected to a new page where they need to provide the following details:

1. **Name** – Enter the category name.
2. **Code** – Define a unique category code.
3. **Status** – Toggle the status to **Active** or leave it inactive.
4. **Submit** – Once all details are filled in, click **Submit** to save the category.

<figure><img src="/files/MP1fWFM3ltJRdUnY2ec5" alt=""><figcaption></figcaption></figure>

## **4. Loyalty Program Submodule Overview**

The **Loyalty Program** submodule allows the operator to enable and manage a structured rewards system for players based on their activity. Players can progress through various **VIP Levels**, each with different benefits and earning rates.

**Main Features:**

1. **Enable Loyalty Program** – The toggle option activates or deactivates the Loyalty Program for players.
2. **VIP Levels** – Various predefined levels (Starter, Bronze, Silver, Gold, Platinum, Diamond, etc.) can be assigned to players based on their activity.<br>

   <figure><img src="/files/Ji6O7pLUf8K4STnTqIzi" alt=""><figcaption></figcaption></figure>
3. **Bet Amount Conversion** – Defines how betting activities convert into loyalty points across different product categories:
   * **Slots:** Players earn a set number of points per currency wagered.
   * **Live Casino:** A separate conversion rate applies for bets in live casino games.
   * **Sports:** Betting on sports events also has its own points conversion rate.
   * **Game Type Overriding:** Specific game types can have different earning rates if required.<br>

     <figure><img src="/files/XPAp1neTSzv18Azb1nVE" alt=""><figcaption></figcaption></figure>
4. **Deposit Amount Conversion** – The system can also reward players based on deposit activity, where deposited amounts translate into loyalty points.
5. **Point Expiry Settings -** If a player does not have any **bet transactions** or **deposit transactions** within a specified time frame, their accumulated loyalty points will expire.<br>

   <figure><img src="/files/Z0AZuidDCqeMyiwiv7a0" alt=""><figcaption></figcaption></figure>
6. **Excluded Games Configuration** – Some games can be excluded from loyalty point calculations. The operator can select games to be excluded by:\
   1\. **Filtering by Product Type, Game Type, or Game Provider**\
   2\. **Manually selecting specific games to exclude**

<figure><img src="/files/G2ZPRFJPsCsjRs1hum72" alt=""><figcaption></figcaption></figure>

## **5. Rebate Program**

The **Rebate Program** allows operators to set up automated rebate bonuses for players based on specific schedules. Operators can toggle this option ON/OFF to activate or deactivate the rebate program.

**Key Features:**

1. **Enable Rebate Program:**
   * Operators can toggle this option ON/OFF to activate or deactivate the rebate program.
2. **Exclude Bonus Previously Issued:**
   * When enabled, this setting ensures that players do not receive the same bonus multiple times within a set period.
3. **Rebate Scheduling:**
   * Operators can configure rebate bonuses to be distributed on a **daily, weekly, or monthly** basis. Each frequency has its own configuration settings:
     * **Daily Rebate:**
       * Set a specific **time** when the system will automatically issue the rebate bonus.
       * Select the **bonus type** from the available list.
     * **Weekly Rebate:**
       * Choose a **specific day of the week** and the exact **time** for rebate issuance.
       * Assign a **bonus type** for the weekly rebate.
     * **Monthly Rebate:**
       * Select a **specific date** and **time** within the month for bonus distribution.
       * Assign a **bonus type** for the monthly rebate.

**How It Works:**

* The system automatically processes and credits the assigned bonus at the scheduled time.
* Operators can modify or remove scheduled rebates as needed.

<figure><img src="/files/zkPfYEujTW9FKF1ZCLgu" alt=""><figcaption></figcaption></figure>

## **6. Refer-Friend Program**

The **Refer-Friend Program** allows operators to reward users for referring new players to the platform. Bonuses are issued based on user actions or a scheduled distribution.

**Key Features:**

1. **Enable Refer-Friend Program:**
   * This toggle enables or disables the referral bonus system.
2. **Action-Based Bonuses:**
   * Bonuses will be given to users once they meet the referral criteria (e.g., a referred friend signing up, depositing, or reaching a certain VIP level).
   * Operators can select the **bonus type** to be issued under this condition.
3. **Scheduled Bonus Distribution:**
   * Bonuses can be automatically credited on a scheduled basis, similar to the **Rebate Program**.
   * The available scheduling options include:
     * **Daily:**
       * Operators can set a **specific time** for the system to issue referral bonuses daily.
     * **Weekly:**
       * Choose a **specific day of the week** and **time** for distributing referral bonuses.
     * **Monthly:**
       * Select a **specific date** and **time** in the month when referral bonuses will be credited.

**How It Works:**

* The system automatically processes and issues referral bonuses based on the selected trigger (user action or schedule).
* Operators can modify, adjust, or disable any scheduled bonuses as needed.

<figure><img src="/files/xsVjSmXy0Kguu4A7M4Fp" alt=""><figcaption></figcaption></figure>

## **7. Batch Bonus Issuance**

The **Batch Bonus Issuance** submodule allows admins to distribute bonuses to multiple users simultaneously by importing a CSV file. The process consists of three main steps:

**1. Batch Issuance Page**

* Use the search function to filter previous batch uploads by **import date**.
* Click on the **IMPORT BATCH** button to start a new batch bonus issuance.<br>

  <figure><img src="/files/8DrnAulRmukp2EXERIC7" alt=""><figcaption></figcaption></figure>

**2. Uploading the Batch File**

* Click on **IMPORT BATCH** and download the **template**.
* Fill in the required details in the template
* Upload the completed CSV file (maximum file size: **2MB**, max **200 records** per batch).

**3. Reviewing and Completing the Issuance**

* After uploading, the system will **validate** the file.
* The system displays:
  * Successfully processed records.
  * Failed records (if any).
* If everything looks good, proceed with **completion**.

**4. Managing Uploaded Batches**

* The uploaded batches are listed in the **Bonus List** section.
* Each batch displays:
  * **File Name**
  * **Status** (Success, Failed, Processing)
  * **Success/Failed Counts**
  * **Bonus Amount**
  * **Created By & Date**

<figure><img src="/files/wPl4kTeSohrvAAAddElh" alt=""><figcaption></figcaption></figure>

## **8. Accumulate Programs**

The **Accumulate Bonus Programs** section allows admins to set up and manage programs that reward users based on accumulated activity. These programs track specific user actions (such as deposits, bets, or losses) over a defined period and award bonuses accordingly.

**1. Searching for an Accumulate Bonus Program**

At the top of the page, you can use the **search filters** to find specific programs based on:

* **Code** – Unique program identifier.
* **Name** – Program name.
* **Category** – The category assigned to the program (e.g., First Time Deposit, Reload etc.).
* **Created Date Period** – Filter by the date when the program was created.
* **Awarding Condition** – Search based on the conditions set for accumulating bonuses.
* **Status** – Filter by the program’s current status (Active, Inactive, Unfinished, etc.).

Once the criteria are set, click **Search** to find matching programs or **Reset** to clear filters.

<figure><img src="/files/afIP0QegVv6aiE0WWefi" alt=""><figcaption></figcaption></figure>

**2. Program List**

Below the search filters, the **Program List** displays all available accumulate bonus programs with key details:

* **ID** – Unique identifier for each program.
* **Name** – The given name of the program.
* **Code** – The unique code assigned to the program.
* **Status** – Indicates if the program is **Active, Inactive, Draft, Expired or Unfinished**.
* **Category** – The type of program (e.g., Reload, Cashback, Daily Bonus, etc.).
* **Start & End Date** – The period during which the program runs.
* **Created At & Created By** – Timestamp and creator of the program.
* **Updated At & Updated By** – Timestamp and the user who last modified the program.

**3. Actions Available**

Under the **Action** column, users can manage accumulate bonus programs with the following options:

* **Edit (Pen Icon)** – Modify program settings.
* **View (Eye Icon)** – View the details of the program.
* **Deactivate (D Icon)** – If the program is active, clicking this will **deactivate** it. Any modifications to active programs require deactivation first.
* **Activate (A Icon)** – If the program is inactive, clicking this will **activate** it.
* **Clone (copy Icon)** – clone the program.

<figure><img src="/files/YspGSTNTmeexet1j2lD7" alt=""><figcaption></figcaption></figure>

### **8.1 Creating a New Program**

To create a new accumulate bonus program, click the **CREATE NEW PROGRAM** button. This will open the program setup process, which we will cover in the next section.

<figure><img src="/files/FU5T7yMA68n91orKI0ue" alt=""><figcaption></figcaption></figure>

#### **8.1.1 Step 1: General Information**

In this section, you set up the basic details of the accumulated bonus program. Below are the key fields and their purposes:

* **Code (Required):** A unique identifier for the program.
* **Name (Required):** The program’s display name.
* **Product Type (Required):** Select the type of product this bonus applies to.
* **Exclude Game:** If needed, select game segments that should not contribute to the accumulation process.
* **Category (Required):** Assign the bonus to a relevant category, such as "First Time Deposit" or "Reload."
* **Start Date & End Date:** Define the validity period for the accumulation.
* **Redeem Bonus In:** Set the duration in days for the user to redeem the accumulated bonus.
* **Expire On:** Specify the exact date the program expires.
* **Status (Required):** Choose from:
  * **Inactive** – The program is created but not active.
  * **Active** – The program is live and can be used.
  * **Draft** – The program is still in preparation.
* **Description (Required):** Provide details about the bonus program for reference.

Once all details are filled in, click **Next** to proceed to **Step 2: Eligibility**.

<figure><img src="/files/sO4Y540mHe5pzL7ynwOC" alt=""><figcaption></figcaption></figure>

#### **8.1.2 Step 2: Eligibility**

In this step, you define which users are eligible to participate in the accumulation program.

**VIP Levels**

* Select the VIP levels that will be eligible for the program.
* Users within the selected VIP levels will be able to accumulate rewards.

**Boosted VIP Levels**

* These are additional VIP levels that may receive **enhanced benefits** within the program.
* If selected, users in these tiers may receive increased accumulation rates.

**Segments**

* **"In Any"**: The user qualifies if they belong to at least one of the selected segments.
* **"In All"**: The user must belong to all selected segments to qualify.
* **"Not In"**: Users in the selected segments will be **excluded** from participation.

Once eligibility rules are set, click **Next** to proceed to **Step 3: Awarding**.

<figure><img src="/files/IiwXex72RuYOAvFjM2mQ" alt=""><figcaption></figcaption></figure>

#### **8.1.3 Step 3: Awarding Setup**

In this step, users configure how the accumulation bonus is awarded.

**Scheduling Setup**

If selected, the program will run on a scheduled basis rather than being triggered by real-time actions.

* **Period Type:** Users can choose between:
  * **Daily**
  * **Weekly**
  * **Monthly**
* **Scheduled At (UTC):** Defines the exact time the program runs.
* **Last Claim In:** Specifies the time window (in hours) within which users can claim the bonus.
* **Rolling Setup:** If selected, the program runs based on rolling days instead of fixed periods.

<figure><img src="/files/jSUZWvKKOmbDlUju7VjW" alt=""><figcaption></figcaption></figure>

**Program Type**

* **Standard**: Bonus is awarded normally based on configured conditions.
* **Refer Friend**: The bonus is triggered based on the referral system.

**Condition Type**

Users can choose from different **Condition Types** to set up their bonus rules. Available options include:

* **Wager** – Based on the total amount wagered.
* **Win** – Based on the player's total winnings.
* **Loss** – Based on the player's total losses.
* **Rakeback** – Based on the rake collected in games like poker.
* **VIP Upgrade** – Rewards players when they reach a new VIP level.

Each condition type has its **Condition Setup** block where users can define specific parameters.

**Bonus Limit Setup**

This section allows users to set limits on awarded bonuses:

* **Limit Amount** – The maximum bonus amount that can be awarded..

**Max Wager Amount (Per Transaction)**

* This defines the highest amount a player can wager in a single transaction when using the **bonus wallet**.
* **Important Note:** If a player tries to place a bet from their **bonus wallet** that exceeds the **Max Wager Amount**, the transaction **will fail**.

**Exclude Game Segments**

* Users can **exclude** certain game segments from bonus eligibility.
* If a segment is excluded, wagers placed in those games will **not** contribute to meeting bonus conditions.

<figure><img src="/files/385l91sBRVJeLm4kqpnP" alt=""><figcaption></figcaption></figure>

#### **8.1.4 Step 4: Wagering Requirement**

In this step, users can **either skip** the wagering requirement or **enable it** and configure the necessary settings.

**Wagering Multiplier**

* This defines how many times the bonus must be wagered before it becomes withdrawable.
* Example: If the **Wagering Multiplier** is set to **1x**, the player must bet the bonus amount **once** before it can be withdrawn.

**Multiply To**

* Users can decide whether the wagering requirement applies to:
  * **Deposit** – The requirement is based on the deposited amount.
  * **Bonus** – The requirement is based on the received bonus amount.
  * **Deposit + Bonus** – The requirement applies to both.

**Game Segment**

* Users can select specific **game segments** where wagering will be counted.
* If no game is selected, the requirement applies to all games.

**Exclude Options**

* **Cash Out** – If selected, **cashed-out bets will not count** towards wagering.
* **Odds Below** – Bets placed at odds below the selected thresholds will **not** count towards meeting wagering requirements.
  * Example: If Decimal **1.5** is selected, bets below **1.5 odds** won’t count.

**Max Claimable Amount**

* Users can set a limit on how much can be claimed from the bonus.
* If the player's winnings exceed this amount, they will **not** be able to withdraw the extra funds.

<figure><img src="/files/dlx2eT7MDpSXLltzOdPe" alt=""><figcaption></figcaption></figure>

## **9. Referral Program**

### **9.1 Formula Management**

The **Formula Management** section allows users to manage reward plan formulas efficiently. This section includes a list of formulas with details such as **Formula Name, Formula Expression, Status, Creation Date, and Actions**.

**Managing Reward Plan Formulas**

1. **Search and Filter**
   * Users can search for a specific formula by entering a **name, created date** or selecting a **status**.
   * The list displays all existing reward plan formulas with their respective **ID, Name, Formula, Status, Created At, Created By, and Updated At** fields.
2. **Actions Available**
   * Users can **update** a formula by clicking on the ✏️ (pen) icon.
   * Users can set the formula as **default**.
   * Users can **delete** a formula by clicking on the 🗑️ (trash) icon.
   * If a formula is active, users can **deactivate** it using the **"D" button**.

<figure><img src="/files/LgGMyHXHcXljn0x5O0td" alt=""><figcaption></figcaption></figure>

#### **9.1.2 Adding a New Reward Plan Formula**

To create a new reward plan formula, follow these steps:

1. Click the **"ADD REWARD PLAN FORMULA"** button.
2. A pop-up form appears where the following details must be filled out:
   * **Name** *(Required)* – Enter the formula name.
   * **Formula Expression** *(Required)* – Define the formula using supported variables and operations.
   * **Supported Variables** include:
     * ${total\_bet\_amount}
     * ${total\_real\_bet\_amount}
     * ${total\_payout\_amount}
     * ${total\_real\_payout\_amount}
     * ${total\_bonus}
     * ${total\_rakeback}
     * ${total\_bonus\_redeemed}
     * ${total\_balance\_correction}
3. **Set Active Status** – Toggle the switch to enable or disable the formula.
4. Click **"Submit"** to save the formula.

### **9.2 Referral Plan**

The **Referral Plan** section allows users to manage and configure various referral plans within the system. This section includes a list of existing referral plans along with details such as **Referral Plan Name, Status, Created At, Created By, Updated At, and Available Actions**.

1. **Understanding Referral Plan List**
   * Each plan is assigned an **ID** and **status**:
     * **Active** – Currently in use.
     * **Inactive** – Not in use but can be activated.
     * **Unfinished** - Is unfinished.
2. **Actions Available**
   * **View Details** (👁️) – Review the plan's full details.
   * **Update Plan** (✏️) – Modify the existing plan settings.
   * **Clone Plan** (📄) – Duplicate an existing plan for quick adjustments.
   * **Deactivate Plan** (D) – If a plan is active, users can deactivate it.
   * **Activate Plan** (A) – If a plan is inactive, users can activate it.

<figure><img src="/files/kgqomYAqH0SbbMqaBFb3" alt=""><figcaption></figcaption></figure>

### 9.3 Referral Plan Creation Steps

<figure><img src="/files/KP0ALNj47GaEIkUhHkoi" alt=""><figcaption></figcaption></figure>

#### **9.3.1 Step 1: General**

This step defines the basic details of the referral plan. Users need to enter:

* **Name** (Name of the referral plan)
* **Formula Based** (Select a predefined formula)
* **Settlement Period** (Options: Daily, Weekly, Monthly)
* **Scheduled Time** (In UTC format)
* **Status** (Toggle between Active or Inactive)
* **Select Eligible Games** (Choose game segments for eligibility)
* **Exclude Options**:
  * **Cash Out**
  * **Odds Below** a specified threshold (e.g., Decimal 1.5, American -200, etc.)

Once all fields are filled, click **Next** to proceed.

<figure><img src="/files/F3jYKgn6ixEMPbF1SjTR" alt=""><figcaption></figcaption></figure>

#### **9.3.2 Step 2: Tiers Setup**

In this step, users must define the different **tiers** for referrals.

* If tiers already exist, users can **select from the list**.
* If no tiers exist, users can create new ones by clicking **"Add Tiers"**.

<figure><img src="/files/hE3ytOKipQx0sh0m84Ii" alt=""><figcaption></figcaption></figure>

**Creating a New Tier**

To add a tier, users need to fill out:

* **Name**
* **Status** (Active/Inactive)
* **Conditions**:
  * Add rules (e.g., Number of Referees, Turnover, Vip Level)
* **Awarding**:
  * **Fixed Amount** (Enter a specific amount)
  * **Percentage-Based** (Set a percentage)
* **Advanced Options**:
  * **Order** (Set tier order)
  * **CMS Code** (Optional)

Click **Submit** to save the tier and return to the setup screen.

Once tiers are selected or created, click **Next** to continue.

#### **9.3.3 Step 3: Wagering Requirement**

In this step, users can configure the wagering requirement for referral bonuses.

* **Enable/Disable** wagering requirement
* **Wagering Multiplier** (Set a multiplier like 1x, 5x, etc.)
* **Game Product Type** (Slots, Live, Sport)
* **Select Game Segment** (Define which game segments contribute to wagering)
* **Exclusions**:
  * **Cash Out**
  * **Odds Below** a specified value (e.g., Decimal 1.5, American -200, etc.)
* **Max Claimable Amount** (Set a maximum amount that can be claimed)

After configuring the wagering requirement, click **Submit** to finalize the referral plan.

<figure><img src="/files/TrlARHC8qetLyKXdElht" alt=""><figcaption></figcaption></figure>

## **10. Quests**

The **Quests** submodule allows you to create and manage gamified tasks for players, where they can complete specific conditions and claim rewards such as bonuses or physical gifts. This tool is useful for increasing player engagement and loyalty.

### 10.1: **Quests List**

This is the main section where you can view, filter, and manage all created quests.

**Search & Filter:**

* **Created Date Period** – Filter quests by creation time
* **Quest Code** – Search by unique quest code
* **Quest Name** – Search by name
* **Status** – Filter by Active, Completed, Inactive, etc.

**Quest List Table:**

Displays a list of all created quests with the following columns:

* **ID**
* **Name**
* **Code**
* **Players**
* **Status**
* **Start Date / End Date**
* **Created At / Updated At**
* **Created By / Updated By**
* **Action Buttons**:
  * View
  * Edit/update
  * Duplicate
  * Activate/Deactivate

<figure><img src="/files/L9JVRicXgQD5LIeit96h" alt=""><figcaption></figcaption></figure>

### **10.2 Create Quest for Player(s)**

#### Create New Quest / Create Quest for Player(s)

Both buttons lead to a 3-step wizard-style quest creation flow.\
The only difference: **“Create Quest for Player(s)”** lets you select specific users for targeted delivery.

<figure><img src="/files/kTdKbxsfdV0RgaYy15g4" alt=""><figcaption></figcaption></figure>

#### **10.2.1 Step 1: General**

Set the basic information and triggering condition of the quest.

* **Code** *(required)*
* **Name** *(required)*
* **Recurrence**: None / Daily / Weekly / Monthly
* **Start / End Date**
* **Conditions** *(required)* – Currently supports:
  * **Turnover**
  * **Deposit**

<figure><img src="/files/oxexkhOTbJvvPHDhxupy" alt=""><figcaption></figcaption></figure>

#### **10.2.2 Step 2: Eligibility**

Define who is eligible to participate in the quest.

* **VIP Levels** – Select any applicable levels
* **Boosted VIP Levels** – Separate toggles for boosted users
* **Segments**:
  * **In Any / In All**
  * **Not In**

<figure><img src="/files/5TeKM0rI7SRhMh5SKg4x" alt=""><figcaption></figcaption></figure>

#### **10.2.3 Step 3: Rewards**

Choose what the player receives upon completion.

* **Reward Type**:
  * Bonus
  * Physical Gift
* **Select Bonus** – Choose from available bonus templates
* **Last Claim In** – Set claim window (in hours)

<figure><img src="/files/Tb2vxcsPKkGFtxfH3tkR" alt=""><figcaption></figcaption></figure>

### **10.3 Players Quests**

The **Player Quests** section is designed to monitor and manage individual player progress within assigned quests. It gives admins full visibility into which players are participating in which quests, their current progress, status, and outcomes.

**Search Panel:**

Admins can filter quests using the following search criteria:

* **Player Username** (with an optional “Exact” checkbox for precise match)
* **Quest** (dropdown to select a specific quest)
* **Status** (dropdown to filter by status such as Active, Completed, Failed, Expired)
* **Search / Reset** buttons for execution and clearing filters.

**Player Quest List:**

A table view of all player-linked quests with the following columns:

* **ID** – Auto-generated unique quest entry ID.
* **Username** – Player’s username who is assigned the quest.
* **Quest** – Name of the assigned quest (with internal ID reference).
* **Current** – Player’s current stats related to the quest (e.g. Deposit, Wager).
* **Target** – Required completion values for the quest.
* **Status** – Indicates if the quest is *Active*, *Completed*, *Failed*, *Success*, *Cancelled, In progress* or *Expired*.
* **Created At** – When the quest assignment started.
* **Updated At** – Last update timestamp for the quest status.
* **Action** – Admin controls (e.g. View, Edit, Delete).

<figure><img src="/files/k6cX7gneNSTPzp7xoV07" alt=""><figcaption></figcaption></figure>
