Skip to main content
Pending validationOdoo 20.0Community and Enterprise

How to run the month-end currency revaluation

What is it for?​

When the company has customer or supplier invoices, or bank accounts, in a foreign currency (for example US dollars), the euro amount in the accounts is the one from the day the document was posted. At the end of the month those balances are worth a different amount, at that day's exchange rate. The currency revaluation calculates the difference on each open balance, posts it as an unrealised gain or loss and reverses that entry on the first day of the following month, so that the next month starts again from the historical amounts and the real difference only appears when the balance is paid or received.

When to use it?​

  • At each month-end (or year-end) closing, if the company has open balances or banks in a foreign currency.
  • To see, without posting anything, what those balances are worth today at the latest exchange rate (the revaluation worksheet and the Unrealised exchange differences list).
  • It is not for recording the exchange difference on a payment already made: that difference arises on the payment itself.

Where to find it?​

  • Import rates: Settings › Accounting › Import ECB rates › Open (Administrator).
  • Post the adjustment: Accounting › Close › Month accounting › Currency revaluation.
  • History: Accounting › Close › Month accounting › Currency revaluation history.
  • Revaluation worksheet and list of differences: Accounting › Review › Taxes and treasury › Exchange revaluation worksheet and Unrealised exchange differences. The saved rates are in Exchange rates, in the same menu.

Before you start​

  • Your profile is Accountant (posts the adjustment and sees everything). The Certified accountant can too. The Auditor can view the worksheets and the history, but the screen refuses the wizard: “Your profile (Auditor) is read-only”. Billing has no access (“You do not have access to “Exchange revaluation run””).
  • The foreign currency must be active (USD is active in the demo) and the company must have rates for it. Only the Administrator imports the rates file; the other profiles see the saved rates.
  • The example is Empresa Demonstração, Lda, in October 2026, with fictitious rates from a file in the ECB format (they are not real rates). There are three supplier invoices in dollars ($800.00, $1,500.00 and $615.00), a cash account in dollars ($1,060.00) and, after the closing, a customer invoice of $1,000.00 dated 01/11/2026.

How to use it​

  1. In Settings › Accounting, click Open on the Import ECB rates line. fiscaldoo downloads nothing from the internet: the file is the one you saved from the ECB website.
  2. Choose the file in ECB file (XML) and click Import. The option Replace rates that already exist with a different value? is off by default.
  3. The screen shows the result: “4 created, 0 updated, 0 unchanged, 0 kept with a different value; 0 currencies ignored (not active).” With a second file, the same screen said “1 created, 0 updated, 1 unchanged, 1 kept with a different value; 1 currencies ignored (not active).”: an identical day is not duplicated, a day with a different value stays as it was (unless you turn on replacement) and a currency that is not active (in the example, CHF) is ignored. Open the log shows the import log.
  4. To see the amounts without posting anything, open Review › Taxes and treasury › Exchange revaluation worksheet. Choose the Closing date (today by default), leave Customers, Suppliers and Bank ticked and click Calculate. With 31/10/2026, the worksheet shows “1 EUR = 1.090000 USD (30/10/2026)”: the rate used is the latest one dated on or before the closing date. Each line has the balance in dollars, the book value, the historical rate, the closing rate, the revalued amount and the difference. Favourable differences €7.88, unfavourable -€31.39, net -€23.51. The XLSX and PDF buttons export the worksheet (the XLSX was downloaded). If the adjustment for that date has already been posted, the worksheet warns “The revaluation of this closing date was already posted…” and no longer offers Post the revaluation.
  5. To post, open Close › Month accounting › Currency revaluation. The wizard proposes the previous month's Closing date (31/10/2026), Reverse next month? ticked with Reversal Date 01/11/2026, and the Journal “Exchange Difference”. You can exclude Customers, Suppliers or Bank, Excluded accounts, and limit to certain Currencies or Partners. Click Preview.
  6. The preview shows the rates, the differences and the table with the open balances: the dollar cash account (-€18.17), the supplier invoices FTF/2026/00039 (-€13.22), FTF/2026/00040 (€0.00) and FTF/2026/00046 (€7.88). The customer invoice of 01/11/2026 is not included, because it is after the closing date. The magnifying glass on each line opens the document. You can Change parameters or Cancel.
  7. Click Post adjustment and confirm the question “Post the adjustment entry and create its reversal?”.
  8. The screen now shows the revaluation record: Posted by, the Closing date 31/10/2026, the Adjustment entry EXCH/2026/00001, the Reversal entry EXCH/2026/00002 (“Posted”, because 01/11/2026 has already passed), Items adjusted 3 (the line with a €0.00 difference does not count), Total Gain €7.88 and Total Loss €31.39. Open the entries shows both.
  9. Currency revaluation history lists all posted revaluations (view only), with the totals and the status of the reversal.

