Skip to content
Rechnungskit
Feature

EC Sales List (Zusammenfassende Meldung) from invoice data

Rechnungskit takes the lines that belong in the EC Sales List (Zusammenfassende Meldung, ZM) straight from the tax decision on the invoice, totals them across the whole legal entity by VAT ID and type of sale, and creates a locked import file for Mein ELSTER, the German tax portal. Reporting period, 50,000 euro limit, the L, S and D codes, source details and corrections stay linked to each other.

Why it matters

Without automation you collect EU B2B invoices from several shops and projects by hand, track the reporting type, period and 50,000 euro limit in your own spreadsheets, and condense the amounts per VAT ID and type of sale into whole euros manually. Filing, confirmation and later corrections then sit in separate places, and a missing or wrong ZM can put the VAT exemption of intra-community supplies at risk.

What belongs in the EC Sales List

The EC Sales List (Zusammenfassende Meldung, ZM) is a separate EU B2B report under § 18a UStG. It is not the same as the OSS procedure for certain cross-border B2C sales.

The ZM mainly covers:

  • L: intra-community supplies of goods under § 6a UStG,
  • D: supplies in an intra-community triangular transaction under § 25b UStG,
  • S: certain services under § 3a Abs. 2 UStG where the business recipient owes the tax in the other EU member state.

Rechnungskit does not take this classification from a freely editable report form. It is already made in the VAT matrix on the invoice line. That keeps invoice, VAT ID, date of supply, type of sale and the later report run linked to each other.

How a report run works

  1. Classify the sale. The VAT matrix detects intra-community supplies, triangular transactions and certain EU B2B services where the recipient owes the tax. Only lines relevant for the ZM are taken over.
  2. Determine the reporting period. Rechnungskit checks the 50,000 euro limit for goods and triangular transactions in the current and the four previous quarters and shows the required monthly or quarterly period.
  3. Lock the report. Amounts are totaled per VAT ID and type of sale, carried over in whole euros and archived immutably as an ELSTER-compatible CSV together with the source and the frequency decision.
  4. Document the filing. You import the file into Mein ELSTER and then mark the report as filed. The ELSTER or BZSt confirmation is archived with a checksum; errors found later start their own correction workflow.
EC Sales List · Flow
From an EU B2B invoice to the report in Mein ELSTER
Your invoice
Lintra-community supply of goods (§ 6a UStG)
Dsupply in a triangular transaction (§ 25b UStG)
Sother service where the recipient owes the tax (§ 3a Abs. 2 UStG)
Rechnungskit
  1. Set the reporting periodmonth or quarter, based on the 50,000 euro limit for L and D
  2. Total upper VAT ID and code, in whole euros
  3. LockELSTER CSV and audit CSV, archived with a SHA-256 checksum
You or your tax advisor
Import and submitthe CSV in Mein ELSTER (the German tax portal), authenticated
Upload the confirmationthe ELSTER or BZSt confirmation is archived with a checksum
ELSTER
Rechnungskit does not submit the report itself. The deadline is the 25th day after the end of the reporting period (§ 18a UStG).

Automatic frequency check instead of a calendar note

For supplies of goods and triangular transactions the calendar month is the general rule (§ 18a Abs. 1 UStG). If the sum of taxable amounts stays at no more than 50,000 euros in the current and in each of the four previous calendar quarters, you can report quarterly. If the limit is exceeded in the current quarter, Rechnungskit applies the statutory transition logic and shows the required monthly periods.

Services are generally reported quarterly. If you already have to report L or D sales monthly, the quarterly S lines appear in the last month of the quarter (§ 18a Abs. 2 UStG). A voluntary monthly S report is recorded as a documented decision of your tax advisor.

The regular filing deadline is the 25th day after the end of the reporting period. Each deadline is shown right in the ZM workspace.

ELSTER import file with a traceable source

Before locking, Rechnungskit shows two levels:

  1. the report lines totaled by VAT ID and type of sale, and
  2. the source details per invoice and correction document.

Only then is the CSV created for the EC Sales List import in Mein ELSTER. Rechnungskit uses the official record format, maps the L, S and D codes and splits files automatically when there are more than 1,500 report lines. You can also download a review CSV at the level of individual documents.

Note: Rechnungskit does not submit the report itself. You or your tax advisor import the file into Mein ELSTER, review it there and send it with authentication.

Locking, confirmation and correction

When locking, Rechnungskit archives the report data, the frequency decision and the generated import files with SHA-256 checksums. After submission you mark the run as filed and upload the ELSTER or BZSt confirmation. That keeps visible what was generated, what was submitted and what was actually confirmed.

If an error is found later, a separate correction workflow starts. § 18a Abs. 10 UStG requires the correction within one month of becoming aware of the error. Rechnungskit documents when the error was discovered, shows the deadline and creates a correction file that fully replaces changed totals and reports dropped lines with zero.

For intra-community supplies this matters most, because under § 4 Nr. 1 Buchst. b UStG a missing or wrong ZM can put the VAT exemption of the affected supply at risk.

In detail

  • Lines relevant for the ZM are created together with the invoice, from the VAT matrix instead of a freely editable form
  • Totals across the legal entity by VAT ID and code L, S or D
  • Automatic monthly or quarterly logic including the 50,000 euro limit, with the nominal deadline in the ZM workspace
  • ELSTER-compatible CSV in the official record format, split automatically from 1,500 report lines, plus a review CSV with source details per document
  • Locked report state with SHA-256 checksums
  • Separate status for export, filing and BZSt confirmation
  • Correction workflow with a documented one-month deadline
  • For small businesses under § 19 UStG (Kleinunternehmer) the ZM run is blocked

Legal basis

Frequently asked questions

Mainly intra-community supplies of goods to businesses, supplies in an intra-community triangular transaction and certain services to businesses elsewhere in the EU where the recipient owes the tax there (§ 18a Abs. 1, 2 und 6 UStG). OSS sales to consumers do not belong in the ZM.

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.

Try it with your real data in the free test mode.

Connect your shop and payment provider and Rechnungskit runs alongside. Billing only starts at go-live.

Try it now
de en