Foreign currency revaluation in Business Central
How Business Central revalues open foreign-currency balances at period-end — Adjust Exchange Rates, the unrealised gain/loss accounts, and how revaluation differs from realised FX.
A company that invoices in EUR but reports in USD owns FX exposure on every unpaid invoice. At period-end, accounting standards (IFRS, US GAAP) require those open balances to be revalued to the closing rate, with the difference recognised as an unrealised gain or loss. Business Central handles this through the Adjust Exchange Rates batch.
Realised vs unrealised FX.
- Realised FX gain/loss — happens at the moment of settlement (payment). If a customer paid EUR 100 invoice that was booked at $1.10 = $110 but the payment converted at $1.08 = $108, the $2 difference is a realised loss. Booked at posting time of the application.
- Unrealised FX gain/loss — happens at period-end revaluation of unsettled balances. An open EUR 100 invoice booked at $1.10 = $110 with a closing rate of $1.12 implies the receivable is now worth $112; the $2 difference is unrealised gain. Booked by Adjust Exchange Rates.
The distinction matters for both accounting presentation and tax — many jurisdictions tax realised gains but not unrealised.
Adjust Exchange Rates. Navigation: Finance → Currencies → Adjust Exchange Rates. The batch:
- Reads each open customer ledger entry, vendor ledger entry, bank ledger entry, and G/L entry on foreign-currency accounts.
- Compares the original recorded exchange rate against the closing rate as of the parameter
Posting Date. - For each entry, computes the FX delta in LCY.
- Posts an entry to the unrealised gain or unrealised loss account (set on the Currency card).
- On the next adjustment, reverses the prior unrealised entry and posts the new one — the unrealised position is always the latest snapshot.
Currency card setup. Each currency requires these G/L accounts:
- Unrealised Gains Acc. — credit account for upward revaluation.
- Unrealised Losses Acc. — debit account for downward revaluation.
- Realized Gains Acc. — for settlement gains.
- Realized Losses Acc. — for settlement losses.
Many companies use a single P&L line (FX gain/loss, net) but maintain separate G/L accounts for cleaner audit trail.
Exchange rate maintenance. The batch only works if exchange rates are current. The Currency Exchange Rate table holds dated rate records per currency pair. Three sources:
- Manual entry — daily/weekly, by a finance team.
- Microsoft's exchange rate service — pulls rates from a configured provider (often Open Exchange Rates).
- Custom feeds — Power Automate flow pulling from a treasury system or rate provider, then writing via the BC API.
Closing rates for revaluation are usually the rate at end of period — populate before running Adjust Exchange Rates.
Which entries get adjusted.
- Customer / vendor ledger entries — adjusted if
Open = Yes(unsettled). - Bank ledger entries — bank balance in foreign currency revalued every period.
- G/L entries on FX accounts — accounts flagged with a non-LCY currency revalue.
Closed entries (fully applied invoice and payment) are not revalued because the gain/loss is already realised.
Reporting impact. Unrealised FX appears in the P&L under FX gain/loss. The balance sheet picks up the LCY revaluation in the customer / vendor / bank balances. The next period, the prior unrealised reverses and a new value posts — net effect is the change since last revaluation.
Statutory and tax nuances. Some jurisdictions defer unrealised FX for tax purposes (US Subpart F has specific rules; many other countries follow IFRS unrealised treatment). The G/L mapping should distinguish unrealised from realised so the tax computation can exclude unrealised correctly.
Common pitfalls.
- Skipping revaluation. Financial statements show open balances at original rates; auditor adjustment at year-end.
- Wrong closing rate. Using an average rate instead of period-end rate is a common error; check policy.
- Revaluing already-settled entries. Shouldn't happen but errors in application status can cause it; ensure applications are clean before running.
- G/L account contamination. Manual entries on the unrealised accounts during the period confuse the revaluation reversal logic. Don't post manually to FX accounts.
- No revaluation on bank accounts. A bank in EUR carries USD valuation that drifts; forgetting to revalue understates or overstates cash.
Operational rhythm. Run Adjust Exchange Rates as a step in the monthly close: after AR/AP have been finalised but before reporting. A repeatable runbook including current rates entry and post-adjustment validation prevents close-day fire drills.
Related guides
- Account schedules and financial reports in Business CentralHow Business Central's account schedules and the newer Financial Reports feature work — and how to build P&L and balance sheet reports without leaving BC.
- Aging reports in Business CentralHow Business Central's aging reports work — AR aging, AP aging, date-driven buckets, customisation, and the operational use in collections and cash management.
- Approval limits and hierarchies in Business CentralHow Business Central routes documents through approval — user approval limits, hierarchical routing, workflow user groups, and the substitute mechanism.
- Approval workflows in Business CentralHow approval workflows work in Business Central — built-in templates, custom workflow design, Power Automate alternatives, and approval limits.
- Bank deposits and cash management in Business CentralHow Business Central handles physical bank deposits, cash receipts, and the day-to-day cash management beyond bank reconciliation.