Skip to content
Rechnungskit

VAT profile, Kleinunternehmer, OSS and EC sales list

Updated

Your VAT profile controls how Rechnungskit shows tax: standard taxation or small business (Kleinunternehmer), EU sales to consumers or businesses, OSS and the EC sales list (Zusammenfassende Meldung, ZM).

This page answers which tax goes on which invoice, when the €10,000 threshold applies, which exchange rate applies to foreign currencies and when you file an EC sales list.

Standard taxation · sales abroad
Which tax goes on the invoice
Consumer in the EU
Up to €10,000 EU-wide per year, the German rate. Above it, the rate of the customer's country, reported through OSS.
ReturnOSS, above the threshold
Business in the EU
With a checked VAT ID, net without German VAT: reverse charge or intra-community supply. Without a confirmed check, treated like a consumer.
ReturnEC sales list
Customer in a third country
Goods: tax-free export. Services to businesses and digital services to consumers: not taxable in Germany.
Returnneither OSS nor EC sales list
Rechnungskit tells B2B from B2C only by the customer's VAT ID. Kleinunternehmer and special cases such as chain transactions have their own sections.

Where you set your profile

What Where
Kleinunternehmer status and your own VAT ID Settings, company details
Deliberately not using OSS in onboarding in the tax profile, as its own status
"OSS registriert" (registered for OSS) and prior sales from your previous system /oss
Country rates Settings → VAT rates

Kleinunternehmer (§ 19 UStG)

As a Kleinunternehmer (small business exempt from charging VAT), Rechnungskit issues invoices for domestic sales without VAT. The invoice carries the note on the tax exemption for small businesses (§ 19 Abs. 1 UStG, § 34a UStDV). This also applies to exports and supplies to EU business customers.

The EC sales list does not apply (§ 18a Abs. 4 UStG). The rules for incoming foreign services (§ 13b UStG) still apply (Abschn. 19.1 Abs. 1 Satz 3 UStAE). You set the status under Settings in the company details.

No § 19 note when the place of supply is abroad

The exemption only covers sales that are taxable in Germany (§ 19 Abs. 1 Satz 1 in conjunction with § 1 Abs. 1 Nr. 1 UStG). If the place of supply is abroad, Rechnungskit therefore writes no § 19 note on the invoice:

Case What the invoice shows
Service to an EU business with a checked VAT ID The customer owes the tax in their country (§ 3a Abs. 2 UStG). Note "Steuerschuldnerschaft des Leistungsempfängers" (reverse charge) (§ 14a Abs. 1 Satz 1 UStG). You still don't file an EC sales list.
Service to a business in a third country, or digital service to consumers in a third country Not taxable in Germany. The invoice shows it accordingly, without a § 19 note.
Distance sales and digital services to EU consumers below the €10,000 threshold The § 19 note stays.
the same sales above the threshold The VAT of the customer's country, which § 19 does not exempt. Rechnungskit shows it, reported through OSS.

Sources: § 19 UStG, § 34a UStDV, § 14a UStG, § 18a UStG, Abschn. 19.1 UStAE

EU sales to consumers: OSS

The €10,000 threshold

Up to €10,000 in EU-wide distance sales per year, you may invoice at German rates, as long as the threshold was exceeded neither in the previous year nor in the current year (§ 3c Abs. 4 Satz 1 UStG). Rechnungskit monitors the threshold and warns from 80 %.

Digital services to EU consumers count toward the same threshold (§ 3a Abs. 5 Satz 3 UStG).

Above it, the destination principle applies: the tax rate of the country of destination, reported through the OSS scheme (One-Stop-Shop) at the Federal Central Tax Office (BZSt).

Deadlines after you exceed it

In principle, you announce OSS participation before the start of the quarter from which it should apply (§ 18j Abs. 1 UStG).

If you exceed the threshold for the first time and register with the BZSt by the 10th of the following month, the OSS scheme already applies from the day of the first sale above the threshold (Abschn. 18j.1 Abs. 1 Satz 7 UStAE).

If you miss the deadline, you have to declare the sales up to the date the registration takes effect in each country of destination (Abschn. 3c.1 Abs. 1, example 2 UStAE).

