# Currencies & exchange rates

> Which currencies AccountFUN supports, where the exchange rates come from, and how weekends and holidays are handled when no new rate is published.

Source: https://www.accountfun.com/docs/guides/currencies/

AccountFUN is a true multi-currency system: you can trade in dozens of currencies, and every journal-entry line carries its source currency and the exchange rate applied. This guide covers the practical data side — **which currencies are available, where the rates come from, and what happens on weekends and holidays** when no new rate is published. For the accounting side (setup, monetary vs non-monetary, FX gains and losses), see [Multi-currency](https://www.accountfun.com/docs/guides/multi-currency/) and [FX gains & losses](https://www.accountfun.com/docs/concepts/fx-gains-and-losses/).

## Supported currencies

AccountFUN supports **48 ISO 4217 currency codes**. The full set is shown in the onboarding base-currency picker and in the **Settings → Currencies → Add** dropdown. Your organization’s **base currency** (the one you report in) is chosen during onboarding and locked.

| Region                   | Currencies                                                                |
| ------------------------ | ------------------------------------------------------------------------- |
| **Major global**         | USD, EUR, GBP, JPY, CHF, CNY                                              |
| **Americas**             | CAD, MXN, BRL, CLP, COP, ARS, PEN                                         |
| **Asia-Pacific**         | AUD, NZD, HKD, SGD, TWD, KRW, JPY, THB, IDR, MYR, PHP, VND, INR, PKR, BDT |
| **Middle East & Africa** | AED, SAR, QAR, ILS, ZAR, NGN, KES, EGP, TND, GHS                          |
| **Europe (non-EUR)**     | SEK, NOK, DKK, PLN, CZK, HUF, RON, BGN, UAH, RUB, TRY                     |

Dropdowns show only your enabled currencies

The 48 above are what you *can* enable. The currency dropdowns on invoices, bills, bank accounts, payments, and manual journals only list the currencies you’ve actually **enabled** for your org under **Settings → Currencies** — always including your base currency, plus any others you’ve added. You won’t see all 48 in a transaction dropdown until you enable them.

If a currency you need isn’t on this list, it can’t be enabled — contact support to request an addition.

Base currency is permanent

The base currency you choose during onboarding **cannot be changed later**. Foreign-currency accounts are also locked to the currency chosen at creation. See [Multi-currency](https://www.accountfun.com/docs/guides/multi-currency/) for why.

## Where the exchange rates come from

AccountFUN’s rates come from the **European Central Bank (ECB) daily reference rates**, with a broader reference dataset filling in the currencies the ECB doesn’t publish. The ECB is an authoritative source because its reference rates are free, transparent, and widely used for accounting purposes.

A few important properties:

* **The ECB publishes around 30 currencies — not all 48.** The ECB reference rates cover the major currencies (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, and roughly two dozen more). For the remaining supported currencies the ECB doesn’t track, AccountFUN pulls rates from a broader blended reference dataset so every enabled currency still resolves to a rate.
* **End-of-day only.** The ledger only ever uses **EOD** (end-of-day) reference rates — never live/intraday rates. Live rates are for display only and never touch your books, so every transaction is booked at a stable, auditable, published rate.
* **Cached and validated.** Each day’s rates are fetched once, validated (a rate that drifts more than 25% from the previous business day is rejected as a probable data error), and stored in a cache so subsequent lookups are instant and identical.

## When new rates arrive: \~16:00 CET on business days

The ECB publishes its reference rates **once per day, around 16:00 Central European Time (CET)** — that’s 3pm in London, 10am in New York, and the publication switches between CET (UTC+1, winter) and CEST (UTC+2, summer) automatically with daylight saving.

AccountFUN fetches and caches that day’s rates after publication. **Until then, today’s transactions use yesterday’s rate** (the most recent published one). If you record a payment at 9am, it uses the previous business day’s EOD rate; the new day’s rate lands later that afternoon.

## Weekends and holidays: no new rate is published

This is the part that confuses most people. **The ECB does not publish rates on weekends or on TARGET2 closing days** (European bank holidays). On those days there is genuinely no new reference rate, so AccountFUN uses the **most recent business day’s rate** instead.

### The TARGET2 calendar

ECB publication follows the **TARGET2** business-day calendar — weekdays that are not TARGET2 closing days. The fixed TARGET2 holidays each year are:

| Holiday        | Typical date            |
| -------------- | ----------------------- |
| New Year’s Day | January 1               |
| Good Friday    | varies (Easter weekend) |
| Easter Monday  | varies                  |
| Labour Day     | May 1                   |
| Christmas Eve  | December 24             |
| Christmas Day  | December 25             |
| Boxing Day     | December 26             |
| New Year’s Eve | December 31             |

On these days, plus every Saturday and Sunday, the ECB publishes nothing.

### How a non-publication day is resolved

When a transaction falls on a weekend or TARGET2 holiday, AccountFUN **walks back to the most recent TARGET2 business day** and uses that day’s rate:

```text
Saturday / Sunday            →  use Friday's rate
Monday (if a TARGET holiday) →  use the previous Friday's rate
Christmas Day (Dec 25)       →  use Dec 23 or 24's rate
```

The rate is recorded with its **actual source date**, so the audit trail always shows *which* business day’s rate was applied — never a phantom weekend rate.

What this means for you

A sale, bill, or payment dated on a weekend is booked at **Friday’s** rate. This is correct and expected — there is no “Saturday exchange rate” to use. Don’t be surprised that two transactions on Saturday and Sunday share an identical rate, or that Monday morning uses Friday’s rate until the new ECB publication lands in the afternoon.

### Holidays vs. weekends — a subtle difference

AccountFUN handles the two slightly differently to maximize coverage:

* **TARGET2 holidays (a weekday):** the ECB dataset returns the *previous* business day’s data, so AccountFUN falls back to a **blended dataset** that fills in the holiday so that weekday still resolves to a sensible rate.
* **Weekends:** there is genuinely no publication, so those days carry forward Friday’s rate for the whole weekend.

In both cases the effect for you is the same: **you always get a rate, sourced from the nearest prior business day, with the source date recorded.**

## How rates are shown

Every exchange rate in AccountFUN is shown — and typed — the way currency markets quote it: **EUR/USD 1.0961**, **USD/HKD 7.8517**, **USD/JPY 150.25**. `USD/HKD 7.8517` means **1 USD = 7.8517 HKD**.

Which currency comes first is fixed by market convention, not by which way your transaction converts. So an HKD invoice in a USD organization, or a USD invoice in an HKD organization, both show **USD/HKD**. The usual order is EUR, GBP, AUD, NZD, USD, CAD, CHF, then other currencies, with small-unit currencies such as JPY and KRW always second.

This applies everywhere a rate appears — document forms (the compact **FX-Rate** line under **Currency**, with **Use custom rate**), payments, overrides in **Settings**, recurring templates, and the settlement rate on invoices. Your books store the rate in the direction they need; only the way it’s shown changes.

Entering a rate

Type the rate exactly as you’d see it quoted — `7.85` for USD/HKD, not `0.1274`. A rate more than 5% away from the system rate asks you to confirm it.

## The resolution order (which rate wins)

When AccountFUN needs a rate for a transaction, your overrides always take precedence; otherwise it uses the published ECB reference rate for that date:

1. **Per-transaction custom rate** — entered directly on a foreign-currency invoice, bill, payment, or transfer. Wins for that one transaction only, overriding the system rate and any org-wide override.
2. **Your org-level override** (set under Settings → Currencies → Exchange Rates) — takes precedence over the system reference rate for that date and pair.
3. **The system reference rate** for the date — the ECB rate where the ECB publishes one, otherwise the blended reference rate (carried forward from the most recent business day on weekends and holidays).

An org-wide override supplies the default for that date and pair; a custom transaction rate applies to that transaction. If no reference rate can be found, AccountFUN reports that the rate is unavailable so you can enter or add one.

## Overriding and customizing rates

You’re never stuck with the system rate. Three layers of override, in order of specificity:

* **Org-wide override** — **Settings → Currencies → Exchange Rates**. Pick a date, load the rates, and edit any pair. The override takes precedence org-wide for that date, across all transactions.
* **Per-transaction rate** — on a foreign-currency invoice, bill, credit note, payment, transfer, or reconciliation entry, you can type a custom rate. This wins for that one transaction only, overriding both the ECB rate and any org-wide override.
* **Always confirm during reconciliation** — for cross-currency bank transactions, AccountFUN **prompts you for the rate every time** and never silently auto-fetches one. A rate more than 5% off the market rate triggers an extra confirmation so a typo can’t quietly book a huge FX gain/loss.

Why you’d override

Your bank’s actual conversion rarely matches the ECB reference rate exactly — banks add a spread. When you know what your bank actually charged, enter that as the rate so your [realized FX](https://www.accountfun.com/docs/concepts/fx-gains-and-losses/) reflects reality rather than a theoretical reference rate.

## Practical implications

* **Don’t expect rates to change intra-day.** Today’s rate is fixed at the previous EOD; a new one appears after 16:00 CET. For a live “what’s it worth right now” number, check your bank. Automatic ledger lookups use EOD reference rates; a custom rate you confirm on a transaction takes precedence.
* **Weekend and holiday transactions share a rate.** This is normal, not a bug. The source date on each line tells you which business day’s rate was used.
* **Override when the bank differs.** If a cross-currency settlement comes through at a different rate than the ECB default, edit the rate on that transaction so the books match what actually happened to your cash.
* **Rates are auditable.** Every journal-entry line stores its currency and exchange rate, and the [GL Transaction report](https://www.accountfun.com/docs/guides/reports/) shows them side by side — so the original foreign amount is always recoverable as `base amount ÷ exchange rate`.

## Where to next

* **[Multi-currency](https://www.accountfun.com/docs/guides/multi-currency/)** — setting up foreign-currency accounts, the monetary/non-monetary classification, and common scenarios.
* **[FX gains & losses](https://www.accountfun.com/docs/concepts/fx-gains-and-losses/)** — how rate movement between transaction and settlement creates realized and unrealized FX.
* **[Bank reconciliation](https://www.accountfun.com/docs/guides/bank-reconciliation/)** — where you confirm cross-currency rates during reconciliation.
* **[Settings](https://www.accountfun.com/docs/guides/settings/)** — enabling currencies and overriding rates.
