Validate XRechnung, ZUGFeRD and Factur-X locally in your browser
Open an XML or PDF invoice and check PDF/A, the hybrid container, XML Schema, EN 16931, XRechnung, ZUGFeRD profiles and invoice totals. Your file never leaves your device.
Drop a ZUGFeRD/Factur-X PDF or an XRechnung XML here, or click to select
.pdf or .xml — nothing is uploaded
Loads a synthetic, anonymized test invoice — not real data.
Only the embedded invoice XML will be opened. The original PDF will not be changed.
A ZUGFeRD / Factur-X PDF can only be created from CII XML. UBL cannot be embedded.
What you receive
Technical validation
- PDF/A where applicable (PDF/A-3A, PDF/A-3B, PDF/A-3U)
- PDF container and structure
- ZUGFeRD/Factur-X hybrid container
- XML security and well-formedness
- XML Schema (XSD)
- EN 16931 business rules
- XRechnung CIUS rules
- ZUGFeRD profile rules
- Invoice arithmetic (line, tax and total amounts)
Readable invoice view
- Seller and buyer
- Line items
- Taxes and totals
- Payment information
- References (order, contract, buyer reference)
- Attachments
- Raw XML
- PDF metadata
Understandable findings
- Which validation layer produced each finding
- Rule ID
- Severity (error, warning, incomplete)
- XPath or technical location
- Errors, warnings and incomplete checks are always kept separate — never merged or auto-interpreted
Local exports
- Embedded XML
- Normalized JSON
- Line-item CSV
- Validation JSON
- HTML report
- Text report
What is checked
| Layer | Applies to | What the result means |
|---|---|---|
| PDF signature and structure | PDF only | The file is a well-formed PDF the tool can parse safely. |
| PDF/A conformance | PDF only — n/a for standalone XML | The declared PDF/A level (3A, 3B or 3U) is verified in full by the local veraPDF engine, with every failed rule listed. |
| ZUGFeRD/Factur-X container | PDF only — n/a for standalone XML | The embedded-file name tree, Catalog /AF array and attachment metadata correctly reference the invoice XML. |
| XML security | XML and embedded XML | The XML is checked against known hostile patterns (external entities, DTDs, XInclude) before further parsing. |
| XML well-formedness | XML and embedded XML | The document is syntactically valid XML. |
| XML Schema (XSD) | XML and embedded XML | The document matches the CII or UBL schema for its declared type. |
| EN 16931 | XML and embedded XML | The invoice satisfies the European semantic data model's business rules. |
| XRechnung | XML and embedded XML | The invoice satisfies the German XRechnung CIUS rules on top of EN 16931. |
| ZUGFeRD profile | PDF (ZUGFeRD/Factur-X) only | The declared ZUGFeRD/Factur-X profile's own rule set is satisfied. |
| Invoice arithmetic | XML and embedded XML | Line, tax and total amounts are recomputed with exact decimals and must match the declared values. |
| PDF/XML consistency | PDF only — informational | A heuristic comparison between PDF text and XML values. This is an aid only, not a semantic or legal identity proof. |
Current validation basis
These values are read live from the installed engines and standards packs — they change automatically when a pack is updated.
- XRechnung series
- —
- XRechnung specification revision
- —
- KoSIT validator
- —
- EN 16931 / CEN rule version
- —
- ZUGFeRD / Factur-X pack
- —
- XML validation engine build
- —
- veraPDF version
- —
How it works
- Open the file locally.
- Detect format and profile.
- Run the applicable technical checks.
- Review readable invoice data and findings.
- Download reports or extracted XML.
Private by design
- Invoice bytes are read by the browser.
- They are not sent to Konvi.ch or another validation server.
- Static validation engines and standards packs are loaded from Konvi.ch.
- Document processing begins only inside the browser.
- Invoice content and validation results are not written to localStorage, sessionStorage or IndexedDB.
- Closing or reloading the tab clears the current session.
- Reports and extracted XML are generated locally when the user requests a download.
How can I verify this?
Open your browser's DevTools before loading a file. In the Network panel, only requests to konvi.ch for the page's own static application assets (scripts, engines, standards packs) appear — no request carries your invoice data, and no request goes to a third-party host. In the Application/Storage panel, localStorage, sessionStorage and IndexedDB stay empty of invoice content while you work. No document data is transmitted.
What validation statuses mean
- Valid
- Every mandatory applicable check completed successfully.
- Valid with warnings
- Mandatory checks passed, but non-blocking findings remain.
- Invalid
- Validation completed and at least one mandatory rule failed.
- Incomplete
- A required check could not run or did not finish. No complete technical verdict was issued.
- Failed
- An unexpected processing error prevented a trustworthy result.
- Cancelled
- The user stopped processing before completion.
Konvi performs technical validation against the displayed standards and rulesets. The result is not legal, tax or accounting advice and does not guarantee that an invoice will be accepted by every recipient or authority.
FAQ
Are my invoice files uploaded?
No. Everything runs locally in your browser; no invoice data is transmitted.
Which formats can I open?
Standalone XRechnung XML (CII or UBL) and ZUGFeRD/Factur-X PDF invoices with an embedded invoice XML.
Which checks are performed?
PDF/A (where applicable), the ZUGFeRD/Factur-X container, XML security and well-formedness, XML Schema, EN 16931, XRechnung, the ZUGFeRD profile, invoice arithmetic and an informational PDF/XML consistency check.
What is the difference between XRechnung, ZUGFeRD and Factur-X?
XRechnung is the German EN 16931 CIUS for invoices to public authorities. ZUGFeRD (Germany) and Factur-X (France) are hybrid PDF/XML formats sharing the same technical specification; a ZUGFeRD invoice only follows XRechnung when it declares the XRECHNUNG profile.
What does PDF/A validation mean?
The exact declared PDF/A level (3A, 3B or 3U) is validated in full by the local veraPDF engine; every failed rule is shown with its clause and context.
What does incomplete mean?
A required check could not run or did not finish, so no complete technical verdict was issued — this is different from invalid or failed.
Can I choose an older XRechnung ruleset?
Yes, when more than one standards pack is installed you can select and compare an older or newer XRechnung ruleset in the validation basis section.
Can I download the embedded XML?
Yes, from the Attachments tab and the export buttons.
Is the result legally binding?
No. Technical validation does not replace legal, tax or accounting advice.
Which browsers are supported?
Chromium, Firefox and WebKit-based browsers with WebAssembly support.
Does Konvi store my invoice?
No. Invoice content and validation results are never written to localStorage, sessionStorage or IndexedDB; closing or reloading the tab clears the session.
Can I verify the local processing myself?
Yes — use your browser's Network and Application/Storage panels; see “How can I verify this?” above.