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
- 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.
- 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.
- 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.
- 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.
- Set the reporting periodmonth or quarter, based on the 50,000 euro limit for L and D
- Total upper VAT ID and code, in whole euros
- LockELSTER CSV and audit CSV, archived with a SHA-256 checksum
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:
- the report lines totaled by VAT ID and type of sale, and
- 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
- § 18a UStG (Zusammenfassende Meldung): EC Sales List. Reporting duty, reporting periods, the 50,000 euro limit, deadline, and correction within one month (para. 10).
- § 4 UStG (Steuerbefreiungen, Nr. 1 Buchst. b): Tax exemptions. A missing or wrong ZM can put the VAT exemption of the intra-community supply at risk.
- § 6a UStG (Innergemeinschaftliche Lieferung): Intra-community supply. The basis of the L entries in the ZM.
- § 25b UStG (Innergemeinschaftliche Dreiecksgeschäfte): Intra-community triangular transactions. The basis of the D entries in the ZM.
- § 3a UStG (Ort der sonstigen Leistung, Abs. 2): Place of supply of services. The basis of the S entries when the recipient in the other EU country owes the tax.