Skip to content
Rechnungskit

Products, VAT categories and AI classification

Updated

This page explains how a product gets its tax rate, what the AI run decides on its own and how notes such as "Bio" (organic) get onto the invoice. It also covers vouchers and on-site courses, which follow their own tax rules.

The basic rule: every product gets a VAT category, and the category determines the tax rate per delivery country through the country matrix. So the rate never hangs directly on the product, but on category plus country.

Category × delivery country
How an invoice line gets its tax rate
Product
Category confirmedStandard rate, food, digital or one of your own
Category openRechnungskit uses the rate your shop charged
Country matrix
  1. Categoryfrom the product
  2. Delivery countryfrom the order
  3. Cell in the matrixrates from the EU database TEDB, updated monthly
Result
Rate foundThe invoice is created
Cell emptyDocument waits, task with the shop rate to take over
Shop charges differentlyNever silently with its own rate, you decide
Destination country rates only count if you pay tax in the country of destination (registered for OSS or threshold exceeded).

Categories and country matrix

The default categories are standard rate, food (reduced) and digital. You can create more.

Under Settings → VAT rates you maintain the matrix category × country. The rates come from the official EU database (TEDB) and are updated automatically every month. Manual overrides are kept.

Starting rates for all EU countries

At the start, the rates of all EU countries are set, loaded from the TEDB. This applies to every account, older ones included.

A cell stays empty only if the TEDB knows no unambiguous rate for the combination, for example reduced rates for food in some countries. You fill these cells before the first order to that country.

If you pay tax in the country of destination (registered for OSS or opted out), the Rechnungskit checkout (one-time purchase and subscription) does not even offer an EU country without a rate for the product. The matrix shows "not selectable in the checkout" on the empty cell.

When a rate is missing

If a rate is missing for a combination, Rechnungskit holds the affected invoices instead of showing the wrong tax, and creates a task for you. The task names the rate your shop charged and adds it to the matrix with one click. The waiting documents are then created.

When shop and matrix differ

If your shop charges a different rate than the matrix, Rechnungskit never silently invoices with its own rate. What happens depends on whether you have already confirmed the matrix rate:

Matrix rate What happens to the document What you do
not confirmed yet (taken over from the TEDB) The document is held. Decide under Payments: "Shop-Satz in die Matrix übernehmen" (take the shop rate into the matrix) or "Matrix-Satz bestätigen" (confirm the matrix rate). In the second case you correct the tax class in the shop.
confirmed by you The document carries the matrix rate. A task shows the shop's deviation with the number of affected documents.

What your orders need

At the top of Settings → VAT rates, Rechnungskit shows which combinations of category and delivery country your orders of the last 180 days actually need. You see where a rate is missing or differs, with your shop's rate ready to take over.

Destination country rates only count if you pay tax in the country of destination (registered for OSS or threshold exceeded).

Tax rate from the shop for unclassified products

"Tax category open" in the product list means the product has no category yet. It is still invoiced, at the tax rate your shop charged on the order line.

Rechnungskit maps that rate to the matching category (7 % → food, 19 % → standard). Your shop's tax rate is your own classification and is no longer overwritten by the standard rate. The invoice then matches the shop amount. The invoice history notes when the rate was taken from the shop.

The category still needs to be confirmed under Products (task "Steuer-Zuordnung prüfen", check tax assignment). You need it for:

  • orders without shop tax data,
  • destination country rates to other EU countries, because only the confirmed category delivers the right rate for deliveries abroad (OSS),
  • the revenue accounts in the DATEV export.

Open tasks in the product list

At the top of the product list, the box "Open tasks" bundles all open items. There is one row per topic, with a count and a direct action:

  • Set revenue recognition: red with balance sheet accounting, because there it blocks invoice creation. With an AI suggestion button.
  • Confirm an open revenue recognition detail.
  • Assign a VAT category: opens the multi-select of the affected products directly.
  • Open VAT classification.
  • Tax rate deviations.

A product can appear in several rows if it has several open items. The filter chips ("To review", "Revenue recognition"), on the other hand, count products.

The AI run

Rechnungskit classifies new products from the shop with AI support. The AI run under Products → All products makes suggestions for the VAT category, revenue recognition, consistent German names and English translations.

