Update Currency Exchange Rates
You can define different currencies in Business Central, for example if you trade in currencies other than your local currency. To track changes in currency exchange rates, you can manage the rates manually or set up a currency exchange rate service.
In Business Central, if you're 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.
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 vendor 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|
|2/15||Adjustment Reversal on payment||1000||-2|
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.
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:
|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.
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 the relational adjustment exchange rate amount, update all open bank, receivables, or payables transactions.
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, you must adjust other currency equivalents periodically. If you don't, amounts you converted from foreign (or other) currencies and posted to the general ledger in local currency can be incorrect. Also, you must update daily entries posted before you enter a daily exchange rate.
Use the Adjust Exchange Rates batch job to manually adjust the exchange rates for posted customer, vendor, and bank account entries. The batch job can also update other reporting currency amounts on G/L entries.
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 also specify how the adjustment will handle dimensions for unrealised gains and losses postings by choosing one of the following options in the Dimension Posting field:
- Source Entry Dimensions: Transfer dimension values for G/L entries for unrealised gains and losses from the entry you're adjusting.
- No Dimensions: Don't transfer dimension values for unrealised gains and losses to G/L entries. Business Central will still use default dimension settings, for example Code Mandatory, Same Code, or No Code. If the source transaction entries have dimension values, the adjustment creates entries without dimension values.
- G/L Account Dimensions: Transfer dimension values from the unrealised gains and losses G/L account's dimension settings source entry to G/L entries.
To use the preview capability, you must turn on the Feature Update: Enable use of new extensible exchange rate adjustment, including posting review feature on the Feature Management page.
Due to local requirements in Switzerland, we don't recommend that you enable Feature Update: Enable use of new extensible exchange rate adjustment, including posting review in the Swiss (CH) country version.
Preview the effect of an adjustment
You can preview the effect that an exchange rate adjustment will have on posting before you actually post by choosing the Preview Posting action on the Exch. Rates Adjustment report (Report 596) request page. On the request page you can specify what to include in the preview:
- Get a detailed posting to the general ledger by entry
- Get a summarised posting by currency. Just pick the Adjust per entry field on the Exch. Rates Adjustment report.
Effect on customers and vendors
For customer and vendor accounts, the batch job uses the exchange rate that was valid on the posting date specified for the batch job to adjust the currency. 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 vendor ledger entry. The new entry reflects the adjusted amount on the customer or vendor ledger entry.
Dimensions on customer and vendor ledger entries
Business Central assigns the dimensions from the customer or vendor ledger entries to the adjustment entries, and posts adjustments for each 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 another reporting currency, the batch job can create new general ledger entries for currency adjustments between local currency and the other 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.
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.
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.
- Choose the icon, enter Currency Exchange Rate Services, and then choose the related link.
- Choose the New action.
- On the Currency Exchange Rate Service page, fill in the fields as necessary. Hover over a field to read a short description.
- Turn on the Enabled toggle to enable the service.
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
To update currency exchange rates through a service
- Choose the icon, enter Currencies, and then choose the related link.
- 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.
Every now and then you might need to correct a mistake in a payment transaction that's associated with adjustments to foreign currency gains and losses. You can use the Reverse transaction action on the Bank Ledger Entries, Customer Ledger Entries, and Vendor Ledger Entries pages to unapply and reverse the payment transaction.
When you unapply and reverse a payment for an entry that had currency exchange rate adjustments associated with it, the reversal posts reversal entries for the adjustments. You might have to run the currency exchange rate adjustment again to get the correct current balance.