Foreign currency
One set of books in your own currency, rates fixed the moment a document is issued, and exchange differences posted for you.
If you invoice or buy in a currency other than your own, ac-co.ai keeps one set of books in your currency and records the foreign side alongside it — the original amount, the original currency, the rate used, and where that rate came from. Nothing is ever added up across currencies, and no rate is ever invented.
Your books have one currency
Each legal entity keeps its books in a functional currency. If you do not set one, the entity inherits your organization's base currency, and failing that, GBP. Every ledger figure — every report total, every control account — is in that currency; the transaction currency lives beside it on each line.
Because a posted amount cannot be re-interpreted after the fact, the functional currency can only be set before an entity has any postings. After that it is fixed: changing it would silently re-label every number already on the books.
Where the rate comes from
Manage your own rates in Currencies & Exchange Rates, where you can add a currency and add a rate for a given date. When ac-co.ai needs a rate, it takes the first of these that answers:
- The rate the document itself states — what the two parties actually transacted at.
- The rate a previous posting of that same document used, so a document and its corrections can never drift apart.
- Your organization's own rates, entered on the Currencies & Exchange Rates page.
- The shared daily reference rates, including a cross-rate through your base currency where a direct pair is missing.
For a settlement, the bank's own conversion rate from the feed wins over any reference rate — it is what the money really converted at, not a market observation.
A missing rate is never assumed to be 1
If no rate can be resolved for a foreign document, the action stops and tells you so. Silently treating a foreign amount as if it were your own currency would post a number of the wrong size into your books, and no report would be able to detect it afterwards.
Every stored rate carries its provenance — whether it came from the document, the bank feed, a QuickBooks or Xero record, your own rate table, the shared reference table, a live lookup, or was typed in by hand. That label is now recorded truthfully everywhere: a rate you entered yourself is recorded as yours, not dressed up as a market reference, and a rate that arrived from a provider sync is not recorded as something the two parties agreed.
The rate is fixed when you issue
While an invoice, quote or credit note is a Draft you can still change everything about it, the exchange rate included.
The moment you issue it, ac-co.ai resolves the rate and freezes it onto the document, in the same step that allocates the invoice number and posts the accrual. After that, the document's rate, its rate source and its rate date cannot change — which is exactly what makes the settlement arithmetic below work, and what keeps a control account clearing to zero.
Bills and receipts have no issue event, so their rate is fixed when they are first posted instead.
Exchange gains and losses on settlement
When a foreign invoice is settled at a different rate from the one it was raised at, the difference is a real gain or loss and ac-co.ai posts it for you.
A €1,000 invoice raised at 0.85 puts £850 on your debtors. The customer pays and the bank converts at 0.83, so £830 arrives:
| Debit | Credit | |
|---|---|---|
| Bank (at the settlement rate) | £830.00 | |
| FX gain/loss (the realised difference) | £20.00 | |
| Accounts receivable (at the document rate) | £850.00 |
Debtors is relieved by exactly what was carried, so nothing is left stranded there, and the £20 is visible as an exchange loss rather than smeared into revenue. Gains and losses share one account — what matters for your accounts and your tax computation is the net exchange difference for the period. Differences smaller than half a penny post no line at all.
Period-end retranslation
At the period end, open foreign balances on monetary accounts (debtors, creditors, foreign bank balances) are retranslated at the closing rate — as FRS 102 and IAS 21 require. Costs already recognised at the transaction rate are not retranslated.
Two details worth knowing:
- The adjustment posts to its own revaluation account beside the control account, rather than moving the control account itself. Your net debtors figure is right, your aged debtors report still ties out, and the adjustment is visible instead of hidden inside a balance.
- The revaluation automatically reverses on the first day of the next period. It has to: the realised gain or loss booked when the invoice is eventually settled already measures the whole movement from the document rate to the bank rate, so leaving the revaluation standing would count the same movement twice.
Retranslation is a step in the Month-end close checklist (Settings → Accounting periods), placed immediately before sign-off — it is the last thing that moves a number.
Corrections keep the original rate
When a foreign transaction is corrected or restated, the correction carries the rate the original was booked at rather than re-resolving today's rate. A correction re-expresses history; it must not silently re-price it. See Corrections & audit history.