Where suggestions come from

Rechnungskit checks three sources in this order:

  1. the shop category (Shopify taxonomy),
  2. otherwise the tax rate at which the product was last sold to German customers (7 % → food, 19 % → standard),
  3. otherwise the background AI run.

With "Apply" you confirm all suggestions of a category at once. Product tags such as "Bio" (organic) are invoice notes, not a tax category.

What the background run applies on its own

Newly arriving products are also classified unattended in the background, so missing details do not block invoices. Confident suggestions are applied automatically, uncertain ones stay as suggestions.

Item In the background run
Revenue recognition automatic from 95 % confidence
VAT category standard rate automatic
reduced or different category (food, books, digital) stays a suggestion, you confirm with "Apply"

This way no background run can lower the tax rate of an invoice without you having seen it. If you start the AI run yourself under Products → All products, the categories are entered as usual with the AI badge.

Background run for new products
What the AI applies alone, and what you confirm
Revenue recognitionfrom 95 % confidence
Automatic
VAT category standard ratenever lowers the tax rate
Automatic
Reduced or different categoryfood, books, digital
Suggestion
Organic or Fairtrade notelegally binding, so always confirmed by you
Confirmation
An AI model in an EU data center creates the classification. It is not tax advice.

Transparency and confirmation

What happens automatically is listed, expandable, at the top of the product list under "What the AI does automatically". It also says that an AI model in an EU data center creates the classification (Art. 50 of the EU AI Act) and that it is not tax advice.

AI suggestions carry an AI badge and need your confirmation. Anything only a human can decide appears as its own row in the box "Open tasks" at the top of the product list.

Tags and invoice notes (labels)

A product tag prints a label on the invoice, in two places:

  • On the affected line a short abbreviation, for example "Bio".
  • In the footer the full note text with the label in front, such as "Bio: Mit Bio gekennzeichnete Produkte sind nach DE-ÖKO-006 zertifiziert." (Products marked Bio are certified under DE-ÖKO-006.)

The note only appears if a product labeled this way is on the invoice. Existing invoices keep their frozen note; a change only affects future invoices.

You maintain tags under Products → All products or Settings → Invoice template. You assign them one at a time or to many products at once with multi-select.

Note text per invoice language

Every tag has a note text per invoice language: German, English, French, Italian, Spanish, Dutch. The text in the language of the respective invoice is printed. If it is missing for that language, Rechnungskit falls back to the German text.

The language switch in the tag editor lets you maintain the languages one by one. "AI translation" fills a language from the German text, and certification codes stay unchanged.

Detecting certifications automatically

When importing from your shop, Rechnungskit also reads your shop's own product tags (Shopify, WooCommerce and Shopware). It also checks every product name, including products with shop tags.

If it recognizes a known certification such as organic (Bio), Fairtrade or vegan, it suggests under Products → All products (and in onboarding): "12 products carry the shop tag 'bio', create an invoice note?"

In the name, only a standalone word counts. "Bio" in "Bio Espresso" or "Bio-Kaffee" triggers the suggestion, compound words such as "Bionade" do not.

From shop tag to invoice note
An organic suggestion in four steps
  1. RechnungskitRecognizes Biofrom the shop tag or as a standalone word in the product name
  2. YouChoose the automationalso assign future products with Bio in name or tag?
  3. RechnungskitCreates the tagwith its note text, and assigns it to the listed products
  4. YouConfirm the control numbersuggested from your legal notice
No organic or Fairtrade note reaches an invoice without your confirmation. The control number step only exists for organic.

Confirming in a short dialog

  1. You decide whether future products with this label in the name or shop tag should also be assigned automatically. That is handy if products keep arriving, for example via the API on their first sale.
  2. Rechnungskit creates the tag with its note text and assigns it. The dialog lists the affected products by name, so an outlier (say, a cleaner with Bio in its name) stands out before you confirm as a group.
  3. For organic products, the organic control number follows as a second step (see below).
  4. The product list then jumps straight to the newly labeled products. You can remove the tag filter at any time through the filter chip.

You remove individual tags directly on the product afterwards. Open suggestions also appear as a task on the dashboard and disappear on their own once you confirm them.

