Foreign currencies, opening balances & revaluation

Hi @all,

Having become a user recently and having just closed the first month of the new financial year using ERPNext’s accounts module I would like to share considerations regarding setting up for foreign currency accounting.

Chart of Accounts & Foreign Currency

When a company’s home country currency is different from the company’s functional currency (in which reports are issued), the company’s currency needs to be set correspondingly. That’s easily done in ERPNext.

With bank accounts denominated in 3 different currencies I created one G/L account for each currency under the respective classification in Chart of Accounts, making sure that the currencies USD, EUR and SGD were pulled up.

Likewise for customers and suppliers, control accounts with the required currencies were created and added to Chart of Accounts. In other words, entries of sales invoices and purchase invoices will show up in the control account both the customer/supplier and the invoice are denominated in (as long as unpaid). This makes reconciliation of control accounts with A/R and A/P or schedules a jiffy.

One customer/supplier can have more than one currency by adding a new customer/supplier record and a meaningful suffix such as “Customer/Supplier Name1 - USD”, “Customer/Supplier Name1 - EUR” etc. When adding customers and suppliers attention should be paid to the billing currency.

P&L accounts are set to functional currency by default which should not be changed. At entry foreign currencies will be translated using the rate provided by the system or by one’s own rate after overwriting the former.

Opening Balances & Foreign Currency

Suppose the opening balance of the bank account is EUR1,000.00 which equals USD1,100.00 (@ FX rate of 1.1000).

Journal Entry to post:

DR “Bank EUR” & CR “Opening balances”, EUR1,000.00 @ FX 1.1000 = USD1,100.00 as it should be. All is good.

Posting opening balances into customers and suppliers and consequently into the control accounts is quite well demonstrated in one of ERPNext’s Help videos.

More challenging is periodic revaluation of G/L accounts denominated in foreign currencies which I believe is common practice latest at year-end.

Periodic Revaluation

Assume the “Bank EUR” balance to be revalued still stands at EUR1,000.00, however the applicable exchange rate is now 1.0400, hence the correct balance in functional currency is USD1,040.00. How to get there? How to effectively post the entry of USD60.00 into the books?

Here is how I did it:

  1. A G/L account associated with/under account “Bank EUR” has to be created, set to functional currency ie. USD, and added to the Chart of Accounts. As it is designed to purely accept FX changes the account name “Bank EUR - FX” would be appropriate.

  2. A P&L account “Foreign currency gain or loss” needs to be added to the Chart of Accounts.

The Journal Entry to post then is:

DR “Foreign currency gain or loss” & CR “Bank EUR - FX”, USD60.00

which brings the total of the accounts “Bank EUR” and “Bank EUR - FX” to USD1,040.00 as it was targeted.

Similar entries are necessary to adjust foreign currency debtors and creditors which can be posted after adding G/L accounts such as “Debtors EUR - FX” etc. However, before entry it is necessary to manually compute the total FX change for, for instance, all customers with outstanding balances in EUR.

So much to the technicalities of foreign currency handling in ERPNext. Please correct me if I am wrong and/or suggest other options.

Overall my user experience with the Accounts Module has been pleasant. I got what I wanted, beside I do not mind the manual workaround of revaluation. So thanks go out to ERPNext’s team for providing the platform.

Best wishes

PS: May I suggest to make the FX rate in Journal Entry overwriteable when debiting a P&L account and crediting a foreign currency account. At this stage a reversal of DR & CR to CR & DR is necessary to make use of the multi-currency feature.


@York_Luetzow Thanks for sharing your experience. Do you want to post it as a blog?

If you have specific suggestions, please keep adding them to Issues · frappe/erpnext · GitHub


Blogging was not intended.

The idea to post in the forum was for other users who may find it difficult to set up multi-currency to possibly benefit from my procedure.


Hi @York_Luetzow,
That also the point of a blog. It can make your suggestions more visible for the community and generate other ideas :wink:

