Markets
Invoice rules are set per jurisdiction, so “does Stampbench work for me?” has a different answer depending on where you bill. This is the whole matrix, gaps included.
Every market gets the 40 EN 16931 core rules, both XML syntaxes, repair and creation, because those are properties of the engine rather than of a country. What differs is whether a national customisation exists on top — today exactly one does.
| Capability | UK40 rules | US40 rules | EU40 rules | Germany56 rules |
|---|---|---|---|---|
| Invoice validation40 EN 16931 core rules, including the full BR-S/E/AE/Z/G/O VAT category families. Every violation carries the rule id, the business term and the line it failed on. | ✓Available | ✓Available | ✓Available | ✓Available |
| Reads both XML syntaxesUBL 2.1 and UN/CEFACT CII (the syntax ZUGFeRD and Factur-X carry), auto-detected from the document. | ✓Available | ✓Available | ✓Available | ✓Available |
| Deterministic repairTotals and VAT amounts that disagree with the figures they are computed from have exactly one right answer, so Stampbench corrects them in your file. Anything it cannot derive is handed back to a person. | ✓Available | ✓Available | ✓Available | ✓Available |
| Invoice creation from JSONSend lines with quantities, prices and VAT categories; Stampbench computes the totals and the VAT breakdown, then emits UBL 2.1. | ✓Available | ✓Available | ✓Available | ✓Available |
| German XRechnung profileA further 16 BR-DE rules on top of the European core — the Leitweg-ID, buyer reference and contact requirements German public buyers enforce. | ~In a specific caseAvailable when you invoice a German buyer — switch the market to Germany and the same document is checked against 56 rules instead of 40. | ~In a specific caseAvailable when you invoice a German buyer — switch the market to Germany for the additional 16 German rules. | ✓Available | ✓Available |
| CLI, hosted API and CIThe same engine as an npm library, a CLI, a hosted REST API and a GitHub Action that annotates the failing line in a pull request. | ✓Available | ✓Available | ✓Available | ✓Available |
| A domestic ruleset for this countryA national customisation of EN 16931 (a CIUS) with its own rules, on top of the European core. | —Not implementedThere is no UK ruleset in the engine. If a UK customisation of EN 16931 is published, the ruleset registry is the extension point it would be added to — but nothing is implemented today. | —Not implementedNo US ruleset, and no sales-tax determination: Stampbench checks that the tax figures in a document are consistent, not which rate should have been applied. | ~In a specific caseGermany (XRechnung 3.0) is the one national CIUS implemented today. France, Italy and the rest are validated against the European core only — Factur-X profiles, FatturaPA and Peppol BIS rules are not implemented. | ✓Available |
| Deciding which tax rate to chargeStampbench checks that the tax figures in a document are internally consistent and correctly declared. It does not decide which rate applies to a transaction. | —Not implemented | —Not implemented | —Not implemented | —Not implemented |
| Sending invoices over a networkTransmission through Peppol or a national exchange. Stampbench validates and produces documents; delivering them is someone else’s job today. | —Not implemented | —Not implemented | —Not implemented | —Not implemented |
Pick a market
Why the empty cells are on this page
A compliance tool that overstates its coverage is worse than no tool at all: it turns “invalid” into “quietly wrong”. The same rule applies to markets as to invoice data — we publish what we have not implemented for the same reason we publish the official test documents where we disagree with the reference validator. See the test evidence.