Validate multiple E-Invoices at once — entirely in your browser
Select files, a folder or a ZIP archive. Konvi checks XRechnung, ZUGFeRD, Factur-X, CII and UBL invoices locally, detects duplicates, groups validation findings and creates batch reports without uploading your documents.
Drop ZUGFeRD/Factur-X PDFs, XRechnung XML files, or a ZIP archive here, or click to select
Up to 200 files per batch — nothing is uploaded
Loads a synthetic, anonymized sample batch (valid, invalid, exact duplicate, probable duplicate, mixed XML/PDF) — not real data.
| File | Type | Status | Errors | Warnings | Actions |
|---|
Grouped findings
What you receive
Queue and progress
- Controlled local processing, one file at a time for PDFs
- Pause and resume the whole batch
- Cancel one entry or all entries
- Retry any entry that failed or was cancelled
Duplicate detection
- Exact duplicates (identical bytes, by SHA-256) are detected and skipped automatically
- Probable business duplicates (same seller, invoice number, date, currency, total) are flagged only
- Probable duplicates are never auto-removed — they are always still fully validated
Grouped findings
- Group findings by rule
- Group findings by validation layer
- See every affected invoice per finding
- Filter results and open a detail view per file
Batch exports
- Summary CSV (safe against spreadsheet formula injection)
- Batch JSON report (never includes your original file bytes)
- Reports ZIP (per-file validation reports)
- Extracted XML ZIP (only on explicit request)
- Combined line-items CSV
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 is verified in full by the local veraPDF engine. |
| ZUGFeRD/Factur-X container | PDF only — n/a for standalone XML | The embedded invoice XML is correctly referenced from the PDF. |
| XML security | XML and embedded XML | The XML is checked against known hostile patterns before further parsing. |
| XML Schema (XSD) | XML and embedded XML | The document matches the CII or UBL schema for its declared type. |
| EN 16931 / XRechnung | XML and embedded XML | The invoice satisfies the EN 16931 business rules, and XRechnung rules where applicable. |
| Invoice arithmetic | XML and embedded XML | Line, tax and total amounts are recomputed with exact decimals. |
| ZIP safety | ZIP archives only | Every entry is checked for path traversal, absolute paths, duplicate paths, excessive entry counts, oversized entries and high compression ratios before use. |
| Operating-system metadata filtering | ZIP archives only | macOS AppleDouble (._*) files, __MACOSX/ entries and .DS_Store are recognized and ignored — never treated as invoices or failures. |
| Content-based file detection | All files | A file's real type is detected from its content signature, not its extension — a mislabeled file is reported as unrecognized rather than fed into the wrong engine. |
| Exact duplicate detection | All files | Identical file bytes (SHA-256) are detected and skipped. |
| Probable duplicate detection | XML and embedded XML | Matching business details (seller, invoice number, date, currency, total) are flagged, but the file is still fully validated. |
| Queue completion and cleanup | All files | Workers and object URLs used during processing are released once a file's validation settles or the batch is reset. |
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
- Select files, a folder or a ZIP.
- Review detected files and ignored metadata.
- Start the controlled queue.
- Filter results and grouped findings.
- Download batch reports.
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 and batch.
- 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 files. In the Network panel, only requests to konvi.ch for the page's own static application assets 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 invoices uploaded?
No. Everything runs locally in your browser tab; no invoice data is transmitted.
How many files can I process?
Up to 200 source files per batch, combined across direct file selections and ZIP archive entries.
Can I select a complete folder?
Yes — use the “Select folder” action to add every supported file within it.
Can I open a ZIP archive?
Yes. ZIP entries are security-checked (path traversal, duplicates, entry count, size, compression ratio) before use; nested archives are never auto-expanded.
Which file types are ignored?
Operating-system metadata such as macOS AppleDouble (._*) files, __MACOSX/ entries and .DS_Store are recognized and ignored, never counted as failures.
How are duplicates detected?
Exact byte-for-byte duplicates (SHA-256) are detected and skipped. Invoices that merely share business details are flagged as probable duplicates but still fully validated.
Why are PDF files processed conservatively?
At most one PDF is validated at a time because the PDF/A engine is a single shared instance — this keeps memory use predictable for large batches.
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.
Which batch exports are available?
A summary CSV, a batch JSON report, a combined line-items CSV, a ZIP of per-file reports, and (on request) a ZIP of extracted invoice XML.
Is the batch restored after reloading?
No. Batch state lives only in page memory; reloading or closing the tab clears it.
Are original invoices included in report ZIPs?
No — the batch JSON report and reports ZIP never include your original file bytes, only extracted/normalized data and findings.
Does the result guarantee legal validity?
No. Technical validation does not replace legal, tax or accounting advice.