Multi Currency Payment - POS View - Solved


We have looking for Multi Currency in POS View.

I have checked multiple other software’s which accepts multi currency through POS.

Concept understanding:

Creating Multiple Mode of Payments:

  1. Cash (Base Currency) - BHD
  2. Cash (Foreign Currency -1) - USD
  3. Cash (Foreign Currency - 2) - GBP
  4. Cash Foreign Currency - 3) - EURO

In Mode of Payment we will have to make a Tick Button if this MOP is in Foreign Currency.
Then it should open a Selection field of Currencies and then It will pull up the currency exchange from default exchange form of ERPNext.

In POS View:
When in payment screen, I select Cash Foreign Currency - 1 - USD and enter the Denomination and it should Covert it to the Base Currency using the exchange rate selected at the Mode of payment.

And display the Paid amount in Base currency and also change amount in Base Currency.

Anyone though of Multi currency in POS this way. Is there any other way to do it?
As we will start working on this concept soon.


Hello All,

We were able to develop Multi Currency Using the Above method.

In addition to the above method we had to add the Foreign Currency Denomination in Sales Invoice Payment.
So we added custom field As Foreign Currency Amount.

Using this we are able to close Invoice with accepting foreign Currency and display the foreign currency in the drawer using Report builder customization.

All the foreign cash is exchanged at POS side to base currency and the respective MOP Account is Credited with base currency.

Hope this makes sense.

Some Screenshots attached below.
Payment Tab

Foreign Currencies:

Total Invoice / Total Paid/ Change / Conversion Rate / Foreign Currency Denomination Conversion:


We need this functionality as well. Many businesses in developing countries will have a need for such multi currency POS.

1 Like

Thank you for your report, @fkardame.

I have customers in Cambodia who want to use the POS and it is a country with 2 currencies in use, could you share the specific elements or code of your implementation?

With more information it will make it easier for us to transform this into a PR later on.

Using Mode of Payment You can assign that mode of payment as different currency. Like below pic.

And as you can see in the pics above you can see the alternate payment tab to select different cash currency.
The amount paid is is increased on that mode of payment account and the base change is reduced as change amont.

As in cambodia if 2 currencies are used then there should be the base currency which will be used as change amount.

I can share the scripts.
We have customized and pos.js in offline pos and Mode of payment form

1 Like

This is exactly what I was looking for, I would love to use your script. Can you share it here?

Yes can share.

Pos Enhancement over the default POS of ERPNext

  • Opening Cash (Doctype) - Cashier to enter the opening cash received.
  • Closing Cash Voucher Customized to Display opening cash for that cashier and the total sales from Opening Cash Voucher time/date till the Closing cash voucher time/date.
  • Print Barcode from POS - (Example Receipt No. in Barcode Code128A.)
  • Batch Number in POS View with expiry Date.
  • UOM Field In item list to change UOM of the item.
  • Make batch number naming Series.
  • Fetch item number directly in JS using Material Receipt/Purchase receipt Item selection.
  • Select Default Warehouse in Purchase receipt - (Multi Company Scenerio).
  • Shortcut Key to press Pay in POS - Used F9 to press Pay.
  • Focus back to Item Search field for user to input next item directly. (When Batch item is scanned)
  • POS to Fetch only those batch and Items which are in stock in the POS profile selected warehouse.
  • Show Expiry Date while selecting Batch from drop down in Stock Entry (Material Receipt).
  • Limiting reports to respected company.

For this You will need Toolz


Hi what is toolz?

Hello dear,

Install toolz lib from frappe-bench folder using the following command

env/bin/pip install toolz

Hi @fkardame

This may sound silly. But, Can you let me know how can we install this onto existing system?
I tried to install using bench get-app pos_bahrain . But, It’s broke my system right now!

Thank you so much

How can pulling an app break ur system

Give now details about what exactly did

Never mind about that.
I was able to install the app successfully on a clean ERP Next installation. But, I couldn’t figure out how to enable multi currencies feature on POS?

Really appreciate if you can give me clue how to make this possible?

Ahh ok…

Make new mode of payment there your will find a check box for alternate currency.

It is recommended to have a separate ledger in chart of account to connect to this mode of payment so you will come to know how much was received in that currency converted to base currency

Here what I did:

  1. I create another cash account in other currency.

  2. then I create one more cash payment method “Cash KHR” and select other currency as default account.

  3. Add other payment method just created to POS profile.

  4. This is result I’ve got


Hello @fkardame

How do you handle sales return where the customer wants to have his money kept as a store credit to be used next time?

This happens a lot in my area, an item is returned and the customer is not giving cash but can come back the next day or week or month to use the balance to buy something else.


Oh dear you’re using online pos.

This customization is for offline.

And make account in base currency only as our customization uses currency conversion to exchange im. Base currency.

Also you will need to enter currency exchange rate for that currency to base currency

1 Like

Normally when you make a return invoice with correct customer selected then it will increase their balance.

So you can see a negative balance as unpaid amount in their customer form.
Makes sales return with customer selected and select items and lut negative quantities. And submit the invoice without any payment so it will make debit note for that customer.


Is there anyway you can make a sale and a return on the same invoice?

Sometimes a customer returns an item and picks another one and we want it on the same invoice

Also do you want to look at the loaylty module and see how to make it work in offline mode?

It is not working well at the moment and it is one of the missing ribs in ERPNext


No way to have positive and negative stick in 1 sled invoice.

No idea about loyalty point in offline mode.

Thank you so much, I finally get it to works. :grin:
But, I have a problem with exchange rate.
My secondary currency rate is 1KHR = 0.00025USD. when I manually input the exchange rate. On the POS side, It round up to 0.000 because of 3 digit decimals limitation.

How can I fix this?