Update Currency Exchange Rates

You can define different currencies in Business Central, for example if you do trade in currencies other than your local currency. Then, to help you keep track of changes in currency exchange rates, you can manage the currencies manually, or you can set up a currency exchange rate service.

Currencies

Tip

In Business Central if you are looking for real time information about foreign exchange (FX) rates or historical rates, you will find it referred to as currency. In addition to this article, see also Set Up an Additional Reporting Currency.

You must set up a code for each currency you use if you:

  • Buy or sell in other currencies besides your local currency (LCY).
  • Record general ledger transactions in both LCY and an additional reporting currency.

After setting up the codes, assign the appropriate code to each foreign currency bank account, and assign a default currency code to foreign customer and vendor accounts.

You specify the currency codes in the Currencies list, including extra information and settings that are necessary for each currency code.

Tip

Create the currencies with the international ISO code as the code to simplify working with the currency in the future.

You specify the currency codes in the Currencies list, including extra information and settings that are necessary for each currency code. For more information, see Currencies

Example of a receivable currency transaction

When you receive an invoice from a company in a foreign currency, it is fairly easy to calculate the local currency (LCY) value of the invoice based on today's currency rate. However, the invoice often comes with payment terms so you can delay the payment to a later date, which implies a potentially different currency rate. This issue in combination with the fact that bank currency rates always differ from the official currency rates makes it impossible to anticipate the exact local currency (LCY) amount that is required to cover the invoice. If the due date of the invoice extends to the next month, you might also have to revaluate the local currency (LCY) amount at the end of the month. The currency adjustment is necessary because the new LCY value that is required to cover the invoice amount might be different, and the company debt to the supplier has potentially changed. The new LCY amount might be higher or lower than the previous amount and will therefore represent a gain or a loss. However, since the invoice has not been paid yet, the gain or loss is considered unrealised. Later, the invoice is paid, and the bank has returned with the actual currency rate for the payment. It is not until now the realised gain or loss is calculated. This unrealised gain or loss is then reversed, and the realised gain or loss is posted instead.

In the following example, an invoice is received on January 1 with the currency amount of 1000. At the time, the currency rate is 1.123.

Date Action Currency Amount Document Rate LCY Amount on document Adjustment Rate Unrealised Gains Amount Payment Rate Realised Losses Amount
1/1 Invoice 1000 1.123 1123
1/31 Adjustment 1000 1125 1.125 2
2/15 Adjustment Reversal on payment 1000 -2
2/15 Payment 1000 1120 1.120 -3

At the end of the month, a currency adjustment is performed where the adjustment currency rate has been set to 1.125, which triggers an unrealised gain of 2.

At the time of payment, the actual currency rate registered on the bank transaction shows a currency rate of 1.120.

Here there is an unrealised transaction, and therefore it will be reversed together with the payment.

Finally, the payment is registered and the actual loss is posted to the realised losses account.

Exchange Rates

The exchange rates are the tool to calculate the local currency value (LCY) of each currency transaction. The Exchange Rates page includes the following fields:

Field Description
Starting Data The date when the currency rate was effectuated
Currency Code The currency code related to this exchange rate
Relational Currency Code If this currency is part of a triangular currency calculation, then the related currency code can be set up here
Exchange Rate Amount The exchange rate amount is the rate to use for the currency code selected on the line. Normally 1 or 100
Relational Exch. Rate Amount The relational exchange rate amount relates to the rate to use for the relational currency code
Adjustment Exch. Rate Amount The adjustment exchange rate amount is the rate to use for the currency code selected on the line for use of the Adjust Exchange Rates batch job
Relational Adjmt Exch. Rate Amt The relational adjustment exchange rate amount is the rate to use for the currency code selected on the line for use of the Adjust Exchange Rates batch job
Fix Exchange Rate Amount Specifies if the currency's exchange rate can be changed on invoices and journal lines.

In general, the values of the Exchange Rate Amount and Relational Exchange Rate Amount fields are used as the default currency rate on all new receivables and payables documents that are created going forward. The document is assigned the currency rate according to the current working date.

Note

The actual currency rate will be calculated using this formula:

Currency Amount = Amount / Exchange Rate Amount * Relational Exch. Rate Amount

The adjustment exchange rate amount or relational adjustment exchange rate amount will be used to update all open bank, receivables, or payables transactions.

Note

The actual currency rate will be calculated using this formula:

Currency Amount = Amount / Adjustment Exch. Rate Amount * Relational Adjmt Exch. Rate Amt

Adjusting Exchange Rates

