EN 16931 validator for UBL and CII
Any EN 16931 invoice in UBL 2.1 or UN/CEFACT CII, checked against the official CEN business rules 1.3.17.
10 free checks a day · €1 free with a key · then €0.02 per check
Processed on servers in Germany (Hetzner, Falkenstein). The uploaded file is checked in memory and not stored.
The verdict, profile, totals and every rule violation appear here.
PDF invoice → XRechnung or ZUGFeRD
A PDF, scan or photo of an invoice becomes a structured e-invoice in two steps: read the fields, then build and validate the XML.
Free in the playground: 10 checks a day per IP. With a key: €0.10 per document.
Step 1 sends the invoice text or image to a language model via OpenRouter. The uploaded file is not stored; the built e-invoice is kept 24 hours behind a signed link, then deleted.
The verdict, profile, totals and every rule violation appear here.
The EN 16931 rule set
EN 16931-1 is the European semantic model of an electronic invoice; national formats (XRechnung, Factur-X, Peppol BIS, FatturaPA mappings) are CIUS or extensions of it. Its business rules check mandatory fields (BR-01 …), calculations (BR-CO-10 to BR-CO-16), VAT categories (BR-S, BR-Z, BR-AE …) and code lists.
The validator runs the official rule set published by CEN/TC 434 via ConnectingEurope, release 1.3.17, for both syntaxes the standard allows: UBL 2.1 and UN/CEFACT CII D16B.
Belgium's B2B mandate uses Peppol BIS, built on EN 16931: the core rules are checked here, Peppol-specific rules are not.
Deadlines
What the law requires and when. Dates from the official sources linked under each country.
Germany
Formats: XRechnung and ZUGFeRD from 2.0.1, except the MINIMUM and BASIC WL profiles.
Source: BMF: FAQ on the mandatory e-invoice ↗Belgium
Peppol BIS is built on EN 16931: the core rules are checked here, Peppol-specific rules are not.
Source: FPS Finance: from when is e-invoicing mandatory ↗Poland
KSeF uses the national FA(3) schema, which this tool does not validate. It covers EN 16931 invoices exchanged with DE, BE and FR partners.
Source: Ministry of Finance: scope of mandatory KSeF ↗Price in plain numbers
A prepaid balance, no subscription. Charged only for a successful answer; errors are free.
A new key comes with €1 of free credit: 50 validations.
Credits never expire. No subscription.
Apple Pay, Google Pay or card on the monobank page. The key is created for you if you have none.
No key in this browser yet.
For developers
Same checks over REST and MCP. One header, JSON out.
curl https://api.finekot.com/v1/e-invoice \
-H "Authorization: Bearer fk_live_…" \
-F file=@invoice.xml
# → {"valid":false,"errors":2,"issues":[{"rule":"BR-DE-15",…}]}
# X-Cost: 0.02curl https://api.finekot.com/v1/e-invoice \
-H "Authorization: Bearer fk_live_…" \
-H "Content-Type: application/json" \
-d '{"op":"create","output":"pdf","invoice":{…}}'
# → Factur-X PDF url + validation report · X-Cost: 0.04claude mcp add --transport http finekot https://api.finekot.com/mcp --header "Authorization: Bearer fk_live_…"
Full reference: /llms.txt · /openapi.json · /.well-known/mcp.json