See P&L, Balance Sheet, Trial Balance and ledgers in any active currency with date-specific FX rates. Built, installed and supported by ECOSIRE. One-time license from $199.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

See P&L, Balance Sheet, Trial Balance and ledgers in any active currency with date-specific FX rates. Built, installed and supported by ECOSIRE.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Odoo posts every journal entry in your company currency, so the standard Accounting reports only ever speak one language. The moment a CFO needs to show the group P&L in USD, hand a bank a Balance Sheet in EUR, or reconcile a Trial Balance against a parent company's reporting currency, the native reports fall short — you end up exporting to spreadsheets and applying rates by hand, one line at a time.
One-click currency conversion of any core financial report — pick a currency from a dropdown and every figure re-computes without re-posting entries
Date-specific exchange-rate application: choose an as-of date and the report uses the res.currency.rate valid on that date (period-end, month-end or any custom date)
Full report coverage: Profit & Loss, Balance Sheet, Trial Balance, General Ledger, and Aged Receivables/Payables all currency-aware
Aged Receivables and Aged Payables aging buckets displayed in your chosen currency, converted per the report date
Unrealized FX gain/loss computation on foreign-currency balance-sheet accounts using period-end revaluation rates
Independent revaluation of opening balance vs. period movement columns so range reports stay accurate across rate changes
Multi-Currency Financial Reports is a build-to-order Odoo module that ECOSIRE designs, develops, installs and supports for you. It adds a currency selector and an "as-of date" to Odoo's core financial reports, then converts every figure on the fly using the exchange rate that was valid on the date you choose — no re-posting of entries, no exports, no manual math.
Because it reads directly from Odoo's account.move.line data and your res.currency.rate table, the numbers always trace back to your real ledger. Under the hood the module extends Odoo's account report engine (account.report / the report handler mixins on Odoo 17, 18 and 19), computing converted balances via @api.depends-driven fields and the standard currency._convert() method. Rate lookups honour the effective date, so a report run "as of 31 Dec" uses December's closing rate, while a range report can revalue opening and movement columns independently.
Coverage spans the reports finance teams actually live in: Profit & Loss, Balance Sheet, Trial Balance, General Ledger, and Aged Receivables/Payables — each viewable in any currency active in your database. For balance-sheet accounts the module can apply period-end revaluation rates and surface the resulting unrealized FX gain/loss, so you can see exposure before it hits the books. QWeb PDF and XLSX exports carry the chosen currency and rate basis in the header, giving auditors and banks a clean, self-documenting report.
Access is governed by Odoo's own security model — ir.model.access.csv and record rules scoped to your accounting groups — so nothing new leaks data outside the users who already see your books. Everything installs cleanly on Community and Enterprise, respects your existing chart of accounts and analytic setup, and ships with a proper __manifest__.py, migration-safe models, and a documented JSON-RPC/XML-RPC surface if you want to pull converted figures into Power BI or a data warehouse.
This is not an instant download from apps.odoo.com. ECOSIRE builds the module to fit your Odoo version, chart of accounts and rate sources, delivers it in 2–4 weeks, installs it on your server or Odoo.sh, trains your team, and supports it after go-live.
Needs consolidated-style P&L and Balance Sheet views in a single reporting currency (e.g. USD) for the board and lenders, without waiting on spreadsheet rework each month-end.
Books in local currency but invoices and buys in several others. Wants Aged Receivables/Payables and the Trial Balance in the counterparty currency, using the correct rate for each period-end.
Must hand auditors and banks reports that clearly state the currency and rate basis, trace back to the ledger, and export cleanly to PDF/XLSX with no manual conversion to defend.
Wants a clean, upgrade-safe module that respects existing security groups, installs on their Odoo version, and exposes RPC endpoints for their BI stack — without patching Odoo core.
Buy the license on ecosire.com and download the Multi-Currency Financial Reports module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Multi-Currency Financial Reports, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| View core financial reports (P&L, BS, TB, GL) in a non-company currency | Built-in across all listed reports with one dropdown | Possible but must be specified and built from scratch | Varies — often P&L/BS only, edition-limited | |
| Date-specific exchange rate applied to the report | Yes — as-of date drives rate lookup per period | Only if explicitly scoped and coded | ||
| Aged Receivables / Payables in chosen currency | Yes, converted per report date | Extra build effort | ||
| Unrealized FX gain/loss on foreign-currency balances | Computed with period-end revaluation rates | Complex to build correctly and test | ||
| Figures traceable to account.move.line via native currency._convert() | Yes — no re-posting, fully auditable | Depends on developer discipline | Often opaque conversion logic | |
| Tailored to your Odoo version, chart of accounts and rate sources | Yes — built and configured for your instance | Yes, but you own all the design decisions | ||
| Installation, training and post-go-live support included | Yes — install, train, supported window | Your team or a contractor arranges it | Docs only; support varies by vendor | |
| Odoo 17, 18 and 19 compatibility, Community and Enterprise | Built for your exact version and edition | Whatever you commission | Depends on listing; upgrades not guaranteed |
This is a build-to-order module, not an instant apps.odoo.com download. Typical delivery is 2–4 weeks from confirmation, depending on your Odoo version, chart-of-accounts complexity and how many reports you need currency-aware. Timeline covers building the module for your exact Odoo 17/18/19 environment, installing it, configuring your currencies and rate sources, reconciling sample reports, and training your team. We share a milestone schedule at kickoff.
Every engagement includes a post-go-live support window with a named ECOSIRE contact for bug fixes and configuration help. During that window we also provide compatibility patches if you move between Odoo minor versions. Because you receive the full source in a private Git repo, you're never locked in. We also offer optional annual maintenance covering major-version upgrades (e.g. moving the module from Odoo 18 to 19) and enhancements.
Both. The module extends Odoo's accounting report engine and currency conversion, which exist on Community and Enterprise across Odoo 17, 18 and 19. On Enterprise it complements the built-in financial reports; on Community it delivers the currency-aware P&L, Balance Sheet, Trial Balance, General Ledger and aged reports directly. We build against your specific edition and version.
Rates come from your existing res.currency.rate records — whether you enter them manually or pull them from a provider feed configured in Odoo. Every report accepts an as-of date; the module applies the rate that was effective on that date. Balance-sheet accounts can use period-end revaluation rates, and range reports revalue opening balances and movements independently so the figures stay correct across rate changes.
Yes. Conversion is applied on top of your posted entries at report time using Odoo's native currency._convert() — it never re-posts or alters journal entries. Every converted figure derives from real account.move.line data, and reports print the selected currency and rate basis in the header. You can always reconcile a converted report against the company-currency original, which we demonstrate during the validation pass.
Yes. The module exposes converted balances through Odoo's JSON-RPC / XML-RPC API, so you can feed a specified currency and date into Power BI, Excel or a data warehouse and get back consistent, ledger-traceable figures. We document the endpoints and parameters as part of handover, and can help wire up your first BI connection during the engagement.
No. The module reads your existing chart of accounts, journals, analytic accounts and multi-company structure as-is. There is no data re-import and no restructuring — conversion happens at the reporting layer, so your day-to-day bookkeeping and existing reports are completely unaffected.
See P&L, Balance Sheet, Trial Balance and ledgers in any active currency with date-specific FX rates. Built, installed and supported by ECOSIRE.