DAC7 Germany: the BZSt XML format
In Germany DAC7 is implemented by the Platform Tax Transparency Act (PStTG), in force since 1 January 2023, and reports go to the Federal Central Tax Office (BZSt). The file is the common OECD/EU DPI XML — but the BZSt adds an envelope for automated delivery and a set of rules of its own. This page summarises them from the BZSt's published documents; check your file against all of them with the DAC7 XML validator.
Two ways to deliver, two file shapes
Mass-data interface (DIP).Automated delivery through the BZSt's Digitaler Posteingang. The DPI message travels inside a <dip:dip> envelope with a header naming the sender (a BZSt certificate or ELSTER account), the creation time, a unique transfer ticket ID, the target environment (TEST or PROD) and the application code DAC7. The envelope carries exactly one consignment item.
Portal upload (BOP). A signed-in, activated account in the BZSt online portal uploads one bare <dpi:DPI_OECD> file, without the DIP header. The BZSt asks that the file be schema-valid before upload.
Both shapes come from the BZSt's official dataset (amtlicher Datensatz v1.2), which ships the DIP schemas, the unchanged OECD/EU DPI schema v1.0 and sample deliveries.
Identifiers the BZSt checks
Both MessageRefId and every DocRefId start with DE and the reporting year, so an ID generated for the 2025 report cannot be reused for 2026. SendingEntityIN is optional in the schema but required by the BZSt: it holds the reporting platform operator's tax number. CorrMessageRefId must not be used; corrections link records through CorrDocRefId only.
Tax numbers for German sellers
Placeholders are explicitly not allowed: no “unknown”, no “12345678910”, no 1900-01-01 birth dates. The 11-digit Steuer-IdNr goes in without spaces. A Land tax number is converted to the 13-digit nationwide format by adding the Land prefix and a 0 in fifth position — for example the North Rhine-Westphalia number 133/8150/8159 becomes 5133081508159. Reports with few tax numbers are, in the BZSt's words, under particular official scrutiny.
BZSt business rules
From chapter 4 of the Kommunikationshandbuch (version 1.8, 1 August 2026). Code 99999 covers several BZSt-specific rules.
Who is in the report
Sellers resident in Germany and in other EU member states. A seller with no link to the EU — no EU residence and no listed property in the EU — must be left out. Sole traders and e.K. are reported as individuals; jointly assessed spouses, GbRs and communities of heirs as entities. The de minimis exclusion (fewer than 30 sales and less than 2,000 EUR) applies only to the sale of goods, and per seller across all their accounts; every other activity is reportable from the first euro.
Sources: the BZSt's DPI/DAC7 pages and its handbooks (Kommunikationshandbuch v1.8; Hinweise zur Datenübermittlung und zum Meldeinhalt v1.3, 28 October 2026). For the filing date, see DAC7 deadline: 31 January.
Frequently asked questions
Can I enter DAC7 data in a form instead of uploading XML?
No. Germany only accepts the official dataset electronically — either automatically through the DIP mass-data interface or by uploading the XML in the BZSt online portal (BOP). There is no form-based entry.
Do I need the dip envelope?
Only for the automated mass-data interface (DIP). The portal upload takes the bare DPI XML file, without the DIP header. The validator accepts both and tells you which one it received.
Which TIN do I report for a German seller?
The Wirtschafts-Identifikationsnummer if one has been issued; otherwise the 11-digit Steuer-IdNr for individuals, sole traders and e.K.; otherwise, for companies and partnerships, the 13-digit nationwide Steuernummer from the local tax office — digits only, without slashes.
Can I test before filing for real?
Yes. Both the DIP interface and the portal upload have a customer test environment. Only test data may go there, and only real data may go to production. In the dip header, environment="TEST" or "PROD" says which one a delivery is meant for.
How large can a delivery be?
The BZSt recommends files of at most 50 MB for a timely response. Larger reports can be split, but the second and later parts must reference the platform operator of the first with DocTypeIndic OECD0 and the same DocRefId.
More on DAC7
DAC7 XML validator
Upload your DAC7 file and get schema and BZSt business-rule errors in plain English.
DAC7 XML validation guide
What the DPI schema checks, and the errors that make most files fail.
DAC7 deadline: 31 January
When the report is due, when you can first file it, and what to prepare in January.
Validate the TINs and VAT numbers inside your report
The validator checks VAT number formats offline. A free TaxID account checks each seller's VAT number live against VIES and national registries — 100 validations a month, by API or CSV upload, no credit card.
Create a free accountDAC7 report generator
Coming soonUpload a CSV of your sellers and get a schema-valid DAC7 XML for the BZSt (and other EU authorities). Not available yet — join the waitlist and we will email you when it is. Joining is free and commits you to nothing.
TaxID is not a tax adviser. These pages explain the published technical rules; whether and what you must report depends on your platform and is a question for your adviser or the tax authority.