Operator guideEN

Currencies / Detail

Saved currency edit workspace for one currency, including staged icon upload, asset selection, and rate maintenance.

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 page does

This detail page edits one saved currency record at /currencies/[currencyId].

What operators can change

  • Currency Name
  • Currency Symbol
  • Exchange Rate
  • MRKTG Ratio to EUR
  • Loyalty Point
  • Currency Icon

Currency Type is displayed through the shared selector but is disabled in the verified UI, so operators can review it but not change it from this page.

The saved Currency Code is shown but locked in read-only mode.

Important behavior

Currency Code cannot be changed here

The edit form keeps Currency Code disabled. Operators can review it, but not overwrite it from this screen.

Currency Type is also review-only here

The form passes the saved type into the shared type selector, but the selector is disabled. Operators cannot manually switch a saved currency between Crypto and Fiat from this page.

Icon management is local until save

The page shows three related icon controls:

  • current icon preview
  • Upload icon
  • Select from Assets

Uploading or choosing an asset updates the local icon state immediately. The currency record is only updated after Save.

Upload accepts PNG and SVG only

The upload button rejects other file types. The FE also generates a currencyicons/<code>-<timestamp> asset key before calling the core upload endpoint.

Empty icon values are not sent on save

The FE only includes iconUrl in the update payload when the current local icon field is non-empty after trimming.

This means selecting an empty asset value locally does not clear the saved icon through this form. To persist a new icon, upload or choose a non-empty asset and then press Save.

Save updates only the saved currency record

Save updates the selected currency after backend validation. It does not recalculate existing bonus currency JSON by itself. If marketing-ratio changes must be propagated into bonus configuration, use the separate Auto Calculation Bonuses Currencies action from the Currencies list after reviewing the saved value.

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.

Calculations12 topicsOpen details

Detail read and loading state

Logic
The route reads currencyId from the detail URL., The page requests the saved currency record before rendering the edit form., A loading indicator is shown while the detail request is still loading or the record is not yet available., Backend validates that currencyId is present and returns not found when the record does not exist.

Read-only currency code

Logic
The detail form displays Currency Code as a disabled input., The update payload does not include edited code., Backend update validation and persistence do not treat code as an editable field for this route., Operators can review the saved code here, but cannot overwrite it from this page.

Review-only currency type

Logic
Currency Type is rendered through the shared Crypto/Fiat selector., The selector is disabled in the verified UI., FE still sends the saved numeric type during Save., Backend accepts type values 0 for Crypto and 1 for Fiat., Operators can review the saved type here, but cannot manually change it from this detail form.

Icon URL display resolution

Logic
Empty icon state renders an empty avatar preview., HTTP icon URLs are used directly., API-relative icon URLs are resolved through the admin API base URL., The preview updates from local staged icon state before the saved record is updated.

Icon upload file gate

Logic
Upload accepts only PNG and SVG MIME types., Unsupported MIME types show an operator error message., Unsupported files do not call the upload endpoint., Unsupported files do not change the staged icon value.

Icon upload asset key

Logic
FE sanitizes the saved currency code to lower-case letters, numbers, underscores, and dashes., Empty sanitized code falls back to a generic currency name., FE uploads under a currency-icon namespace with a timestamp suffix., Successful Core upload returns a URL that is staged locally as the icon value., The Core asset list is refreshed after a successful upload.

Asset picker selection

Logic
The form loads existing Core assets using a currency search term., The selected asset is matched against local icon state after removing query-string cache suffixes., Selecting an asset stages that asset URL locally., Selecting an asset updates the preview but does not persist the currency until Save.

Local icon staging

Logic
The saved icon initializes the local icon state when the loaded currency changes., Uploading a file stages the uploaded URL locally., Selecting an existing asset stages that asset URL locally., Local staged icon changes are preview-only until the operator clicks Save.

Save payload formation

Logic
FE waits briefly before submitting the update., FE stringifies Loyalty Point before submit., FE removes the local-only type variable from the editable values, then sends a numeric type explicitly., FE sends the selected currency ID through the update hook., FE includes iconUrl only when the staged value is a non-empty trimmed string., Backend validates the accepted fields and verifies the currency exists before updating., Backend writes name, exchangeRate, marketingRatio, symbol, type, loyaltyPoint, and optional iconUrl inside a transaction.

Empty icon omission

Logic
FE omits iconUrl from the update payload when local icon state trims to an empty value., Backend only includes iconUrl in the update data when the submitted value is a non-empty trimmed string., Clearing local icon state therefore should not be treated as clearing the saved icon through this form.

