Update currency exchange rates
If you trade in different currencies, you need to keep track of the changes in currency exchange rates. Business Central helps you manage and update the exchange rates manually or automatically and set up a currency exchange rate service.
Currencies
Tip
In Business Central, you can find real-time information about foreign exchange (FX) rates or historical rates under the term currency. For more information, see 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 can 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 unrealized. Later, the invoice is paid, and the bank has returned with the actual currency rate for the payment. It is not until now the realized gain or loss is calculated. This unrealized gain or loss is then reversed, and the realized 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 | Unrealized Gains Amount | Payment Rate | Realized 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 unrealized 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 unrealized transaction, and therefore it will be reversed together with the payment.
Finally, the payment is registered and the actual loss is posted to the realized losses account.
Exchange rates
The exchange rates are the tool to calculate the local currency value (LCY) of each currency transaction. The Currency Exchange Rates page includes the following fields:
Field | Description |
---|---|
Starting Date | The date when the currency rate was effective. |
Currency Code | The currency code related to this exchange rate. |
Relational Currency Code | If this currency is part of a triangular currency calculation, then you can set up the related currency code here. |
Exchange Rate Amount | The exchange rate amount is the rate 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 rate for the currency code selected on the line for the use of the Adjust Exchange Rates batch job. |
Relational Adjmt Exch. Rate Amt | The rate for the currency code selected on the line for the 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 is 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, updates all open bank, receivables, or payables transactions.
Note
The actual currency rate is calculated using this formula:
Currency Amount = Amount / Adjustment Exch. Rate Amount * Relational Adjmt Exch. Rate Amt
Adjust exchange rates
Because exchange rates fluctuate constantly, you need to 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 need to update daily entries posted before you enter a daily exchange rate.
You can 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.
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 doesn't 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 handles dimensions for unrealized 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 unrealized gains and losses from the entry you're adjusting.
- No Dimensions: Don't transfer dimension values for unrealized gains and losses to G/L entries. Business Central still uses 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 unrealized gains and losses G/L account's dimension settings source entry to G/L entries.
Note
To use the preview capability, you need to turn on the Feature Update: Enable use of new extensible exchange rate adjustment, including posting review feature on the Feature Management page.
Important
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 has 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 summarized 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 Unrealized Gains Acc. field or the Unrealized 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's 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 Realized Gains Acc. field or the Realized 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 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 the local currency and the other reporting currency. The batch job calculates the differences for each general ledger entry. It 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're posted to.
Important
Before you can use the batch job, you need to enter the adjustment exchange rates that are used to adjust the foreign currency balances. You do so on the Currency Exchange Rates page.
Set up a currency exchange rate service
You can use an external service to keep your currency exchange rates up to date.
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 need to customize 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.
- Select the
icon, enter Currency Exchange Rate Services, and then select the related link.
- Select 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.
- Map the fields from the XML file to the currency exchange rates table in the source field.
- Apply any necessary transformation rules.
- Turn on the Enabled toggle to enable the service.
Note
The following video shows how you can 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 only returns the first currency found. The setting should be /gesmes:Envelope/Code/Code/Code
.
Update currency exchange rates through a service
Follow the steps given to update the currency exchange rates through a service:
- Select the
icon, enter Currencies, and then select the related link.
- Select the Update Exchange Rates action.
Correct mistakes
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 Account Ledger Entries, Customer Ledger Entries, and Vendor Ledger Entries pages to unapply and reverse the payment transaction.
Note
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.
See also
Currencies in Business Central
Set Up Currencies
Set Up an Additional Reporting Currency
Closing Years and Periods
Work with Business Central