Suggested Products
Account Voucher Report Payment Receipt | Advance payment receipt | Customer/Vendor Payment report
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 509 |
| Technical Name |
manual_currency_exchange_rate_invoice_payment |
| License | LGPL-3 |
| Website | https://www.serpentcs.com |
| Versions | 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 509 |
| Technical Name |
manual_currency_exchange_rate_invoice_payment |
| License | LGPL-3 |
| Website | https://www.serpentcs.com |
| Versions | 17.0 18.0 19.0 |
This module enables businesses to apply a custom manual exchange rate on customer invoices and payments in Odoo, overriding the system's default currency conversion. Users can define a specific rate directly on the invoice, payment form, or register payment wizard, which is then accurately reflected in the generated journal entries and bank moves. The module preserves original invoice amounts to ensure P&L integrity, supports write-off line adjustments, and displays the applied rate as an optional column in journal entry line items — making it ideal for companies that deal with negotiated or fixed foreign exchange rates.
Tired of Odoo using the wrong rate? Simply enter the rate you agreed upon with your client or bank — no more surprises in your accounts.
When you go to collect payment, the rate from your invoice is already filled in. Just verify and pay — done in seconds.
Change the rate and watch the payment amount update instantly. No manual calculations, no errors.
Your bank entries always reflect the exact rate you applied — what you see on the invoice matches what hits your books.
Changing the rate at payment time? Don't worry — your original invoice amount stays exactly as it was. Clean P&L, always.
Every business dealing in foreign currencies knows that the market rate and the agreed rate are rarely the same. This feature allows you to set a custom exchange rate directly on the customer invoice, the direct payment form, or the Register Payment wizard. Instead of being forced to use whatever rate Odoo fetches from the system, you have complete control over the exact conversion value that gets applied to your transaction and reflected in your books.
When a foreign currency invoice is created with a specific rate, that rate is automatically carried forward when you open the Register Payment wizard. You no longer need to remember or manually re-enter the rate at payment time. The wizard picks it up from the invoice, displays it for your review, and applies it directly — saving time and eliminating the risk of entering a mismatched rate during payment processing.
As soon as you enter or update the manual exchange rate in the payment wizard, the payment amount recalculates itself on the spot. This works intelligently based on your payment currency — if you are paying in the foreign currency, the invoice amount is used as-is; if you are paying in your company base currency, the amount is derived by dividing the foreign amount by the entered rate. No manual math, no spreadsheets, no errors.
One of the most common pain points in multi-currency accounting is when the rate on the invoice does not match the rate on the bank journal entry. This module solves that completely. When a payment is posted, the manual exchange rate is automatically propagated to the corresponding bank journal entry (PBNK), ensuring that every line in your books reflects the exact rate that was agreed upon and applied during the transaction.
Changing the exchange rate at payment time should never affect the original invoice. This module is built with that principle at its core. No matter what rate you enter during payment, the original invoice amounts — including the foreign currency total, the company currency balance, and the receivable amount — remain completely untouched. Your profit and loss statements stay accurate, your outstanding balances remain correct, and your audit trail stays clean.
Transparency in accounting means being able to trace every number back to its source. This feature adds an optional Manual Currency Rate column directly in the Journal Items tab of any journal entry. With a single click to enable the column, you can see exactly which exchange rate was applied on any invoice or payment — past or present — without having to open the original record or dig through logs.
Path:- Accounting → Customers → Invoices → New Draft Invoice → Journal field → Currency dropdown
While creating a Draft Customer Invoice, the currency dropdown is opened next to the Journal field. INR is selected by default and the USD option is visible — the user will select USD for a foreign currency invoice.
Path :-Accounting → Customers → Invoices → Draft Invoice → Journal field (currency section)
After selecting USD currency, the system automatically displays the current exchange rate: 1 INR = 50.000000 USD. The product [DESK0005] Customizable Desk has been added to the invoice line with an amount of $1,000.00 and the Invoice is still in Draft state.
Path :- Accounting → Customers → Invoices → INV/26-27/0022 → Journal Items tab
After confirming (posting) the invoice, the Journal Items tab is opened. Account 200110 Local Sales is credited ₹20.00 and account 100400 Debtors is debited ₹20.00 — INR value of ₹20.00 is booked based on rate 50.000000. Invoice status: Posted.
Path :- Accounting → Customers → Invoices → INV/26-27/0022 → Pay button → Pay dialog
Clicking the Pay button opens the Pay wizard. The Apply Manual Currency Rate checkbox is automatically checked and Manual Currency Rate: 50.000000 is pre-filled — which is the system rate at the time of invoice posting. Amount $1,000.00 USD, Journal: Bank.
Path :- Accounting → Customers → Invoices → INV/26-27/0022 → Pay button → Pay dialog → Manual Currency Rate field
In the Pay wizard, the Manual Currency Rate field has been manually changed to 80.000000. The original invoice rate was 50 and setting the payment rate to 80 will generate an exchange difference. Payment will be confirmed using the Create Payment button.
Path :- Accounting → Customers → Invoices → INV/26-27/0022
The payment has been created — a PAID green stamp is visible on the invoice. The invoice bottom section shows ₹7.50 Exchange Difference and Paid on 06/09/2026 $1,000.00. Amount Due: $0.00. An Invoice paid log entry is visible in the chatter.
Path :- Accounting → Journal Items → PBNK1/26-27/0023 (INV/26-27/0022) → 100400 Debtors
Three journal entries are visible in the reconciliation view: Payment entry PBNK1/26-27/0023 Credit ₹12.50, Invoice entry INV/26-27/0022 Debit ₹20.00, and Exchange difference entry EXCH/26-27/06/0010 Credit ₹7.50. All three are reconciled with matching number 36. Residual: $0.00.
Path :- Accounting → Vendors → Bills → BILL/26-27/06/0008 → Journal Items tab
The Vendor Bill has been posted. Journal: Vendor Bills, Currency: USD, Rate: 1 INR = 30.000000 USD. In Journal Items, 210700 Purchase Expense is debited ₹84.00 and 112110 Creditors is credited ₹84.00. Vendor: Azure Interior, Amount: $2,520.00.
Path :- Accounting → Vendors → Bills → BILL/26-27/06/0008 → Pay button → Pay dialog
The Pay wizard for the Vendor Bill is opened. Apply Manual Currency Rate is checked and Manual Currency Rate: 30.000000 is auto-filled — which is the rate at the time of bill posting. Amount: $2,520.00 USD, Journal: Bank, Memo: BILL/26-27/06/0008.
Path :- Accounting → Vendors → Bills → BILL/26-27/06/0008 → Pay button → Pay dialog → Manual Currency Rate field
In the Pay wizard, the Manual Currency Rate has been manually changed to 50.000000. The bill rate was 30 and the payment rate is set to 50 — this difference will generate a ₹33.60 exchange difference entry. The Create Payment button is visible.
Path :- Accounting → Vendors → Bills → BILL/26-27/06/0008
The Vendor Bill is fully paid — a PAID green stamp is visible. The bottom section shows ₹33.60 Exchange Difference and Paid on 06/09/2026 $2,520.00. Amount Due: $0.00. Due to the difference between the invoice rate (30) and payment rate (50), ₹33.60 exchange difference has been auto-posted.
Path :- Accounting → Journal Items → PBNK1/26-27/0022 (BILL/26-27/06/0008) → 112110 Creditors
Three journal entries are visible in the reconciliation view: Payment PBNK1/26-27/0022 Debit ₹50.40, Exchange difference EXCH/26-27/06/0009 Debit ₹33.60, and Vendor Bill BILL/26-27/06/0008 Credit ₹84.00. All three are reconciled with matching number 34. Residual: $0.00 — fully settled.
No, third-party apps can not be used on Odoo Online. Unfortunately, Odoo SaaS blocks such a possibility.
In many cases, yes. We offer Demo videos, Screenshots, Live demo links (for selected apps) If you need a personalized demo, you can contact our support team.
We request you contact our team via contact@serpentcs.com to discuss the features and customization required so that we can provide you assistance with your request.
Account Voucher Report Payment Receipt | Advance payment receipt | Customer/Vendor Payment report
Please log in to comment on this module