Contents:
1 Introduction
This technical information is used primarily for training new employees in support and development.
The contents of this documentation are for internal use only and must not be passed on to customers.
1.1 General Information
1.2 Other Sources of Information
For further information refer to the Online Documentation (Chapter 'Entering invoices in foreign currencies').
Consulting notes to currency. The following notes provide assistance to almost any currency-related problem explaining the system logic in different currency calculation processes.
MUST-TO-REMEMBER NOTES:
331910 | MR1M, MIRO: Postings in foreign currency/local currency |
128 | Exchange rate differences between GR/invoice |
116250 | MR08/MR8M:Cancellation+exchange rate differences(KDM) |
188324 | MIRO: Update of header data |
308008 | FAQ: Posting logic: GR/IR clearing account |
499891 | MR8M: Cancellation of an invoice in foreign currency |
374496 | Rules for currency translation with active material ledger |
393461 | Inexplicable amounts in foreign currency in GR for PO |
449277 | M8008: SYSTEM ERROR: error in routine |
574583 | MIRO: BADI for value date |
164505 | Exchange rate differences for procurement |
132885 | Clearing of GR/IR account in several currencies |
119651 | Invoice f.PO w.not equal currencies &exchange rates |
142091 | Rounding differences during invoice entry |
112022 | MR01: Exchange rate difference |
162810 | MR08: Amounts differ from source document |
393571 | MRKO: Consignment liabilities account not cleared |
452307 | MR01: Diff. due to ER rounding w/ foreign currency |
487162 | MRKO: Manual clearing of consignment liabilities |
377124 | MIRO, MR1M: Value date |
201445 | Info: Currency translations in settlement |
367132 | CO-PA valuation: exchange rate in accordance with value date |
153707 | Currency translation miscalculates by 100, 1000.. |
191927 | Posting logic: GR for foreign currency PO |
2 Definitions
[Define all key words of your topic
If possible, use hyperlinks to the official SAP glossary (SAPNet, alias sapterm).
Local currency
The currency of a company code (country currency). In one company code several local currencies can be defined, in that case the first local currency (currency type = 10).
Transaction currency
The currency in which a document is processed (currency type = 00).
3 Function
3.1 Invoices in foreign currencies
An invoice in foreign currency exists if the currency in the invoice is different from the local currency defined for the company code.
The buyer enters the currency that is used when placing a purchase order with a foreign vendor in the purchase order itself. Usually you receive an invoice in the currency specified in the purchase order, but you can also enter the invoice in a different currency!
3.1.1 Automatic Foreign Currency Translation
When you enter an invoice in foreign currency, the system automatically translates the foreign currency amounts to local currency.
The system calculates the exchange rate as follows:
- If the buyer entered a fixed exchange rate in the purchase order, the system uses this rate to translate the amounts to local currency.
- If an exchange rate was entered in Invoice Verification, the system uses this rate to translate the amounts to local currency.
- If an exchange rate was entered in neither the purchase order nor Invoice Verification, the system uses the exchange rate pre-defined in Customizing for Financial Accounting that is valid for the posting date.
3.1.2 Exchange Rate Differences
If a purchase order is entered in foreign currency, the amounts are translated from foreign currency into local currency at goods receipt. If you enter the invoice for the purchase order in the foreign currency, this can lead to currency translation differences between the goods receipt and the invoice receipt.
How these differences are posted depends on how your system is configured in Customizing for Invoice Verification:
- The exchange rate differences are based on the value determined using the exchange rate at the time of goods receipt minus the value determined using the exchange rate at the time of invoice receipt.
- The exchange rate differences are based on the value determined using the exchange rate at the time of invoice receipt minus the value determined using an assumed or planned exchange rate valid for a full year or a season, for example.
- No exchange rate differences are determined. Fluctuations in the exchange rate are treated as price variances and posted to a stock or price difference account, depending on the type of price control defined for the material.
3.1.3 Exchange Rate Rounding Differences
When an invoice is posted in a foreign currency, the amounts are translated into local currency. Since the system rounds off the amounts in each posting line, this can lead to rounding differences due to the currency translation.
When no cross-company code transaction takes place and no different tax rate has been used, these differences are posted to the vendor account.
3.1.4 Parallel currencies
With purchase orders in foreign currency, the postings at goods receipt and invoice receipt are updated both in the order currency and in local currency. The posting amounts in each currency are determined from the PO history independently of each other.
You can also use the Product Cost Controlling (CO-PC) component in your company to manage stocks of materials in several currencies in parallel. This allows you to valuate stocks in parallel currencies based on the actual exchange rates of the transactions causing the change in stock value.
For further details regarding parallel currencies, please review note 39919.
3.2 Customizing
3.2.1 Currency definition
3.2.1.1 Local currency
There are several customizing settings to be taken into consideration within the currency customizing settings. Most of the settings belong originally to the FI area, but because of the
Close relationship between MM-IV and FI and the frecuency of MM-IV problems related with currency, it is very important to know and master these:
First of all, local currency is defined on company level and can be checked through transaction OBY6:
Transaction | Definition | IMG |
---|---|---|
OBY6 | Check Company Code Clobal Data | Financial Accounting
|
Accounts must be managed in the national currency. This currency is also known as the local currency or the company code currency. Amounts that are posted in foreign currency are translated into local currency.
The local currency can be defined for each company code in FI customizing (Enterprise Structure -> Definition -> Financial Accounting -> Define, copy, delete, check company code)
Under this transaction, the role of field "Crcy transl. For tax" (V_001_B-TXKRS) is also very important. It determines how tax amounts will be translated.
Tax amounts are normally translated using the exchange rate prescribed by the tax base amount. If you want to enter or have the system propose a different exchange rate for translation, you have to select the appropriate setting for this option. The alternative exchange rate results in a local currency balance in the document. This balance is posted automatically to a separate account.
The field Max. exchange rate deviation (V_001_B-WAABW) should, as a recommendation, never exceed 10%.
3.2.1.2 Multiple currencies
In some countries, however it is very typical to introduce a second or a third local currency.
Transaction | Definition | IMG |
---|---|---|
OB22 | Check Additional Local Currencies | Financial Accounting
|
You can define additional currencies per company code which you would like to manage parallel to the local currency. In this case, you can choose between:
- Group currency
Group currency is the currency which is specified in the client table or which is to be entered there.
Crcy Type | 30 | Group currency |
Valuation | 0 | Legal valuation |
Ex. Rt. Type | M | Standard translation at average rate |
Srce Curr. | 1 | Translation taking transaction currency as a basis |
TrsDte Type | 3 | Translation date |
The currency type must not be changed for company codes that are already in use.
- Hard currency
Hard currency is a country-specific second currency which is used in countries with high inflation. In economics, refers to a currency in which investors have confidence, such as that of a politically stable country with low inflation and consistent monetary and fiscal policies, and one that if anything is tending to appreciate against other currencies on a trade-weighted basis. Examples of hard currencies at this time include the United States Dollar, the Euro, the Pound Sterling, the Japanese Yen, and the Swiss Franc. Before its replacement with the Euro the Deutschmark was considered perhaps the best hard currency.
In customizing it is designated with a 40
- Index-based currency
Index-based currency is a country-specific fictitious currency which is required in some countries with high inflation for external reporting (for example, tax returns).
In customizing it is designated with a 50
- Global company currency
Global company currency is the currency which is used for an internal trading partner.
In customizing it is designated with a 60
A maximum of two currencies can be managed for all postings in FI and CO independent of the currency types used in the controlling area. Currency type 10 is always managed in FI. In addition, if needed, currency type 30 can be managed as a parallel currency in FI.
There is also currency type 80 (ledger currency) in FI-SL and currency type 90 in Profit Center Accounting (currency of Profit Center Accounting). You can also activate type 20 in FI-SL and Profit Center Accounting. In FI, a maximum of 3 parallel local currencies can be managed per company code but category 10 is mandatory. The various currency types are saved in one or several ledgers for the general ledger. You can find the exact currency translation parameters in view V_T001A (you can set whether the system should translate from transaction currency, local currency and so on).
If the CO currency type is 20 and you have not activated a parallel currency in FI, then, in contrast to the usual logic, the system searches in AA for an area which has the currency key that matches the CO currency.
Material ledger:
You can invariably use all of the currency types with the material ledger.
Exception:
With a stock transfer, the delivering material stock forwards its valuation to the receiving stock. If the delivering material stock doesnot manage the same currency types as the receiving material inventory (rarity!), the system translates the missing currency types for the receiving inventory from currency type 10 of the delivering material stock.
Transfer prices:
You can only use transfer prices with currency type 10 or 30, since currency type 20 is not supported in FI Customizing (Note 119428).
3.2.1.3 Material ledger currencies
Material inventory values are normally carried by the SAP system in one currency. The material ledger component enables the R/3 System to carry inventory values in two additional currencies/valuations. Therefore, all goods movements in the material ledger are performed in up to 3 currencies or valuations. Currency amounts are translated into foreign currencies at historical exchange rates directly at the time of posting. Businesses such as those in high-inflation countries can therefore carry their inventories in a more stable currency (such as US dollars). This reveals inflationary effects on inventory values.
Material ledger data forms the basis of actual costing and is used to manage valuation prices in multiple currencies and valuations. Consequently, material ledger data supplements the material master record. In addition, material ledger data can refer to materials that are part of sales order stock and project stock.
In order to check in Customizin if Material Ledger is active, please read the following path:
Transaction | Definition | IMG |
---|---|---|
OMX1 | Check Additional Local Currencies | Controlling
|
You can activate the material ledger for one or more valuation area.
If the material ledger is active for a particular valuation area, all materials in the valuation area are valuated using the material ledger.
In the standard system, the material ledger is not activated for any valuation area.
Settings about currencies in material ledger can be checked by displaying material ledger relevant customizing settings (transaction CKM9):
3.2.2 Currency translation
3.2.2.1 Exchange rate types
It refers to the exchange rate type whose average rate is used to determine the buying rate. However, the 'Translation date' field (value date) for the foreign currency translation for foreign currency invoices is not an input field in the logistics invoice verification transactions (on the FI side it is possible). In Logistics invoice verification the following possibilities exist:
The exchange rate can be fixed in the purchase order. The system then uses this fixed exchange rate in the invoice.
In certain cases, it is wanted that the value date is derived from the document date. For Release 4.6C and 4.70, note 574583 describes the derivation of the value date via an implementation with the help of a BAdI. By means of this implementation, the system can derive the value date automatically from the document date (or from other date - and not from the posting date as in the standard).
Transaction | Definition | IMG |
---|---|---|
OB07 | Define exchange rate types | General Settings
|
In the invoice verification the system uses the exchange rate type "M" as default for foreign currency translation. This exchange rate type must be contained in the system. The exchange rate types apply to all company codes.
In this transaction you can:
1. Check the standard exchange rate types. Create additional exchange rate types if necessary.
2. If you want to specify that all currency translations for a rate type must be carried out using a base currency, enter a currency (such as the group currency) in the Base cur field.
If you need to carry out currency translations between a number of different currencies, you can simplify exchange rate maintenance by entering a base currency for the exchange rate type. Instead of entering translation rates between every single currency, you then only need specify the translation rate between each currency and the base currency. All currency translations then take place in two steps - into the base currency and from the base currency into the target currency.
Example
The base currency is USD. You want to translate JPY to GBP. To do this, the following entries must be made in the table for maintaining currency translation rates:
Ratio for JPY -> USD
Ratio for GBP -> USD
Translation from JPY to GBP is then carried out automatically. The translation is done as though this exchange rate (JPY -> GBP) was actually entered in the conversion table. In this example, the base currency (USD) is the To-currency and JPY or GBP the From-currency.
For exchange rate relations within the EU, it is a legal requirement that the base currency (EUR) is the From-currency. You set the indicator for this in the BCurr=from field.
3. If you want to use the base currency specified as the From-currency, select the BCurr=from field.
4. If you want to use the inverted rate for translating two currencies, select the Inv field.
Note: The reversed rate is used only if you have not made an entry for the corresponding exchange rate in the activity Enter exchange rates.
Example
For the exchange rate type 'M' the indicator Inv is set to 'X'. You want to translate USD to EUR. There is at lest one entry for EUR -> USD, but no entry for USD -> EUR in the table for maintaining currency translation rates. The system calculates the ratio for USD -> EUR from the latest ratio EUR -> USD.
5. If you want to calculate the amounts according to the European Monetary Union's legal directives, select the EMU field. If you set this indicator it means that the SAP System internal translation modules calculate using a different algorithm. The algorithm has been adjusted to meet the European Monetary Union statutory guidelines. The indicator must be set if the statutory conversion rules agreed by the participating countries in the EMU are to be used.
This procedure is not effective if calculation is to be undertaken using bank selling rates, bank buying rates and exchange rate spreads.
If you set this indicator, you must specify a base currency.
Example
The base currency is EUR, the indicator EMU is set to 'X'. You want to translate GBP to CHF.
If the indicator EMU is set to 'X', the system calculates as follows:
Translate the amount in GBP to EUR (ratio GBP -> EUR) -> Round off the result to third decimal place -> translate the rounded amount in EUR to CHF (ratio EUR -> CHF).
If the indicator EMU is set to ' ', the system calculate as follow:
Translate the amount in GBP to EUR (ratio GBP -> EUR) -> translate the amount in EUR to CHF (ratio EUR -> CHF).
6. If you want the system to check whether the application uses an exchange rate other than the fixed exchange rate, select the indicator in the Fixed field. This indicator must be set for the exchange rate type that is used for currency translation within the EMU.
3.2.2.2 Ratios for currency translation
Transaktion | Definition | IMG |
---|---|---|
OBBS | Define translation ratios for currency translation | General Settings
|
|
|
|
In this activity, you enter the translation ratios for currency translation. You enter these ratios for each exchange rate type and currency pair. You also specify whether you want to use an alternative exchange rate type for specific currency pairs.
Example
As of 01/01/1999 the exchange rate for DEM to FRF will be calculated via EUR. To translate amounts enter:
- 01/01/1999 in the Valid from field:
- The exchange rate type under which the exchange rates of the European national currencies are stored in the Alt. ERT field: normally it is EURO
Requirements
- You must have defined the exchange rate types under which you want to define your translation ratios. You do this in the activity Check Exchange Rate Types
- You must have defined the required currency keys. You do this in the activity Check Currency Codes
Activities
- Specify existing currency translation ratios for each exchange rate type for the currency pairs you need in your company.
- Enter the exchange rate type to which you want to switch with specific currency pairs in the Alt. ERT field.
Further Notes
The ratios you enter here for currency translation are displayed again when maintaining the exchange rates. For information on how to maintain exchange rates, see Enter Exchange Rates.
Shall errors be discovered in the OBBS settings. Special attention should be paid in the corrections of the values in the transaction. Note 189621 - released internally - includes some data of how to proceed in the case that a customer may face such a problem.
3.2.2.3 Exchange rate
Transaction | Definition | IMG |
---|---|---|
OB08 | Enter exchange rate | General Settings
|
Exchange rates are required to be able to:
- Translate foreign currency amounts when posting or clearing or to check an exchange rate entered manually
- Determine the gain and loss from exchange rate differences
- Evaluate open items in foreign currency and the foreign currency balance sheet accounts
The exchange rates are defined by period ("valid from").
Note
The system uses the type M exchange rates for foreign currency translation when posting and clearing documents. An entry must exist in the system for this exchange rate type. The exchange rates apply to all company codes.
The exchange rate relations for currency translation are only displayed here. Read the chapter Define Translation Ratios for information on the actual maintenance.
Requirements
You have defined the rate types under which you want to store your exchange rates and the required currency keys.
Standard settings
Sample exchange rates are already stored in the standard system.
Recommendation
You should delete the exchange rates you do not need.
Activities
- Check whether the exchange rates you need are in the system.
- Delete the entries you do not need.
4 Technical Information
4.1 Important locations for debugging in Invoice Verification - General
4.2 Creation time of currencies in LIV
Transaction currency (always! currency type = 00) and local currency (always! currency type = 10) are determined in MM-IV.
Material ledger currencies are determined calling function modul MRM_CURRENCIES_CREATE.
Multiple currencies are determined in FI calling function modul AC_DOCUMENT_CREATE.
If Multiple currency is although used as Material ledger currency (example curtp = 30) the multiple currency will not be determinded in FI again.
Currency informations will be stored in table acccr for further processes in accounting interface.
5 Tips
- Exchange Rates are derived in the function module 'READ_EXCHANGE_RATE'. The rate KURSF is derived within the FORM DATA_FROM_DATABASE -> FORM DATEN_BEREITSTELLEN. Database tables like TCURR and TCURF are read in the latter form.
- If more then one local currency are maintained and you enter an exchange rate manually during invoicing, the first local currency (CURTP 10) will be calculated with this rate, all other local currencies will be calculated using a derived exchange rate determined by the customizing settings. A reason for this is that only the rate between transaction currency and company currency is stored in RBKP-KURSF.
This can lead to balances in local currencies, if they equal the first one (CURTP 10), e.g. for some cancellation: the first local currency (e.g. USD) is calculated from the document currency (e.g. EUR) using the exchange rate of the original invoice, a second local currency USD is calculated with a derived exchange rate from customizing. Hence the amounts are likely to be different.
5.1 Troubleshooting
The following table serves as a guide for the problem analysis in messages reporting currency inconsistencies or unwanted behaviors. In most of the cases, it has to be highlighted, these sort of messages require a deep analysis of the situation and the final solution is an explanation of the behavior of the system. There are very few real errors regarding this matter and the system's calculations in almost every case are precise.
The table can be used as a help to organize the analysis of a currency related problem.
Activity | Comment |
---|---|
Direct/Indirect Quoted Exchange rate? Table TCURN, TA OB08 |
|
Check Translation Ratio TA OBBS |
|
Check Settings in OB22 |
|
Exchange Rate Fixed in PO? See notes 164505 , 119651, 128, 331910 |
|
Material Price Control, S or V ?; TA MM03 See note 128, 331910 |
|
Logistics Invoice Verification or Conventional IV? See note 331910 |
|
LIV in Release 4.7? See note 331910 |
|
Material Ledger Active? TA OMX1 Notes 331910, 374496, 449277 |
|
Settings for Treatment of Ex. Rate Differences TA OMRW |
|
Local Currency TA OBY6 |
|
Foreign Currency Translation for Tax Items - V_001_B-TXKRS TA OBY6 |
|
Document Currency TA FB03, MIR4 |
|
Additional Foreign Currencies? TA OB22 |
|
Date of PO |
|
Date of different GR |
|
Invoice cancel present? More than 5 decimal places? See note 499891, 162810 |
|
Dates of Invoices |
|
Subcontract order? Price Differences? V_001K_LB-XLBPD See notes 365485, 39775, 308008 |
|
Consignment settlement order? See notes 393571, 487162, 201445 |
|
GR/IR account not cleared as customer would like? See note 331910 |
|