Who can use this: Owner, Manager, Accountant. URL / Route:
/finance/currencies(finance.currencies.index). Plan / feature gate:feature:multi_currency_enabled(premium). Permissions:currencies.manage.
Purpose
Multi-currency lets you invoice customers and pay suppliers in currencies other than your organization's base currency, while your books stay in the base currency. Solabooks records both the transaction currency amount and the base-currency amount, and tracks exchange gains and losses.
Step by step
Set up currencies
Permission: currencies.manage.
- Open Settings ▸ Currencies.
- Your base currency is set during the setup wizard and cannot be changed afterwards.
- Add each additional currency you trade in and maintain its exchange rate (rate to base).
Use a currency on a document
- A customer or supplier can have a default currency. Documents for them open in that currency.
- The document carries an exchange rate captured at the document date.
- Totals show in the document currency; posting writes journal entries in both the document currency and the base currency.
Exchange gain / loss
When you receive payment for a foreign-currency invoice and the rate has moved since the invoice date, the difference is a realised exchange gain or loss. Solabooks posts it automatically. The Realized Gain / Loss report lists these.
Base currency adjustments
tracker.base_currency_adjustments allows period-end revaluation of open foreign-currency balances so the base-currency figures reflect current rates.
Worked example — full lifecycle of a USD invoice
Your base currency is JOD. You raise a USD 1,000 invoice for a customer on 1 March when the FX rate is 0.710:
| Account | Debit (JOD) | Credit (JOD) |
|---|---|---|
| AR — Customer control (USD 1,000) | 710.00 | |
| Revenue — Sales | 710.00 |
The customer owes USD 1,000; the books carry it at JOD 710.
On 15 March the customer pays USD 1,000 when the rate has moved to 0.720. You receive USD 1,000, worth JOD 720.00 today:
| Account | Debit (JOD) | Credit (JOD) |
|---|---|---|
| Bank — USD (USD 1,000) | 720.00 | |
| AR — Customer control | 710.00 | |
| Realised FX gain | 10.00 |
The JOD 10 difference is the realised gain — the customer paid the same USD 1,000 they owed, but JOD has weakened, so the same USD is now worth more.
If instead the rate had moved to 0.700:
| Account | Debit (JOD) | Credit (JOD) |
|---|---|---|
| Bank — USD (USD 1,000) | 700.00 | |
| Realised FX loss | 10.00 | |
| AR — Customer control | 710.00 |
The realised loss closes out the same receivable but recognises the value movement.
Period-end revaluation — if month-end falls between invoice and payment, run a Base currency adjustment to revalue the open AR at the closing rate. That writes an unrealised gain/loss; the realised portion is then the movement from the revaluation rate to the actual payment rate.
Behaviour and rules
- Base currency is fixed once setup is complete.
- Every foreign posting is dual-recorded — document currency and base currency.
- Reports are in base currency unless a report explicitly offers a currency view.
Common mistakes
- "My foreign-currency balance looks wrong at month-end." That's expected if you haven't run a base-currency adjustment. The AR / AP base value drifts from market reality until you revalue.
- Trying to change base currency. Base currency is fixed after setup. The only way is a full re-setup with no historical data — usually not practical.
- "My customer pays in EUR but they're a USD customer." A counterparty's currency is locked once any document is posted in it. Create a second customer record in EUR, or accept the payment through a generic Other Receipt and journal-adjust.
- "Reports show base, not the foreign currency." Most reports run in base currency. Per-currency views exist only on specific reports (AR/AP Aging by Currency, Bank Summary). For raw foreign-currency detail, use the General Ledger filtered to the relevant AR/AP/Bank account.
Tips
- Update FX rates before posting big foreign-currency documents — the document captures the rate at its date.
- For month-end close: post all foreign-currency transactions first, then run a base-currency adjustment, then lock the period.
Related
- Setup wizard — base currency is set here and cannot be changed.
- Base currency adjustments — period-end revaluation of open foreign-currency balances.
- Customers, Suppliers — each carries a default currency.
- Invoices, Bills — dual-record document + base currency.
- Payments — realised FX gain / loss on settlement.
- Banking — foreign-currency bank accounts and statement import.
- Reports — Realised Gain/Loss, AR/AP Aging by Currency.