This Wiki document discuss about input taxes in purchasing.
It will provide details on type of input taxes in Purchasing, their types, usage and customization. This document will also provide you information about common problems and areas where you can look for their cause and their solutions. This document also talks about special cases and related notes.
- Basics: Taxes in Purchasing
- Tax code in the Purchase order (PO)
- Tax calculation in the PO
- Customizing for Taxes: FI (Financials)and MM-PUR (Material Management - Purchasing)(Summary)
- Important Forms/Modules for Taxation
- Typical problems and where to look
- Special cases
Types of taxes in Purchasing :
Non deductible input tax :
This amount should be regarded as an additional cost item of the procurement because the tax authorities do not refund this amount unlike the deductible part of the tax. Therefore, the non-deductible part of the tax is added to the stock value during the inventory posting.“ (Refernce FAQ note 501054, question 3).
(Remark: Which tax has to be considered as a non deductible tax in this sense depends on the local tax law)
This input tax is paid to the vendor, who passes this on to the tax authorities. The offsetting entry for the tax is posted to a separate input tax account, on the basis of this account and the sales tax account, Financial Accounting can calculate the difference between the tax received and tax paid and pay this amount to the appropriate tax authority.
The system creates a line for every tax code you enter. If various line items have the same tax code, the tax postings are added together.
Tax code in the PO :
- The tax code determines the tax rate.
- Taxes are calculated on a base amount with the tax rate from the tax code.
- The tax rate for the tax code is maintained in FI customizing (transaction FTXP, see below).
- Taxation is country specific; i. e. tax code N1 for India could mean another tax rate than N1 for Germany.
- Relevant for taxation in Purchasing is the country of the (receiving) plant.
- Taxes in the PO are calculated on item level (table EKPO).
- Tax code is stored in field EKPO-MWSKZ.
- Tax amount is stored in field EKPO-NAVNW.
- You can see the tax code in the PO
- Enjoy transaction PO: “Invoice” tab
- Non enjoy transaction PO: “Item details” screen
- To see how tax has been calculated
- Enjoy transaction PO: “Invoice” tab, button “Taxes”
- Non enjoy transaction PO: menu path > Item -> More functions > taxes
Tax code determination in PO happens as below:
- preceding item
- info record
- condition technique
(see Form MEPO_ITEM_FILL_MWSKZ include LMEPOF3Y for the enjoy transaction PO and the UEBERNAHME_… - routines called from NEUE_POS_BESTELLUNG for the non enjoy transactions PO)
Condition technique for taxes in the PO - 1
- Condition type NAVS, customizing settings (cf. FAQ note 501054, question 4)
- Condition class: 'D' (Taxes)
- Calculation rule: 'B' (Fixed amount)
- Condition category: 'N' (Non-deductible input tax) (Remark: ‚D‘ would also be possible, but ... see below)
- Scale type: ' ' (must remain empty)
- Access sequence (for condition tables): ‚003‘
Condition technique for taxes in the PO - 2
- Maintain condition tables with transaction MEK2 (country specific!)
- Define tax indicators for material, plant, account assignement category in purchasing customizing (transaction OLME -> Taxes)
- Assign tax indicators for plant, account assignement category in purchasing customizing (transaction OLME -> Taxes); assign tax indicators for material in material master, purchasing tab.
Condition technique for taxes in the PO - 3
- Determination of tax code with condition technique is done in function module PRICING (from SD (Sales and Distribution), component SD-BF-PR)
- PRICING is called in form PREISFINDUNG. Tax code is moved into EKPO-MWSKZ in PREISFINDUNG. (MEPO and SAPMM06E)
- Interface structures for PRICING are KOMK and KOMP. They are filled in function modules ME_FILL_KOMK_PO and ME_FILL_KOMP_PO. (MEPO and SAPMM06E)
SAPLMEKO FUNCTION ME_FILL_KOMP_PO
SAPLMEPO FORM KOND_KOMP_FUELLEN
SAPLMEPO FORM PREISFINDUNG_VORBEREITEN
SAPLMEPO FORM PREISFINDUNG
Condition technique for taxes in the PO - 4
- Important fields in structures KOMP and KOMK for tax
- KOMK-LAND1: country relevant for taxation, taken from (receiving) plant.
- KOMK-TXJCD: tax jurisdiction code, relevant for US tax (see below).
- KOMP-TAXIM, -TAXIK, -TAXIW, -TAXIL, -TAXIR: tax indicators, e. g. KOMP-TAXIM: Tax indicator for material, taken from material master.
(For more details have a look at the structures in SE11 and at function modules ME_FILL_KOMK_PO and ME_FILL_KOMP_PO.)
Tax calculation in the PO
- Determination auf tax code (from preceding documents or via condition technique).
- Move tax code into EKPO-MWSKZ (form PREISFINDUNG, after call of function module PRINCING).
- Call form KOND_TAXES (MEPO and SAPMM06E)
- Some checks (e. g.: Does EKPO-MWSKZ exist? à no tax calculation without tax code!)
- Fill interface structure for tax calculation TAXCOM.
- Call tax calculation function module CALCULATE_TAX_ITEM (responsible is FI, component FI-GL-GL-F).
- Call function module PRICING (again!) from CALCULATE_TAX_ITEM to calculate tax amount. Call stack:
SAPLV61A FUNCTION PRICING
SAPLTAX1 FUNCTION CALCULATE_TAX_ITEM
SAPLMEPO FORM KOND_TAXES
SAPLMEPO FORM PREISFINDUNG_UEBERNAHME
SAPLMEPO FORM PREISFINDUNG
- Write tax amount into EKPO-NAVNW in form KOND_TAXES.
- Write tax amount into the first condition with condition category 'N' (in Standard condition type NAVS) in form KOND_TAXES.
Remark: Like this tax calculation becomes part of the pricing procedure.
Prerequisite : calculation schema must contain tax condition type with condition category ‚N‘
Customizing for Taxes: (FI part)
Basic settings for taxes have to be customized in FI (Purchasing uses FI functionality for taxes!):
- Tax calculation procedure
Tax calculation uses condition technique too. In Purchasing we usually just rely on these settings, but on customers systems we sometimes have to check them.
- Assign tax calculation procedure to country:
IMG (SPRO) -> Financial Accounting > Tax on Sales/Purchases > Basic settings > Assign country to tax calculation procedure
- Check settings of tax calculation procedure:
IMG > Financial Accounting > Tax on Sales/Purchases > Basic settings > Check Calculation procedure
- Assign tax calculation procedure to country:
Relevant for Purchasing are tax conditions with the following feature:
-> There is a posting indicator ‚3‘ assigned to the account key. In Standard these are conditions with an account key ‚NVV‘.
-> To check this in debugging put break point in form NAV_ANTEIL_AUS_T_KOMV called from function module CALCULATE_TAX_ITEM.
2. Tax codes
- IMG > Financial Accounting > Tax on Sales/Purchases > Calculation -> Define Tax Codes for Sales and Purchases (or directly with transaction FTXP)
- Type in country.
- Type in tax code you would like to check, to create, or to maintain.
- Look for line with account key ‚NVV‘ (in Standard).
Customizing for Taxes: Purchasing
- Define and assign tax indicators for material, plant, and account assignment: IMG > Material Management > Purchasing > Taxes
(for material see also the ‚Purchasing‘-tab in material master)
- Check tax condition type: IMG > Material Management > Purchasing > Conditions > Define Price Determination Process > Define condition types
- Check calculation schema for PO: IMG > Material Management > Purchasing > Conditions > Define Price Determination Process > Define Calculation Schema
- Check entries of condition tables: transaction MEK2 > type in condition type (e. g. NAVS) > choose table with radio button -> type in country
Important Forms/Modules for Taxation :
- Get tax code from preceding documents:
- MEPO (“new” PO): MEPO_ITEM_FILL_MWSKZ
- SAPMM06E (“old” PO): fill routines UEBERNAHME_2_KONTRAKT for contracts, UEBERNAHME_2_ANFRAGE for RFQs, UEBERNAHME_INFOSATZ for info records, all called from NEUE_POS_BESTELLUNG
- Get tax code with condition technique: form PREISFINDUNG calls SD-function module PRICING to determine tax code (both MEPO and SAPMM06E), moves tax code to EKPO-MWSKZ
- Calculate taxes: form KOND_TAXES prepares interface structure TAXCOM, calls function module CALCULATE_TAX_ITEM, moves tax amount to EKPO-NAVNW and condition table TKOMV
Typical problems and where to look :
- Tax code has not been determined correctly
- Check whether tax code comes from preceding document or from condition technique.
- When it has been determined by condition technique.
- Check tax code customizing with transaction FTXP.
- Check condition tables with transaction MEK2.
- Place break point in form PREISFINDUNG. Check interface structures KOMK and KOMP. Check what PRICING gives back in table TKOMV and what is written into EKPO-MWSKZ.
- Tax has not been calculated correctly: Place break point into form KOND_TAXES. Check interface structure TAXCOM (e. g.: is TAXCOM-LAND1 correct?). Check what CALCULATE_TAX_ITEM gives back in HWERT.
- Tax amount has not been written correctly into EKPO-NAVNW: Place break point into KOND_TAXES. Look what happens with HWERT which comes back from CALCULATE_TAX_ITEM.
- Tax amount has not been written correctly into tax condition:
- Check customizing of tax condition (cf. FAQ note 501054, question 4).
- Place break point into KOND_TAXES and look what happens in the first DO-ENDDO-loop with HWERT.
Special cases :
- Tax calculation with tax jurisdiction codes (US taxes) -> separate knowledge paper will be available
- Taxes in services (MM-SRV) -> separate knowledge paper will be available
- Special localization (Brazil, India)
SAP note 501054 - FAQ: Taxes in purchasing
SAP note 657146 - Enhancement for US tax calculation: Functions