Marketing ratio update caveat

Logic
The detail page can update the saved currency marketing ratio., The form helper says the marketing ratio affects bonus and bet-limit amounts., The Save action updates only the selected currency row., Existing bonus currency JSON is not recalculated by this detail Save action., Use the separate list-level bonus-currency auto-calculation action when a saved marketing-ratio change must be propagated into bonus configuration.

Save success and failure states

Logic
Successful Save shows a success toast and returns the operator to the previous page., Failed Save keeps the operator on the form., Failed Save shows a generic failure toast and stores the backend error message on the submit error state., A failed Save should not be treated as a persisted currency update.
Fields11 topicsOpen details

Currency Name

Display name for the saved currency.

Group
identity
Data Type
string
Validation
Frontend: Required., Letters and spaces only., Minimum 3 characters., Maximum 50 characters. | Backend: Required., Letters and spaces only., Minimum 3 characters., Maximum 50 characters.

Currency Code

Stored currency code. It is displayed but disabled in edit mode.

Group
identity
Data Type
string
Validation
Frontend: Required by schema, but the visible input is disabled., Letters/spaces and max 3 characters according to the shared FE schema. | Backend: Not part of the verified update payload.
Caveats
Operators cannot overwrite the saved code from this page., Updating other fields does not change the currency code.

Currency Symbol

Symbol used when the currency is displayed elsewhere.

Group
identity
Data Type
string
Validation
Frontend: Required., Maximum 5 characters. | Backend: Required.

Exchange Rate

Stored exchange-rate value for this currency.

Group
rates
Data Type
number
Validation
Frontend: Required as a string value in the edit schema. | Backend: Required., Numeric-looking string., Length 1 to 10.

MRKTG Ratio to EUR

Stored marketing ratio for this currency. Other CRM flows can use this value when amount conversion relies on marketing-rate logic.

Group
rates
Data Type
number
Caveats
The form helper says this value affects bonus and bet-limit amounts., Saving this field updates the currency record, but it does not automatically rewrite existing bonus currency JSON., Use the separate list-level bonus-currency auto-calculation action when updated marketing ratios need to be propagated into bonus configuration.
Validation
Frontend: No explicit FE edit-schema rule found in the verified schema. | Backend: Accepted by the update flow.

Loyalty Point

Loyalty-point value stored for this currency.

Group
rates
Data Type
number
Validation
Frontend: Required., Must be a number., Must be positive. | Backend: Required., Numeric-looking string.
Submit Transform
FE stringifies this value before calling the update endpoint.

Currency Type

Saved Crypto or Fiat classification displayed for the currency.

Group
classification
Data Type
enum
Enum Values
Crypto, Fiat
Display
0: Crypto | 1: Fiat
Caveats
The shared selector is disabled in the verified UI., Operators can review the type but cannot manually change it from this detail form., The FE still sends the saved numeric type during Save.

Currency Icon

Current or newly staged icon value for the currency.

Group
icon
Data Type
image
Validation
Backend: Optional., Maximum 512 characters when present., Persisted only when the submitted value is a non-empty trimmed string.

Current Icon Preview

Live preview of the currently selected icon state before Save.

Group
icon
Data Type
image-preview
Display
Empty: Empty avatar preview. | Http Url: Uses the URL directly.

Upload icon

Uploads a new PNG or SVG icon through the Core upload endpoint and stages the returned URL locally.

Group
icon
Data Type
file-upload
Accepted File Types
image/png, image/svg+xml
Caveats
Uploading stages the icon locally and refreshes the asset list., The currency record changes only after Save.

Select from Assets

Existing uploaded asset that can be assigned as the currency icon without uploading a new file.

Group
icon
Data Type
asset-reference
Caveats
The selector searches currency-related assets., Selecting an asset stages its URL locally., The currency record changes only after Save.
More help

Related pages

Currencies

Operator guide for currency inventory, create flow, and edit workspace.

Currencies / Form

Create workspace for one currency record, including code-driven type suggestion, rate inputs, and create-time marketing-ratio caveats.

Currencies / List

Currency inventory page for reviewing configured currencies, toggling availability, and recalculating bonus currency values.

Activity Tag Rules / Detail

Rule inspection page with stored identity, conditions, timestamps, impact estimate, run action, delete action, and recent application history.

Affiliate Payment Settings / Detail

Detail/edit shell for one saved affiliate payment-setting record.

Affiliate Settings / Detail

Saved affiliate detail workspace for reviewing one affiliate and opening report actions.