DAC7 XML validator
Check a DAC7 report before you file it. Upload the XML your platform exports and see, in plain English, every place it breaks the official OECD/EU DPI schema or the BZSt's business rules — with line numbers and the seller each problem belongs to.
Your file is sent over HTTPS, checked in memory on our server and discarded as soon as the result is returned. We do not store it, log its contents or use it for anything else. No account needed. VAT numbers are checked offline for format and check digit — nothing is sent to VIES.
What it checks
- Schema.Every element, order, code list and data type in the OECD/EU DPI XML Schema v1.0 — and, for mass-data deliveries, the BZSt's DIP envelope around it.
- Dates. ReportingPeriod must be 31 December of a year that has started; the timestamp must not be in the future; birth dates between 1900 and today, and no 1900-01-01 placeholders.
- References. Unique DocRefIds, CorrDocRefId exactly where a correction or deletion needs one, no new and corrected records mixed in one message, and the BZSt formats for MessageRefId and DocRefId.
- Tax identifiers.German TINs (11-digit Steuer-IdNr with its check digit, or the 13-digit Steuernummer), placeholders such as “unknown”, missing issuedBy, and the format of every VAT number — the same offline check as our VAT number checker.
- Amounts. Negative figures, fees higher than the consideration, paid quarters with zero activities, rented days above 366, and goods sellers below the de minimis threshold (fewer than 30 sales and under 2,000 EUR) who should not be in the report.
The rules come from the BZSt's Kommunikationshandbuch and its notes on data transmission; each finding shows the BZSt error code it would trigger, so you can look it up. The schemas are the ones in the official dataset. For what the errors mean and how to fix the common ones, see the DAC7 XML validation guide.
Frequently asked questions
Is my file stored or shared?
No. The file is sent over HTTPS, validated in memory and discarded as soon as the result is returned. We do not write it to disk, keep it in a database or log its contents. Nothing is sent to VIES or to any tax authority.
Which schema does the validator use?
The OECD/EU DPI XML Schema v1.0, exactly as shipped in the BZSt's official dataset (amtlicher Datensatz v1.2), together with the BZSt's DIP envelope schema. The same DPI schema is used by every EU member state for DAC7.
Does a clean result mean the BZSt will accept my report?
It means the file passes the official schema and the BZSt business rules that can be checked from the file alone. Some rules need the BZSt's own records — for example whether a CorrDocRefId points to a record it has already accepted — and only the BZSt can check those. Its customer test environment is the final check before a production filing.
Can I validate files for countries other than Germany?
Yes. Any DAC7 file in the OECD/EU DPI format is checked against the schema and the generic rules (dates, references, amounts, VAT formats). The extra German rules — MessageRefId and DocRefId format, TIN format, forbidden characters — only apply when the file is addressed to Germany.
Is there a size limit?
Files up to 4 MB, which is several thousand sellers. The BZSt itself recommends deliveries of at most 50 MB; for larger reports, validate a split file or contact us.
More on DAC7
DAC7 XML validation guide
What the DPI schema checks, and the errors that make most files fail.
DAC7 Germany: the BZSt format
DIP envelope or portal upload, ID formats, TINs and the rules the BZSt adds to the schema.
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.