Operator guideEN

Players / Banking

Banking tab inside the player workspace with transaction filters, a paginated banking grid, analytics cards, CSV export, and automatic-withdrawal availability.

How to use this guide

Start with the main guide

Follow the explanation and examples first. Extra definitions and formulas are available below when you need them.

What this tab shows

Players / Banking is the transaction workspace for a single player. It combines a filtered banking table with a separate analytics layer and an automatic-withdrawal availability snapshot.

When to use it

Use this tab when you need to:

  • review the player's deposits, withdrawals, bonus-money moves, or rollback events
  • inspect one banking row in detail
  • export the player's filtered banking history
  • see all-time transaction analytics for this player
  • check whether automatic withdrawal is currently available

How to read it

The tab has three distinct layers:

  1. Table filters for transaction type, status, currency, provider, search, and date range.
  2. Transactions table with one row per banking item plus expandable row details.
  3. Analytics and automatic-withdrawal cards that summarize wider transaction behavior.

The visible Transactions and Deep Analytics tabs inside the component are not separate routes. They are two views of the same Banking tab.

Filters and actions

Changing table filters refreshes the banking table directly. The Apply button is only a visual control in the current UI; it does not submit a second request. Reset returns the table to all currencies, all transaction types, all statuses, empty provider/search filters, and the broad all-time date window.

Search has two modes. A numeric search is treated as a banking row ID lookup. A text search is matched against the server-side player/actionee search and then narrowed again on the visible rows by ID, payment ID, actionee email, provider, type, and currency. This means search results can be narrower than the server response.

Analytics

The analytics cards and charts are a separate player-level summary. They are not recalculated from the current table page and they do not follow the visible table filters. They summarize all banking rows for the selected player and display the money metrics in EUR.

The money analytics use a normalized EUR amount from the stored row amount and conversion rate. Deposit totals count successful deposit rows. Withdrawal totals count withdraw rows with successful or approved status. addMoney and removeMoney are table classifications, but they are not included in the deposit and withdrawal analytics totals.

Automatic withdrawal

Automatic Withdrawal is an eligibility snapshot. It tells the operator whether the player currently appears eligible, which rule applies, what instant limit is available, whether there are pending withdrawals, which methods are allowed, and whether a monthly limit is already consumed. It is not a payout execution result and it can change after another withdrawal, KYC/risk update, rule change, or payment-method change.

The card has four distinct states:

  • Loading automatic withdrawal data... while the snapshot request is pending.
  • Unable to load automatic withdrawal information when the request fails. This is a load failure, not an eligibility decision; use Refresh.
  • Automatic Withdrawal not available when no snapshot exists, automatic withdrawal is disabled for the player, or the player is currently ineligible.
  • The available-limit layout only when both hasAutomaticWithdrawal and isEligible are true.

In the unavailable state, every non-empty diagnostic returned in reasons is shown as a separate warning line. The optional message is shown below those reasons. These strings are current eligibility diagnostics from rule validation, not a fixed operator-configured menu. A pending-withdrawals chip can still appear above an unavailable result when that marker is present.

Do not read Automatic Withdrawal not available as a zero limit. It means the eligibility branch failed or no automatic-withdrawal configuration was available; the reason list and message explain the current cause when evidence is returned.

Known caveats

  • The visible table respects the selected filters, but the analytics summary is fetched separately for the whole player. Summary cards can therefore differ from the currently visible table rows.
  • Type can be manually reclassified in-line for supported deposit or withdrawal groups. This changes classification, not the raw transaction amount.
  • The table shows original transaction amounts in the row currency. The analytics cards display normalized EUR values.
  • The export follows the current table filters and may include export-only system metadata that is not shown as a visible table column.
  • Column sort affordances should not be treated as a verified ordering control on this tab; the current table handler does not change the query or local order.
  • A load error and an unavailable result are different: retry load errors, but investigate the returned reasons for an unavailable result.
  • Empty or whitespace-only reason strings are not displayed. If no reason or message is returned, the card can show only Automatic Withdrawal not available.
More details

Definitions and formulas

Open only the section you need. The relevant section opens automatically when you request help for a specific item on screen.

Calculations17 topicsOpen details

Analytics Scope

How It Works
Player banking analytics aggregate all banking rows whose target player id equals the current player id.
What To Check
Analytics are not recalculated from the visible table page and do not follow the Banking table filters, search, pagination, or date range.

