Operator guideEN

Transactions / KYC

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

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 Surface Shows

Even though the route lives under transactions, this page is the Backoffice document-verification queue.

Operators use it to:

  • review uploaded customer documents
  • preview or download files
  • run or inspect third-party verification
  • approve, reject, cancel, or re-request document flow

How To Read It

This is an action-heavy queue rather than a simple list. The Action column is the main operator workspace.

The page also includes:

  • a status selector for the global queue
  • tag-driven search
  • direct navigation to the player profile
  • third-party verification state and history
  • document preview links
  • route-level pagination with page sizes up to 10,000

Action And Filter Behavior

  • Status filters the global queue by Pending, Approved, Rejected, Canceled, Requested, or All statuses.
  • Search by tag is a staged text input; the queue only changes when Apply Filters is pressed or the user clicks a tag chip.
  • Clear resets both the text input and the active tag filter
  • the route-level search is tag-only. It does not search by document name, user id, status, or provider
  • the Action column is status-driven:
    • Pending rows expose Approve Document and Reject Document
    • Requested rows expose Cancel Document
    • non-Rejected rows outside Requested expose Re-request Document
  • Verify by 3rd Party is shown only for bynn documents
  • Manually verify via Bynn is shown only for non-bynn documents
  • 3rd Party Verification History only appears when a row already has Bynn or SumSub history
  • Download Document only appears when the row has a latest document URL
  • Add Document is hidden on this global route because there is no player context

Common questions

Why is KYC inside Transactions?

Because this route is grouped under the transaction navigation in the current Backoffice structure, even though the same KYC view is also used inside player-document tooling.

Why is Add Document missing here but visible on player-scoped KYC?

Transactions / KYC opens the shared KYC view without a player context, so the Add Document button is intentionally hidden on this route. That helper is only rendered inside a player-scoped workspace.

Which actions actually change workflow state?

The main state-changing actions are:

  • approve
  • reject
  • cancel request
  • re-request document
  • submit document to Bynn
  • update player profile from Bynn history

The other actions are inspection helpers such as preview, download, history, or third-party verification.

Why do some rows show a 3rd-party report and others do not?

The dedicated View Report link is only shown for rows where documentName === 'bynn'.

The frontend first resolves a dossier id and then opens the external Bynn dashboard for that dossier.

Why can the 3rd-party verification column look inconsistent?

The Bynn values are part of the live admin/backend flow, but sumsubVerificationStatus and sumsubVerificationDate are still injected as placeholder data in UserController.getUserDocument for testing.

Treat the combined 3rd Party Verification column as:

  • reliable for live Bynn-backed state
  • not yet a fully authoritative production source for SumSub state

Known caveats

  • This route reuses the player KYC view under the transactions navigation.
  • The action column mixes read-only helpers and mutation controls.
  • Some actions depend on document type, current status, provider history, and whether a latest document URL exists.
  • The route-level search is a tag substring filter built from joined users.tags, not a generic queue search over all visible columns.
  • The visible Verify by 3rd Party icon in the row action stack is currently a placeholder handler. The live Bynn verification transport is owned by the approve/manual verification modals.
  • View Report is an external-dashboard lookup, not an in-app workflow state change.
  • Secure document download uses a backend-generated filename based partly on the casino brand name.
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.

Calculations11 topicsOpen details

Global KYC default status

The Transactions / KYC queue defaults to Pending documents.

Formula
The global route mounts the shared KYC component without a player id, sends `userId=0`, and initializes the visible Status filter to `0` (Pending). Backend also defaults global reads to Pending when no status is supplied.

Status filter

Filters the global queue by document workflow state.

Formula
Frontend sends status values `0`, `1`, `2`, `3`, `4`, or `all`. Backend maps `all` to no status condition, maps valid numeric strings to document status numbers, and rejects invalid status values.

Tag search apply flow

Typing into the field alone does not refresh the queue.

Formula
The route keeps the typed tag in `searchTagInput` until Apply Filters copies it into `searchTag`. Clicking a tag chip writes both staged and active tag values immediately.

Tag search backend filter

This is a tag-only queue filter, not a generic search across document ids, player ids, names, or statuses.

Formula
Backend joins user tags for matching documents, converts tags to a comma-separated string, fetches the full filtered document set when tag search is active, performs case-insensitive substring matching across split tag tokens, then applies pagination.

Row action status gating

Explains why the action stack changes from row to row.

Formula
Pending rows show approve/reject. Requested rows show cancel-request. Rows outside Rejected and Requested show re-request. Bynn verification/report controls depend on `documentName === 'bynn'`, manual Bynn verification shows for non-Bynn documents, history shows when provider history exists, and download shows only when a latest document URL exists.

Transactions route button suppression

Prevents operators from expecting the same helper action on the global KYC queue and the player-scoped KYC workspace.

Formula
The shared KYC component only renders Add Document when a player context exists. Transactions / KYC mounts the component without `player`, so the button is intentionally hidden there.

3rd Party Verification

