Introduction
International businesses can complete hundreds of transactions in currencies other than their company currency.
Customer invoices may be issued in USD, supplier bills may be received in EUR and bank accounts may hold GBP or AED. As exchange rates change, the foreign-currency value of these open balances changes even though the original transaction amount has not.
This creates an important accounting requirement:
Foreign-currency balances need to be reviewed and, where required, revalued at the reporting date.
Without a controlled revaluation process, balance sheets can contain outdated foreign-currency values, unrealized gains or losses may be understated and month-end reporting can become difficult to reconcile.
Odoo supports multi-currency accounting by recording transactions in the company's default currency while also maintaining the transaction currency. Odoo also provides dedicated exchange-difference configuration and an Unrealized Currencies report for reviewing foreign-currency balances and processing adjustments.
The important challenge is not simply enabling multiple currencies.
It is building a repeatable, controlled and reviewable currency revaluation process.
What Is Multi-Currency Revaluation?
| Stage | What Happens | Key Control |
|---|---|---|
| Identify Exposure | Find eligible foreign-currency balances | Account review |
| Validate Rate | Confirm reporting-date exchange rate | Rate source |
| Calculate Difference | Compare existing and revalued amounts | Calculation review |
| Review | Investigate unusual movements | Finance approval |
| Post Adjustment | Record FX gain or loss | Journal control |
| Reverse | Reverse unrealized adjustment when required | Reversal date |
| Reconcile | Compare adjustment with the General Ledger | Finance sign-off |
Multi-currency revaluation is the process of updating the company-currency value of eligible foreign-currency balances using an appropriate exchange rate at a reporting date.
For example, assume a company has an outstanding receivable of:
USD 10,000
The invoice was originally recorded when the exchange rate resulted in a company-currency value of ₹830,000.
At month-end, the same USD balance may convert to ₹850,000.
The foreign-currency amount remains:
USD 10,000
But its company-currency equivalent has changed.
The difference may need to be recognized as an unrealized foreign-exchange gain or loss, depending on the applicable accounting rules and the direction of the exchange-rate movement.
The accounting objective is therefore to ensure that eligible balances are represented appropriately at the reporting date.
How Multi-Currency Accounting Works in Odoo
Odoo allows businesses to activate foreign currencies and maintain exchange rates. Transactions can be recorded in currencies other than the company's main currency, while Odoo maintains the equivalent value in the company currency.
Odoo can also maintain currency-specific configurations for accounts and journals. An account can have a specific currency, while a journal can also be configured for a particular currency.
Exchange-rate differences are handled through dedicated exchange-difference accounts and a dedicated journal configured in Accounting settings.
This creates the foundation for a controlled revaluation process.
The business still needs to define:
which balances are reviewed
which rate should be used
when revaluation occurs
who reviews the result
which accounts receive the adjustment
how entries are reversed
how the final result is reconciled
1. Define Which Foreign-Currency Balances Require Revaluation
Not every foreign-currency transaction should automatically be treated in the same way.
Start by identifying the relevant balance-sheet accounts.
Typical areas may include:
Foreign-currency receivables
Foreign-currency payables
Foreign-currency bank accounts
Foreign-currency loans
Other monetary balances
The treatment depends on the company's accounting policies and applicable reporting requirements.
Create a documented policy defining:
Account → Currency → Revaluation Method → Reporting Frequency → Review Owner
This prevents different accountants from applying different approaches at month-end.
2. Maintain Reliable Exchange Rates
Revaluation is only as reliable as the exchange rate used.
Odoo supports manual and automatic exchange-rate updates. Automatic rates can be configured with a selected service and update interval, while rates can also be maintained manually.
Before a period-end revaluation, confirm:
rate source
rate date
currency
rate direction
reporting-date rate
manual overrides
rate approval
Do not assume that the latest available rate is automatically the correct accounting rate.
The rate policy should be defined by finance based on the organization's accounting requirements.
3. Separate Realized and Unrealized FX Differences
| FX Difference | When It Occurs | Example | Review Focus |
|---|---|---|---|
| Realized Gain | Foreign transaction is settled at a favorable rate | Customer payment | Settlement rate |
| Realized Loss | Foreign transaction is settled at an unfavorable rate | Supplier payment | Settlement difference |
| Unrealized Gain | Open balance increases in company-currency value | Foreign receivable | Reporting-date rate |
| Unrealized Loss | Open balance decreases in company-currency value | Foreign payable | Reporting-date rate |
One of the most important controls is distinguishing between realized and unrealized foreign-exchange differences.
Realized difference
A realized difference generally occurs when a foreign-currency transaction is settled and the exchange rate differs from the rate used when the original transaction was recorded.
Odoo can automatically record exchange differences during reconciliation and payment-related processes.
Unrealized difference
An unrealized difference relates to an outstanding foreign-currency balance that has not yet been settled.
At period end, its company-currency value may need to be adjusted using the applicable reporting-date rate.
This distinction is essential for accurate financial reporting and review.
4. Use Odoo's Unrealized Currencies Report
Odoo provides an Unrealized Currencies report for reviewing foreign-currency amounts on the balance sheet.
The report allows users to:
review unrealized foreign-currency balances
set a reporting date
adjust exchange rates for the review
calculate adjustment amounts
create adjustment entries
specify gain and loss accounts
define a reversal date
Odoo's documentation states that after the adjustment entry is posted, the Adjustment column should show 0.00, indicating that the unrealized gains or losses have been adjusted.
This provides a useful control point for month-end accounting.
5. Review the Revaluation Before Posting
| Review Item | Question to Ask | Action |
|---|---|---|
| Currency Balance | Is the foreign-currency balance correct? | Validate source |
| Exchange Rate | Is the reporting rate appropriate? | Confirm rate |
| Revaluation Amount | Is the adjustment reasonable? | Investigate variance |
| Gain/Loss Account | Is the correct account being used? | Verify configuration |
| Unusual Movement | Is there an unexpected change? | Investigate |
| Reversal Date | Is the reversal correctly scheduled? | Confirm date |
| Approval | Has finance reviewed the entry? | Approve before posting |
Revaluation should not become a blind automated posting.
Before posting an adjustment, finance should review:
account
foreign-currency balance
previous carrying value
current exchange rate
revalued amount
gain/loss amount
reporting date
reversal date
Look for unusual movements.
For example:
USD balance increased significantly
could indicate either a genuine business movement or an underlying accounting issue.
A revaluation review should therefore investigate significant changes instead of simply approving the total adjustment.
6. Configure Gain and Loss Accounts Correctly
Odoo allows businesses to configure the journal and accounts used for exchange-difference entries.
Finance should establish clear ownership of:
Exchange Difference Journal
Foreign Exchange Gain Account
Foreign Exchange Loss Account
These accounts should be aligned with the company's chart of accounts and reporting requirements.
The objective is to ensure that revaluation entries are consistently classified and can be easily identified during financial review.
7. Control the Reversal of Unrealized Adjustments
A period-end revaluation may represent an unrealized position at a specific reporting date.
Odoo's Unrealized Currencies workflow allows a reversal date to be specified and the adjustment entry can be automatically reversed on that date.
A controlled process should therefore define:
Reporting Date → Revaluation Entry → Review → Posting → Reversal → Subsequent Settlement
The reversal should be tested carefully.
Otherwise, finance teams can accidentally create duplicated or incorrect FX effects in the following accounting period.
8. Reconcile Revaluation With the General Ledger
Posting the revaluation entry is not the final step.
After posting, compare:
Foreign-Currency Balance
with:
Company-Currency Revalued Balance
and:
General Ledger Adjustment
The accounting team should confirm that the adjustment agrees with the underlying foreign-currency exposure.
For bank accounts, Odoo stores both the company-currency amount and the foreign-currency amount, allowing the balances to be reviewed in both currencies.
This makes reconciliation an important part of the period-end control process.
9. Build a Period-End FX Revaluation Checklist
A repeatable checklist reduces the risk of missed currencies or accounts.
Before Revaluation
Confirm all required currencies are active.
Verify exchange rates.
Confirm reporting date.
Identify eligible foreign-currency accounts.
Review unusual balances.
Confirm gain/loss configuration.
During Revaluation
Run the Unrealized Currencies report.
Review exchange rates.
Review adjustment amounts.
Investigate unusual variances.
Obtain finance approval.
Generate the adjustment entry.
After Revaluation
Post the approved entry.
Verify the adjustment.
Confirm the reversal date.
Reconcile with the General Ledger.
Document the review.
Retain supporting evidence.
10. Control Manual Exchange-Rate Overrides
Sometimes finance may need to use a reporting rate that differs from the standard Odoo rate.
Odoo allows the exchange rate to be changed directly from the Unrealized Currencies report for the revaluation review.
This flexibility should be controlled.
Every manual override should have:
reason
rate source
effective date
approver
supporting documentation
Otherwise, manual rate changes can create unexplained differences between reporting periods.
11. Test Multi-Currency Revaluation Scenarios
Before relying on the process in production, test realistic scenarios.
Scenario 1 : Exchange Rate Increase
Foreign-currency balance increases in company-currency terms.
Verify that the expected unrealized gain/loss is generated.
Scenario 2 : Exchange Rate Decrease
The currency moves in the opposite direction.
Verify the corresponding loss/gain treatment.
Scenario 3 : No Rate Movement
The reporting rate matches the carrying rate.
The expected adjustment should be zero or immaterial.
Scenario 4 : Partial Settlement
Part of a foreign-currency balance is paid.
Verify realized and remaining unrealized differences.
Scenario 5 : Reversal
Post the revaluation and verify that the reversal occurs on the intended date.
Scenario 6 : Multiple Currencies
Run the process for USD, EUR, GBP or other relevant currencies.
Confirm that each currency is correctly represented.
12. Review Foreign-Currency Revaluation as a Management Control
FX revaluation is not only an accounting exercise.
Large unrealized currency movements may indicate increasing foreign-currency exposure.
Management should therefore review:
foreign-currency receivables
foreign-currency payables
currency concentration
exposure by customer
exposure by supplier
exposure by entity
realized FX gains/losses
unrealized FX gains/losses
This can help finance and management understand how exchange-rate movements may affect the business.
Multi-Currency Revaluation Control Framework
A mature Odoo process can follow:
Foreign-Currency Exposure
↓
Exchange-Rate Validation
↓
Eligible Account Identification
↓
Unrealized Currency Review
↓
Revaluation Calculation
↓
Finance Review
↓
Adjustment Entry
↓
Approval & Posting
↓
Reversal
↓
General Ledger Reconciliation
↓
Period-End Reporting
This turns revaluation into a controlled accounting process rather than a one-time month-end task.
Common Multi-Currency Revaluation Mistakes
Using Unverified Exchange Rates
Incorrect rates can create incorrect financial adjustments.
Mixing Realized and Unrealized FX
These represent different accounting events and should be reviewed separately.
Posting Without Review
Automated calculations still require financial validation.
Ignoring Reversal Dates
A missing or incorrect reversal can affect the following reporting period.
Failing to Reconcile
A posted entry does not automatically prove that the underlying balance is correct.
Allowing Uncontrolled Rate Overrides
Manual changes should have documented reasons and approvals.
Reviewing Only the Total Gain or Loss
Large movements should be investigated at account and currency level.
KPIs for Multi-Currency Accounting
Finance teams can monitor:
| KPI | What It Shows |
|---|---|
| Foreign-Currency Exposure | Total outstanding foreign-currency balances |
| Unrealized FX Gain/Loss | Reporting-date currency impact |
| Realized FX Gain/Loss | Settlement-related currency impact |
| Revaluation Exceptions | Accounts requiring investigation |
| Rate Overrides | Frequency of manual exchange-rate changes |
| Reconciliation Differences | Unresolved accounting discrepancies |
| Revaluation Completion Time | Efficiency of period-end processing |
These metrics help finance teams move from reactive FX adjustments toward stronger financial controls.
How to Implement Multi-Currency Revaluation in Odoo
A practical implementation roadmap is:
Phase 1 - Define
Document currencies, accounts, policies, rate sources and reporting requirements.
Phase 2 - Configure
Activate currencies, configure exchange rates, accounts, journals and gain/loss settings.
Phase 3 - Validate
Test foreign-currency invoices, bills, payments, bank transactions, reconciliation and revaluation.
Phase 4 - Control
Define approval rules, rate-override procedures, reversal rules and reconciliation responsibilities.
Phase 5 - Operate
Run revaluation at the defined reporting frequency and retain supporting evidence.
Phase 6 - Review
Analyze FX exposure, exceptions, gains/losses and process performance.
Frequently Asked Question
1. What is multi-currency revaluation in Odoo?
Multi-currency revaluation updates the company-currency value of eligible foreign-currency balances using an appropriate reporting-date exchange rate.
It helps recognize unrealized foreign-exchange gains or losses for financial reporting.
2. Why is currency revaluation important in Odoo?
Exchange-rate movements can change the company-currency value of outstanding foreign-currency balances.
Revaluation helps businesses present these balances more accurately at the reporting date.
3. What is the difference between realized and unrealized FX gains or losses?
Realized FX differences generally arise when a foreign-currency transaction is settled at a different exchange rate.
Unrealized differences relate to outstanding foreign-currency balances that have not yet been settled.
4. How does Odoo calculate unrealized currency differences?
Odoo compares the existing company-currency value of eligible foreign-currency balances with their value using the selected reporting-date exchange rate.
The resulting difference can be recorded through the configured exchange-difference accounts.
5. What is the Unrealized Currencies report in Odoo?
The Unrealized Currencies report helps finance teams review foreign-currency balances and calculate potential unrealized exchange differences.
It can also be used to create adjustment entries and define reversal dates.
6. Which exchange rate should be used for Odoo revaluation?
The appropriate rate depends on the company's accounting policy and applicable reporting requirements.
Businesses should validate the rate source, effective date, currency and any manual adjustments before posting revaluation.
7. Can Odoo automatically reverse currency revaluation entries?
Yes, Odoo's unrealized currency adjustment process allows a reversal date to be specified for the adjustment entry.
Finance teams should verify the reversal date and test the process before using it in production.
8. How should businesses control manual exchange-rate changes?
Manual rate overrides should have a documented reason, approved rate source, effective date and responsible approver.
This creates an audit trail and reduces unexplained differences between reporting periods.
Conclusion
Multi-currency accounting becomes more complex as businesses expand across countries, customers, suppliers and banking relationships.
Odoo provides the foundation for managing foreign currencies, exchange rates, exchange-difference entries and unrealized currency adjustments.
But successful revaluation depends on more than configuration.
Businesses need clear accounting policies, reliable exchange rates, defined responsibilities, controlled adjustments, reversal procedures, reconciliation and management review.
The objective is simple:
Know your foreign-currency exposure, value it consistently, review the adjustment and maintain a clear audit trail.
When these controls are built into the Odoo accounting process, multi-currency revaluation becomes a repeatable part of financial close rather than a last-minute spreadsheet exercise.