Check an XRechnung: a pre-check with plain-language messages
Drop a file: the pre-check recalculates the totals and lists every broken rule with its identifier and field. The sample above contains two deliberate errors.
Pre-check against EN 16931 and XRechnung
2 errors, 0 notes
Does not replace the official KoSIT validator, but finds the most common errors at once.
| Rules checked | 84 |
| Notes | 0 |
| Format | XRechnung |
| E-invoice under the VAT Act | Yes |
Example with made-up data
| Level | Rule | Field | Finding |
|---|---|---|---|
| Error | BR-CO-16 | BT-115 | BT-112 − BT-113 + BT-114 gives 1323.38, the amount due (BT-115) is 1333.38. |
| Error | BR-DE-15 | BT-10 | The buyer reference (BT-10) is missing; for public bodies this is the Leitweg-ID. |
Seller
Muster Webdesign GmbH
Beispielweg 12
10115 Berlin
- VAT ID:
- DE123456789
- Tax number:
- 30/123/45678
- Contact:
- Buchhaltung · +49 30 0000000 · rechnung@muster-webdesign.example
- Electronic address:
- rechnung@muster-webdesign.example (EM)
Buyer
Beispiel Handel KG
Musterstraße 5
50667 Köln
- VAT ID:
- DE987654321
- Electronic address:
- eingang@beispiel-handel.example (EM)
Invoice RE-2026-0415
- Number
- RE-2026-0415
- Date
- 25/10/2026
- Delivery date
- 20/10/2026
- Due
- 08/11/2026
| No. | Description | Qty | Price | VAT | Net |
|---|---|---|---|---|---|
| 1 | Home page design | 12 hour | €85.00 | 19% | €1,020.00 |
| 2 | Hosting October 2026 | 1 month | €29.90 | 19% | €29.90 |
| 3 | Accessibility handbook | 2 piece | €34.58 | 7% | €69.16 |
| Sum of lines | €1,119.06 |
| Total excl. VAT | €1,119.06 |
| VAT 19% | €199.48 |
| VAT 7% | €4.84 |
| Total incl. VAT | €1,323.38 |
| Amount due | €1,333.38 |
Payment: SEPA credit transfer
Account DE02120300000000202051 · Account holder Muster Webdesign GmbH
Terms: Payable within 14 days without deduction.
Technical details
- Syntax
- UBL 2.1
- Standard
- XRechnung 3.0
- Profile
- XRECHNUNG
- Specification (BT-24)
- urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0
- Process (BT-23)
- urn:fdc:peppol.eu:2017:poacc:billing:01:1.0
Prepared by Radif Partners · Method · VAT Act, ministry letters and XRechnung 3.0.2 checked on 25 October 2026
The pre-check on this page reads an XRechnung or ZUGFeRD file in your browser and tests it against the most important business rules: the mandatory fields of the European standard EN 16931 (rules BR-01 to BR-27), the calculation rules BR-CO for totals and VAT, the VAT category rules such as BR-S, BR-E and BR-AE, the German extra rules BR-DE of XRechnung 3.0.2, and the check digits of a Leitweg-ID. Each message names the rule, the field concerned (BT or BG) and a plain explanation. Only the validator of the German Coordination Office for IT Standards (KoSIT), a Java program without a web interface, runs the complete official set of XML schema and Schematron rules. We compared our test invoices against that validator in its XRechnung 3.0.2 configuration, and it accepted every file we generated. In daily use: if the pre-check reports no error, the invoice is almost always fine; if it reports one, you know which field to fix.
What the pre-check covers
The check runs through the invoice in fixed steps. First the mandatory details: invoice number, date, invoice type, currency, names and addresses of both parties, at least one line. Then the arithmetic: each line total must equal quantity times price, the sum of lines must match field BT-106, and the VAT per rate must match the VAT amount. Then come the VAT category rules and finally, for an XRechnung, the national rules.
| Rule group | Example | What is tested |
|---|---|---|
| BR-01 to BR-27 | BR-02 | Mandatory fields of the standard, here invoice number BT-1 |
| BR-CO | BR-CO-10 | Sum of lines equals field BT-106 |
| BR-S, BR-E, BR-AE | BR-AE-02 | Reverse charge: buyer VAT ID present |
| BR-DE | BR-DE-15 | Buyer reference BT-10 in an XRechnung |
| PEPPOL R010/R020 | R020 | Electronic address of buyer and seller |
| Leitweg-ID | Check digits | Modulo 97-10 over coarse and fine address |
The sample that loads first is an XRechnung missing two things: the buyer reference and a consistent amount due. The table under the card shows both errors with rule and field. Pick another sample and the messages disappear.
Pre-check versus the official validator
The KoSIT validation software is the reference tool. It first tests a file against the XML schema, that is structure and data types, and then against the Schematron rules of XRechnung. The output is a report recommending to accept or reject the file. It runs with Java on your own machine and is aimed at developers and invoice receipt offices.
Our pre-check reproduces the part of the rules that helps people without programming skills most, and explains every message in German and English. To make sure it calculates correctly we ran it over the sample files of the KoSIT test suite: every valid file passes without error. The invoices produced by this site’s creator were accepted by the KoSIT validator in its current configuration.
Which errors really have consequences
Not every message weighs the same. The Finance Ministry letter of 15 October 2025 distinguishes three cases. If the file is so broken it cannot be read, there is no e-invoice at all. If it breaks a business rule on a mandatory detail under section 14(4) UStG, such as a wrong VAT amount, the invoice is not proper. If it breaks a rule with no tax relevance, such as a missing buyer reference, it stays fine for VAT purposes even if a portal rejects it.
For VAT purposes the file is
For VAT purposes the file is
Proper
| Paragraph in the ministry letter | Rn. 35a |
| Correct the invoice | No |
| Keep the validation report | Recommended |
How to read a message
Each row of the results table has four columns. The level says whether it is an error or a note. The rule gives the identifier you can look up in the specification. The field names the business term, for example BT-10 for the buyer reference or BT-115 for the amount due. The finding explains the breach in one sentence and, for lines, gives the line number. With these details you can find the spot in your invoicing software or tell the sender exactly what to change.
If the invoice goes to a public body, set the recipient question to “Yes”. The pre-check then also tests whether field BT-10 holds a valid Leitweg-ID. You can check the check digits alone with the Leitweg-ID checker.
Fixing errors
If the invoice is yours, correct the detail in your software and generate the file again; editing XML by hand is error-prone. Without software of your own, rewrite the invoice in the invoice creator, where the download stays locked while any rule is broken. If the invoice comes from a supplier and the error concerns a mandatory detail, ask for a corrected invoice before you deduct input VAT. What each mandatory field means is explained on EN 16931.