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.
Document entry
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:
- Tax category = “*”. In this case, any tax code will be allowed.
- Tax category = “+”. In this case, only tax codes with “Output Tax” category will be allowed.
- Tax category = “-“. In this case, only tax codes with “Input Tax” category will be allowed.
- Tax category = “+B”. In this case, only tax codes with “Output Tax” category will be allowed, and also the system will try to process the document as “Down payment” and create additional lines in the document, if several more conditions are met. This tax category is usually assigned to a customer reconciliation account when you need special treatment of down payments.
- Tax category = “-B”. In this case, only tax codes with “Input Tax” category will be allowed, and also the system will try to process the document as “Down payment” and create additional lines in the document, if several more conditions are met. This tax category is usually assigned to a vendor reconciliation account when you need special treatment of down payments.
- Tax category = “>”. This is the GL account for output tax. In this case, only tax codes with “Output Tax” category will be allowed, but you usually don’t post to this account directly.
- Tax category = “<“.This is the GL account for input tax. In this case, only tax codes with “Input Tax” category will be allowed, but you usually don’t post to this account directly.
- Tax category = tax code. In this case, only the tax code entered in the GL master record will be allowed in the document posting.
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.
Reporting
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.
Changing tax category
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.