Working for many companies I quite often found inconsistencies in tax code customizations between systems. Meeting many FI consultants I saw different approaches in transporting tax codes between systems. Being a SAP FICO consultant for 12 years I´d like to summarize in this blog post all best practices and tips I gathered to streamline this process at my current company.
Precautions before creation of a new tax code or GL account change for existing tax code
Before creating a new tax code or changing GL account for an existing tax code in development, check if this tax code already exists in target system (production) and in which countries. The purpose of this check is to prevent unintentional change of GL account(s) assigned to the same tax code in other countries. It may happen, because GL account assignment to tax codes is country independent (check OB40 t-code). Hence creating the same input or output tax code from country A in country B and assigning new GL in country B, you will change the account in country A. However, creating input tax code in country A and output tax code in country B you can assign different GL accounts to them, because accounts will be assigned to different transaction keys (VST, MVS, etc.).
This check should be done in T007A table in the target system. Use fields KALSM – Tax Procedure and MWSKZ – Tax Code to check needed values. Tax Procedures are assigned to countries (t-code OBBG) and for example we use only Z* procedures, so populating “Z*” and “V5” values in these fields:
I can define countries where V5 tax code exists:
Then check GL account assignment with t-code FTXP.
Add tax codes to transport
In general transport of tax codes is explained in the message “Important note on transporting tax codes -> F1 Message no. F4794”. This message arises, when you open FTXP in the development system. Let´s check tables added to the transport as per instructions in this message:
At first, transport should be created. Then use SAP export option in FTXP to include tax codes in the transport in development system:
below records are included in the transport:
There are tables T007A, T007S and T007V. Let´s make sure that the selected tax codes have the transport number in table T007V:
It will allow you Import rates into target systems later.
Transport of deleted tax codes
Warning! Technically SAP allows us to delete tax codes, but this should never be done if the tax code has been used in any postings. In such cases, SAP recommends renaming the code to “DO NOT USE!” instead of deleting it.
However, if you do want to delete a tax code (Export option in FTXP doesn´t allow you to add deleted tax codes to transport) you can check SAP Note “605537 – Transporting tax codes or deleted tax codes” for how to do it. This way you can avoid having to manually delete the code in every system.
Add GL accounts to transport
Message no. F4794 says, the tax accounts for the tax codes (table T030K) are not transported. Nevertheless, you can include GL accounts for tax codes in the transport. There are two options:
- add the whole table with accounts assigned to tax codes and transaction key (like VST or MWS) in OB40 t-code. This is not very safe option to my mind. In case of data inconsistency between systems, you will overwrite correct data in production with obsolete data from development.
- manually add the accounts for the needed tax codes directly to a transport. This is the safest option and what we will do now. Open transport request in edit mode and add below line with T030K table:
Double click T030K line and add needed tax codes in the next window:
To add tax code selections double click each line and populate below table:
Double-check that GL accounts are included in the transport request. Use option check table content specified by request:
If selection parameters are correct, then selected table content is displayed:
Import rates in tax codes after transport without opening production for customization
Tax codes are created without rates when the transport is imported into quality and production systems. (The GL accounts however should be there as per our previous step.)
To update the rates for tax codes, use the Import option in FTXP t-code in the target systems:
The quality system should be set to “Changeable” before you can use it.
For the production system however, we do not need to set it to “Changeable”, because FTXP t-code is switched into “Current setting” in our S/4HANA system accordingly SAP note “110970 – Transport of tax code/system has status “not changeable”. If you customize the FTXP t-code as “Current Setting”, the tax codes can be changed and maintained directly in the production system by users with corresponding authorizations. This authorization is assigned to our Fire Fighter IDs. You can find more information about this setting in the next chapter and check it in your system.
Hence I can just login into production client with Fire Fighter ID and execute Import function in FTXP t-code:
When Import option is selected, just input the transport request number containing your tax codes and press execute:
This is the standard SAP approach. You can find more information about Import option pressing “Information” button. After execution rates are taken from T007V table records delivered by the transport:
and populated in tax codes by a background Job. This Job may be checked with t-code SM35:
This Job executes FTXP for every tax code and saves tax rate there:
Switch FTXP object into “Current setting”
FTXP t-code may be switched into “Current setting” per SAP note “110970 – Transport of tax code/system has status “not changeable”. If you customize the FTXP t-code as “Current Setting”, then tax codes can be changed and maintained directly in production by users with corresponding authorizations. Hence there is no need to open production for customizations.
Following SAP note 110970, you should add below record into table CUSAMEN:
Then you should activate “Current setting” flag in SOBJ t-code for FTXP object:
After reading of this article you will be able to transport tax codes between systems including GL accounts assigned to these tax codes and import the tax rates. You will also know how to avoid setting production to “Changeable” during tax code rates import. I hope it will make transport of tax codes easier and faster for you, reducing manual activities in every system and avoiding inconsistencies.
by Mikhail Smirnov