First of all thanks a lot for sharing your experience. I feel that your scenario is pretty simlar to the challenge I am facing here. I hate to admit it but I have trouble understanding you post entirely in all detail. Maybe that’s due to not having the greatest command of the English language. I hope you don’t mind to clarify some points for me

not clear what exactly the “corresponding” currency would be. A) the home country currency or B) the functional currency (assuming that’s the currency setup inside of ERPNext). Would you mind to give with an example?

would that mean that you have 3 editions of let’s say one Expenses account like “Raw Materials” in each currency?

for example:

  1. Expenses:Direct Sales Costs:Raw Materials - USD
  2. Expenses:Direct Sales Costs:Raw Materials - EUR
  3. Expenses:Direct Sales Costs:Raw Materials - SGD

Hi vrms,

Apologies for not having come over entirely clear to you. I am not a native English speaker.

Home vs functional currency

An example would be a company registered in Singapore where the home currency is the Singapore Dollar (SGD). Assumed this company issues most of its sales invoices in a currency different from SGD, eg. USD, the functional currency is USD. Also, this company would lay accounts in USD. For income tax purposes the gazetted average FX would be applied.

However, in most cases home and functional currency are identical.

Expenses & foreign currencies

No, I have one expense account (Expenses:Direct Sales:Raw Materials) only. P&L accounts should be in functional currency only.

I answered your other post earlier. Hope that helps.


@rmehta Just because correct FX transactions and revaluations are important for statutory requirements, could you help with the following:

  1. Which exchange rates does ERPNext apply for booked transactions? Is it daily average market rate? Which source is taken?
  2. Are automatic BS items revaluations planned to be implemented in ERPNext?
  3. I would sugget to include the possibility to make a transactions in 2 or more currencies for one Party (customer-supplier). This is a typicall business practice.

Thank you.

1 Like

Seeing that this thread is active on currency-related accounting issues, I would suggest to bring another related question for the discussion and experience sharing.

It relates to the cases, when a company has to apply official exchange rate (Central Bank rate) to value FX transactions.

The case is following:

Suppose company ABC has operational (local, statutory) currency XX. However, it has the export activity to another country to it’s customer in currency YY.

On the 1st of March, ABC received payment to its YY bank account for export delivery in the amount of 100 YY.
On the 3rd of March ABC decided to exchange 100 YY to XX on the FX market. The Central bank (official) exchange rate is 1.1 XX for 1 YY. However, marked rate is higher and is 1.2 XX for 1 YY.

In such typical scenario, ABC will need to book the cost and revenue for the sold currency YY:

  • cost @ the Central bank (official) exchange rate: 100 YY x 1.1 = 110 XX
  • revenue @ market rate: 100 YY x 1.2 = 120 XX
    Net effect is 120XX-110XX = 10 XX

Considering that such scenarios are typicall for many companies, operating in jurisdictions, where Central Bank rates are used for valuation of foreign-currency nominated transactions, I’d suggest to share visions on how such transaction can be booked and handled in ERPNext.

For now, I think, it can be done only via manual GL entries.

Thank you.

Hello York_Luetzow,

What will be the entry to close the floating amount on “Bank EUR”?



How can I close the floating account on “Bank EUR” without adding Exchange account?


Hi Grace,

Is your question “How to add the year-end balance of the account that takes
the FX changes (of a foreign currency bank account) back to the foreign
currency bank account”?

Best regards

Hello Y,

Yes. I need to add the year-end balance of the account that takes
the FX changes (of a foreign currency bank account) back to the foreign
currency bank account.

Thank you and Regards.

Hi Grace,

The answer is you can not add back, ie. set the FX account under your bank
account to nil.

You need to look at the 2 accounts as one, and carry both balances forward
into the next financial year. The year-end balance comprises two accounts,
and it cannot be helped.


Hi Y,

Thank you for your quick reply.
Noted on this.