Currency
ERPNext supports multi-currency from day one — sales invoices in foreign currency, purchases from non-EUR suppliers, exchange rate fluctuations.
Default Currency
Set on the Company record. For Dutch businesses, EUR. This is your reporting currency — Balance Sheet and P&L are always in EUR regardless of transaction currency.
Adding additional currencies
ERPNext ships with all major currencies enabled. To see what's enabled:
Currency → list
If you sell to USA, GBP-area, or other currencies and they're not enabled:
- Open the Currency record (USD, GBP, etc.)
- Set Enabled = Yes
- Save
Exchange rates
ERPNext stores Currency Exchange Rates as records — each combination of From Currency / To Currency / Date.
You can:
- Manual entries — Currency Exchange → New, set rate per date
- Daily auto-fetch — ERPNext can fetch exchange rates daily from an API (configure in Accounts Settings → Allow Stale Exchange Rates)
For most NL businesses, the rate on the invoice date is what matters; ERPNext fetches automatically when you create an invoice in a foreign currency.
Multi-currency transactions
When you create a Sales Invoice in USD for a USD customer:
- Invoice itself is in USD
- Exchange Rate auto-fills (rate on Posting Date)
- ERPNext posts the General Ledger entry in both the transaction currency (USD) and your reporting currency (EUR)
- Your Receivable shows in USD; Balance Sheet shows EUR equivalent
When the customer pays in USD:
- Payment Entry in USD
- Exchange Rate at payment date (often different from invoice date)
- Difference posts to Exchange Rate Gain/Loss account automatically
This is normal accounting — exchange rate fluctuations create small gains and losses that net out over time.
Currency on Customer / Supplier records
- Default Currency on the Customer/Supplier — transactions default to this
- Default Price List can be in their currency — items priced in USD for US customers, EUR for NL
Currency in reports
P&L and Balance Sheet show in Company default currency (EUR) — everything converted at posting-date exchange rates. For a customer-specific view in their currency, use the General Ledger report filtered by customer, with "Show in Account Currency" enabled.
Exchange Rate Revaluation
For accurate period-end reporting, you may want to revalue foreign-currency balances (receivables, payables, foreign bank accounts) at the period-end exchange rate.
ERPNext supports this via Exchange Rate Revaluation:
- Run at month-end / quarter-end
- Picks all open foreign-currency receivables/payables
- Generates a Journal Entry to gain/loss accounts reflecting the rate difference between original posting and period-end
Common situations
- First invoice in a new currency — enable the Currency, create or accept the auto-fetched Exchange Rate, post the invoice
- Customer always pays in USD even though invoice is EUR — invoice them in their currency (USD), set the Customer's Default Currency = USD
- Forgot to set exchange rate — ERPNext warns; correct on the invoice or Payment Entry before submitting
- Historical rates needed for an audit — Currency Exchange records keep every rate by date; reports can show them