picture of Prof. Dr. Nick Gehrke

written by

Prof. Dr. Nick Gehrke

Young businessman calculating

...but that the tax office does too. Here, once again, what we are talking about is, of course, sales tax. We will shed light on when sales tax is actually incurred and is thus to be declared accordingly... and how you can find out in SAP whether you are behind with sales tax. Because, for the tax office, that is very often no joking matter: The State needs money!

 

When is sales tax actually incurred?

Everything here is regulated by law. One could assume that the sales tax is due on one's own outgoing services when the invoice is created and sent. As a rule, however, this is not the case, as VAT is linked to the actual provision of services and not to the invoice itself:

Section 13 of the German Value-Added Tax Act:

"(1) Tax becomes chargeable
1. on the supply of goods and services when the tax is calculated according to the agreed consideration (first sentence of Section 16(1)), upon the expiry of the provisional VAT return period during which the supplies were made. […]"

This is probably the most common case encountered as standard. As a rule, all larger companies have to pay tax on their sales according to the fees agreed. VAT thus already becomes chargeable when the service itself is performed.

For smaller companies, sales tax may also be chargeable after the payment of fees. In this case:

"[...]b) when the tax is calculated according to the agreed consideration (Section 20), upon the expiry of the provisional VAT return period during which the consideration been received, [...]"

Sales tax becoming chargeable after the fees have been collected is obviously much more liquidity-friendly for your company, since the sales tax is only incurred when the money has already been received from the customer.

However, in what follows, we will stick to the case of sales tax becoming chargeable according to the fees agreed, as this is should be considered to be the usual standard case.

 

What are the consequences if sales tax is not declared in time?

We of course don't want to tempt fate by setting out the worst-case scenario but it’s always worth knowing what the risks are, so let's take a look at what actually constitutes tax evasion (according to the German Fiscal Code):

"Section 370 Tax evasion (1) A penalty of up to five years’ imprisonment or a monetary fine shall be imposed on any person who 1. furnishes the revenue authorities or other authorities with incorrect or incomplete particulars concerning matters of substantial significance for taxation, 2. fails to inform the revenue authorities of facts of substantial significance for taxation when obliged to do so, or […] and as a result understates taxes or derives unwarranted tax advantages for himself or for another person."

If you read this, the question arises as to whether or not sales taxes which are declared late may constitute an instance of tax evasion. After all, one could say that no incorrect or incomplete information has been provided, but only that it has been provided a little late. That's of course true. But unfortunately we’re still not completely in the clear, because Section 4 trips us up again:

"4. Taxes shall be deemed to have been understated in particular where they are not assessed at all, in full or in time; this shall also apply even where the tax has been assessed provisionally or assessed subject to re-examination or where a self-assessed tax return is deemed to be equal to a tax assessment subject to re-examination"

So there you have it: the late assessment of taxes already contributes to the understatement of taxes. Even if the advance return for sales tax is only a provisional tax assessment.

Now this is not something we need to get too worked up about, but it is still definitely worth making sure that services are not systematically being declared for sales taxtoo late.

As a lesser version of tax evasion, in Germany, there is also what is known as "reckless understatement of tax":

"Section 378 Reckless understatement of tax (1) Whoever as a taxpayer or a person looking after the affairs of a taxpayer recklessly commits one of the acts described in Section 370(1) shall be deemed to have committed an administrative offence. Section 370(4) to (7) shall apply accordingly."

 

How can I find out in SAP whether invoices have been issued late?

You can use SAP to find out whether you are affected by the problem of services being billed too late. To do this, simply run the following SQL query on your SAP database. Use the transaction "DBACOCKPIT - Diagnosis - SQL Editor" to do this in the usual way.

In what follows, we will check whether there were deliveries in SAP SD (LIKP table) for which there was an SD invoice (VBRK table), which contains invoice items (VBRP table) with a sales tax amount (VBRP table, MWSBP data field). In this case, the invoice must have been entered/issued at least 90 days after the entry/issue of the delivery order:

 

