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.
- Categoryfrom the product
- Delivery countryfrom the order
- Cell in the matrixrates from the EU database TEDB, updated monthly
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:
- the shop category (Shopify taxonomy),
- otherwise the tax rate at which the product was last sold to German customers (7 % → food, 19 % → standard),
- 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.
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.
- RechnungskitRecognizes Biofrom the shop tag or as a standalone word in the product name
- YouChoose the automationalso assign future products with Bio in name or tag?
- RechnungskitCreates the tagwith its note text, and assigns it to the listed products
- YouConfirm the control numbersuggested from your legal notice
Confirming in a short dialog
- 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.
- 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.
- For organic products, the organic control number follows as a second step (see below).
- 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 |
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.