The General Ledger (GL) account is a very important element of master data in SAP. It has many configuration parameters that control system behaviour when a particular GL account is in use, either during document entry or reporting.
One of these configuration elements is the Tax category. Let’s discuss this element in detail.
Tax category on the GL account controls the relevance of GL account to tax reporting. Under tax reporting I mean Value Added Tax, which may have different names in different countries. For example, this is GST in Singapore and Australia. I will use the word “tax” in this article only in this generic meaning of it.
When you enter the document in SAP, it is tax category that controls the existence of a Tax Code field on the document entry screen. If the GL account has no tax category, i.e. the configuration field is blank, then you will not have the document field available. Or, if you use an Enjoy-style transaction with the table view and try to put tax code in the line item with such a GL account, you will get a warning message saying that GL account is irrelevant to tax code and the entry will be ignored.
However, if tax category is populated, you will be able to see the field on the screen. Moreover, this will be a mandatory field, unless the checkbox “posting without tax allowed” is ticked in the GL account settings.
The value you can enter in the Tax Code field depends on the Tax Category specified for the GL account. Let’s check what the options are:
I will refer to accounts with categories “<” and “>” as “Tax Accounts”. You can get more details on “+B” and “–B” tax categories in the free e-book “FREQUENTLY ASKED QUESTIONS ON SAP FINANCE“.
Usually, tax category is blank on GL accounts for Assets, salary expenses, bank or retained earnings. They are not really relevant to tax, are they? You usually assign tax category “+” to a taxable revenue GL account and tax category “-” to a taxable expenses GL account.
When tax code is entered in the GL account line item, and tax amount for that tax code is not nil, SAP will automatically generate additional line items in the document. These items usually contain GL accounts with “<” or “>” tax categories as configured in the tax code. You usually don’t post to tax accounts directly, although there may be special cases.
Once the document is entered with a tax code, the system stores tax data for the document. Of course, some of this data is stored in the main Finance table BSEG. But a more important table in this case is BSET. This is the table where all the tax information for each document is stored.
Table BSET contains summarized information for each document broken down by tax code. There is information about the tax code, tax amount, tax base and even condition record from within the tax procedure settings. There may be no tax line items in the documents, but it still records in BSET. This is the case for zero-rated tax codes.
Table BSET does not have information on the “source” line items of the initial document where tax code is used. If there are several “expenses” line items with the same tax code in the document, table BSET will contain summarized information only. If you also take into account that there is one auto-generated line item per tax code in the document, you understand that from the moment of document saving there is no easy way to break down tax information by GL account details like account number, Cost Centre and so on. The way you can do this in New GL is to split tax GL (i.e. GL account with “<” or “>” tax category) in the document. But this will be information from the NewGL level, not from the tax table.
You can check details stored in table BSET by going into the document and clicking the “Taxes” button on the panel. A pop up window contains the tax-related document information, extracted from table BSET.
Further, BSET is the most important table for tax return. Tax return usually is generated by a program RFUMSV00, which can be modified in some countries to account for local specifics. This program may be called by different transaction codes, of which the most common one is F.12. This program extracts BSET information, enriches it with some external data, like vendor address for example, and then groups information to be represented in the tax return view. Of course, there is a lot of additional logic in the program, but it deserves a separate discussion.
When the document is processed by program RFUMSV00 in “Update mode”, the same tax return program updates BSET records with the date and time stamp. This prevents the same document from appearing in different tax returns more than once.
The same program RFUMSV00 can generate a batch input session that transfers amounts from the tax return from tax accounts (with categories “<” and “>”) to a tax reconciliation account – to be paid later to tax authorities.
If there is no tax category in the GL account details, the system will not ask for tax code for line items posted on this account. The BSET table will not be populated for the document. The document display will not contain the “Taxes” button. The document will not show in the Tax Return output. Very simple logic: no tax code – no tax return.
You need to define tax category for the GL account at the time you create it. This is because there are many dependencies around: tax code configuration, automatic postings, variants and so on.
But life is life. Business requirements change with time, and it becomes necessary to change the GL account tax category.
Changing the tax category for the GL account is a possible though often a painful operation.
In this case, first think if there is an alternative way. Would creating a new GL account with a similar name and number solve the issue? If yes, then go ahead and create the account.
If changing the tax category is still the only possible way, you will very likely need to bring the account balance to zero before making the GL account configuration change.
Of course, remember that changing the tax category for the GL account only affects the documents posted after the change. It will not update the existing documents retroactively. There is no way for doing this. Remember it before agreeing to the tax category change.
Do you have more questions for SAP Expert in regards to tax settings of GL account? Ask them directly or in comments to this article.
Thanks
You are welcome!
Hi Dmity,
Very useful article, thanks. I have a question with regard to tax category for OUTPUT and INPUT GL master. Specially for scenario of reverse charge is it correct to use the tax category * for OUTPUT GL master.
Thanks for the comment! Reverse charge tax codes usually use 2 different GLs, one with <, another with > category.
Thanks for the reply Dmitry,
I have the same config for my reverse charge tax code, I am facing an issue here. When posting document with reverse charge tax code system is issuing error Message No. FS215 Only output tax is allowed for account 175000 1000, RX is not allowed.
Appreciate your comments to resolve this.
Please check that tax code has EU Category in the Properties section. I don’t remember exactly, but it’s very likely to be 8 or 9.
Thanks a lot Dmitry,
Actually the scenario is not for EU countries, i used the code B and it helped.
What do you mean by defining the tax category in Balance sheet accounts. The tax category mainly should be assigned with Income & expense GL accounts.
That is not exactly correct. As a minimum, tax accounts with categories < and > are still BS accounts. You may also need to assign categories +B and -B to certain BS accounts. You can read more in the free e-book.
Ok. Thanks for sharing
Hi Dmitry Kaglik, Excellent article. Thanks for sharing!
I have a question about changing the tax category for the existing GL account. Our client is looking for posting VAT-only invoices, based on your other post, configuring the tax category to “” worked for me. But my client doesn’t want to create a new GL account instead change the tax category from ‘*’ to ‘<'.
Existing GL account configured as tax category '*', Posting without tax allowed is checked, Post automatically only not checked. The existing GL account is assigned as a tax account to input tax VST in the configuration.
Pls let me know what all the pre-requisities need to be performed to change the tax category from '*' to '<'
Hello,
GL accounts with category * are usually set up in the range of expense/revenue accounts. These are P&L accounts and cost elements.
GL accounts with category < or > are usually set up in the range of VAT accounts. These are Balance Sheet accounts without cost elements.
I would strongly advise against putting accounts with < into expense/revenue accounts ranges. I am not even sure if P&L accounts can have category < or >.
In either case, the best way is to try in test environment. You must drop account balance to zero in all currencies before changing the tax category.
Make sense, Thank you for your quick response!