1 SELECT VBRP.MANDT,
VBRP.VBELN BELNR,
VBRK.ERDAT VBRK_ERDAT,
LIKP.ERDAT LIKP_ERDAT,
LIKP.VBELN LIKP_VBELN,
DAYS_BETWEEN(TO_DATE(LIKP.ERDAT),
TO_DATE(VBRK.ERDAT)) "DAYS_DIFF",
SUM(VBRP.MWSBP) AMOUNT,
STRING_AGG(VBRP.POSNR, ',' ORDER BY VBRP.POSNR) RECH_POS FROM VBRP
JOIN VBRK ON (VBRP.MANDT=VBRK.MANDT AND VBRP.VBELN=VBRK.VBELN)
JOIN LIKP ON (VBRP.MANDT=LIKP.MANDT AND VBRP.VGBEL=LIKP.VBELN) WHERE VBRP.MWSBP>0 AND DAYS_BETWEEN(TO_DATE(LIKP.ERDAT),
TO_DATE(VBRK.ERDAT))>=90
GROUP BY VBRP.MANDT,
VBRP.VBELN,
VBRK.ERDAT,
LIKP.ERDAT,
LIKP.VBELN
ORDER BY DAYS_BETWEEN(TO_DATE(LIKP.ERDAT),
TO_DATE(VBRK.ERDAT)) ASC

 

If the result of the query is an empty quantity, this means that – at least on an initial analysis – there is nothing to indicate that you have a problem of the type described.

For those who are not so experienced in dealing with SQL, let’s take a look at the individual components of the query again. For an example result and to skip the explanation, click here.

First, we consider which fields are necessary for a meaningful evaluation:

 

2 SELECT VBRP.MANDT,
VBRP.VBELN BELNR,
VBRK.ERDAT VBRK_ERDAT,
LIKP.ERDAT LIKP_ERDAT,
LIKP.VBELN LIKP_VBELN,
DAYS_BETWEEN(TO_DATE(LIKP.ERDAT),
TO_DATE(VBRK.ERDAT)) "DAYS_DIFF",
SUM(VBRP.MWSBP) AMOUNT,
STRING_AGG(VBRP.POSNR, ','
ORDER BY VBRP.POSNR) RECH_POS

 

The classic "SELECT" sets the read access to the database and describes the fields that are to be displayed in the result at the end. In this case, this includes in particular: the document number of the SD invoice (VBRP.VBELN), the entry date of the SD invoice (VBRK.ERDAT), the document date of the SD delivery order (LIKP.ERDAT), the document number of the SD delivery order (LIKP.VBELN), the difference in days between the entry date of the SD invoice and entry / issue of the SD delivery order (DATEDIFF[...]), the total amount of sales tax (SUM(VBRP.MWSBP)) and a list of all the affected SD invoice items.

The tables required for evaluation are then "linked" via table joins:

 

3 FROM VBRP
JOIN VBRK ON (VBRP.MANDT=VBRK.MANDT AND VBRP.VBELN=VBRK.VBELN)
JOIN LIKP ON (VBRP.MANDT=LIKP.MANDT AND VBRP.VGBEL=LIKP.VBELN)

 

Next, we need to define the parameters according to which the result set is to be filtered. The sales tax should of course be greater than 0 and the difference in days between the entry date of the SD invoice and the entry / issue of the SD delivery order should be greater than or equal to 90 days.

 

4 WHERE VBRP.MWSBP>0 AND DAYS_BETWEEN(TO_DATE(LIKP.ERDAT), TO_DATE(VBRK.ERDAT))>=90

 

"GROUP BY" then only groups the result set. This SQL function is usually used in combination with aggregate functions, such as "AVG, COUNT, MAX, MIN, SUM":

 

5 GROUP BY VBRP.MANDT, VBRP.VBELN, VBRK.ERDAT, LIKP.ERDAT, LIKP.VBELN

 

Finally, we sort the difference in days between the entry date of the SD invoice and the entry / issue of the SD delivery order in ascending order (ASC = ascending):

 

6 ORDER BY DAYS_BETWEEN(TO_DATE(LIKP.ERDAT), TO_DATE(VBRK.ERDAT)) ASC

 

An example of a possible result would then look like this:

 

SAP resultset for analysing late invoicing

 

Too complicated?

We have already implemented this question as an indicator in zap Audit. If you are interested in this audit question, please do not hesitate to contact us.

 

Contact 

 

Comments