Multi Currency Accounting in ERPNext
Transacting in two different currencies is known as Multi Currency Accounting.
In ERPNext, you can record accounting entries in multiple currencies, and the system maintains balances based on the respective account currency.
For example, if you maintain a foreign currency bank account, transactions will be recorded in that currency and the balance will also be displayed in the same currency.
Bank accounts in foreign currency can be used for:
- Foreign branches of your company
- Foreign Customers (Debtors)
- Foreign Suppliers (Creditors)
1. Setup
1.1 Set Currency in Chart of Accounts
To start multi-currency accounting, you must assign a currency at the Account level.
You can define currency while creating accounts in the Chart of Accounts.
Each account can have its own accounting currency in ERPNext.
1.2 Update Existing Account Currency
You can also modify currency for existing accounts by opening the Account record and updating the currency field.
1.3 Currency for Customer / Supplier
For parties, you can define billing currency in the Customer/Supplier record.
If the party currency differs from company currency:
- You must set a default Receivable/Payable account in that currency
Party currency must align with the account currency to ensure correct transaction flow.
1.4 After Setup
Once currency is configured in accounts and parties:
- You can start transactions in the configured currencies
- The system enforces correct currency selection during transactions
If a party account currency differs from company currency, ERPNext restricts incorrect transactions to prevent accounting mismatches.
Note:
- Ensure correct account is selected in the “Debit To” field
- Once transactions are posted, currency changes are not allowed
2. Exchange Rates
ERPNext uses the Currency Exchange master to manage exchange rates.
To learn more, visit:
Currency Exchange
For foreign currency transactions, ERPNext follows this order:
- Checks Currency Exchange records created by user
- Fetches market rate from Frankfurter API
- Uses exchangerate.host (from version 13.10.0)
- If all fail, manual entry is required
If “Allow Stale Exchange Rate” is disabled, system will ignore manually stored exchange rates.
3. Transactions
3.1 Sales Invoice
In Sales Invoice:
- Invoice currency depends on Customer currency setup
- Receivable account currency must match Customer currency
Outstanding and advance amounts are always shown in Customer’s account currency.
Payments are handled through Payment Entry.
3.2 Purchase Invoice
In Purchase Invoice:
- Entries follow Supplier currency
- Outstanding and advance amounts are shown in Supplier currency
3.3 Journal Entry
Journal Entry supports multi-currency transactions using a “Multi Currency” checkbox.
- Allows selection of accounts with different currencies
- Exchange rate is fetched automatically
- Debit/Credit is entered in account currency
Company currency values are automatically calculated from account currency using exchange rates.
4. Reports
4.1 General Ledger
General Ledger displays amounts in party currency when filtered by foreign currency accounts.
4.2 Accounts Receivable / Payable
These reports show values in party/account currency for better clarity in multi-currency scenarios.
5. Key Highlights
Multi Currency Accounting ensures accurate financial tracking across different currencies while maintaining proper ledger consistency in ERPNext.