| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Purchase (purchase) • Sales (sale_management) • Discuss (mail) |
| Lines of code | 601 |
| Technical Name |
nz_currency_rate |
| License | LGPL-3 |
| Website | https://www.nezam.co |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Purchase (purchase) • Sales (sale_management) • Discuss (mail) |
| Lines of code | 601 |
| Technical Name |
nz_currency_rate |
| License | LGPL-3 |
| Website | https://www.nezam.co |
| Versions | 18.0 19.0 |
NZ Solutions Apps for Odoo
Exchange Currency Rate - Odoo 19
Automate or manually control exchange rates on Sales Orders, Purchase Orders, and Invoices. Fetch live rates from global providers, set a fixed rate per document, and ensure every bill and invoice uses the exact same rate as its source order.
What does this module provide?
This module gives full control over currency exchange rates in Odoo 19. It extends Accounting Settings with automatic rate fetching from global providers (xe.com, ECB, and 20+ central banks), configurable intervals (Daily, Weekly, Monthly), and a manual refresh button. On both Sales Orders and Purchase Orders, a new Apply Manual Currency option lets authorized users enter a fixed exchange rate per document, and an Update Rate button instantly pulls the latest live rate. The manually entered rate is saved into res.currency.rate for the order date, so every Vendor Bill or Customer Invoice generated from that order inherits the exact same rate — keeping accounting consistent. Access to edit rates is protected by a dedicated Currency Rate Manager security group.
KEY HIGHLIGHTS
Automatic rate updates
Fetch live exchange rates automatically from 20+ providers including xe.com, ECB, and central banks of Egypt, UAE, Turkey, and more. Schedule updates Daily, Weekly, or Monthly.
Manual rate per Sales & Purchase Order
Enable "Apply Manual Currency" on any Sales or Purchase Order to set a fixed exchange rate for that specific document, independent of the global currency table.
One-click rate refresh
The "Update Rate" button on each order fetches the latest rate from the configured provider and applies it instantly to the document.
Rate inherited by bills & invoices
When a manual rate is set on an order, it is stored in res.currency.rate for that date. Vendor Bills and Customer Invoices created from the same order automatically use the same rate.
Access control with security group
Only users assigned to the "Currency Rate Manager" group can edit or update manual exchange rates, preventing unauthorised changes.
20+ global currency providers
Supports xe.com, European Central Bank, [EG] Central Bank of Egypt, [AE] Central Bank of the UAE, [TR] Central Bank of Turkey, and many more.
1) EGP Currency Form — Before Fetching Rates
The EGP (Egyptian Pound) currency form showing basic setup: currency code, symbol (LE), name, rounding factor, and decimal places. The Rates tab is empty — no exchange rate has been fetched yet.

2) Accounting Settings — Automatic Currency Rates
In Accounting → Settings → Currencies, the Automatic Currency Rates option is enabled. The Provider is set to xe.com, the Interval is set to Manually, and the Next Run field is empty because no schedule is active yet.

3) Provider Dropdown — 20+ Global Services
Clicking the Provider dropdown reveals the full list of supported currency providers: European Central Bank, [AE] Central Bank of the UAE, [BG] Bulgaria National Bank, [BR] Central Bank of Brazil, [CA] Bank of Canada, [CH] Federal Tax Administration of Switzerland, [CL] Central Bank of Chile, [CO] Bank of the Republic, [CZ] Czech National Bank, and many more.

4) Interval Dropdown — Schedule Frequency
The Interval dropdown lets you choose how often exchange rates are refreshed automatically: Manually, Daily, Weekly, or Monthly. The scheduled cron job will fetch the latest rates from the selected provider at the chosen frequency.

5) Next Run Date Calculated Automatically
After selecting the Weekly interval, the system automatically calculates and sets the Next Run date (e.g., 04/14/2026). The refresh icon next to the date lets you trigger an immediate rate update outside the schedule.

6) Manual Refresh Button in Settings
The full Currencies settings area showing Provider, Interval (set to Manually), and the Next Run field with a refresh button. Clicking the refresh icon triggers an immediate rate fetch from the configured provider at any time.

7) EGP Currency Form — After Fetching Rates
After triggering a rate update, the EGP currency form now shows the fetched rate in the Rates tab: date 04/07/2026, company My Company, with a rate of 54.317348 per USD. This confirms the rate was successfully pulled from the provider.

