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.
MR1M, MIRO: Postings in foreign currency/local currency
Exchange rate differences between GR/invoice
MR08/MR8M:Cancellation+exchange rate differences(KDM)
MIRO: Update of header data
FAQ: Posting logic: GR/IR clearing account
MR8M: Cancellation of an invoice in foreign currency
Rules for currency translation with active material ledger
Inexplicable amounts in foreign currency in GR for PO
M8008: SYSTEM ERROR: error in routine
MIRO: BADI for value date
Exchange rate differences for procurement
Clearing of GR/IR account in several currencies
Invoice f.PO w.not equal currencies &exchange rates
Rounding differences during invoice entry
MR01: Exchange rate difference
MR08: Amounts differ from source document
MRKO: Consignment liabilities account not cleared
MR01: Diff. due to ER rounding w/ foreign currency
MRKO: Manual clearing of consignment liabilities
MIRO, MR1M: Value date
Info: Currency translations in settlement
CO-PA valuation: exchange rate in accordance with value date
Currency translation miscalculates by 100, 1000..
Posting logic: GR for foreign currency PO
[Define all key words of your topic
If possible, use hyperlinks to the official SAP glossary (SAPNet, alias sapterm).
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).
The currency in which a document is processed (currency type = 00).
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.1 Currency definition
126.96.36.199 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:
Check Company Code Clobal Data
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%.
188.8.131.52 Multiple currencies
In some countries, however it is very typical to introduce a second or a third local currency.
Check Additional Local Currencies
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.
Ex. Rt. Type
Standard translation at average rate
Translation taking transaction currency as a basis
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.
You can invariably use all of the currency types with the material ledger.
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.
You can only use transfer prices with currency type 10 or 30, since currency type 20 is not supported in FI Customizing (Note 119428).
184.108.40.206 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:
Check Additional Local Currencies
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
220.127.116.11 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).
Define exchange rate types
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.
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.
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.
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.
18.104.22.168 Ratios for currency translation
Define translation ratios for currency translation
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.
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
- 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
- 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.
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.
22.214.171.124 Exchange rate
Enter exchange rate
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").
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.
You have defined the rate types under which you want to store your exchange rates and the required currency keys.
Sample exchange rates are already stored in the standard system.
You should delete the exchange rates you do not need.
- 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.
- 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.
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.
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