| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 1187 |
| Technical Name |
nz_pos_multi_currency |
| License | LGPL-3 |
| Website | https://www.nezam.co |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 1187 |
| Technical Name |
nz_pos_multi_currency |
| License | LGPL-3 |
| Website | https://www.nezam.co |
| Versions | 18.0 19.0 |
Nezam Apps for Odoo
POS Multi Currency Payment - Odoo 19
Accept payments in multiple currencies directly from the Point of Sale. Customers can pay in any configured currency (e.g. USD, EUR, EGP, AED) with live exchange rates, automatic conversion, and a full currency breakdown at session closing.
What does this module provide?
This module enables your Point of Sale to accept payments in multiple currencies simultaneously. Configure allowed currencies per POS shop, let cashiers select a foreign currency via the “Multi-Currency” button on the payment screen, and the system automatically converts amounts using live exchange rates. At session close, a full currency breakdown shows exactly how much was collected in each currency. Multi-currency payment details are also visible on backend order views and session reports.
KEY HIGHLIGHTS
Multi-currency payments in POS
Accept payments in any configured currency directly from the POS payment screen with a single click.
Live exchange rates
Automatic conversion using Odoo’s built-in currency rate configuration. No manual rate entry needed.
Real-time remaining & change in all currencies
The payment screen displays remaining amount and change in the base currency and every active foreign currency simultaneously.
Currency breakdown at session close
The closing register popup shows a detailed breakdown of payments per currency with base-equivalent totals.
Per-shop configuration
Enable or disable multi-currency per POS shop and choose exactly which currencies each shop accepts.
Backend order & session reports
Payment currency, foreign amount, and exchange rate are recorded on each payment line and visible in order forms and session sales reports.
1) Enable Multi Currency in POS Settings
Go to Point of Sale → Configuration → Settings. Enable “Multi Currency Payments” and select the currencies you want to accept (e.g. AED, EGP, USD). The POS default currency is always available.

2) Payment Screen with Multi-Currency Button
The payment screen shows the order total in the base currency. The purple “Multi-Currency” button is available below the numpad for cashiers to add foreign currency payments.

3) Select Currency from the Multi-Currency Popup
Click the “Multi-Currency” button to open the currency selection popup. A dropdown shows all allowed currencies. Select the desired currency to see its current exchange rate and conversion ratio.

4) Currency Rate Display - USD (Base)
Selecting the base currency (USD) shows rate 1.0000. This allows the cashier to switch back to accepting payment in the default currency at any time.

5) Currency Rate Display - EGP Example
When EGP (LE) is selected, the popup shows the live exchange rate (e.g. 1 USD = 54.2968 EGP). Click “Add” to create a payment line in that currency.

6) Foreign Currency Total Display on Payment Screen
After adding a foreign currency, the payment screen shows the order total converted into that currency (e.g. 3,184.51 LE) along with the exchange rate, below the base currency total.

7) Partial Payment with Remaining in Foreign Currency
When a partial payment is made in LE (e.g. 1,000 LE), the remaining amount is shown in both the base currency ($40.23) and the foreign currency (2,184.36 LE).

8) Adding Another Currency - AED Example
Open the popup again to add another currency (AED). The rate is displayed (e.g. 1 USD = 3.6725 AED). You can mix as many currencies as needed in a single order.

9) Mix Multiple Currencies in One Payment
Pay part in EGP (1,000 LE) and part in AED (100 AED). The remaining balance is displayed in every active currency so the cashier always knows the exact amount due.

10) Fully Paid with Multiple Currencies
Once the total is covered across all currencies, the remaining shows $0.00 / 0.00 LE / 0.00 AED. The “Validate” button becomes active to complete the order.

11) Overpayment with Change Calculation
If the customer overpays, the change amount is computed and shown in the base currency ($13.00). Each payment line displays its amount in the original currency (e.g. 1,000 LE, 100 AED, $26.00).

12) Session Close - Currency Breakdown
When closing the register, a “Currency Breakdown” section appears showing how many payments and how much was collected in each currency (e.g. USD base, 100 AED, 1,000 LE) with the base-currency equivalent.

13) Session Report in Reporting Menu
Access the session report from the Reporting menu. The report includes a currency breakdown table showing foreign amounts, base equivalents, and payment counts per currency.

14) Daily Sales Report Z (Printed Report)
The Daily Sales Report Z provides a comprehensive printed summary of the session including sales breakdown by product category, taxes, payment methods, discounts, and session control totals with expected vs. counted amounts per payment method.

Does the module work with Odoo Community and Enterprise?
Yes, this module is fully compatible with both Odoo 19 Community and Enterprise editions.
Where do the exchange rates come from?
Exchange rates are taken from Odoo’s built-in currency rate configuration (Accounting → Configuration → Currencies). You can update rates manually or use Odoo’s automatic rate fetching service.
Can I accept different currencies in different POS shops?
Yes, multi-currency is configured per POS shop. Each shop can have its own set of allowed currencies, or you can disable the feature entirely for specific shops.
Can a customer pay part in one currency and part in another?
Absolutely. You can add multiple payment lines in different currencies within the same order. The system calculates the remaining amount in all active currencies.
How is the base (home) currency amount calculated?
The cashier enters the amount in the foreign currency, and the module automatically converts it to the base currency using the current exchange rate. The base amount is stored on the payment line.
Is the currency information visible in backend reports?
Yes. Payment currency, foreign amount, and exchange rate are visible in the POS order form’s payment lines. The session sales report also includes a currency breakdown section.
Are any extra Python libraries required?
No. The module depends only on the Point of Sale module and uses Odoo’s built-in currency framework.
Version 19.0.1.0.0
Initial Release- Multi-currency payment support on POS payment screen
- Currency selection popup with live exchange rate display
- Real-time remaining and change calculation in all active currencies
- Per-shop configuration for allowed currencies
- Currency breakdown in session closing popup
- Multi-currency columns in backend POS order payment lines
- Currency breakdown section in session sales report
Please log in to comment on this module