Multi-Currency Accounting: Realized vs Unrealized FX Gains and Losses
How foreign-currency transactions are recorded and revalued, the difference between realized and unrealized differences, and why you must store both currencies.
The moment you invoice in a currency that is not your base currency, you have two problems. The customer owes you 10,000 USD; your books are in EUR; and the exchange rate on the day you invoice will not be the rate on the day they pay.
That gap is a foreign exchange difference, and it is a real gain or loss — not a rounding artifact. Multi-currency accounting is the discipline of recording it in the right place at the right time.
Three currencies, not one
Every foreign-currency transaction involves up to three:
- Transaction currency — what the document is denominated in. The customer owes 10,000 USD.
- Functional (base) currency — what your books are kept in, and what statements are prepared in. EUR.
- Presentation currency — what you report in, if it differs. Relevant mainly in consolidation.
The first rule of building this: store the amount in both the transaction currency and the base currency, plus the rate used. Storing only the converted amount destroys the ability to tell a customer what they owe in their own currency, and storing only the foreign amount means every report has to reconvert — at which rate, from when? Systems that get this wrong cannot be fixed by adding a column later.
Recording a transaction
Invoice a US customer 10,000 USD when the rate is 1.10 USD per EUR:
| Account | Debit | Credit |
|---|---|---|
| 2410 Trade receivables (10,000 USD) | 9,090.91 | |
| 5001 Service revenue | 9,090.91 |
The receivable is 10,000 USD and 9,090.91 EUR. Both are true, and both are needed.
Realized differences
The customer pays 10,000 USD when the rate has moved to 1.05:
Received: 10,000 USD ÷ 1.05 = 9,523.81 EUR
Recorded: 10,000 USD ÷ 1.10 = 9,090.91 EUR
Gain: 432.90 EUR
| Account | Debit | Credit |
|---|---|---|
| 2710 Bank (USD account) | 9,523.81 | |
| 2410 Trade receivables | 9,090.91 | |
| 5803 Positive exchange-rate effect | 432.90 |
The gain is realized — the transaction is complete, the money has arrived, and the difference is permanent. It belongs in the financial activity result, not in revenue: you did not sell more, the currency moved.
The mirror case posts to 6803, negative exchange-rate effect.
Unrealized differences
Now suppose the period ends and the customer has not paid. You still hold a 10,000 USD receivable, recorded at 9,090.91 EUR, while the closing rate says it is worth 9,523.81 EUR.
Accounting standards require monetary items — receivables, payables, cash, loans in foreign currency — to be retranslated at the closing rate at each reporting date, with the difference recognized in profit or loss:
| Account | Debit | Credit |
|---|---|---|
| 2410 Trade receivables | 432.90 | |
| 5803 Positive exchange-rate effect | 432.90 |
This gain is unrealized — nothing has been received, and the rate may reverse tomorrow. It is recognized anyway, because the balance sheet must state what the claim is worth at the reporting date.
Non-monetary items are not retranslated. Inventory, fixed assets and prepayments bought in foreign currency stay at their historical rate, because they are not claims to a fixed number of currency units.
When the invoice is eventually settled, the previously recognized unrealized difference becomes realized. Implementations either reverse the revaluation at the start of the next period and let settlement post the full difference, or track the revalued carrying amount and post only the increment — both arrive at the same total, and mixing them double-counts.
Which rate, and when
- Transaction date — the rate on the day of the invoice or payment. Most systems use the central bank's published rate; in the euro area that is typically the ECB reference rate, and Lithuanian practice follows the rates published for accounting purposes.
- Closing rate — the rate at the reporting date, used for revaluing monetary items.
- Average rate — sometimes permitted for income and expenses over a period, as a practical expedient.
Whichever you choose, apply it consistently and store the rate on the transaction. "We used the ECB rate" is not reconstructable years later; a stored rate per document is.
How Nordlet handles it
Invoices carry their own currency, and the base currency for the ledger is EUR. When a document is issued or registered, the FX rate for its date is resolved and stored on the document, and the base-currency amounts are computed from it — so every foreign-currency invoice keeps both its face amount and the rate that converted it.
Rates come from the exchange-rate table, which supports both centrally imported rates and company-specific overrides, and lookups fall back to the most recent rate on or before the date rather than failing on a weekend or holiday.
Realized FX differences are automated. When a payment is matched against an invoice in bank reconciliation, the difference between the invoice's recorded base amount and the payment's base amount posts through dedicated posting rules — bank.fxGain to account 5803 and bank.fxLoss to 6803. Partial payments produce proportional differences.
Period-end revaluation of open balances is not automated. This is the honest gap: unrealized differences on foreign-currency receivables, payables and bank balances are not computed or posted by the system. At period end that revaluation is a manual journal entry, informed by the open items in POST /v1/reports/partner-balances and the closing rate.
For groups, consolidation is a separate mechanism: each member's statements are translated into the group's presentation currency at the closing-rate factor, with the translation factor reported per member so the effect is visible rather than buried.
FAQ
What is the difference between realized and unrealized FX gains?
A realized gain arises when a foreign-currency transaction is settled — the money moved and the difference is permanent. An unrealized gain arises from revaluing an open balance at the reporting date; nothing has been received and the rate may move again before settlement.
Which exchange rate should be used for an invoice?
The rate on the transaction date, typically a central bank published rate. What matters most is applying it consistently and storing the rate used on the document, so the conversion can be explained later.
Are foreign currency gains part of revenue?
No. They belong in the financial activity result, separate from operating revenue — a currency movement is not a sale. Presenting FX gains within revenue overstates trading performance.
Which balances need revaluing at period end?
Monetary items: foreign-currency receivables, payables, cash and loans. Non-monetary items such as inventory, fixed assets and prepayments stay at their historical rate.
Should I store amounts in the original currency or converted?
Both, plus the rate used. Storing only the converted amount loses what the customer actually owes; storing only the foreign amount forces reconversion at an unknown rate. Every serious multi-currency ledger keeps all three.