Data import
Import exchange rates from a CSV file
Load many currency rates at once from a CSV file, matched by currency code and effective date. Importing the same file again updates the rates instead of duplicating them.
3 min readLast updated
In this article
If you deal in several currencies, you need a rate for each currency on each day you post. Typing them one by one is slow and error-prone. Instead, keep the rates in a spreadsheet, for example copied from your central bank's daily bulletin, save it as CSV and import it.
The import only maintains the rate table that conversions use. It posts nothing to the general ledger.
Before you start
Every currency in the file must exist in Administration › Organization › Currencies with its three-letter Code, such as USD or EUR. The import matches currencies by code. See Set up currencies.
Import the rates
Open the screen by adding
/s/accounting.exchange-rates.importto your workspace address. It has no menu entry.Select Download template. You get a CSV file with the heading row only.
Fill in one row per currency pair and date, using the columns below.
Save the file as CSV.
Select Choose file, pick the file (.csv or .txt, up to 2 MB) and select Upload.
Read the result. Rows that failed are listed with their line number and the reason.
The columns, in this order
Column | What to enter |
|---|---|
from_currency_code | The currency being converted, for example USD. Required. |
to_currency_code | The currency it converts to, usually your base currency, for example EGP. Required. |
effective_date | The date the rate applies from, for example 2026-10-22. Required. |
rate | How many units of the second currency one unit of the first buys, for example 48.25. Required. |
rate_type | Optional. Left empty, it is recorded as official. |
source | Optional, for example "Central Bank". Left empty, it is recorded as CSV Import. |
Codes are not case-sensitive, so usd and USD both work.
What happens next
The rates appear at once in the accounting area's exchange-rate list.
If a rate already exists for the same pair and date, the import replaces it. You can therefore correct a rate by importing the file again.
Each row is handled on its own: a bad row does not stop the rest.
Common questions
"Currency not found". The code in that row does not match the Code of any of your currencies. Check the spelling, or fill in the code on the currency.
The date was rejected. Write dates in a clear format such as 2026-10-22. A date the system cannot read rejects that row only.
Can I upload an Excel file? No. This import accepts CSV only. In Excel, choose Save As and pick CSV.