Important: such a note is never printed on invoices automatically; you always confirm it yourself, because an organic or Fairtrade statement on the invoice is legally binding.

Switching the automation on and off

Under Products → All products → "Manage tags", every recognized tag has a toggle "Apply automatically when 'Bio' is in the product name" (with the respective tag name).

Toggle Effect
on Rechnungskit tags future products and immediately also all matching products already in your catalog.
off Only the automation ends. Products already tagged keep their tag.

The toggle only exists for recognized certifications (organic, Fairtrade, vegan). You assign your own tags by hand. Under Settings → Invoice template, the tag only shows whether the automation is active. It is switched in the catalog.

Organic: the organic control body number

For organic products, the EU organic regulation (2018/848) requires the number of your organic control body on the invoice, in the format DE-ÖKO-NNN.

You write this number directly into the organic note text, exactly as it should appear on the invoice. There is no separate field for it; the number lives only in the note text. The prefilled organic text contains a placeholder as a reminder ("DE-ÖKO-000"), which you replace with your real number.

What matters is the number of your OWN control body, which is in your legal notice (Impressum). The manufacturer's number from the product packaging does not belong here.

How Rechnungskit helps you fill it in

  • Search in your legal notice: when you confirm the organic suggestion, Rechnungskit looks for the number in your legal notice (the Impressum URL or website from the company settings) and suggests it. It is only written once you accept it.
  • No number or several found: then you enter it yourself.
  • In onboarding, Rechnungskit asks for the number right after you confirm the organic suggestion, with what it found in the legal notice to confirm or correct.
  • Placeholder left in: if DE-ÖKO-000 still remains, a task on the dashboard reminds you before it could end up on an invoice.

Vouchers

For voucher products, German VAT law distinguishes two kinds (§ 3 Abs. 13 to 15 UStG). For an overview of vouchers and store credit, see Gift vouchers and credit.

Single-purpose voucher Multi-purpose voucher
VAT arises immediately at the sale only arises on redemption; the sale is a liability
Tax rate on the product required not needed
Document at the sale normal invoice line with a tax rate purchase receipt with its own number (GS-2026-0001), without VAT
Requirement place of supply and tax rate are fixed for EVERY possible redemption none
§ 3 Abs. 13 to 15 UStG
What the sale of a voucher creates
Single-purpose vouchertaxable
Documentinvoice (RK-2026-0001)
VATimmediately, at the fixed rate on the product
Linea perfectly normal invoice line
Resulta single document
Multi-purpose vouchernot taxable
Documentpurchase receipt, own sequence (GS-2026-0001)
VATno line, not even a 0 % line, no net or gross
E-invoiceno e-invoice data
With goodsinvoice plus purchase receipt, in one email
Rechnungskit always treats Shopify gift cards as multi-purpose. Shipping costs always go on the invoice for the goods.

Single-purpose voucher

The tax rate is fixed at the sale, and VAT arises immediately. The rate is required on the product. Single-purpose is only allowed if the place of supply and tax rate are fixed for EVERY possible redemption. Example: a shop that sells only 19 % goods and delivers only within Germany.

So everything stays as usual: the voucher is taxable at the sale and a perfectly normal invoice line with a tax rate. A single document is created.

Multi-purpose voucher

VAT only arises on redemption, and the sale is a liability. Rechnungskit always treats Shopify gift cards as multi-purpose, even if the product classification is still open.

The sales receipt shows NO VAT line (not even a 0 % line) and uses no net or gross terms. It only shows the voucher amount, plus the printed mandatory note "Nicht steuerbar: Verkauf eines Mehrzweck-Gutscheins (§ 3 Abs. 15 UStG). Umsatzsteuer fällt erst bei Einlösung an." (Not taxable: sale of a multi-purpose voucher; VAT only arises on redemption.)

The reason: even a 0 % line or net/gross wording can give the misleading impression of a taxed supply. The tax authorities see an unjustified tax statement (§ 14c Abs. 2 UStG) without any special visual requirements, even in an explanatory note (Abschn. 14c.2 Abs. 1 Satz 8 und 9 UStAE).

Purchase receipt instead of invoice

