This runs the pinned official validation artefacts included with the tool: the relevant schema, the EN 16931 Schematron, and the supported profile rule pack claimed through the file's specification identifier. You get the published rule id, its message, and the location where it fired. A receiving system may use a different release or add its own checks.
What runs on your file
- Syntax and profile detection
- The root element decides the syntax: a UBL Invoice or CreditNote, or a UN/CEFACT CrossIndustryInvoice. The specification identifier (BT-24) decides the rule pack: EN 16931, Peppol BIS Billing 3.0 or XRechnung 3.0. An identifier this validator does not know is checked against plain EN 16931 and the report says so.
- Schema
- Your exact bytes are validated against the vendored OASIS UBL 2.1 or UN/CEFACT CII D16B schemas. Nothing is fetched over the network, and a file that declares a document type or an entity is refused rather than parsed.
- Business rules
- The official CEN EN 16931 Schematron runs first. When the file claims Peppol BIS Billing 3.0 or XRechnung 3.0, that rule pack runs after it, over the same bytes. Every finding carries the rule id its own rule pack published.
E-invoice validator FAQ
What file can I upload?
An OASIS UBL Invoice, a UBL CreditNote, or a UN/CEFACT Cross Industry Invoice, as an .xml file. A Factur-X PDF is not read here; extract its factur-x.xml attachment and upload that.
Is my invoice stored or sent anywhere?
The browser sends the XML to FreeBillGen as a framework-managed temporary upload. The validator reads it, uses a short-lived scratch copy for the Schematron stage, and removes that scratch copy after the stage. It does not create an invoice, document, account or report row, and it does not send the file to an external validation service. The framework clears temporary uploads on its cleanup schedule.
Which rulesets do you run?
The official CEN EN 16931 validation artefacts, the Peppol BIS Billing 3.0 rules and the XRechnung 3.0 rules, each pinned at a fixed version in this application. The report names the exact version that judged your file.
Does passing here mean my invoice will be accepted?
It means your file satisfied the schema and the rules that were run. Delivery is separate: a receiving platform can add its own checks, and reaching the Peppol network or a national platform still needs a qualified provider.
My file failed. What now?
Each finding names the rule id and what it expected. Fix the flagged terms in the system that produced the file, export again, and re-run it here.