E-invoice validator for EN 16931 and XRechnung
Check UBL and CII invoice XML against fixed official EN 16931 and XRechnung rules after explicit server-processing consent.
Rules, scope and source
Checks against the official EN 16931 rules version 1.3.16 (UBL 2.1 and CII D16B), with XRechnung 3.0.2 national rules version 2.6.0 when selected. XSD structure is checked first. A pass covers these fixed technical rules; it is not certification or acceptance by a tax authority or recipient. Peppol has additional rules; the complete Peppol ruleset and transport checks are linked only. Some assertions bundled in the fixed XRechnung package carry PEPPOL identifiers; they remain part of that national package check and do not establish full Peppol validation.
Rule sources, licences, notices and service source: EN artefacts EUPL 1.2, KoSIT rules Apache 2.0, SaxonC-HE MPL 2.0. Rules are pinned; this page does not claim they are the latest required release for your recipient.
Maximum 10 MB per invoice, two concurrent workers, 20-second deadline, 15 CPU seconds per worker, 64 GiB virtual address ceiling, 1,200 MiB total service memory and at most 100 report entries. The larger supplied schema files are allowed only in the fixed official package; user schema upload limits remain 1 MB.
Recurring invoice checks
Pro US$19/month supports 25 files per batch; Team US$49/month supports 100. Existing plan limits apply; no separate invoice pricing. Batches run sequentially and can take several minutes. Compare plans.
EN 16931 guide · XRechnung guide · API, CLI and Actions documentation
UBL, CII and the profile your recipient expects
UBL 2.1 and UN/CEFACT CII D16B are different XML vocabularies for the European invoice model. UBL uses Invoice or CreditNote roots and separate aggregate/basic namespaces. CII uses CrossIndustryInvoice with trade agreement, delivery and settlement structures. A field has different element paths in the two syntaxes; translate business terms rather than renaming tags.
Select EN 16931 for the fixed European semantic checks. Select XRechnung when the recipient asks for that German profile: it adds national constraints, including electronic addresses and buyer-reference requirements. A Leitweg-ID can be the buyer reference required for a German public recipient; confirm the actual recipient identifier instead of inventing one. Neither mode sends the invoice to a portal.
Mandate dates and country scope
Snapshot checked on 2 November 2026. These dates describe selected scopes and transitions; the format accepted by a particular recipient still matters.
- EU public procurement: central receiving obligations from 18 April 2019, with a possible subcentral extension to 18 April 2020. EN 16931 itself is not a universal B2B mandate. Directive 2014/55/EU.
- Germany: federal B2G supplier obligations from 27 November 2020, subject to exceptions. Domestic B2B receipt from 1 January 2025; issuance transitions through 2027/2028 depend on turnover and exceptions. XRechnung is not the exclusive B2B format. Federal FAQ · BMF guidance.
- France: receipt for all businesses and issuance for large and intermediate businesses from 1 September 2026; issuance for small businesses and microbusinesses from 1 September 2027. Official timetable.
- Poland: KSeF issuance from 1 February 2026 for businesses above PLN 200 million 2024 sales; from 1 April 2026 for others, with a small monthly-sales transition through 2026 and exclusions. KSeF receipt from 1 February 2026. KSeF is a separate system and is not validated here. Official KSeF scope.
Ten frequent rules in our mutation test
Ranked by triggered reports in 1338 synthetic mutations of official UBL/CII examples, not by visitor errors or search volume. One mutation can trigger several rules.
- BR-S-08 — Standard VAT taxable base must match the lines (281 mutation reports)
- PEPPOL-EN16931-R008 — Empty XML elements are forbidden (111 mutation reports)
- BR-CO-10 — Line net total must equal the sum of lines (108 mutation reports)
- BR-CO-04 — Each line needs a VAT category code (77 mutation reports)
- BR-25 — Each invoice line needs an item name (72 mutation reports)
- BR-21 — Each invoice line needs an identifier (51 mutation reports)
- BR-27 — Item net price cannot be negative (51 mutation reports)
- BR-S-05 — Standard-rated lines need a positive VAT rate (39 mutation reports)
- BR-CO-15 — Gross total must equal net total plus VAT (34 mutation reports)
- BR-22 — Each invoice line needs a quantity (24 mutation reports)
From one invoice to a repeatable batch
First repair one invoice and keep its passing output as a regression example. Then sign in with Pro for up to 25 XML files per batch, or Team for up to 100. Select files in the invoice validator, choose the same fixed package and consent to server processing for each selected invoice. Checks run sequentially with a visible per-file result; a passing first file does not establish that the whole batch passes. Compare plans and limits · Run a batch.