Because exchange rates fluctuate constantly, additional currency equivalents in your system must be adjusted periodically. If these adjustments are not done, amounts that have been converted from foreign (or additional) currencies and posted to the general ledger in LCY may be misleading. In addition, daily entries posted before a daily exchange rate is entered into application must be updated after the daily exchange rate information is entered.

The Adjust Exchange Rates batch job is used to manually adjust the exchange rates of posted customer, supplier, and bank account entries. It can also update additional reporting currency amounts on G/L entries.

Tip

You can use a service to update exchange rates in the system automatically. For more information, see To set up a currency exchange rate service. However, this does not adjust exchange rates on already posted transactions. To update exchange rates on posted entries, use the Adjust Exchange Rates batch job.

You can preview the effect that an adjustment will have on posting before you actually post by choosing Preview on the Adjust Exchange Rates page. Additionally, you can select whether the general ledger posting will be detailed (per entry) or summarised (per currency) by choosing Summarise Entries. You can also specify how to handle dimensions for unrealised gains and losses postings by choosing one of the following options in the Transfer Dimension Values field:

  • Source Entry: G/L entries for unrealised gains and losses will have dimensions values transferred from the adjusted entry.
  • By G/L Account: G/L entries for unrealised gains and losses will have dimensions values transferred from the unrealised gains and losses G/L account's dimension settings source entry.
  • No Transfer: G/L entries for unrealised gains and losses won't have dimensions values.

Effect on Customers and Suppliers

For customer and supplier accounts, the batch job adjusts the currency by using the exchange rate that is valid on the posting date that is specified in the batch job. The batch job calculates the differences for the individual currency balances and posts the amounts to the general ledger account that is specified in the Unrealised Gains Acc. field or the Unrealised Losses Acc. field on the Currencies page. Balancing entries are automatically posted to the receivables/payables account in the general ledger.

The batch job processes all open customer ledger entries and vendor ledger entries. If there is an exchange rate difference for an entry, the batch job creates a new detailed customer or supplier ledger entry, which reflects the adjusted amount on the customer or supplier ledger entry.

Dimensions on Customer and Supplier Ledger Entries

The adjustment entries are assigned the dimensions from the customer/supplier ledger entries, and the adjustments are posted per combination of dimension values.

Effect on Bank Accounts

For bank accounts, the batch job adjusts the currency by using the exchange rate that is valid on the posting date specified in the batch job. The batch job calculates the differences for each bank account that has a currency code and posts the amounts to the general ledger account that is specified in the Realised Gains Acc. field or the Realised Losses Acc. field on the Currencies page. Balancing entries are automatically posted to the general ledger bank accounts that are specified in the bank account posting groups. The batch job calculates one entry per currency per posting group.

Dimensions on Bank Account Entries

The adjustment entries for the bank account's general ledger account and for the gain/loss account are assigned the bank account's default dimensions.

Effect on G/L Accounts

If you post in an additional reporting currency, you can have the batch job create new general ledger entries for currency adjustments between LCY and the additional reporting currency. The batch job calculates the differences for each general ledger entry and adjusts the general ledger entry depending on the contents of the Exchange Rate Adjustment field for each general ledger account.

Dimensions on G/L Account Entries

The adjustment entries are assigned the default dimensions from the accounts they are posted to.

Important

Before you can use the batch job, you must enter the adjustment exchange rates that are used to adjust the foreign currency balances. You do so on the Currency Exchange Rates page.

To set up a currency exchange rate service

You can use an external service to keep your currency exchange rates up to date, such as FloatRates.

Note

Most exchange rate services provide data that is compatible with the import process in Business Central. However, sometimes the data is formatted differently and you will need to customise your import process. You can use the data exchange framework to do that by adding your own codeunit. You'll probably need some help from a developer to do that. For more information, see Set Up Data Exchange Definitions.

  1. Choose the Lightbulb that opens the Tell Me feature. icon, enter Currency Exchange Rate Services, and then choose the related link.
  2. Choose the New action.
  3. On the Currency Exchange Rate Service page, fill in the fields as necessary. Hover over a field to read a short description.
  4. Turn on the Enabled toggle to enable the service.

Note

The following video shows an example of how to connect to a currency exchange rate service, using the European Central Bank as an example. In the segment that describes how to set up field mappings, the setting in the Source column for the Parent Node for Currency Code will only return the first currency found. The setting should be /gesmes:Envelope/Code/Code/Code.



To update currency exchange rates through a service

  1. Choose the Lightbulb that opens the Tell Me feature. icon, enter Currencies, and then choose the related link.
  2. Choose the Update Exchange Rates action.

The value in the Exchange Rate field on the Currencies page is updated with the latest currency exchange rate.

See Also

Currencies in Business Central
Set Up Currencies
Set Up an Additional Reporting Currency
Closing Years and Periods
Work with Business Central