Analytics Currency Basis

How It Works
EUR reporting amount is calculated as `amount / conversion_rate`. If conversion rate is missing, the row amount is used. If conversion rate is zero, the row contributes `0` to EUR money analytics.
What To Check
The table amount remains the original transaction amount in its row currency; the analytics cards are displayed in EUR.
Rounding
Money analytics are rounded to 2 decimal places.

Total Deposits

How It Works
Sum of EUR reporting amount where transaction type is `deposit` and status is `SUCCESS`.
What To Check
`addMoney` rows can appear in the table and can be selected in the filter, but they are not included in this analytics deposit total.

Total Withdrawals

How It Works
Sum of EUR reporting amount where transaction type is `withdraw` and status is `SUCCESS` or `APPROVED`.
What To Check
`removeMoney` rows can appear in the table and can be selected in the filter, but they are not included in this analytics withdrawal total.

Net Cash Flow

How It Works
`totalDeposits - totalWithdrawals`
What To Check
Positive net flow means successful deposits exceed successful/approved withdrawals in the player-level analytics scope.

Success Rate

How It Works
`successfulTransactions / totalTransactions * 100`, where successful statuses are `SUCCESS`, `APPROVED`, and `COMMITED`; returns `0` when there are no banking rows.
What To Check
This is based on all banking rows for the player, not just financial deposit/withdraw rows.
Rounding
Rounded to 2 decimal places.

Deposit Count

How It Works
Count of rows where transaction type is `deposit` and status is `SUCCESS`.
What To Check
This count is the count companion to Total Deposits.

Withdrawal Count

How It Works
Count of rows where transaction type is `withdraw` and status is `SUCCESS` or `APPROVED`.
What To Check
This count is the count companion to Total Withdrawals.

Largest Deposit

How It Works
Maximum EUR reporting amount among rows where transaction type is `deposit` and status is `SUCCESS`; returns `0` when no matching row exists.
What To Check
This is not the largest visible table amount unless the visible table happens to include the same all-player scope.

Largest Withdrawal

How It Works
Maximum EUR reporting amount among rows where transaction type is `withdraw` and status is `SUCCESS` or `APPROVED`; returns `0` when no matching row exists.
What To Check
This is not the largest visible table amount unless the visible table happens to include the same all-player scope.

Time Series Granularity

How It Works
Uses monthly buckets when the player banking date span is greater than 180 days; otherwise uses daily buckets.
What To Check
Buckets include deposit, withdrawal, and other successful transaction amounts.

Numeric Search

How It Works
If the search text contains only digits, the table sends it as an exact banking row id lookup and clears the free-text search value.
What To Check
This is why entering a number behaves like an ID lookup instead of a broad text search.

Text Search

How It Works
Text search is sent to the server search flow and then the returned visible rows are locally filtered by banking row id, transaction id, payment transaction id, actionee email, provider, transaction type, and currency.
What To Check
The second local filter can make the displayed rows narrower than the server response.

Wagering Requirements Progress

How It Works
`min((totalWagerSpend / depositWager) * 100, 100)` when `depositWager > 0`; otherwise `0`.
What To Check
The card is shown only when both total wager spend and required deposit wager values are provided to the Banking tab.

Automatic Withdrawal Available Limit

How It Works
Starts from the matched automatic-withdrawal rule limit, subtracts withdrawal usage inside the current rule window, caps by monthly remaining limit when configured, converts to the player's currency, and rounds to 2 decimals.
What To Check
The card is an eligibility snapshot; it does not execute, reserve, or approve a withdrawal.

Automatic Withdrawal render branch

How It Works
After loading and error handling, the unavailable layout is used when the snapshot is absent, `hasAutomaticWithdrawal` is false, or `isEligible` is false. The available-limit layout requires both flags to be true.
What To Check
Unavailable is an eligibility/configuration state, not a numeric zero-limit value. A request error is handled separately and should be retried.

Unavailable reason display

How It Works
The page keeps only `reasons` entries that are strings with non-whitespace content, then renders each retained string as one warning row. The optional message is rendered separately.
What To Check
The card can show only the unavailable heading when no usable reason or message is returned.
Columns11 topicsOpen details

ID

Internal banking-row identifier.

Data Type
integer

Provider / PaymentID

