E-Invoice Reader & Rule Check
Open a ZUGFeRD, Factur-X, XRechnung or Peppol BIS e-invoice, read the structured data it carries, and check it against the EN 16931 rules that catch real mistakes — without the invoice leaving your computer.
Analyse your own file
Choose a Factur-X / ZUGFeRD PDF (embedded XML) and standalone CII or UBL invoice XML file
Drop it here or browse this device
Your original file is analysed in this browser and is not uploaded. This tool has no AI or server-processing step.
What happens to the file
- Default processing
- Browser-only JavaScript, PDF.js, pdf-lib and Tesseract where the task needs them
- Accepted input
- Factur-X / ZUGFeRD PDF (embedded XML) and standalone CII or UBL invoice XML
- Report contract
- File Intelligence JSON schema 1.0 plus a flattened CSV view
- Optional AI
- Not used by this tool
The published sample is a coherent Factur-X BASIC invoice: two lines totalling 150.00 net, 19% VAT of 28.50 and a gross of 178.50. Every checked rule passes. Change any amount in the file and run it again to watch the calculation rules fail and name both the stated and the computed figure.
How the result is calculated
A hybrid invoice is a PDF with the machine-readable invoice attached inside it. The browser opens the PDF with PDF.js, looks through its embedded files for the invoice XML (factur-x.xml, zugferd-invoice.xml, xrechnung.xml or any attached .xml) and parses that XML directly; a standalone .xml file is parsed as-is. Field lookups match on element local names, which is what lets one set of rules read both CII (ram:/rsm:) and UBL (cbc:/cac:) syntax. Every extracted value keeps the element path and the line number it came from, so each finding points back into your own file.
Structural rules BR-01 to BR-16 require the mandatory business terms. Calculation rules recompute the document’s own arithmetic and compare with a two-decimal tolerance: BT-106 = sum of line net amounts (BR-CO-10), BT-109 = BT-106 minus allowances plus charges (BR-CO-13), BT-110 = sum of the VAT breakdown (BR-CO-14), BT-112 = BT-109 + BT-110 (BR-CO-15), BT-115 = BT-112 minus prepaid (BR-CO-16). A rule that cannot be evaluated is reported as skipped, never as passed. When the invoice declares a CIUS, a verified subset of that layer is checked on top: 15 German BR-DE rules for XRechnung (payment instructions, buyer reference/Leitweg-ID, seller contact, postal fields, VAT rate, invoice type code, IBAN syntax) and 5 Peppol BIS rules (business process, buyer reference or order reference, both electronic addresses, specification identifier).
Supported and unsupported cases
| Input or situation | What version 1.0.0 checks | What it does not claim |
|---|---|---|
| Factur-X / ZUGFeRD PDF | Finds the invoice XML embedded in the PDF and reads it | Whether the PDF container itself conforms to PDF/A-3 |
| CII or UBL invoice XML | Syntax and profile detection, business-term extraction, rule checks | Schema (XSD) validation against the official schemas |
| Arithmetic across the document | Recomputes totals, VAT and amount due from the document’s own figures | Whether the prices or tax rates are commercially correct |
| Profile identification | Names MINIMUM, BASIC WL, BASIC, EXTENDED, XRechnung, Peppol BIS or EN 16931 | Whether a given recipient or authority accepts that profile |
| XRechnung invoices | 15 verified BR-DE rules on top of EN 16931 — the ones German authorities reject invoices for | The full XRechnung rule set, or the Leitweg-ID format (the official Schematron does not check it either) |
| Peppol BIS invoices | 5 verified rules including the buyer/order reference and both electronic addresses | Rules needing the Peppol participant registry or a code list, and the two changes that only take effect with release 3.0.21 |
What the confidence score means
Confidence describes how much of the file the published parser could inspect and how specific the evidence was. It is deliberately separate from the result score. A 95/100 confidence value does not mean “95% likely to be true,” and a high health/readiness score does not certify safety, compliance or factual correctness.
Comparison with other approaches
| Approach | Useful strength | Important limitation |
|---|---|---|
| This browser reader | Runs in the browser, so the invoice never leaves the device | Implements part of EN 16931, not the official Schematron |
| Free online validators | Complete official rule sets | Every one we checked uploads the invoice to a server |
| Accounting software | Validates inside the bookkeeping workflow | Only helps for invoices already in that system |
| Opening the XML by hand | No tool required | Unreadable in practice, and the arithmetic goes unchecked |
8/8 fixtures passed (100%)
Dataset: FH-INT-SYNTH-2026-07. Scope: CII and UBL coherent invoices, a broken line sum, a missing mandatory term, a header-only profile, a non-numeric amount, a hybrid PDF with embedded XML, and the XRechnung BR-DE layer. Fixtures contain generated data only; no visitor file or personal record is collected.
When this result can be wrong
Only part of EN 16931 is implemented: the structural rules BR-01 to BR-16 and the calculation rules BR-CO-10, -13, -14, -15, -16 and BR-CO-25. For XRechnung invoices a verified subset of the BR-DE rules is checked; the rest of that layer, a verified subset of the Peppol BIS rules is checked for Peppol invoices; the rest of both layers and every national tax rule are not. The Leitweg-ID’s format is deliberately not validated, because the published XRechnung Schematron checks only that a buyer reference is present. Rules needing a code list, registry or certificate cannot be decided from the file and are not implemented. No XSD or Schematron validation is performed. An invoice with no failures here can still be rejected by a tax authority, a customer or an access point.
Keep the original file, test the output in the receiving application and escalate high-stakes legal, financial, medical, accessibility or security decisions to a qualified reviewer.
Version and accuracy change log
| Release | Date | Calculation/coverage change | Re-test requirement |
|---|---|---|---|
| 1.0.0 | 2026-07-29 | Initial public engine, report schema, thresholds, synthetic fixtures and sample files. | All published fixtures and one browser sample per tool. |
Downloadable evidence, not a black-box verdict
After analysis, use Download JSON report for structured evidence or Download CSV report for review in a spreadsheet. Both include engine version, timestamp, score, confidence, metrics, findings, recommendations and limitations. Sensitive-data reports mask candidate values and no report includes the complete extracted document text.
Related tools and independent checks
Method or accuracy correction? Read the testing methodology and contact info@brothers.net.tr. Material scoring changes are published in the change log.