Sum of line net amounts is 950.00 but BT-106 states 940.00.
European e-invoicing validationfor your software.
Validate UBL and CII invoices against supported EN 16931-1:2017 and XRechnung 3.0 rules. Return structured diagnostics with rule IDs and source locations inside the workflow your product already uses.
Invoice line total mismatch
The stated line total must equal the sum of the invoice line net amounts.
- Expected
- 950.00 EUR
- Received
- 940.00 EUR
line 40 · BT-106 / BT-131
- Specification
- EN 16931-1:2017
- German profile
- XRechnung 3.0
- Syntaxes
- UBL 2.1 + CII
- Runtime
- Pure TypeScript
Evidence with its scope attached.
These figures describe the current engine and test corpus. They do not claim complete KoSIT parity or replace an official recipient check.
| Evidence | UBL | CII | Result | Scope note |
|---|---|---|---|---|
| Corpus documents exercised | 45 | 41 | 86 total | Official XRechnung corpus |
| Corpus crashes | 0 | 0 | 0 | Parser stability only |
| European core rules | 40 | 40 | 40 | EN 16931-1:2017 subset |
| German additions | 16 | 16 | 16 | BR-DE profile rules |
The engine goes where the invoice already is.
Use the library inside a browser worker, server process or CI pipeline. Invoice bytes remain inside the execution context your team controls.
import { validateXml } from
'@stampbench/core';
const result = validateXml(xml, {
profile: 'xrechnung'
});
console.log(result.valid);
console.log(result.violations);Invoice XML
UBL or CII
@stampbench/core
Parse and validate
Your execution context
Browser · Worker · CI
ValidationResult
Structured findings
Change the XML. Run the actual rules.
This preview calls the same validateXml and locateViolations functions used by the full playground.
Validation runs in this browser. The XML is not uploaded.
- Profile
- xrechnung
- Rules
- 56
- Syntax
- UBL
- Ruleset
- 2026-08.2
Total without VAT (BT-109) should be 940.00 (BT-106 − BT-107 + BT-108) but is 950.00.
Buyer electronic address (BT-49) is missing — Peppol delivery and many workflow systems need it.
What exists today.
A technical inventory written for architecture review, not a feature-card wall.
- Syntax parsing
- UBL 2.1 and UN/CEFACT CII are auto-detected from the XML document.
- Semantic validation
- 40 EN 16931 core rules or 56 rules with the German profile.
- Source locations
- Each finding can carry a line, column, XML path and stated location precision.
- Deterministic repair
- Arithmetic errors with one derivable answer can be repaired without inventing business data.
- UBL generation
- Structured invoice data can be computed and emitted as XRechnung 3.0 UBL.
- CLI and CI
- The same TypeScript engine can run in a process, test pipeline or browser worker.
- Integration surfaces
- Use the MIT library, command-line tool or browser worker inside an existing product workflow.
- Ruleset versioning
- Every validation result identifies the ruleset version and number of rules executed.
Put the validator inside one real workflow.
A fixed-scope engagement for software teams evaluating Stampbench against their own invoice path. The initial £3,000 price is being tested with early pilot customers.
Discuss a pilot- 01
One staging workflow
Integrate the current validator into one defined invoice path in your product.
- 02
Representative documents
Exercise the integration against an agreed set of UBL or CII invoices from your workflow.
- 03
Structured diagnostics
Return supported rule IDs, business terms and source locations in a form your product can use.
- 04
Coverage handover
Document the implemented boundary, acceptance results and anything outside the supported ruleset.
The pilot covers one product and one integration path. It is engineering work and validation tooling, not certification, recipient approval or legal advice. Any continuing support is scoped separately after the pilot.
Precise about the boundary.
The current engine targets EN 16931-1:2017 and XRechnung 3.0. A new 2026 edition of the European standard is entering migration, so support is described by exact ruleset rather than a timeless claim of full compliance.
Germany’s B2B e-invoicing transition uses different deadlines depending on turnover and transmission method. Stampbench validates invoice structure; it does not decide tax treatment or replace current authority guidance.
Run the document