Skip to content
Office Hero, home
Office Hero, home
Book a demo

Guide

Multi-currency accounting: exchange rates, FX gains and month-end revaluation

Updated 2 October 20269 min read

A plain guide for companies in North Macedonia and the wider region that invoice, buy or keep money in more than one currency: which rate to use, when exchange differences arise and how month-end revaluation works.

The three currencies in a foreign-currency transaction

Every invoice, bill or bank line in a foreign currency involves up to three currencies. Keeping them apart is the first step towards books that add up.

  • Transaction currency: the currency on the document, for example euros on an invoice to a customer in Germany.
  • Functional currency: the currency your books are kept in. IAS 21, the international standard on foreign exchange, defines it as the currency of the primary economic environment in which a company operates.
  • Presentation currency: the currency in which the financial statements are shown, when it differs from the functional currency.

For a company whose prices, costs and wages are mostly set in denars, the functional currency is the denar, even when many of its invoices are in euros. Decide it before you post anything. Every later step, from posting an invoice to revaluing a bank account, converts into the functional currency, and changing it later is a significant change that your accountant should plan.

Which exchange rate: ECB or NBRM?

Two official sources matter most for companies in North Macedonia: the European Central Bank (ECB) and the National Bank of the Republic of North Macedonia (NBRM). They publish separate lists, and the two lists are closely linked.

ECB euro reference rates

The ECB publishes reference rates for the euro against 29 currencies, usually at around 16:00 CET on every working day except TARGET closing days. The rates come from a daily concertation procedure between central banks across Europe. The ECB states that they are published for information purposes only and strongly discourages their use for transactions, so check which rate your tax and accounting rules expect. The denar is not on the ECB list.

NBRM middle rates for the denar

The NBRM publishes a list of middle rates: the price in denars of one unit of each listed currency, rounded to four decimal places. Its decision on how the middle rates are formed and published has applied since November 2022, and three of its rules matter here.

  • The euro rate is the average of the buying and selling quotes of the supporting banks on the foreign exchange market at 16:00 on each working day.
  • The rates of the other currencies are calculated from the ECB's euro reference rates. For a currency the ECB does not publish, and on TARGET closing days when the ECB publishes nothing, the NBRM uses market rates.
  • The list is published by 18:00 on working days and applies from 00:00 the next day until a new list replaces it, so weekends and public holidays are always covered.

Because the NBRM derives its other rates from the ECB's, a dollar rate worked out through the euro comes out very close to the NBRM's own dollar rate. The small differences that remain come from timing and rounding, which is one more reason to record where each rate came from.

The NBRM has targeted the exchange rate of the denar against the euro since January 2002, as the intermediate objective of its monetary policy. Exchange differences on euro balances therefore tend to be small, while balances in dollars, pounds or Swiss francs move with the euro's own rate against those currencies and can change much more.

Which source to use

Follow the rules that apply to your books, and ask your accountant when you are not sure. Whichever source you use, be consistent: take the same source for the same kind of transaction, keep the rate and its date with every document, and use one source for each revaluation.

Booking a foreign-currency invoice

Under IAS 21, a foreign-currency transaction is first recorded in the functional currency at the spot rate between the two currencies on the date of the transaction. For a sale, that is the date the sale is recognised, which is often the invoice date. Take an invoice of EUR 10,000 dated 20 March: at an illustrative rate of 61.50 denars per euro, it is booked as a receivable of 615,000 denars, with the matching revenue.

When the document date falls on a weekend or a public holiday, there is no new ECB rate for that day, and the most recent earlier rate applies. The NBRM list always has a rate for the day, because each list stays valid until the next one.

Realised and unrealised exchange differences

Exchange differences arise on monetary items: cash, bank balances, receivables, payables and loans, which will be settled in a fixed or determinable number of currency units. IAS 21 recognises the differences in profit or loss in the period in which they arise. They come in two kinds.

Realised: when the invoice is paid

The receivable is settled at the rate on the payment date. If the customer in the example pays on 15 April, when the rate is 61.58, you receive 615,800 denars against a receivable booked at 615,000: a realised gain of 800 denars. Had the rate fallen, the difference would be a loss. A supplier bill works the other way round: paying it when the foreign currency has become dearer costs more denars than you booked, which is a loss.

Unrealised: open balances at the reporting date

