Operator guideENtransactionsfailed-depositconfigrelations

Transactions / Failed Deposit Error Groups

Configuration surface for creating, editing, importing, exporting, and assigning failed-deposit error groups and their reasons.

Reader view

Clean portal guidance

This page keeps the operator explanation, field and action descriptions, and screenshots visible without exposing repo paths, raw sidecars, or editorial-only implementation details.

Narrative content

Page body

What this surface shows

This page manages the grouping layer used by the failed-deposit queue.

Operators use it to:

  • create a new error group
  • edit group name and description
  • assign failed reasons to a group
  • remove already assigned reasons from a group
  • export or import the whole grouping configuration

How to read it

Each group is shown as an editable card. The page is not a classic table; it behaves more like a configuration manager.

The main operator objects are:

  • group metadata
  • assigned reasons
  • unassigned reasons available for mapping

The FE always loads:

  • groups with includeReasons=true
  • unassigned reasons with unassignedOnly=true

That means the assignment selector is not a generic reason browser. It is a working list of reasons that are currently free for mapping plus the reasons already attached to the current group.

Main actions

  • Refresh
  • Export
  • Import
  • Create Group
  • Edit Error Group
  • Assign failed reasons
  • Remove assigned reason

Common questions

Is this page changing transaction rows directly?

No. It changes the grouping dictionary used to classify failed reasons. The transaction queue then shows those group names on its own list surface.

Does assigning reasons append to a group?

No. The assignment save is a full replacement. The backend first clears the group's existing error_group_id links and then writes back the selected reason ids.

Why does import/export exist here?

Because the grouping model is treated as maintainable operational configuration rather than as a one-off lookup table.

Known caveats

  • This page mixes list, form, and relation-management behavior in one route.
  • Assigned reasons are managed through a grouped multi-select and removable chips, not inline in the failed-deposit list.
  • There is no delete-group action in the current FE manager.
  • The backend read services support search, pagination, date range, provider, and currency filters, but the current FE manager does not expose those controls on this route.
  • Loading unassignedOnly=true reasons can trigger backend auto-seeding from recent failed deposit rows before the reason selector is shown.
  • Import is file-based. The FE accepts only JSON and requires the parsed payload to contain a top-level groups array.
  • Export downloads a JSON snapshot with an ISO timestamp in the filename.
Operator actions

Screen actions

action

Refresh

Reloads groups and available reasons from the backend.

action

Export

Downloads the current group configuration.

action

Import

Uploads a JSON configuration payload for groups and mappings.

Note
The visible button opens a hidden file input; the FE rejects files whose parsed body does not contain a top-level `groups` array.
action

Create Group

Opens the dialog for a new group.

Calculation notes

Calculations

calculation

Unassigned reasons auto-seed

Formula Text
Loading `/failed-deposit/error-reasons?unassignedOnly=true` can trigger backend seeding from recent failed `transaction_bankings` rows before the selector options are returned.
Operator Note
New failed reasons can appear in the assignment selector even when nobody created them manually in this manager.
calculation

Assignment replaces group membership

Formula Text
`PUT /failed-deposit/error-groups/:groupId/reasons` first clears the current group's `error_group_id` links and then writes the submitted `reasonIds` back to that group inside one transaction.
Operator Note
Treat selector changes as a full replacement, not as an additive patch.
calculation

Import upsert behaviour

Formula Text
Import matches groups by case-insensitive name and reasons by `normalizedReason`; missing groups and reasons are created, and existing reasons can be reassigned to a different group.
Operator Note
Import is a merge/update workflow, not a destructive reset of all existing groups.
Operational notes

Notes

item

The FE fetches groups with `includeReasons=true` for this manager.

item

The page also loads unassigned-only reasons to feed the assignment dialog.

item

`GetFailedDepositErrorReasonsService` can auto-seed unassigned reasons from recent failed deposit rows when `unassignedOnly=true`.

item

`AssignFailedDepositErrorGroupReasonsService` performs full group replacement inside a transaction rather than incremental add/remove updates.

item

Import uses upsert-style semantics keyed by group name and `normalizedReason`.

Related references

Related pages

pageTransactions / Banking

Filterable banking transaction dashboard with weekly summary cards, backend stats charts, CSV export, and a detailed ledger-style table.

pageTransactions / Casino

Game transaction dashboard with real-time list mode, monthly analytics mode, filterable table, and a dedicated transaction detail route.

pageTransactions / Casino Transaction Detail

Read-only detail page for a single casino transaction identified by `casinoTransactionId`.

pageTransactions / Failed Deposit

Triage grid for failed deposit rows, their provider reasons, and the error-group classification used for later analysis.

pageTransactions / KYC

Action-heavy KYC document queue exposed under the transactions area for document review, verification, re-request, download, and third-party checks.

pageTransactions / Shared Detail Modals

Reusable read-only transaction payload modals for banking-style rows on banking, withdrawals, and failed-deposit surfaces.