- Accueil
- Apps
- SaaS Tools
- POS Multi-Currency Payments
Aperçu illustratifTake payment in several currencies per Odoo POS order with live rates and correct base-currency change-back.
Qu'est-ce que POS Multi-Currency Payments ?
Take payment in several currencies per Odoo POS order with live rates and correct base-currency change-back. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Fonctionnalités clés
Fait sur commande, clé en main
Aucune configuration à faire vous-même — une app fonctionnelle conçue, installée et prise en charge par ECOSIRE.
- 1
Vous commandez
Commencez par un prix de développement unique. Nous cadrons le projet avec vous au lancement.
- 2
Nous développons et installons
ECOSIRE la développe, la configure et l'installe sur votre Odoo.
- 3
Mise en ligne + assistance
Vous êtes en ligne en une semaine ouvrée environ, avec deux semaines d’assistance après la mise en production. Les défauts du code que nous livrons sont corrigés gratuitement.
Spécifications techniques
- Compatibilité Odoo
- Odoo 17, Odoo 18, Odoo 19
- Éditions
- Enterprise et Community
- Licence
- Licence à confirmer
- Version Python requise
- Python 3.10+
- Base de données
- PostgreSQL 12+
À propos de ce produit
Tourist-strip, border, and duty-free counters see a wallet of currencies land on the register every day — USD, EUR, local notes, sometimes three in one transaction. Native Odoo POS settles every order in a single company currency, so cashiers reach for a calculator, guess a rate, and hope the drawer balances at close. It rarely does, and the shortfalls are invisible until reconciliation.
POS Multi-Currency Payments is a build-to-order Odoo module ECOSIRE designs, develops, installs, and supports specifically for your registers. It extends the POS payment screen so a cashier can tender part of an order in EUR cash and the balance in local currency, with each tender converted at a rate you control and the change always computed and handed back in your base currency. Every foreign amount is stored on the order alongside the applied rate, so accounting sees exactly what was collected rather than a blurred single-currency figure.
Technically, the module adds a POS-specific rate model (extending Odoo's res.currency / res.currency.rate concepts) with per-payment-method currency assignment, overrides the OWL payment-screen components so conversion happens live as the cashier types, and writes multi-currency detail onto pos.order and pos.payment records. Compute fields use @api.depends so converted totals, change due, and drawer expectations recalculate instantly and never drift out of sync. Access is locked down with ir.model.access.csv plus record rules so only authorised roles edit rates, and QWeb receipt and reconciliation reports show both the tendered currency and its base-currency equivalent.
Because we build it to your exact register workflow, we can wire in cash-denomination handling per currency (so the closing count screen asks for the right notes and coins in each currency), reconcile every POS session across all currencies, and expose the data through Odoo's XML-RPC / JSON-RPC API if your headquarters pulls takings centrally. It targets Odoo 17, 18, and 19, works on Community or Enterprise, and is delivered fully tested with documentation, cashier training, and a support window — never a raw download you have to figure out yourself.
Ce que vous obtenez
- The complete, installable Odoo module (source in a versioned repository) packaged for Odoo 17, 18, and 19 with a clean __manifest__.py and declared dependencies
- Configuration of your currencies, payment methods, counter rates, rounding, and denomination sets on your Odoo instance
- Installation and deployment onto your environment (Community or Enterprise; self-hosted, Odoo.sh, or ECOSIRE-managed hosting)
- Customised QWeb receipt and session-reconciliation report layouts showing multi-currency detail
- Cashier and manager training session covering mixed-currency tendering, change-back, and end-of-day counting
- Technical + end-user documentation: rate management, session close procedure, and troubleshooting
- Post-go-live support window with bug fixes and adjustments to rates, rounding, or workflow
- Optional XML-RPC / JSON-RPC integration notes and sample calls if you pull takings into another system
Pour qui c'est
Tourist-area retail owner
Runs shops on a tourist strip where visitors pay in their home currency one minute and local cash the next. Needs cashiers to accept the mix confidently and give correct change without hand calculators or drawer shortfalls.
Border / duty-free store manager
Operates counters where two or three currencies circulate side by side every shift. Wants each currency counted, reconciled, and reported separately so end-of-day variances are traceable to a real cause, not a guessed rate.
Multi-branch finance controller
Consolidates takings from several POS locations into one Odoo accounting backbone. Needs foreign tenders posted with the correct currency and rate — and pullable via API — so the P&L reflects true FX exposure across branches.
Comment POS Multi-Currency Payments se compare
| Critère | ÉCOSIRE | Construction personnalisée | Concurrent | Natif Odoo |
|---|---|---|---|---|
| Pay one order across multiple currencies | Built in — each tender is its own payment line | Possible but you design and test the payment-screen override yourself | Varies; many only switch the whole order to one alternate currency | Non inclus |
| Change-back computed in base currency | Automatic, with applied rate shown on screen and receipt | You must implement the conversion and rounding logic | Prise en charge partielle | Non inclus |
| Per-currency cash denomination counting at close | Closing count prompts for the right notes/coins in each currency | Requires custom session-close screen work | Non inclus | Non inclus |
| Multi-currency session reconciliation | Per-currency close rolled into one base-currency variance | Build the reconciliation report and logic yourself | Prise en charge partielle | Non inclus |
| Fits your exact register workflow | Built to your currencies, rates, rounding, and roles | Inclus | Non inclus | Non inclus |
| Rate control separate from bank feed | Fixed counter rates, role-restricted, optional auto-refresh | You decide and build the rate model | Prise en charge partielle | Non inclus |
| Correct FX posting to accounting | Tender currency + rate stored and posted to journals | Inclus | Prise en charge partielle | Prise en charge partielle |
| Delivery, training, and ongoing support | Install, cashier training, docs, and a support window included | Your team's time and risk | Docs only; support varies by publisher | Non inclus |
Foire aux questions sur POS Multi-Currency Payments
How long until it's live on my registers?
This is a build-to-order module, not an instant apps.odoo.com download. Typical lead time is one working week from confirmed requirements: we scope your currencies, rates, denominations, and reconciliation rules, build against your Odoo 17/18/19 version, test on a staging copy of your database, then install and train your team. Simple single-branch setups land at the shorter end; multi-branch or heavy accounting integration at the longer end. You get a firm timeline in writing before we start.
What support and updates do I get after go-live?
Every build includes a post-launch support window for bug fixes and reasonable workflow adjustments (rates, rounding, denominations, report tweaks). Because you own the source in a versioned repository, there is no per-seat licence lock-in. When you later upgrade your Odoo version, or want new capabilities, we quote the migration or enhancement as a scoped piece of work — the module is written to Odoo's standard ORM, security, and OWL patterns specifically so it stays maintainable across 17, 18, and 19.
Does it work on Odoo Community or only Enterprise?
Both. The module builds on standard POS, res.currency, and accounting concepts present in Community, and we test the same code against Enterprise. Tell us your edition and exact version (17, 18, or 19) and we build and validate against it. If you use ECOSIRE-managed hosting or Odoo.sh, we handle deployment there too.
Where do the exchange rates come from — are they live bank rates?
You control them. Counter rates are managed separately from Odoo's daily bank-feed currency rates, because retail counters usually apply a fixed posted rate through the day rather than a fluctuating market rate. Authorised staff set and update rates in the back office, protected by record rules. If you prefer, we can add a scheduled automated action to refresh rates from a source you nominate, with manual override always available.
How does the change-back actually work when a customer pays in a foreign currency?
Each tender is converted to your base currency at its applied rate, the order total is settled from those converted amounts, and any change due is calculated and handed back in your base currency — shown clearly on screen and on the QWeb receipt. The customer sees what they paid in their currency and what they received as change in yours, with the rate printed, so there is no ambiguity at the counter.
Will my accounting and session reconciliation stay accurate?
Yes — that's a core reason to build this properly rather than let cashiers improvise. Each foreign tender is stored on the pos.payment / pos.order with its currency and rate, session closing counts are captured per currency against expected denomination totals, and journal entries post with the correct currency so your P&L reflects real FX. The reconciliation report rolls every currency into a single base-currency variance so you can see at a glance whether a drawer balanced.
Modules associés

POS Kitchen Direct Printing
A build-to-order Odoo Point of Sale extension that auto-detects and manages POS receipt and kitchen printers, routes order lines to the right station, and adds a one-click test print with Self Order support. ECOSIRE scopes, builds, installs, and supports it for Odoo 17.0/18.0/19.0.

POS Kitchen Display System (KDS)
Real-time digital kitchen order screens for Odoo POS — route, time, and bump tickets across grill, fryer, bar and cold stations.

POS Offline Mode Pro
A build-to-order Odoo POS extension that keeps checkout running through internet outages with resilient local caching, a durable local order queue, and conflict-safe reconciliation on reconnect. ECOSIRE builds, installs, and supports it for Odoo 17.0, 18.0, and 19.0.

POS Order Return & Exchange Manager
Process full and partial POS returns and exchanges with stock restoration, price-difference handling, and refund-method control.
POS Multi-Currency Payments
Take payment in several currencies per Odoo POS order with live rates and correct base-currency change-back.
- Tender a single POS order across several currencies (e.g. part EUR cash, balance in local notes) with each payment line stored separately
- Per-currency configurable exchange rates managed by authorised staff, decoupled from Odoo's daily bank-feed rates so counter rates stay stable through the day
- Live conversion on the OWL payment screen — converted amounts and running balance recompute as the cashier types, using @api.depends compute fields
- Change always calculated and displayed in your company base currency, with the applied rate shown so nothing is guessed on a calculator