Provider name plus provider-specific payment reference shown in the same cell.

Data Type
string

Type

Current transaction classification. Only deposit/add-money and withdraw/remove-money groups can be reclassified from this table.

Data Type
enum

Amount

Original row amount displayed in the transaction currency.

Data Type
amount
Currency Source
banking_row.currencyCode

Balance Change

Before and after balance visualization for the selected row.

Data Type
amount
Currency Source
banking_row.currencyCode

Bonus ID

Bonus reference when the transaction is bonus-related.

Data Type
integer

Payment Method

Payment method recorded on the banking row. For some withdrawal providers the displayed value can be resolved from stored provider metadata.

Data Type
string

Status

Current processing state of the transaction.

Data Type
enum

Error Group

Optional failed-deposit error grouping shown under the status chip when available.

Data Type
string

Date

Row creation timestamp.

Data Type
datetime
Timezone
UTC display

Date Updated

Latest update timestamp for the transaction.

Data Type
datetime
Timezone
UTC display
Filters7 topicsOpen details

Currency

Restricts the visible banking table to one transaction currency. It does not change the lifetime analytics cards, which display EUR-normalized values.

Type
select
Options Source
active currencies
Default
All Currencies

Action Type

Limits the visible table to one transaction classification.

Type
select
Default
All Types
Options
Deposit, Withdraw, Add Money, Remove Money, Bonus, Bonus To Cash, Bonus Forfeit, Bonus Expired, Bonus Zeroed Out

Status

Filters visible rows by transaction lifecycle status. The Success filter also includes Approved rows in the server-side list logic.

Type
select
Default
All Statuses
Options
Pending, Success, Approved, Committed, Rejected, Cancelled, Failed

Payment Provider

Searches provider, payment method, and payment transaction id values for the visible table.

Type
text

Start Date

Lower date bound for the visible transaction table.

Type
date
Default
2000-01-01

End Date

Upper date bound for the visible transaction table.

Type
date
Default
2030-01-01

Search

Numeric input is sent as an exact banking row id lookup. Text input is sent as search text and then the visible rows are locally narrowed by row id, payment id, actionee email, provider, type, and currency.

Type
text
Placeholder
Search by ID, email, provider...
Metrics11 topicsOpen details

Total Deposits

Sum of successful deposit rows for the player, normalized to EUR for the analytics panel.

Source Type
server_aggregated
Currency Basis
Reporting Currency: EUR | Original Amount Source: public.transaction_bankings.amount | Original Currency Source: public.transaction_bankings.currency_code | Converted Amount Formula: amount / stored conversion_rate | Exchange Rate Source: public.transaction_bankings.conversion_rate stored on each row | Rate Timing: The analytics query uses the stored row rate and does not fetch a current rate; no independent rate timestamp is stored or selected by this query. | Rounding Boundary: Individual converted rows stay numeric; the final aggregate is rounded to 2 decimal places. | Missing Rate Fallback: A null rate uses divisor 1, while a zero rate makes the row contribute 0. | Refund Reversal Handling: No separate refund or reversal netting branch is applied; only successful deposit rows enter this metric.
Filter Scope
All banking rows for the selected player; not limited by visible table filters.

Total Withdrawals

Sum of withdraw rows with Success or Approved status for the player, normalized to EUR for the analytics panel.

Source Type
server_aggregated
Currency Basis
Reporting Currency: EUR | Original Amount Source: public.transaction_bankings.amount | Original Currency Source: public.transaction_bankings.currency_code | Converted Amount Formula: amount / stored conversion_rate | Exchange Rate Source: public.transaction_bankings.conversion_rate stored on each row | Rate Timing: The analytics query uses the stored row rate and does not fetch a current rate; no independent rate timestamp is stored or selected by this query. | Rounding Boundary: Individual converted rows stay numeric; the final aggregate is rounded to 2 decimal places. | Missing Rate Fallback: A null rate uses divisor 1, while a zero rate makes the row contribute 0. | Refund Reversal Handling: No separate refund or reversal netting branch is applied; only successful or approved withdrawal rows enter this metric.
Filter Scope
All banking rows for the selected player; not limited by visible table filters.

Net Cash Flow

Total Deposits minus Total Withdrawals in the analytics panel.

