In order to perform conversions between currencies exchange rates must be defined.

Setting currency exchange rates#

All the Currency values are relative. Best practice is to define which currency you want to use as the base currency by setting its exchange Rate to 1 for the date when it is first used. Then the rates of all other currencies are set as a multiplier of the base currency.

In order to set an exchange rate of 1.0 EUR = 1.1222 USD for the 1st of January the following records should be created:

  • A rate of 1.0 for the EUR currency with the 1st of January as the date.

  • A rate of 1.1222 for the USD currency with the 1st of January as the date.

If you then wanted to update the exchange rate to 1.0 EUR = 1.1034 USD for the 15th of January you just need to set the rate on the USD currency to 1.1034 for that date.


In this example, as there isn’t any rate set for the dates between the 2nd and 14th of January the last available rate will be used. Here this rate would be 1.1222 as this was the rate set for the 1st of January.

Scheduling rate updates#

You may want to define some Scheduled Rate Updates to keep the Exchange Rates up to date. When doing this you have to pick a source, the base currency and a frequency. Then for each required date since the last update, a rate of 1.0 will be set for the base currency and the corresponding rate will be set for each of the selected currencies.


It is strongly advised to use the same base currency for all Scheduled Rate Updates.


The currency module only supports the rates provided by the European Central Bank, but third party modules can add additional sources for exchange rates.