First time over the €10,000 threshold
Register by the 10th of the following month
  1. ongoingWarning from 80 %Rechnungskit monitors the threshold
  2. day you exceed itDestination country ratedestination principle from the first sale above the threshold
  3. by the 10th of the next monthRegister with the BZStOSS then applies back to that sale
  4. deadline missedDeclare in the destination countryfor sales until the registration takes effect
After registering, you tick "OSS registriert" under /oss. Legal basis: § 18j Abs. 1 UStG, Abschn. 18j.1 and 3c.1 UStAE.

The OSS quarterly return

After registering, you tick "OSS registriert" (registered for OSS) under /oss. Rechnungskit then prepares the quarterly return, as a CSV export for the BOP import.

Deliberately not using OSS, or opting out of the threshold

  • Deliberately not using OSS: you choose this status in onboarding in the tax profile. Rechnungskit then invoices EU supplies to consumers with German VAT. Threshold monitoring still runs and speaks up before it gets tight.
  • Voluntarily opting out of the threshold: this is possible, but it applies from the start of the calendar year and binds you for at least two calendar years (§ 3c Abs. 4 Satz 2 und 3 UStG, Abschn. 3a.9a Abs. 1 UStAE).

Switching during the year

Distance sales and digital B2C services from your previous system still count toward the threshold. Enter the net totals (current year and previous year) under /oss as "Vorumsätze aus dem Altsystem" (prior sales from the previous system). They feed into the monitoring and into the tax decision of every new invoice.

SaaS and digital services

OSS is relevant for pure SaaS and software providers without shipping goods too. Electronically supplied services (software as a service, downloads, online access) to consumers in other EU countries are taxed where the customer lives (§ 3a Abs. 5 UStG).

Below the €10,000 threshold, the place of supply is Germany and you invoice at the German rate. Above it, the tax rate of the customer's country applies, reported through OSS.

An example: a SaaS subscription of €100 net to a consumer in Austria carries €19 German VAT below the threshold, and the sale goes through your German VAT return. Above the threshold it carries €20 Austrian VAT, reported in the OSS quarterly return at the BZSt.

The threshold is one shared limit for digital B2C services and physical distance sales together, not per country and not separate for goods and services. So there is no separate SaaS allowance on top of goods sales.

OSS only applies to consumers (B2C). Depending on the customer, you invoice SaaS like this:

Customer Invoice Return
Consumer in the EU, below the threshold German rate no OSS return
Consumer in the EU, above the threshold rate of the customer's country OSS
Business with a valid VAT ID in another EU country net without German VAT, note "Steuerschuldnerschaft des Leistungsempfängers" (§ 14a Abs. 1 UStG). The service is supplied where the customer is established (§ 3a Abs. 2 UStG) EC sales list (§ 18a Abs. 2 UStG), not OSS
Business in Germany normally at 19 percent (§ 12 Abs. 1 UStG) no OSS return, no EC sales list
Customer in a third country (outside the EU) not taxable in Germany, because it is supplied where the customer is established or lives (§ 3a Abs. 2 and 5 UStG), so without German VAT no EC sales list

Rechnungskit decides the case automatically based on the checked VAT ID.

Example · SaaS subscription, €100 net, consumer in Austria
The same invoice below and above the threshold
Below €10,000supplied in DE
Net€100.00
German VAT 19 %€19.00
ReturnGerman VAT return
Above €10,000supplied in AT
Net€100.00
Austrian VAT 20 %€20.00
ReturnOSS quarterly return at the BZSt
The threshold counts distance sales of goods and digital services to EU consumers together, across all EU countries.

How Rechnungskit tells B2B from B2C

Rechnungskit tells B2B from B2C only by the customer's VAT ID, not by the company name:

  • VAT ID present and confirmed by a qualified check at the BZSt: the customer counts as a business (reverse charge or intra-community supply).
  • No VAT ID, or the check does not confirm it: Rechnungskit treats the sale as B2C and shows the VAT. An unchecked case becomes a task to clear up, never a silent tax exemption.

For Stripe Billing, Rechnungskit reads the VAT ID from the Stripe customer's tax IDs. With your own API, you pass it in the field vat_id of the billing address.

Country rates, using coffee as an example

A public reference with the VAT rates on coffee in 39 European countries is at VAT on coffee in Europe. It separates EU and third countries and classifies each country: OSS, EC sales list or tax-free export.

