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.
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:
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.
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.
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.