Foreign exchange rates and revaluation
Goal
Maintain exchange rates for foreign-currency documents, and run period-end FX revaluation on foreign asset/liability balances.
Who it is for
Finance users with accounting.view. Creating rates needs accounting.manage. Posting a revaluation needs accounting.post.
Exchange Rates
- Open Accounting → Tax & FX → Exchange Rates (
/exchange-rates). - New rate: From / To (3-letter currencies), Rate (> 0), As of date.
- Save — upserts the pair+date (
updateOrCreate). Toast Exchange rate saved. - Banner behaviour: if no exact-date rate exists, the system uses the most recent earlier rate for that pair; if none exist, the transaction fails with "No exchange rate is available for :from to :to."
- Rates are advisory for future docs — rates already frozen on posted journals are not rewritten by edits here.
FX revaluation
- Open Accounting → Tax & FX → FX revaluation.
- Choose As of, then Preview (
GET /fx-revaluations/preview). - Review foreign net, carrying base, closing rate, revalued base, and adjustment lines.
- Post adjustment (
POST /fx-revaluations, confirm dialog) — needsaccounting.post. Offset uses the system rolefx_gain_lossviaPostingService. - Empty case: "There are no foreign-currency balances to revalue." / UI Nothing to revalue.
Result
Documents can convert to base currency; period-end unrealized gain/loss is posted when you confirm revaluation.
Related
- Tax codes
- Period close
- Tenant settings (base currency)