Skip to content
Rechnungskit

Discounts on invoices

Updated

Discounts appear on the invoice in a way that lets you follow, for every tax rate, how they reduce the net amount and the VAT. This page shows what a discount looks like on the invoice, why it has to apply per tax rate and how discounts from Shopify, WooCommerce, Stripe Billing and Shopware come in.

How a discount appears on the invoice

On the invoice, discounts from shops appear at line level. For a discounted line, the column "Total net" shows three rows:

  1. the undiscounted line amount (quantity times unit price),
  2. below it a separate row "Discount" with the deduction,
  3. below that the reduced net amount.

This way the invoice adds up at a glance in the amount column: quantity times unit price minus discount equals net amount. If the discount is a clean percentage, it is shown too, as in "Discount 5 %".

Example · one line with a 5 % discount
The amount column does the discount maths for you
2 × storage shelf at €189.00Total net
Quantity times unit price€378.00
Discount 5 %−€18.90
Net amount€359.10
VAT is calculated from the reduced net amount.

Why the discount has to apply per tax rate

With mixed tax rates, for example 7 % and 19 % in one order, a discount has to apply proportionally per tax rate. A single total discount that is not split would be wrong with mixed rates. That is why the per-line display is built this way on purpose.

If an order discount is not already available per line, Rechnungskit distributes it across the tax rates in proportion to the gross value of the lines. That way every tax rate group carries its correct share. The calculation runs in whole cents, and the shares add up exactly to the discount.

Worked example: an order contains coffee for €50.00 net at 7 % and a mug for €50.00 net at 19 %, plus an order discount of €10.00 (net).

Step 7 % (coffee) 19 % (mug) Total
Gross value of the lines €53.50 €59.50 €113.00
Share of the discount €4.73 €5.27 €10.00
Net amount after discount €45.27 €44.73 €90.00
VAT €3.17 €8.50 €11.67
Gross total €101.67

If the whole discount were deducted at 19 % only, the invoice would show €7.60 VAT there instead of €8.50, and €3.50 instead of €3.17 at 7 %. The VAT per rate would then be stated wrongly.

Example · €10 order discount on 7 % and 19 %
Only the split discount states the VAT per rate correctly
Discount at 19 % onlywrong
Net amount 7 %€50.00
VAT 7 %€3.50
Net amount 19 %€40.00
VAT 19 %€7.60 too little
Proportional to gross valuehow Rechnungskit does it
Net amount 7 %€45.27 €4.73 discount
VAT 7 %€3.17
Net amount 19 %€44.73 €5.27 discount
VAT 19 %€8.50
The basis is the gross value of the lines: €53.50 to €59.50. The figures are also in the table above.

What happens to a cart or order discount

A discount granted in the shop on the whole order, a discount code for example, also ends up correctly on the invoice. It is distributed proportionally across the lines. How that happens depends on the source:

Source What it delivers What appears on the invoice
Shopify distributes an order discount across the lines itself and reports the share per line Rechnungskit takes over exactly this distribution
WooCommerce reports the already discounted line amount per line the discount per line follows from the difference to the original amount
Stripe Billing delivers the already discounted amount per line the discount is included there
Shopware keeps a discount as its own discount line and splits it proportionally if there are several tax rates its own line, separated by tax rate
API a net discount per line in the field discountNetCents (in cents); the unit price stays undiscounted a discount row on the line
Manual order a discount per line and, optionally, an order discount line discount on the line, order discount as its own "Discount" row in the totals, split by gross value

For the order discount of a manual order, the invoice totals also show the net amount per tax rate. That shows you which share of the discount falls on which rate.

Arithmetically consistent

Whichever way the discount comes in, the net amount and VAT per tax rate and the gross total always fit together to the cent. They match the amount actually paid.

Where to find it in the app

Rechnungskit is not a tax advisory or law firm. This article explains general principles and does not replace advice from a tax advisor (Steuerberater, § 5 StBerG) or a lawyer (§ 3 RDG). Rechnungskit is built for businesses based in Germany and prepares documents, tax rates and bookings automatically. How your specific case is treated remains your decision, ideally together with your tax advisor or a lawyer.

de en