Expected result​

  • Adjustment entry EXCH/2026/00001, dated 31/10/2026, in the Exchange Difference journal, checked in the ledger:
AccountDebitCredit
111001 Cash (dollars)18.17
2211 General suppliers (FTF/2026/00039)13.22
2211 General suppliers (FTF/2026/00046)7.88
6887 Unfavourable exchange differences13.22 + 18.17
7887 Favourable exchange differences7.88
  • The reversal EXCH/2026/00002, on 01/11/2026, has the same lines with debits and credits swapped, and the supplier lines are reconciled with those of the adjustment, so nothing stays open on the partners. Both entries balance (€39.27 on each side).
  • A favourable difference is a gain and an unfavourable one a loss, both taken to the profit and loss of the period. The account depends on the nature of the balance: cash, demand deposits, customers and suppliers use 7887 (favourable) and 6887 (unfavourable), as in this example; other deposits use 7861 and 6863; loans obtained use 793 and 6921. If the account for that nature does not exist in the chart, the company's exchange accounts are used.
  • The Unrealised exchange differences list shows, by month or year, the same differences per line (Customers, Suppliers, Bank accounts) with the balance-sheet amount, the revalued amount and the difference. In October 2026: Suppliers -€2,668.97 against -€2,674.31 revalued (-€5.34) and Bank accounts €990.65 against €972.48 (-€18.17); in November 2026, at the rate of 02/11/2026 (1.06), the $1,000.00 customer is also included. This list only sees what is open: it does not replace the worksheet or the ledger.
  • Pending validation by a certified accountant: the tax treatment of the unrealised gain or loss and the reversal practice. The screen refers to NCRF 23 but this article does not confirm the paragraphs.

Important notes​

  • The closing rate is the latest one dated on or before the closing date: import the rates before calculating. With no rate up to that date, the preview shows €0.00 with no message (confirmed with 30/06/2026).
  • Documents after the closing date are not included (the invoice of 01/11/2026 was left out of the 31/10/2026 adjustment).
  • A currency with rates only appears if it is active.

Common problems​

“The currency revaluation of 31/10/2026 has already been posted…”​

  • Symptom: when you click Preview for a date already posted: “Invalid Operation. The currency revaluation of 31/10/2026 has already been posted (Currency revaluation 31/10/2026, entry EXCH/2026/00001) for the same currencies and partners. It is not posted twice: if it has to be redone, first reverse that entry and its reversal in the accounts. To adjust other currencies or partners on the same day, choose them in the parameters.”
  • What to do: only repeat it if you have reversed the entry and its reversal; otherwise choose other currencies or partners.

The preview shows zero​

  • Cause: there are no open foreign-currency balances on that date (tested with 15/07/2026, before any dollar document: “Favourable differences €0.00 / unfavourable €0.00” and an empty table, with no message). Choose the month-end closing date and check in Exchange rates that the currency has a rate.

“The closing date … has not arrived yet”​

  • Choosing a future closing date is refused (“The closing date … has not arrived yet”): use a date up to today.

I cannot post the revaluation​

  • Cause: only the Accountant and the Certified accountant can post. The Auditor reads everything but the screen refuses the wizard; Billing has no access.
Versions: Odoo 20.0Community and Enterprisefiscaldoo 20.0 (master 52d1dd3ad)ID DOC-0120
Was this page helpful?