> 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/payments-module.md).

# Payments module

## **Overview**

The **Payments** module serves as the financial core of the Terragon Backoffice, enabling operators to monitor, manage, and process all monetary transactions, including deposits, withdrawals, manual operations, and configurations related to payment channels. Designed with clarity and control in mind, this module provides a comprehensive overview of every transaction status across different user actions and channels.

## **Scope**

The module includes the following submodules:

* [**All Payments**:](#id-1.-all-payments) Unified transaction monitoring hub
* [**Deposit List**:](#id-2.-deposit-list) Detailed view of all player deposit transactions
* [**Withdrawal List**](#id-3.-withdrawal-list): Complete list of all player withdrawal requests
* [**Manual Deposit**](#id-4.-manual-deposit): Interface to process manual deposit requests
* [**Manual Withdrawal**](#id-5.-manual-withdrawal): Interface to process manual withdrawal requests
* [**Payment Settings**](#id-7.-payment-settings): Configuration of payment gateways and rules

## **1. All Payments**

The **All Payments** section provides a centralized interface for reviewing both deposit and withdrawal transactions across the platform. It offers quick visibility into transaction status, filtering options for detailed searches, and access to export transaction records for reporting purposes.

#### **Features and Functionalities**

**Summary Panels**

At the top of the interface, four summary cards give a quick snapshot of the transaction status:

* **Pending**: Requests not yet processed
* **Processing**: Requests currently being handled
* **Success**: All successfully completed transactions
* **Declined**: Transactions that were rejected

**Filter Options**

Operators can refine search results using:

* Date range picker
* Transaction type selector (Deposit / Withdrawal)
* Player details (username or ID)
* Payment provider dropdown
* Status, currency, country filters
* Amount range fields
* Reference ID / UUID search
* Additional filters: Segment and Player Tag

#### **Transaction Table**

The lower section displays all financial transaction logs with the following data:

* **ID**: Internal reference number
* **Player Username**
* **Amount and Currency**
* **Converted USD Amount**
* **Transaction Type**: e.g., Manual Credit, Deposit
* **Payment Provider**
* **Status**: e.g., Success, Declined
* **Platform**: e.g., Desktop, Mobile Web
* **Reference ID / UUID**
* **Created By / Processed By**
* **Timestamps** for creation and processing
* **Action column** for further review or edits (eye icon for details)
* **Export Button -** Enables admins to export filtered or full transaction records in a downloadable format for auditing and tracking purposes.

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

## **2. Deposit List**

The **Deposit List** section displays all deposit transactions made by players. Admins can easily search, filter, and manage deposit records — everything from reviewing statuses to checking payment providers and player details.

This submodule helps track the full deposit journey and also allows action handling for pending requests directly within the panel.

### **2.1 Main Functionalities**

* **Top Status Cards**\
  These cards help summarize deposit performance for the current month:
  * **Pending** – Total deposits awaiting admin action.
  * **Canceled** – Deposits that were canceled before completion.
  * **Approved** – Successful and completed deposits.
  * **Declined** – Deposits that were rejected manually or failed due to issues.
* **Search & Filters**\
  You can easily search deposits by keywords or narrow them down using:

  * Deposit ID
  * Deposit Time (date range)
  * Payment Option
  * Status
  * Transaction Hash
  * Player Username / Player ID
  * Player Status
  * VIP Level
  * Reference ID
  * Refund ID
  * UUID

  *Additional filters like **VIP Level** or **UUID** can be added from the dropdown on the top right.*
* **Deposit Table** All filtered results are shown here with key information:
  * **ID** – System-generated internal ID
  * **Username** – Player’s account name
  * **Amount** – Deposit amount
  * **Deposit Method** – Payment channel
  * **Status** – Approved, Pending, Declined
  * **Reference / Tx Hash / Refund Info** – Optional fields tied to payment flow
  * **Platform** – Source (Desktop, Mobile)
  * **Player VIP / Player Status** – Level and account state
  * **Created / Processed By** – Which admin handled the deposit
  * **Action** – Button to view deposit details
* **Export Button**\
  Useful for exporting filtered lists for reporting or internal use.

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

#### **Deposit Detail View**

Clicking the “eye” icon opens the full deposit detail window, where admins can review all metadata related to the transaction.

| Field                         | Description                                    |
| ----------------------------- | ---------------------------------------------- |
| **Player Username**           | Player who made the deposit                    |
| **Deposit Amount**            | Full value of the deposit                      |
| **Status**                    | Current state – Pending, Approved, or Declined |
| **Payment Option Name**       | Deposit currency                               |
| **Payment Option Type**       | Method type – e.g., Payment Provider           |
| **Reference ID**              | External ID from payment provider              |
| **Created At / Processed At** | System timestamps for full tracking            |
| **Created By / Processed By** | Admin usernames managing the record            |
| **Payment Provider**          | The actual channel used (e.g. PaymentIQ)       |
| **Transaction UUID**          | System-generated unique ID                     |
| **Deposit Type**              | Manual or automatic                            |
| **Note**                      | Admin notes for internal reference             |

#### **Action Buttons**

At the bottom of the window:

* **Approve** – Confirms the deposit (visible only if Pending)
* **Decline** – Rejects the deposit (also only visible for Pending)
* **Close** – Exits the window without taking action

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

### **2.2 FE Deposit process**

Deposits in crypto is quite seamless in a sense that players just need to deposit to a designated address and the system proceed approval automatically.

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

## **3. Withdrawal List**

This section allows admins to manage and track all player withdrawal requests in one place. It includes a summary of statuses, a detailed filter panel, a transaction list, and action options for bulk handling.

**Summary Cards (Top Overview)**

* **Pending** – Displays the number of withdrawal requests that are still awaiting processing. Clicking this filters the list accordingly.
* **Payment Processing** – Shows withdrawals currently being processed by the system or manually.
* **Declined** – Indicates how many withdrawal requests were rejected this month.
* **Paid** – Shows the number of successfully paid withdrawal requests this month.

**Filter Panel**

Admins can refine the search using multiple filter options:

* **Withdrawal ID** – Search by unique withdrawal ID.
* **Requested Time** – Filter requests by a specific date or time range.
* **Player Username or Player ID** – Allows exact or partial search by player details.
* **Player Status** – Filter by player account status (e.g., Active, Inactive, Banned, Excluded).
* **Withdraw Status** – Select multiple statuses such as Pending, Paid, Declined, Payment Processing, or Canceled By System.
* **Payout Type** – Choose between Manual or Payment Gateway.
* **VIP Level** – Filter withdrawals by the player’s VIP level.
* **UUID** – Search using the unique transaction identifier.

**Withdrawal List Table**

Each transaction includes:

* **ID** – Unique identifier for the withdrawal.
* **Player ID** – Internal player reference number.
* **Country Code** – Player’s country of registration.
* **Player Username** – Name or email used by the player.
* **Amount** – Total withdrawal amount requested.
* **Withdraw Method** – The currency or channel used (e.g., BTC, USDT).
* **Ref ID** – External payment provider’s reference ID (if applicable).
* **Status** – Current state of the transaction (Pending, Paid, Declined, etc.).
* **Processed By** – Admin who handled the transaction.
* **Player VIP** – Player’s loyalty tier (e.g., Bronze, Silver).
* **Player Status** – Active or blocked account status.
* **Created At / Processed At** – Time and date of request and processing.
* **Platform** – Indicates where the request originated from (e.g., Desktop Web).
* **Checkbox** – Allows bulk selection of transactions for mass actions.

**Bulk Actions**

* **Bulk Proceed Payout** – All selected transactions with status "Pending" will be marked as "Payment Processing".
* **Bulk Decline** – Allows rejecting multiple pending or processing requests at once.
* **Export** – Export the current transaction list. Only available to admins with permission.

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

### **3.1 Withdrawal Detail (Popup View)**

Clicking "View" on any transaction opens the full detail page:

* **Player Username** – The user requesting the withdrawal.
* **Withdraw Amount** – Requested amount and currency.
* **Status** – Current transaction status.
* **Processed At** – Date and time of processing.
* **Withdraw By / Network** – Payment type and blockchain network used (e.g., ERC-20).
* **Address / Tag / Memo** – Information relevant to crypto withdrawals.
* **Note** – Additional admin notes regarding the transaction.
* **History Table** – Displays any added notes, timestamps, and admins involved.
* **Actions** – Admin can choose to Approve (Proceed Payout), Decline, or Close the detail view.

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

***Withdrawal with status is “Payment Processing”***

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

**Payment Gateways** - Select Payment Gateways, the fields will be displayed

* Payment Gateways: Payment gateway of choice
* Method: Payment gateway method

**Manual payout** - Selecting Manual payout will display the following fields:

* Upload Bank Slip: upload images of the bank transfer slip
* Payment Option: Select the manual payment method
* Note: Notes about payment

## **4. Manual Deposit**

This section allows the admin to manually add deposit amounts to a player's account. It's mainly used for internal adjustments, promotions, or support-related credits where automatic processing isn’t needed.

**Fields and Descriptions**

* **Player UserName** - Player Username is deposited automatically
* **Currency** - Select the currency you want to deposit
* **Payment Option** - Select a payment method
* **Amount** - Deposit amount
* **Submit** - Submit manual deposit request information
* **Cancel -** Exit the form without saving changes.

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

## **5. Manual Withdrawal**

**Fields and Descriptions**

* **Player UserName -** Player Username is withdrawaled automatically
* **Player Wallet -** Select player wallet to withdraw
* **Main balance** - The balance is in the main wallet
* **Withdraw By** - Withdraw method. Depending on the wallet the player chooses, fiat currency or cryptocurrency, there will be a corresponding method
* **Player Bank/Account** - It is displayed when player's wallet is fiat currency.

  Select player bank/account to withdraw
* **Blockchain Network** - It is displayed when player's wallet is cryptocurrency. Input Blockchain Network
* **Address** - It is displayed when player's wallet is cryptocurrency. Input wallet address
* **Amount -** Input the withdrawal amount. Only numerical values are accepted. This is a required field.
* **Submit -** Click to complete the manual withdrawal process.
* **Cancel -** Exit the form without saving changes.

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

## **6. States of Deposit and Withdrawal**

The following model describes how to change the deposit and withdrawal status

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

Sate Diagram of Deposit

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

## **7. Payment Settings**

The **Payment Settings** sub-module serves as the central configuration hub for all payment-related operations on the platform. It allows admins to manage and fine-tune how deposits and withdrawals are processed, ensuring smooth financial transactions and proper provider setups.

This module is essential for connecting the platform with external payment systems, defining available options for players, and maintaining full control over both manual and automated payout flows.

Payment Settings is divided into several key sections:

* **Bank Accounts** – Used to manage, add and update the bank details available.
* **Withdrawal Options** – Allows configuration of available withdrawal types (e.g., bank transfer, crypto wallets).
* **Payment Providers** – Displays and manages all third-party payment provider integrations.
* **Payment Operators** – Assigns and manages operator-level control over payment processes.
* **Automatic Withdrawal** – Enables or configures automatic withdrawal rules, thresholds, and security settings.

Each of these sections plays a unique role in the platform's financial infrastructure. Together, they help streamline and secure every step of the player payment experience.

### **7.1 Bank Accounts**

This section allows you to manage all internal or third-party bank accounts used for deposit and withdrawal processes. You can view, edit, or create bank accounts directly from this page.

**Page Overview**

* At the top, you can filter existing bank accounts using the **Search** bar.
* On the right side, click **“Add New Bank Account”** to manually create a new bank account entry.

**Table Columns**

The main table displays a list of all configured bank accounts along with their key attributes:

* **ID** – Auto-generated internal ID for each record.
* **Bank Name** – The name of the bank used for transactions.
* **Type** – Defines whether the account is used for Deposit, Withdraw, or both.
* **Bank Code** – Internal or integration code for the bank.
* **Account Name** – Name of the account holder.
* **Account Number** – The number of the account.
* **Currency** – Currency used.
* **Status** – Current status of the bank account: *Active* or *Inactive*.
* **Created At / Updated At** – Timestamp of creation and last update.
* **Created By / Updated By** – Admin usernames who created or updated the record.
* **Action** – Use the ✏️ icon to edit or update account details

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

#### **7.1.1 Add New Bank Account**

When clicking **“Add New Bank Account”**, a new form will appear, requiring the following fields:

* **Bank Name** – Enter the name of the bank.
* **Bank Code** – Enter the internal system or provider code.
* **Account Name** – Enter the name of the account holder.
* **Account Number** – Input the account number.
* **Branch Name** – (Optional) Enter the name of the branch.
* **Currency** – Select the currency that the bank account supports.
* **Type** – Choose whether the account is used for Deposit and/or Withdraw.
* **Status** – Toggle to activate or deactivate the account.
* Click **Submit** to save or **Cancel** to discard.

*\*Note: Update bank account is similar to Add bank account*

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

### 7.2 Withdrawal Options

The **Withdrawal Options** section allows operators to manage different withdrawal methods available for players, including the setup of fees, supported currencies, VIP rules, and regional restrictions.

The page is divided into two main areas:

* **Top Filters -** Quickly search and filter withdraw options by Type, Currency, and Status.
* **Withdraw Options List -** Displays all created withdraw options showing details like Name, Code, Currency, Status, Type, and created/updated timestamps.

**Withdraw Options List Fields**

* **ID -** System ID of the withdraw option.
* **Withdraw Option Name -** Public name shown to players.
* **Withdraw Option Code -** System code used internally for processing.
* **Currency -** Currency used for withdrawal transactions.
* **Status -** Status of the option (Active or Inactive).
* **Type -** Defines the type of withdrawal (E-wallet, Crypto, Bank, etc.).
* **Created At -** Date and time when the option was created.
* **Updated At -** Date and time of the latest update.
* **Action -** Ability to edit or update the withdraw option.

At the top right, you can find the **Add New Withdraw Option** button to create new withdrawal options. Existing options can also be modified by clicking the **Update** button under the Action column.

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

#### **7.2.1 Add New Withdraw Option / Edit Withdraw Option**

When you click **Add New Withdraw Option** (or Update an existing one), two tabs are available: **Main** and **Advance**.

**Main Tab**

* **Withdraw Option Name -** Name displayed to players (e.g., VISA, Bank Transfer).
* **Withdraw Option Code -** Internal system code to identify the withdrawal method.
* **Withdraw From Wallet Currency -** Select the source wallet currency for the transaction.
* **Withdraw By Currency -** Select the currency players will receive after withdrawal.
* **Withdraw Type -** Choose the type of withdrawal method (e.g., Bank, Crypto, E-wallet).

**Fee Setup** section:

* **Add/Remove Fee Tier -** Create or delete tiers for different fee settings.
* **From VIP Level / To VIP Level -** Define which VIP level range the fee settings will apply to.
* **Fee Type -** Choose how the fee will be calculated (fixed amount or percentage).

**Other Settings:**

* **Status -** Enable or disable the withdrawal method.
* **Display on Front End -** Decide whether to show this withdrawal option to players on the frontend.

*After completing the form, click **Submit** to save, or **Cancel** to exit without saving.*

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

**Advance Tab**

* **CMS Code -** Field for integration coding (optional, mainly for tech configuration).
* **Behavior -** For advanced behavior settings (optional, for developer use).
* **Select Allowed Countries -** Choose specific countries where this withdrawal option will be available.

<figure><img src="/files/15IHL4kJOrIzltIwomhM" alt=""><figcaption></figcaption></figure>

### **7.3 Payment Provider**

This section allows you to manage and configure external providers used for processing deposits and withdrawals on the platform. Each provider can be activated, customized by region, and prioritized based on project needs. The **Payment Provider List** table displays all added providers, including:

* **ID** – Internal reference number for each provider.
* **Payment Provider Name** – Display name used inside the platform.
* **Payment Provider Code** – System identifier used in backend integrations.
* **Payment Type** – Defines whether this provider is used for deposits or withdrawals.
* **Supported Currencies** – Fiat currencies supported by the provider (e.g., USD, CAD, EUR, JPY).
* **Status** – Shows if the provider is Active or Inactive.
* **Created At / Updated At** – Shows timestamps for when it was created or last updated.
* **Action** – Use the pencil icon to update existing provider details.

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

#### **7.3.1 Adding or Updating a Payment Provider**

Click **"Add New Payment Provider"** to access the configuration window. The same form is used for editing—just click the pencil icon from the provider list.

**Main Fields**:

* **Payment Provider Name** – Enter the name to identify the provider within your dashboard.
* **Payment Provider** – Select from the dropdown list of integrated services (e.g., PaymentIQ, CoinsPaid).
* **Payment Type** – Choose either **Deposit** or **Withdraw** to define the provider’s purpose.
* **Parameters** – Add system-specific values (e.g., API credentials, integration keys) required for the provider to function.
* **Supported Fiat Currencies** – Tick the currencies that the provider supports.
* **Select Allowed Countries** – Limit usage by specific countries if needed.
* **Status** – Toggle to activate or deactivate this provider.
* **Priority** – Optional field to define execution order when multiple providers apply.
* **Submit / Cancel** – Save or discard the configuration.

***Note**: Updating a provider follows the same flow as adding. Just use the **update** icon from the list.*

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

### **7.4 Payment Options**

This section allows the admin to manage different payment options connected to either local banks or external payment providers. Each payment option represents a method players can use to deposit funds, including traditional banks, credit cards, cryptocurrencies, and more.

The top part of the page includes a **filter** bar where you can narrow down options by:

* **Payment Option Name** – Search by the name of the payment option.
* **Payment Provider** – Filter based on linked providers.
* **Currency** – Choose the relevant currency to refine the list.

Clicking the **Search** button will show filtered results, while **Reset** clears all applied filters.

**Payment Option List**

The main table displays all existing payment options with the following columns:

* **ID** – Unique system ID of the payment option.
* **Payment Option Name** – Title of the deposit method.
* **Payment Option Type** – Indicates whether it’s a local bank, provider, etc.
* **Payment Provider Name** – Shows which payment provider it’s linked to (if any).
* **Deposit Bank Name** – Shown only for local banks.
* **Currency** – Supported transaction currency.
* **Status** – Whether the option is Active or Inactive.
* **Created At** – Timestamp when it was created.
* **Updated At** – Timestamp of the latest update.
* **CMS Code** – A unique internal code used in integration logic.
* **Action** – Use the pencil icon to update/edit the payment option.

To create a new payment method, click the **Add New Payment Option** button at the top right.

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

#### **7.4.1 Add / Update Payment Option**

Once clicked, you'll enter the setup screen, which has two tabs: **Main** and **Advance**.

#### **Main Tab**

* **Currency** – Choose the currency this payment option will support.
* **Payment Option Type** – Select the type of method (Local Bank, Crypto, etc.).
* **Local Deposit Bank** – Appears only when "Local Bank" is selected. Choose from pre-created banks.
* **Payment Option Name** – Set the visible name of this payment option.
* **Min Amount** – Minimum deposit amount allowed.
* **Max Amount** – Maximum deposit amount allowed.
* **Status** – Enable or disable this option.
* **Display on Front End** – Toggle visibility for players.
* Click **Submit** to save the option or **Cancel** to exit without saving.

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

#### **Advance Tab**

* **CMS Code** – Define the internal CMS key used for API mapping.
* **Behavior** – Add custom logic or additional parameters.
* **Select Allowed Countries** – Restrict option visibility to selected geos.
* **Eligibility (Segments)** – Define specific player segments who can access this option.
  * You can set **In Any** or **Not In** conditions to include or exclude specific segments.

<figure><img src="/files/2Kk36AHLupSLKr8QGaMe" alt=""><figcaption></figcaption></figure>

### **7.5 Automatic Withdrawal**

The **Automatic Withdrawal** section allows operators to automate the withdrawal process for selected VIP players based on predefined limits and conditions. Instead of manually processing each request, the system can automatically handle them once they meet the configured criteria—saving time and streamlining operations.

**Main Setup Area**

* **Active** – Toggle this switch ON to enable automatic withdrawals. If disabled, the system will not auto-process any withdrawal requests.
* **Process from Withdraw Status** – Select the status from which the system should begin processing withdrawals:
  * **Pending** – Starts from newly submitted withdrawal requests.
  * **Payment Processing** – Starts from requests that have already passed initial checks.
* **VIP Limit** – Choose which VIP levels are eligible for automatic withdrawals. Multiple levels can be selected (e.g., Bronze, Silver, Gold, etc.).
* **Daily Withdrawal Limit** – Set the maximum amount a player can withdraw per day (in USD).
* **Weekly Withdrawal Limit** – Set the weekly limit for automatic withdrawals.
* **Monthly Withdrawal Limit** – Set the monthly withdrawal limit.

After configuring the desired settings, click **Submit** to save the automation rules

**Conditions Section**

This part allows you to configure **custom payout logic** based on specific rules. Think of it as telling the system *how* to handle the auto-withdrawals. Each condition row includes:

* **Condition** – Logic rules (optional). This may be left as “N/A” if no extra filters are needed.
* **Withdrawal Options** – The specific options (e.g., USDT, TRX) that will be used when the condition is matched.
* **Withdrawal Method** – E.g., Crypto.
* **Payment Gateway** – Choose which provider (e.g., CoinsPaid, Fireblocks, BVNK) should be used to handle the auto-withdrawal.

To edit/update a condition, click the pencil icon under **Action**.

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

**Condition Details Pop-up**

When editing a condition, a pop-up window appears with more granular control:

* **Conditions Section -** Add filtering logic here, such as specific countries, tags, or user segments. If you're unsure, you can leave this blank and it will apply to all.
* **Setup Payments Section (bottom)**
  * **Withdrawal Options** – Select the currencies this condition applies to.
  * **Withdrawal Method** – Typically “Crypto”.
  * **Payment Gateway** – Choose which provider should process the request when the condition is matched.

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