Combines Bynn and placeholder SumSub status into one visible chip.

Formula
The chip shows Verified if Bynn or SumSub is verified. It shows Failed only when both available provider statuses are failed. Otherwise it uses the first available Bynn/SumSub status or falls back to Not Verified.

View Report URL

Opens a Bynn dashboard report for Bynn documents when a dossier id can be resolved.

Formula
Backend returns the document's Bynn dossier id or falls back to the latest active Bynn report for the user. Frontend strips any `dossier_` prefix and opens `https://dashboard.bynn.com/dossier/<id>`.

Download filename

Downloaded document filenames are generated by the backend, not by the table label.

Formula
Backend chooses the latest document URL, fetches it as a stream, detects file extension from URL or content type, and builds `<brand>_<documentName>_<userDocumentId>_<YYYY-MM-DD><extension>`.
Settings Dependency
casino-settings.brandName

Approve / Reject document state

Approval and rejection are backend document verification mutations with user-level side effects.

Formula
Backend accepts only documents currently Pending or Re-requested, writes document status/action metadata, can send emails/inbox notifications, writes user activity, and may recalculate user KYC status.

Bynn submission state

Verify via Bynn sends the latest document URL to Bynn and marks provider verification as pending.

Formula
Backend validates document id and URL, creates a brand/user reference, submits the document URL to Bynn, writes Bynn document/submission ids, pending status, verification date, history entry, and action metadata.
Notes2 topicsOpen details

Transactions / KYC is an action-heavy global queue built from a player-scoped shared component.

Text search is tag-only; the visible Status selector is the only non-tag filter on the global route.

Columns13 topicsOpen details

Document ID

Internal document row id.

User ID

Player id linked to the document; clicking it opens the player profile.

Document Name

Document label/name stored on the KYC document row.

Preview Document

Opens the latest uploaded document URL when preview is available.

Display Rule
Shows `Document missing` when no document URL exists; Bynn dossier rows suppress preview and show `-`.

3rd Party Report

Opens an external Bynn report for Bynn documents when a dossier id can be resolved.

Display Rule
Rendered only when `documentName === 'bynn'`.
Caveat
The link is an external dashboard hop, not a CRM state transition.

Tags

Tags joined from the player record for queue filtering and triage.

Display Rule
Shows first tag and a count chip for additional tags; tooltip lists all tags.
Caveat
Clicking a visible tag or tooltip tag activates Search by tag immediately.

Reason

Current document workflow reason, including rejection, re-request, or Bynn-submission notes when stored.

3rd Party Verification

Combined provider verification status chip.

Display Rule
Verified wins if either provider is verified; failed requires both available provider statuses to be failed; otherwise Bynn/SumSub status or Not Verified is shown.
Caveat
Bynn values are live workflow state; SumSub values are currently placeholder data injected by the controller.

3rd Party Verification Date

Provider verification timestamp shown when present.

Caveat
Do not treat SumSub dates on this list as authoritative production timestamps yet.

Updated At

Last document row update timestamp.

Actionee

Admin/action actor stored on the document row by backend document mutations.

Action Performed At

Timestamp of the stored document workflow action.

Action

Status-driven action stack mixing helper links, provider actions, and document mutations.

Display Rule
Pending rows show approve/reject; Requested rows show cancel; non-Rejected and non-Requested rows show re-request; provider/download/history controls depend on row data.
Filters2 topicsOpen details

Status

Narrows the global KYC queue by document workflow status.

Type
select
Options
Pending, All statuses, Approved, Rejected, Canceled, Requested
Match Behavior
Backend accepts values `0`, `1`, `2`, `3`, `4`, and `all`; the global route defaults to Pending when status is missing.
Caveat
This filter is visible on the global Transactions / KYC route; player-scoped KYC does not send it.
Affects
table rows, pagination count

Search by tag

Tag substring filter for the KYC queue.

Type
text
Match Behavior
The queue only changes after Apply Filters copies the staged input into active searchTag, or after a tag chip is clicked.
Caveat
This is not a generic search over document id, user id, document name, status, or provider.
Affects
table rows, pagination count
Page sections5 topicsOpen details

KYC queue table

Main document review grid.

Search and status filter bar

Status selector, staged Search by tag field, Apply Filters button, and Clear button when a tag is active.

Active tag chip

Shows the active tag filter and can clear it.

Queue pagination

Page and rows-per-page controls with options up to 10,000 rows.

Player used cards

Shared card-verification companion widget rendered below the KYC grid and refreshed after document mutations.

Caveat
On the global route there is no player prop, so this widget is present as part of the shared component but player-scoped card context can be empty.
More help

Related pages

Transactions / Banking

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

Transactions / Casino

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

Transactions / Casino Transaction Detail

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

Transactions / Failed Deposit

Triage grid for failed deposit rows, provider failure reasons, normalized error groups, raw detail inspection, and CSV export.

Transactions / Failed Deposit Error Groups

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

Transactions / Shared Detail Modals

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