The exchange rate you actually agreed to on every document
Enter the rate a bank quoted or a contract locked in — across quotations, orders, invoices, bills, payments and expenses — with guardrails, approval and a full audit trail.
The problem
Odoo pulls one daily rate from a central table and applies it automatically. The rate a bank quoted, a customer agreed to, or a signed contract locked in is often different — and editing the shared currency table to match it silently changes every other document dated that day.
The solution
Enter the actual rate on the document itself. It stays locked from quotation through payment, is checked against the market rate, and is written to a permanent audit log — without ever touching Odoo's shared daily rate table.
Everything international finance teams need
Every capability below is implemented in the module.
Full document lifecycle
Set a manual rate on quotations, sales orders, RFQs, purchase orders, customer invoices, vendor bills, credit and debit notes, payments, and employee expenses — one module instead of three or four.
Bidirectional rate entry
Company-per-foreign and foreign-per-company rates are shown together and kept in sync automatically as you type either one.
Live converted-amount preview
See the resulting base-currency total update as you type the rate, before the document is even saved.
Tolerance validation
Every manual rate is checked against the current market rate within a configurable percentage band, so a fat-fingered entry is caught at the point of entry.
Approval workflow
Rates outside the tolerance band route the document to a To Approve state with dedicated Approve and Reject actions before it can post.
Per-document audit trail
Every applied rate, its deviation from market, and its approval state is written to a permanent Rate Audit Log you can search and review.
Pre-fill last-used rate
The rate field defaults to the last rate used for the same currency pair, cutting repetitive re-entry for recurring partners.
Rate lock-in on confirmation
Once a document is confirmed, its manual rate is locked so it cannot drift mid-transaction from quotation to payment.
Bulk update and daily import
Apply one agreed rate to every draft document for a currency pair in a single wizard run, or let a scheduled import keep rates current with a transparent per-currency report.
How it works
Enable manual rate
Toggle manual entry on any supported document once its currency differs from the company currency.
Enter the rate
Type the agreed rate in either direction; the reverse rate and the converted total update live.
Guardrails apply
The rate is checked against the market rate; anything outside tolerance is sent for approval before posting.
Lock and log
Confirming the document locks the rate in place and records it in the audit log for later review.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Quotations and sales orders, RFQs and purchase orders, customer invoices, vendor bills, credit and debit notes, payments, and employee expense reports all carry the same manual rate control.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Manual Currency Exchange Rate
Per-document manual rates across sales, purchasing, invoicing, payments and expenses — bidirectional entry, live converted-amount preview, tolerance validation, approval and rate lock-in on confirmation.
Buy on Odoo App Store