Two currencies on every foreign transaction
Every foreign currency transaction involves two currencies:
- The transaction currency is the currency on the document: the USD on your customer's invoice, or the MYR on your supplier's bill.
- The functional currency is the currency your books are kept in. It is normally the currency of the main economic environment you operate in, such as SGD for a company trading mainly in Singapore or VND for one trading mainly in Vietnam. The accounting standards that apply to you set out how to decide it, and your local tax rules may also require you to keep statutory records in the local currency. Check both if you are unsure.
Your ledger must balance in the functional currency. So every foreign amount has to be converted. Good practice is to record both: the original amount (USD 10,000) and the converted amount (SGD 13,500). You need the original to know what the customer still owes, and the converted amount for your financial statements.
Recording the invoice: which rate to use
Record a foreign currency invoice or bill at the exchange rate on the date of the transaction, usually the invoice date. That rate becomes the document's historical rate. It stays attached to the document until it is paid.
Decide where your rates come from and stick to it. Common sources are your central bank's published rates or your main bank's daily rates. Some tax authorities specify which rate to use for tax documents, so check your local rules before you choose. Whatever the source, keep a record of the rate used and the date, because your auditor will ask.
Some businesses use a single monthly rate for convenience. That can be acceptable when rates are stable, but it is an approximation. If rates move sharply within the month, use daily rates.
Realised gains and losses: when cash settles
A realised exchange gain or loss happens when a foreign currency document is settled at a different rate from the one it was recorded at.
Say you invoiced a customer USD 10,000 when the rate was 1.35, so SGD 13,500. The customer pays a month later when the rate is 1.33. You receive USD 10,000, which is now worth SGD 13,300. The receivable is cleared at its recorded value of SGD 13,500, and the SGD 200 shortfall is a realised exchange loss.
The direction depends on what you hold:
| What you hold | Foreign currency strengthens | Foreign currency weakens |
|---|---|---|
| Receivable or foreign cash | Gain | Loss |
| Payable or foreign loan | Loss | Gain |
Realised gains and losses are real. They change how much cash you end up with in your own currency.
One trap: if the bank deducts a fee from a foreign receipt, so the customer sends USD 10,000 and you receive USD 9,980, the USD 20 is a bank charge, not an exchange loss. Record it separately so your FX figures only show rate movements.
Unrealised gains and losses: month-end revaluation
At the end of each period, some foreign currency balances are still open: invoices not yet paid, bills not yet settled, cash sitting in a foreign currency bank account. Their value in your own currency has moved since you recorded them.
Revaluation restates those open balances at the closing rate on the last day of the period. The difference is an unrealised gain or loss, because nothing has been settled yet.
What gets revalued:
- Foreign currency bank and cash balances.
- Open receivables and payables in foreign currencies.
- Foreign currency loans and deposits.
What does not get revalued: non-monetary items such as stock, fixed assets and prepaid expenses. They stay at the rate on the date you acquired them.
There are two common ways to handle the revaluation entry. One is to reverse it on the first day of the next period, so each period starts again from historical rates and the real result shows up as realised FX at settlement. The other is to leave the revalued amount in place and measure the next movement from there. Both give the same total over the life of the document. Pick one and be consistent.
The tax treatment of unrealised exchange gains and losses differs between countries. Some tax them as they arise, others only when realised. Check your local rules.
A worked example from invoice to payment
Say your company keeps its books in SGD and invoices a US customer USD 10,000 on 10 October.
| Date | Event | Rate | SGD value | Journal entry (SGD) |
|---|---|---|---|---|
| 10 Oct | Invoice USD 10,000 | 1.35 | 13,500 | Debit receivable 13,500, credit revenue 13,500 |
| 31 Oct | Month-end revaluation | 1.37 | 13,700 | Debit receivable 200, credit unrealised FX gain 200 |
| 1 Nov | Reverse revaluation | – | 13,500 | Debit unrealised FX gain 200, credit receivable 200 |
| 15 Nov | Customer pays USD 10,000 | 1.33 | 13,300 | Debit bank 13,300, debit realised FX loss 200, credit receivable 13,500 |
What the profit and loss shows:
- October: revenue of SGD 13,500 and an unrealised gain of SGD 200.
- November: the reversal of SGD 200 and a realised loss of SGD 200.
- Overall: a net exchange loss of SGD 200, which is exactly the difference between what you invoiced in SGD terms (13,500) and what you received (13,300).
Without the reversal, the receivable would sit at SGD 13,700 from 31 October and the realised loss in November would be SGD 400. October's gain of 200 plus November's loss of 400 still nets to the same SGD 200 loss.
The same logic works in reverse for bills. If you owe a Malaysian supplier MYR 20,000 and the ringgit strengthens against your currency before you pay, the payable is worth more in your currency and you book a loss.
Practical rules that keep FX clean
- Never leave a rate at 1. A foreign document converted at 1 by mistake will distort revenue and push a large, false gain or loss into FX when it is paid. If no rate is on file for a date, stop and add one.
- Reconcile foreign bank accounts in their own currency first. A USD account should agree with the USD statement before you revalue it. See how to do a bank reconciliation.
- Handle part payments carefully. When a customer pays half an invoice, half of the receivable is settled at the historical rate, and only that half produces a realised gain or loss.
- Keep realised and unrealised FX in separate accounts. That makes it obvious how much of the result has actually turned into cash.
- Make revaluation a fixed step in your close. Run it once per period, after receipts and payments are posted. It belongs on your month-end close checklist.
- Running more than one company? Each one keeps its own books, and group reporting brings in a further translation step. See multi-company accounting.
Where Nyra fits
In Nyra, you can raise invoices, bills, receipts and payments in any currency. The exchange rate fills in from your rate table for the document's date, and Nyra warns you when no rate is on file instead of quietly using 1. Each invoice and bill keeps its own rate, so when it is paid at a different rate the difference posts to realised FX gain or loss automatically. At month-end, the FX revaluation run restates foreign currency bank balances and open receivables and payables at the closing rate. You can preview it, and it refuses to post while a closing rate is missing. It posts one journal to a separate unrealised FX account, reverses it in the next posting period, and runs once per period. Reports show one total in your main currency. Book a demo to see it with your own currencies, or read about Nyra's accounting module.