Overview
Multi-currency accounting in Odoo 19 handles transactions in foreign currencies, automatic exchange rate updates, exchange difference journal entries, and period-end revaluation. When you invoice in EUR but your company currency is USD, Odoo tracks amounts in both currencies and manages the conversion.
Prerequisites
- Odoo 19 with Accounting module installed
- Accounting Manager access
Step 1: Enable Multi-Currency
Navigate to Accounting > Configuration > Settings. Under the Currencies section, enable Multi-Currencies. Click Save.
Step 2: Activate Required Currencies
Go to Accounting > Configuration > Currencies. Activate the currencies you transact in by toggling the Active flag. Common currencies like USD, EUR, GBP, JPY, and INR are pre-loaded but may be inactive.
Step 3: Configure Exchange Rate Provider
Under Accounting > Configuration > Settings > Currencies, select the Exchange Rate Provider:
- European Central Bank (ECB) — Free, supports major currencies
- Federal Reserve — USD-based rates
- Bank of Canada — CAD-based rates
- Custom Provider — Define your own rate source
Set the Interval for automatic updates: Daily (recommended), Weekly, or Monthly. The scheduled action fetches rates automatically. Click Save.
Step 4: Understand Currency on Transactions
When creating invoices or bills in a foreign currency:
- Select the currency on the journal entry or invoice
- Odoo converts amounts to your company currency using the exchange rate on the transaction date
- Each
account.move.linestores both the foreign amount (amount_currency) and the company currency amount (debit/credit)
Step 5: Handle Exchange Differences
Exchange rate differences arise when payment and invoice dates have different rates. Odoo handles this automatically:
- When reconciling a payment with an invoice in a different rate, Odoo creates an Exchange Difference journal entry
- The entry posts to the exchange gain or loss accounts configured in your chart of accounts
- Gains go to the Exchange Gain account, losses to the Exchange Loss account
Configure these accounts under Accounting > Configuration > Settings in the currency section.
Step 6: Period-End Currency Revaluation
At month-end or year-end, open receivables and payables in foreign currencies must be revalued at the current exchange rate:
- Go to Accounting > Accounting > Journal Entries
- Use the revaluation feature to generate entries that adjust outstanding balances to current rates
- These entries reflect unrealized exchange gains or losses on the balance sheet
Step 7: Multi-Currency Bank Accounts
For bank accounts held in foreign currencies:
- Create a Bank journal with the foreign currency set
- All transactions in this journal are denominated in the foreign currency
- Bank reconciliation handles both foreign and company currency amounts
- The bank balance shows in the foreign currency on the dashboard
Step 8: Manual Rate Override
If you need to use a specific exchange rate for a transaction (e.g., a contractually agreed rate):
- On the invoice or journal entry, look for the currency rate component
- Manually set the exchange rate for that specific transaction
- This overrides the automatic rate from the rate provider
Best Practices
- Update exchange rates daily to minimize conversion discrepancies
- Reconcile foreign currency bank accounts at least weekly
- Perform currency revaluation at every period close (monthly minimum)
- Keep the exchange gain/loss accounts separate from operating accounts for clean P&L reporting
- Monitor your total foreign currency exposure regularly for risk management