Source Type
server_aggregated
Currency Basis
Reporting Currency: EUR | Component Formula: Total Deposits minus Total Withdrawals after both components use their stored row conversion rates. | Exchange Rate Source: Inherited from each deposit and withdrawal row in public.transaction_bankings.conversion_rate. | Rate Timing: Each component uses its stored row rate; the analytics query performs no current-rate lookup and selects no independent rate timestamp. | Rounding Boundary: The difference of the unrounded aggregate components is rounded to 2 decimal places in the final query result. | Missing Rate Fallback: A null component-row rate uses divisor 1, while a zero rate makes that row contribute 0. | Refund Reversal Handling: No separate refund or reversal netting branch is applied beyond the deposit and withdrawal type/status filters.
Filter Scope
Same player-level analytics scope as Total Deposits and Total Withdrawals.

Success Rate

Percentage of the player's banking rows whose status is Success, Approved, or Committed.

Source Type
server_aggregated
Rounding
Rounded to 2 decimal places.
Filter Scope
All banking rows for the selected player.

Deposit Count

Count of successful deposit rows included in Total Deposits.

Source Type
server_aggregated
Filter Scope
All banking rows for the selected player.

Withdrawal Count

Count of withdraw rows with Success or Approved status included in Total Withdrawals.

Source Type
server_aggregated
Filter Scope
All banking rows for the selected player.

Largest Deposit

Highest single successful deposit amount in the analytics scope, normalized to EUR.

Source Type
server_aggregated
Currency Basis
Reporting Currency: EUR | Original Amount Source: public.transaction_bankings.amount | Original Currency Source: public.transaction_bankings.currency_code | Converted Amount Formula: amount / stored conversion_rate | Exchange Rate Source: public.transaction_bankings.conversion_rate stored on each row | Rate Timing: The analytics query uses the stored row rate and does not fetch a current rate; no independent rate timestamp is stored or selected by this query. | Rounding Boundary: The maximum is selected from unrounded converted rows and the final result is rounded to 2 decimal places. | Missing Rate Fallback: A null rate uses divisor 1, while a zero rate makes the row contribute 0. | Refund Reversal Handling: No separate refund or reversal netting branch is applied; only successful deposit rows are candidates.

Largest Withdrawal

Highest single successful or approved withdrawal amount in the analytics scope, normalized to EUR.

Source Type
server_aggregated
Currency Basis
Reporting Currency: EUR | Original Amount Source: public.transaction_bankings.amount | Original Currency Source: public.transaction_bankings.currency_code | Converted Amount Formula: amount / stored conversion_rate | Exchange Rate Source: public.transaction_bankings.conversion_rate stored on each row | Rate Timing: The analytics query uses the stored row rate and does not fetch a current rate; no independent rate timestamp is stored or selected by this query. | Rounding Boundary: The maximum is selected from unrounded converted rows and the final result is rounded to 2 decimal places. | Missing Rate Fallback: A null rate uses divisor 1, while a zero rate makes the row contribute 0. | Refund Reversal Handling: No separate refund or reversal netting branch is applied; only successful or approved withdrawal rows are candidates.

Transaction Types

Count of all player banking rows grouped by stored transaction type.

Source Type
server_aggregated

Status Distribution

Count of all player banking rows grouped by status label.

Source Type
server_aggregated

Automatic Withdrawal Available Limit

Current instant-withdrawal amount available after rule window usage and monthly limit are applied.

Source Type
server_eligibility_snapshot
Currency Basis
Player currency.
More help

Related pages

Players / Detail Workspace

Main player workbench at `/player/[playerId]` with tabbed sections, player-level actions, and modal-based operator workflows.

Players / Fraud Detection

Fraud-detection tab inside the player workspace with MaxMind risk assessment, related fraud-account reports, IP analysis, and Identity Graph filtering.

Players / Game Report

Per-player game or provider report inside the player workspace, filtered by date option and grouped either by game or by provider.

Players / Inbox

Inbox tab inside the player workspace for reviewing delivered notifications, filtering by read state or notification type, and resending or soft-deleting message deliveries.

Players / KPI Summary

Grouped player-level KPI snapshot inside the player workspace, covering player info, deposits, withdrawals, casino totals, bonus cost, and predictive metrics.

Players / KYC Status

KYC tab inside the player workspace for browsing user documents, checking third-party verification state, and approving, rejecting, or re-requesting documents.