At the end of each reporting period, monetary items that are still open are translated at the closing rate, the spot rate on that date. If the invoice is unpaid on 31 March and the rate is 61.53, the receivable is now worth 615,300 denars: an unrealised gain of 300 denars for March. It is unrealised because no money has moved yet, and the rate can still change before it does.

Non-monetary items carried at historical cost, such as fixed assets, stock and prepayments, keep the rate of the original transaction and are not revalued, so they create no exchange difference.

Month-end revaluation, step by step

Revaluation is how unrealised differences reach the books. You can revalue at every month end, so that monthly results show the effect of rate movements, or only at the reporting dates your rules require. A clean month-end run follows six steps.

  1. Make sure the closing rate of every currency is on file, whether it comes from the ECB, from the NBRM or is entered by hand.
  2. Post every invoice, bill and payment of the period, and reconcile the foreign-currency bank accounts.
  3. List each open receivable, payable and foreign-currency bank balance with its carrying value in the functional currency.
  4. Translate each one at the closing rate; the difference from the carrying value is the unrealised gain or loss.
  5. Post the differences to the unrealised gain and loss accounts.
  6. Decide how the next period starts: reverse the entry on its first day, or carry the revalued amounts forward.

Reverse on day one, or carry forward?

Both methods give the same total; they differ in where each part shows. With a reversal on the first day of the next period, every open item returns to the rate it was booked at, and the payment later realises the whole difference between the booked rate and the payment rate. Without a reversal, the open item keeps its revalued amount, and the difference realised on payment is measured from the last revaluation.

The example, month by month

With illustrative rates of 61.50 on 20 March, 61.53 on 31 March and 61.58 on 15 April, March shows an unrealised gain of 300 denars. On 1 April the revaluation reverses, minus 300, and the payment books a realised gain of 800, so April shows 500. Over the two months the gain is 800 denars: exactly the difference between the booked rate and the payment rate.

Common mistakes to avoid

  • A rate of 1 between two currencies. Booking a euro invoice as if one euro were one denar distorts every total that follows. A missing rate should stop the posting, not be guessed.
  • No record of the source. Keep the source and the date of every rate, so that an auditor can trace each figure.
  • Revaluing non-monetary items. Fixed assets and stock carried at historical cost keep their original rate.
  • Revaluing twice. Run one revaluation per period. If a run was wrong, correct it within the same period: a reversal dated in the next period leaves both runs in this one.
  • Forgetting the bank accounts. A euro bank balance is a monetary item and is revalued like a receivable.
  • Old rates on new documents. A rate that is several days older than the document date deserves a second look.

Currencies that join the euro

When a country adopts the euro, the ECB stops publishing a rate for its old currency, and the NBRM then removes that currency from its own list. Bulgaria adopted the euro on 1 January 2026 at a fixed conversion rate of 1.95583 lev per euro, so the lev now appears on neither list. Balances that were in lev convert to euros at that fixed rate.

How Finance Hero handles multi-currency

Here is what Finance Hero, the accounting app of Office Hero, does for you, and where you still post by hand.

  • Every company starts with the euro as its functional currency. Switch to denars, if they are your functional currency, before the first journal is posted: after that it cannot be changed.
  • It loads the ECB's euro reference rates on every TARGET business day and the NBRM's denar list every day, weekends included, and keeps the source of every rate.
  • Each document takes the latest rate on file dated on or before its own date, and a document with no rate on file is not posted until a rate is loaded or entered.
  • Payments made from the Supplier payments screen book the realised difference automatically once the gain and loss accounts are set. Other payments, including those recorded on an invoice or a bill, and bank matches need a manual journal for the difference.
  • The month-end revaluation covers open receivables, payables and foreign-currency bank balances, with a preview before anything posts. Run it on the last day of the period: it values the invoices and bills open at that moment, and a run committed before the next period starts reverses itself on that period's first day. A later run is reversed by hand.
  • Keep the automatic reversal switched on: each revaluation measures open invoices and bills from the rate they were booked at, so it expects the previous run to be reversed.
  • A bank balance is compared with the balance of the bank's ledger account, so post every movement of the bank, its opening balance included, to a ledger account of its own.
  • An invoice priced at a rate more than 7 days older than its issue date is marked as stale.

The Finance Hero multi-currency page, linked below, shows the screens and the packages.

Run your currencies in Finance Hero

Book a demo and we will show you ECB and NBRM rates, realised differences and a month-end revaluation with your own currencies.