The Problem With Multi-Currency Reconciliation
A transaction happens at one exchange rate, settles at another, and gets reported at a third. Each creates a variance that needs accounting for.
The first time you reconcile a foreign currency bank account, you will encounter a discrepancy. The invoice says one thing, the bank statement says another, and neither is wrong. This is the central frustration of multi-currency bookkeeping: numbers that should match do not, and the difference is neither an error nor something you can ignore.
Why Multi-Currency Is Genuinely Hard
The core problem is that a single transaction gets recorded at multiple exchange rates. Each recording is correct in its own context, but they produce different GBP values.
Consider a straightforward example. A UK company invoices a US client $5,000 on 1st March. The GBP/USD exchange rate that day is 1.27. The accounting system records a receivable of £3,937.01 (calculated as $5,000 ÷ 1.27).
The US client pays on 15th March. By then, sterling has strengthened: GBP/USD is now 1.25. The bank receives £4,000.00 (calculated as $5,000 ÷ 1.25).
The books show £3,937.01 outstanding. The bank shows £4,000.00 received. The difference is £62.99.
This is not a matching error. It is a foreign exchange gain, caused by the 14-day movement in exchange rates. You need a separate journal entry to recognise it.
Realised and Unrealised Gains
That £62.99 difference is a realised foreign exchange gain, because cash has changed hands. The transaction is closed. You owe the client nothing, they owe you nothing, and you are £62.99 better off than you expected to be when you issued the invoice.
Unrealised Gains at Year-End
Now suppose the US client does not pay until after the company's year-end on 31st March. On that date, you still show £3,937.01 receivable in your books, based on the 1st March rate of 1.27.
But the receivable is denominated in dollars. Under FRS 102 Section 30, you must revalue it at the closing exchange rate on the reporting date. If GBP/USD has moved to 1.26 by 31st March, the receivable is now worth £3,968.25 ($5,000 ÷ 1.26).
You have not received the cash yet. But FRS 102 requires you to recognise an unrealised foreign exchange gain of £31.24 (the difference between £3,937.01 and £3,968.25) in your profit and loss account for the year ended 31st March.
When the client eventually pays on 15th April, you will have a second FX movement to record: the difference between the 31st March closing rate (1.26) and the payment date rate (1.25). That second movement goes in the new financial year.
What FRS 102 Section 30 Requires
Monetary items (receivables, payables, cash) must be revalued at the closing exchange rate at each reporting date. Non-monetary items (fixed assets, prepayments, inventory purchased for a specific price) stay at historic cost. Exchange differences go to profit and loss, not to other comprehensive income, for most UK small companies operating under the Small Companies Regime (Section 1A of FRS 102).
UK VAT Complications
VAT on foreign purchases introduces a separate rate problem. HMRC does not care what rate your bank applied. You must use HMRC's published monthly exchange rates for converting foreign currency amounts when completing your VAT return.
HMRC publishes these rates on the penultimate Thursday of each month for the following month. They represent mid-market rates as of midday the day before publication.
If you buy €1,000 of goods from a supplier in Ireland on 10th February, and your bank charges you £857.34 for the payment, that is not the number you use for VAT. You use HMRC's February rate (published in late January). If that rate is 1.18, you reclaim VAT on £847.46 (€1,000 ÷ 1.18), not on the £857.34 your bank statement shows.
The £9.88 difference is not reclaimable. It sits in your foreign exchange variance account.
Platform-Specific Handling
The accounting software you use dictates how much of this you handle manually.
Xero
Xero has native multi-currency support. You can designate a bank account as USD, EUR, or any of 160+ currencies. When you reconcile a foreign currency bank account, Xero handles the matching in the original currency. You do not convert anything manually.
Xero auto-calculates realised FX gains and losses when you match a payment to an invoice. It compares the exchange rate on the invoice date to the rate on the payment date and posts the difference to account 497 (Unrealised Currency Gains) by default.
The complication: Xero fetches its exchange rates daily from a third-party provider (currently using mid-market rates). The rate Xero uses on 15th March will almost certainly differ from the rate your bank applied when it processed the $5,000 payment. Banks apply their own rates, often with a margin built in.
This creates a small variance—typically a few pence per transaction—that you need to write off to an FX variance account when reconciling the bank feed. For a practice with dozens of foreign currency transactions per month, these variances accumulate into genuine noise.
QuickBooks Online
QuickBooks has multi-currency built in, but you must enable it before entering any transactions. Once enabled, it cannot be turned off. QuickBooks fetches exchange rates from XE.com (using their mid-market rates).
Like Xero, QuickBooks auto-calculates realised FX on payment matching. Unlike Xero, QuickBooks requires you to manually run a "Home Currency Adjustment" at period-end to revalue outstanding foreign currency balances. This is the FRS 102 Section 30 unrealised gain/loss calculation, but QuickBooks will not do it automatically. If you forget, your year-end balance sheet will be wrong.
Sage
Sage 50 requires the Foreign Trader module (a paid add-on) for multi-currency. Sage Accounting (cloud) has multi-currency built in for higher-tier subscriptions.
Sage's approach is more manual than Xero or QuickBooks. You define your exchange rates at the point of invoice or payment entry. Sage does not fetch live rates. If you want automation, you must integrate with a third-party FX rate feed.
Manual (Excel)
If you are not using accounting software with native multi-currency support, you need a three-column tracking system: transaction date rate, payment date rate, and reporting date rate.
For every invoice issued in foreign currency, record the GBP value at transaction date. When payment is received, record the actual GBP deposited. The difference goes to an FX gain/loss account via manual journal.
At year-end, revalue every outstanding foreign currency receivable and payable at the closing rate. Post the net movement as an unrealised gain or loss.
This is tedious but tractable for a handful of transactions per month. For any higher volume, the error rate makes it impractical.
Payment Platform Traps
PayPal and Stripe introduce their own rate layers.
Both platforms allow you to hold balances in multiple currencies. When a customer pays you $100 via PayPal, you can choose to keep it as $100 in your PayPal USD balance, or convert it to GBP immediately at PayPal's rate.
PayPal's rate is worse than the mid-market rate by roughly 3–4%. That difference is not shown as a fee. It is embedded in the exchange rate. Your PayPal statement will show a conversion, but the rate applied is opaque unless you reverse-engineer it from the GBP amount received.
Stripe operates similarly. Stripe's published rate includes a 1% conversion fee for most currencies, but the rate you see in the Stripe dashboard is the post-fee rate. You cannot separate the FX movement from the fee without referring to Stripe's rate card for that day.
Both platforms settle to your UK bank account in GBP. Your accounting system sees only the GBP deposit. If you issued an invoice for $100 at a rate of 1.27 (expecting £78.74), but Stripe converts at an effective rate of 1.30 after fees (depositing £76.92), you have a £1.82 variance to explain.
The Practical Approach
Multi-currency reconciliation becomes manageable when you separate the matching from the FX.
If you regularly receive USD payments, open a USD bank account. Reconcile it in USD. Convert to GBP only when you need the funds in the UK. This collapses three exchange rate moments (invoice, payment, reporting) into two (invoice, controlled conversion).
For VAT, use HMRC rates. For day-to-day bookkeeping, use your accounting software's rate feed if you have one, or pick a consistent free source (XE.com, OANDA). For large one-off transactions, record the exact rate your bank applied, pulled from the confirmation document.
Match the $5,000 invoice to the $5,000 payment. Both sides agree. Only then calculate the GBP equivalent at the payment date rate and post the FX gain or loss. This isolates data entry errors (wrong amount) from FX variances (right amount, wrong rate).
Running the FRS 102 revaluation monthly means smaller adjustments and fewer surprises. A £300 unrealised loss discovered in month 12 is harder to explain to a client than twelve £25 movements recognised as they occurred.
You will have unexplained differences of a few pence per transaction when using Xero or QuickBooks, because their rates differ from your bank's rates. Set a tolerance (we use £2 per transaction) and write off anything below it to an FX variance account. Investigating a 37p difference is not a productive use of time.
What HMRC Notices
HMRC's corporation tax return (CT600) includes a reconciliation between your profit per accounts and your taxable profit. Large unrealised FX gains or losses will appear in this reconciliation if you have revalued foreign currency balances under FRS 102.
HMRC treats realised FX gains and losses as taxable/deductible in the period they are realised (i.e., when cash changes hands). Unrealised gains and losses are generally ignored for tax purposes unless you are a company with "loan relationships" under CTA 2009.
Most small UK companies do not meet the loan relationships threshold. This means your accounting profit includes unrealised FX movements that do not affect your tax bill. You add them back in the CT600 reconciliation.
If you fail to revalue at year-end, your accounts understate (or overstate) your receivables and payables. HMRC may not notice immediately, but your auditor will, and it will require a prior-year adjustment to correct.
The 14-Day Lag Problem
One pattern we see repeatedly: invoices raised in the final week of a month, paid in the first week of the next month.
The invoice hits March's management accounts at the transaction date rate. The payment clears in April at a different rate. The FX gain or loss is recognised in April, but it relates to a March invoice.
For monthly reporting, this creates a mismatch. March's revenue looks lower than it should (because the FX gain has not been booked yet). April shows an FX gain that relates to a prior month's activity.
The fix is accrual accounting: estimate the likely FX impact at month-end based on the closing rate and accrue it in March. When April's actual payment clears, reverse the accrual and book the real number. The difference between estimate and actual is usually negligible.
Simplify Your Multi-Currency Reconciliation
ReconcileIQ handles foreign currency matching in the original currency and auto-posts FX variances to your nominated account. No Excel tracking, no manual journal entries.
Start Free TrialFrequently Asked Questions
Do I need to revalue foreign currency balances at year-end?
Yes. Under FRS 102 Section 30, monetary items (receivables, payables, bank accounts) must be revalued at the closing exchange rate at each reporting date. The resulting unrealised gains or losses go to profit and loss for most UK small companies. Non-monetary items like fixed assets stay at historic cost.
Which exchange rate should I use for VAT on foreign purchases?
Use HMRC's published monthly exchange rates, not your bank's rate. HMRC publishes rates on the penultimate Thursday of each month for the following month. Using the wrong rate creates a mismatch between your VAT reclaim and what HMRC expects.
Why does my bank statement show a different amount than the invoice?
Exchange rates move between invoice date and payment date. If you invoiced $5,000 when GBP/USD was 1.27 (£3,937), but the customer paid when the rate was 1.25 (£4,000 received), you have a £63 foreign exchange gain that needs its own journal entry.
How does Xero handle multi-currency reconciliation?
Xero supports native multi-currency bank accounts and auto-calculates realised FX gains/losses when you match payments to invoices. The complication: Xero's daily mid-market rate rarely matches the actual rate your bank applied, creating small variances you need to write off to an FX variance account.