Because the sale of a multi-purpose voucher is not taxable, no invoice is created for it but a purchase receipt. It carries its own number from its own sequence (GS-2026-0001 instead of RK-2026-0001), shows no VAT and contains no e-invoice data.

Both together, an invoice number and a tax statement, would legally turn the document into an invoice. Nobody wants to issue an invoice for a non-taxable transaction.

Goods and voucher in one order

If someone buys goods AND a multi-purpose voucher in the same order, they get two documents: an invoice for the goods with their tax rate and a purchase receipt for the voucher.

This is not a quirk of Rechnungskit; it follows from the matter itself. They are two different transactions, a taxable sale and a non-taxable voucher sale. The e-invoicing standard EN 16931 does not allow both in one document either.

Both documents refer to each other, go to the customer together in one email and are available for download together. Shipping costs always go on the invoice, because the goods are shipped, not the voucher.

No VAT category needed

"Balance or voucher" products need NO VAT category. The category sets tax rates for taxable sales. The sale of a multi-purpose voucher is not taxable, though, and on redemption the rates of the products actually bought apply. The single-purpose voucher uses its fixed rate from the classification.

Only the VAT supply type on the product (single-purpose or multi-purpose voucher) is decisive. A missing category does not create a review note for voucher products. If in doubt, your tax advisor helps with the classification.

Classifying many vouchers at once

In the product list's multi-select, Rechnungskit recognizes selected credit or voucher products and offers the voucher classification directly. You have two ways:

  • One choice for all: multi-purpose, or single-purpose with a fixed rate.
  • "AI suggestion per voucher": the AI suggests single-purpose or multi-purpose for each product with a reason. You check the list and apply the suggestions with one click. The AI marks uncertain cases and deliberately leaves them open.

After classification, documents whose tax determination depended on the missing classification are triggered again automatically. The suggestions are not tax advice; if in doubt, your tax advisor decides.

Fields that only appear when needed

The card "Voucher classification" only appears in the product editor if the product is relevant for vouchers:

  • already classified as single-purpose or multi-purpose,
  • a Shopify gift card,
  • the revenue recognition "Balance or voucher",
  • or a voucher supply type.

For all other products it is hidden. You turn a product into a voucher through the revenue recognition or the VAT supply type, and the card then appears.

The SaaS billing period is similarly context-dependent. It only appears for SaaS products with the sales type one-time purchase (for deferred income, pRAP, with balance sheet accounting; can also be overridden per order with the API field service_period). Subscription products do not have the field, because there each billing automatically carries its service period from the subscription plan.

On-site courses, seminars and events

In-person courses are, for example, a barista course, a workshop or a seminar where participants attend in person. You classify them like this:

Setting Value
VAT category usually the standard rate (19 %)
VAT supply type "Veranstaltung / Kurs vor Ort (Inland)" (event or on-site course, domestic)

Tax exemption only for eligible providers

A tax exemption as an educational service only applies to eligible providers:

  • public-law institutions, approved substitute schools and institutions with a certificate from the state authority (§ 4 Nr. 21 UStG),
  • courses by certain bodies such as adult education centers (Volkshochschulen) (§ 4 Nr. 22 UStG).

Leisure and hobby courses from commercial providers without such a certificate are taxable as normal. If in doubt, your tax advisor decides.

The place of supply is the venue

The place of supply is the venue (§ 3a Abs. 3 Nr. 3 and Nr. 5 UStG). If the course takes place in Germany, German VAT applies to ALL participants, foreign private and business customers included.

There is no reverse charge (not even with a foreign VAT ID) and no OSS, because the place does not depend on where the participant lives. Exception: if the event is streamed to consumers, their place of residence applies (§ 3a Abs. 3 Nr. 3 Satz 2 UStG).

If a course takes place abroad, it is taxable there and not in Germany. The automation does not cover this case. Leave the product unclassified and clear up the invoicing with your tax advisor or support.

Sources: § 3 Abs. 13 to 15 UStG, § 3a UStG, § 4 UStG, § 14c UStG, Abschn. 14c.2 UStAE

Limits, stated plainly

  • AI suggestions are suggestions; the tax responsibility stays with you or your tax advisor.
  • Prices from the shop take precedence. You make price changes in the shop, not in Rechnungskit (except for manual products).

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