Plan availability: this feature depends on your subscription. If you don't see Currencies or Exchange Rates in your menu, your plan may not include multi-currency — see Subscriptions & billing, or ask your workspace owner.
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.
Two pages share the work:
- Currencies (Settings ▸ Currencies) only controls which currencies are available on documents. It does not do any conversion — "This page only controls available currencies"; conversion "uses dated Exchange Rates, not this page". Your base currency is "fixed at 1.0 and locked after finance setup".
- Exchange Rates holds the dated rates that actually drive conversion.
Set up
- Open Settings ▸ Currencies and enable each currency you trade in. Your base currency was set during the setup wizard and cannot be changed afterwards.
- Open the Exchange Rates page ("Manage Exchange Rates") to maintain dated rates. You can enter rates by hand or click Fetch latest rates to pull today's rates automatically.
Each rate on the page carries a source badge — "Manual", "API", "Auto-fetched", or "Imported" — and a status: Used, Unused, or Locked. "Rates used by a posted document are locked and cannot be edited or deleted." That protects your posted history: a document's base-currency value can never silently change because someone edited a rate later.
Use a currency on a document
- A customer or supplier can have a default currency; documents for them open in that currency.
- The document converts using the dated exchange rate for its document date.
- Totals show in the document currency; posting records both the document-currency and base-currency values.
Posting requires a dated rate
Posting a foreign-currency document is strict: there must be an exchange rate dated for the document's date. If none exists, the form shows a "Missing exchange rate" warning with an "Add Exchange Rate" button — you can't post until a rate is in place.
The in-document rate modal
From any document (or the missing-rate warning), the "Add / Update Exchange Rate" modal lets you set the rate without leaving the form:
- From / To — the currency pair for the document date.
- Source and an optional Note — record where the rate came from.
- Fetch automatically — pull the current market rate instead of typing one.
- A direction hint keeps you honest: "Enter how many units of the document currency equal one base unit."
- Save & use applies the rate to the document immediately.
Exchange gain / loss on settlement
When you receive or make payment for a foreign-currency document and the rate has moved since the document date, the difference is a realized exchange gain or loss. SolaBooks posts it automatically as part of the payment, and shows "Estimated FX Gain:" / "Estimated FX Loss:" on the payment form while you allocate, so there are no surprises. See Payments.
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 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 | |
| Realized FX gain | 10.00 |
The JOD 10 difference is the realized gain — the customer paid the same USD 1,000 they owed, but the 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 | |
| Realized FX loss | 10.00 | |
| AR — Customer control | 710.00 |
The realized 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 unrealized gain/loss; the realized 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.
- Conversion is date-driven. Every foreign-currency document converts at the dated rate for its document date — not "today's" rate, and never the Currencies page.
- Posted rates are locked. A rate used by any posted document shows as Locked and cannot be edited or deleted.
- 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
- "Missing exchange rate" when posting. There's no rate for the document's date. Click Add Exchange Rate, use Fetch automatically or type the rate, then Save & use and post again.
- "I can't edit an exchange rate." It's Locked because a posted document used it. That's deliberate. If the rate really was wrong, act on the documents (unpost, fix, re-post with a corrected rate for that date).
- Entering the rate the wrong way round. Follow the modal's hint: how many units of the document currency equal one base unit. If the converted total looks absurd, the rate is probably inverted.
- "My foreign-currency balance looks wrong at month-end." 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. Fixed after setup. The only way is a full re-setup with no historical data — usually not practical.
- "Reports show base, not the foreign currency." Most reports run in base currency. For raw foreign-currency detail, use the General Ledger filtered to the relevant AR/AP/Bank account.
Tips
- Click Fetch latest rates as part of your routine before posting large foreign-currency documents — the document converts at its dated rate.
- For month-end close: post all foreign-currency transactions first, then run a base-currency adjustment, then lock the period.
- Use the source badges to review data quality — "Manual" rates deserve a second look; "API"/"Auto-fetched" ones came from the rate feed.
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 — realized FX gain / loss on settlement, with the estimate shown during allocation.
- Banking — foreign-currency bank accounts and statement import.
- Reports — realized gain/loss and per-currency views.