It also explains that a destination country's national rate only applies to a German shipper if the goods are actually shipped to that country. Shipping to a third country is a tax-free export (§ 4 Nr. 1 Buchst. a, § 6 UStG). Shipping from a local warehouse abroad is a local domestic supply in the warehouse country.

Sources: § 3a UStG, § 3c UStG, § 18j UStG, § 14a UStG, § 18a UStG, § 6 UStG, Abschn. 3a.9a, 3c.1 and 18j.1 UStAE

Foreign currency: which rate applies when

Yes, Rechnungskit supports multi-currency. Invoices are created in EUR and in CHF, USD, GBP, SEK, DKK, NOK, PLN and CZK. Details are under Invoices in foreign currency and euro conversion.

What the document shows

For a foreign-currency invoice, Rechnungskit determines the EUR tax amount with the method chosen in the project. It shows it in structured form in the e-invoice (invoice currency BT-5, tax currency EUR BT-6, EUR tax amount BT-111) and freezes the rate, rate date and rate source on the document. The DATEV export contains the rate and the EUR base revenue for foreign-currency documents.

§ 14 Abs. 4 UStG does not explicitly require the EUR amount on the invoice. Rechnungskit shows it as additional, transparent information.

Which rate for what

For Rate Basis
VAT, statutory default official monthly average rate published by the Federal Ministry of Finance (BMF) for the month of supply § 16 Abs. 6 Satz 1 UStG
VAT with daily rates only with permission from your tax office § 16 Abs. 6 Satz 3 UStG
Default for new projects BMF monthly rate of the month of supply, provisionally the ECB daily rate until that is published
OSS return ECB rate of the last day of the quarter § 16 Abs. 6 Satz 4 UStG

Projects still on the earlier ECB default see a notice with a switch button under Settings → DATEV settings. Agree on the rate method with your tax advisor.

§ 16 Abs. 6 UStG
Two rates for two purposes
Invoiceper document
RateBMF monthly rate of the month of supply
ProvisionalECB daily rate, until the monthly rate is out
Thenrate, rate date and source frozen
OSS returnper quarter
RateECB rate of the last day of the quarter
Provisionalpreview while the quarter is running
Thenlock once the quarterly rate is available
Left: the default for new projects. Exchange rate changes between supply and payment do not change the frozen document.

ECB rates and rate changes

The ECB reference rates are synchronized automatically every day and kept with their history. So the right daily rate is available for older documents too. You don't have to maintain any rates.

Exchange rate changes between supply and payment are disregarded for VAT, because § 16 Abs. 6 UStG refers to the month of supply. The frozen document does not change.

OSS sales in a foreign currency

You can also invoice OSS-relevant sales (EU distance sales to consumers) in a foreign currency. For the OSS return, Rechnungskit converts them at the legally required ECB rate of the last day of the quarter (§ 16 Abs. 6 Satz 4 UStG). The rate used is documented in the locked return.

While the quarter is running, the preview shows a provisional rate. You can only lock once the final quarterly rate is available.

Other currencies

Payments in other currencies (JPY, for example) or in a currency that does not match the order create no document but a task to clear up under /payments.

Source: § 16 UStG

EU sales to businesses: VAT ID and EC sales list

Tax exemption only with a checked VAT ID

Tax exemption (intra-community supply, reverse charge) only comes with usable evidence. For the intra-community supply, the buyer's valid VAT ID is even a requirement for the exemption (§ 6a Abs. 1 Nr. 4 UStG).

Rechnungskit checks the customer's VAT ID with a qualified check at the BZSt. Only a fully confirmed check switches on the exemption automatically; everything else needs your explicit decision.

Every check response is archived unchanged and tamper-proof, until the end of the eighth following year. You find them under Settings → VAT ID checks.

The EC sales list

Rechnungskit creates the EC sales list (§ 18a UStG) under /zm:

  • Period: quarterly or monthly. From more than €50,000 in intra-community supplies of goods in the quarter, it is automatically filed monthly (§ 18a Abs. 1 UStG).
  • Format: CSV for ELSTER, with a check file and SHA-256.
  • Corrections run as a separate return.

The requirement is your own valid VAT ID (DE + 9 digits). Kleinunternehmer do not file an EC sales list (§ 18a Abs. 4 UStG).

Sources: § 6a UStG, § 18a UStG

Special cases stay out

Chain transactions, consignment stock and construction services (§ 13b) are flagged by Rechnungskit as special cases and are not processed silently through the matrix.

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