Validate e-invoices in seconds
Free quick check in your browser — profile detection, mandatory fields, totals arithmetic, EN 16931 / XRechnung / France rules. The same engine is available as an API: validate, parse and generate — embeddable, self-hostable.
Drop your invoiceExplore the developer API
- Runs 100% in your browser — no uploads
- 86/86 official KOSIT test cases passing
- Rules for Germany & France
🔒 100% local in your browser — your invoice is never uploaded
What the quick check covers
Profile & format
Detects UBL and CII, every XRechnung version and all ZUGFeRD/Factur-X profiles — including embedded in PDF/A-3.
Mandatory fields & totals
EN 16931 core rules: required fields, VAT breakdown and the complete totals arithmetic (BR-CO).
Germany & France
German XRechnung requirements including Leitweg-ID, plus French SIREN/SIRET and VAT checks for the 2026 reform.
Supported formats & country rules
All formats, profiles and validation rules at a glance.
| Format | Detection & validation | Country rules |
|---|---|---|
| XRechnung 1.2 – 3.0 UBL & CII | ✓ full (profile, mandatory fields, totals) | DEGerman mandatory fields incl. Leitweg-ID |
| ZUGFeRD 2.x / Factur-X all profiles, PDF/A-3 & XML | ✓ full, incl. XML extraction from PDF | DEGerman mandatory fields FRSIREN/SIRET & VAT (2026 reform) |
| UBL / CII (EN 16931) | ✓ EN 16931 core rules (BR, BR-CO) | EUEU standard, country-neutral |
| Peppol BIS Billing 3.0 UBL & CII | ✓ EN 16931 rules + Peppol requirements (electronic addresses) | EUPeppol network (CIUS on EN 16931) |
| ZUGFeRD 1.0 Legacy | ◐ detection + migration notice (not an EN 16931 format) | — |
FatturaPA (IT), FacturaE (ES) and KSeF (PL) are separate national systems and currently not covered by the validator.
More than validation: the e-invoicing layer
The same engine that checks invoices here in your browser powers the developer API — one model for every format: validate, parse, generate and convert between UBL, CII and Factur-X. Embeddable, self-hosted, EU-hosted.
curl -X POST https://api.billhorse.com/v1/validate \
-H "Authorization: Bearer $KEY" \
--data-binary @rechnung.xml
"profile": "xrechnung-3.0", "valid": false,
"ruleset": "2026.07"The API is live — start free
Validate, parse, generate and convert over HTTP — the same engine as this validator, messages in three languages, self-hosted option included. Start with no credit card: 100 requests/month free.
Note: This quick check covers the key business rules but does not replace a full Schematron validation (e.g. the official KOSIT validator) or tax advice. No guarantee of completeness.