8) Purchase Order — Default USD Currency
A standard Request for Quotation (P00021) with the default company currency USD. The order shows a product priced at $100.00. No manual exchange rate fields are visible — they only appear when the currency differs from the company currency.

9) Purchase Order — Switch to EGP Currency
On the same Purchase Order, the currency is changed to EGP. The total is now shown as 100.00 LE with the USD equivalent ($1.84) displayed. The Apply Manual Currency checkbox is now visible since the order currency differs from the company currency.

10) PO — Apply Manual Currency Enabled
Checking Apply Manual Currency on the Purchase Order loads the current stored rate (54.317348) into the Rate field and reveals the Update Rate button. The rate field is fully editable — users with the Currency Rate Manager role can type any custom value.

11) PO — Manual Rate Edited with Chatter Tracking
The user manually changes the rate on the Purchase Order (e.g., from 1.00 to 55.00). The chatter records every change with full detail: who made the change, old value vs. new value, and when Apply Manual Currency was toggled from No to Yes.

12) Vendor Bill Inherits the PO Rate
A Vendor Bill created from the Purchase Order (P00024) automatically inherits the same exchange rate. The bill header clearly shows Currency: EGP with 1 USD = 44.000000 EGP, ensuring the Vendor Bill uses the exact same rate as the source PO.

13) Sales Order — Apply Manual Currency with Rate
On a Sales Order (S00027), a pricelist with EGP currency is selected. The Apply Manual Currency checkbox is enabled and the Rate field shows 33.000000. The Update Rate button is available to fetch the latest rate from the configured provider.

14) SO — Rate Updated from Provider with Chatter
Clicking Update Rate on the Sales Order fetches the latest live rate and updates the field from 33.00 to 54.317348. The chatter records the rate change, pricelist change, and the toggle of Apply Manual Currency, providing full auditability.

15) Customer Invoice Inherits the SO Rate
A Customer Invoice created from the Sales Order (S00027) automatically uses the same exchange rate. The invoice header shows Currency: EGP with 1 USD = 54.317348 EGP — no manual adjustment needed. Rate consistency between the order and invoice is guaranteed.

16) Currency Rate Manager Security Group
In Settings → Users, the Currency Rate section shows the Currency Rate Manager group. Only users assigned to this group can create, edit, or update manual exchange rates on orders and in settings. Unauthorized users receive an access error if they attempt to modify rates.

What is the difference between automatic and manual currency rates?
Automatic rates are fetched on a schedule from an external provider and stored in the global currency table. Manual rates let you override the rate on a specific order document without affecting the global table — though the manual rate is saved to the table for that order's date so invoices stay consistent.
Which currency providers are supported?
Over 20 providers including xe.com, European Central Bank, [EG] Central Bank of Egypt, [AE] Central Bank of the UAE, [TR] Central Bank of the Republic of Türkiye, [BR] Central Bank of Brazil, [CA] Bank of Canada, and many more country-specific central banks.
Can I set a different rate for each Sales or Purchase Order?
Yes. Enable Apply Manual Currency on the order, then type the desired rate in the Rate field. This rate applies to that document only and is tracked in the chatter.
Will the Vendor Bill / Customer Invoice use the same rate as the source order?
Yes. When a manual rate is saved on an order, it is written to res.currency.rate for that order's date. Bills and invoices generated from the order will automatically pick up the same rate.
Who can edit exchange rates?
Only users assigned to the Currency Rate Manager group. Other users receive an access error if they attempt to create or modify any rate-related fields.
What does the "Update Rate" button do?
It calls the configured currency provider to fetch the latest live rate, stores it in res.currency.rate, and immediately updates the Rate field on the current document. The change is logged in the chatter.
Does it work with multi-company setups?
Yes. Rates are stored against the root company, and the module respects Odoo's company scoping so each company manages its own rates independently.
Which Odoo editions and deployment modes are supported?
The module is compatible with Odoo 19 Community and Enterprise on On-Premise, Odoo Online, and Odoo.sh deployments.
Version 19.0.1.0.0
Initial Release- Automatic currency rate fetching from 20+ global providers
- Configurable update interval (Manually / Daily / Weekly / Monthly)
- Manual refresh button in Accounting Settings
- Apply Manual Currency option on Purchase Orders and Sales Orders
- Update Rate button to pull the latest provider rate onto any order
- Rate persistence to res.currency.rate for invoice/bill consistency
- Rate display on Vendor Bills and Customer Invoices
- Currency Rate Manager security group for access control
- Full chatter tracking of all rate changes
- Multi-company support
Please log in to comment on this module