Overview
Currency Exchange lets you convert a balance from one of your fiat currency wallets to another. The source wallet is debited, the destination wallet is credited at the calculated exchange rate, and both anExchange From and an Exchange To transaction record are created.
Only fiat currency wallets are supported for currency exchange. Crypto wallets use a separate crypto exchange flow.
How exchange rates are determined
The system supports two rate sources, configured per destination currency:| Source | Behaviour |
|---|---|
api | Live rate fetched from the configured exchange rate API for the currency pair |
local | Rate calculated from the currency rate values stored in the database |
api, the live rate is used. If the API call fails, the system falls back to the local rate automatically.
The exchange rate is locked at the time you reach the confirmation screen and stored as destination_exchange_rate in the session.
How to perform an exchange
Go to Exchange
Navigate to Exchange from the main menu. The form shows all your fiat wallets that have an active
Exchange From fees configuration.Select the source wallet
Choose the currency wallet you want to exchange from. Your current balance is displayed.
Select the destination currency
Select the currency you want to exchange to. The list shows all active fiat currencies with an active exchange configuration, excluding the source currency.The live exchange rate and the equivalent amount in the destination currency are shown immediately.
Enter the amount
Enter the amount to exchange from the source currency. The system shows:
- Exchange rate
- Equivalent amount in the destination currency
- Fees (percentage + fixed)
- Total deducted from the source wallet (
amount + fees)
Review on the confirmation screen
The confirmation screen displays the full breakdown. Review the amounts and rate before proceeding.
Fee structure
Fees are applied to the source currency amount based on theExchange From fees configuration:
amount × exchange_rate. Fees do not reduce the destination amount.
Transaction records
A successful exchange creates two transaction entries:| Record | Type | User | Amount |
|---|---|---|---|
| Exchange From | Exchange_From | Your account | -(amount + fees) |
| Exchange To | Exchange_To | Your account | +(amount × rate) |
CurrencyExchange entry via transaction_reference_id.
Transaction limits
Minimum and maximum exchange amounts are set per source currency by the administrator. If the amount is outside the configured range, the exchange is blocked before you reach the confirmation screen.Related features
Digital Wallet
View balances across all your currency wallets.
Deposits
Fund a wallet before exchanging.
Send Money
Transfer the exchanged funds to another user.
Withdrawals
Withdraw the exchanged balance to an external account.