Validate an EU e-invoice (EN 16931, XRechnung; UBL, CII, ZUGFeRD/Factur-X PDF)
Send the invoice as the raw request body (Content-Type application/xml or application/pdf), or JSON {"xml": "..."} / {"base64": "<XML or PDF>"}. Detects UBL Invoice/CreditNote or UN/CEFACT CII (also the XML embedded in a ZUGFeRD/Factur-X PDF), checks the XML schema and the official CEN EN 16931 Schematron rules, plus the KoSIT XRechnung 3.0 rules when the invoice is an XRechnung (or rules=xrechnung). Returns valid true/false and every error with its official rule ID (e.g. BR-CO-10), plain-English message, XPath location, business terms and a fix hint where known. When the seller is Slovak (UBL), it adds Slovak eFaktúra field checks written from the Financial Administration's Peppol BIS transposition v1.12 (0245:DIČ endpoints, addresses, IČO, BT-33, BT-7, VATEX), as warnings with ruleset SK-FS, plus the invoice UUIDv5 cross-check in 'slovakia'. Each error has error_class 'format' (XML Schema) or 'business_rule' (Schematron), with format_error_count and business_rule_error_count; for German invoices (seller or buyer DE, XRechnung or ZUGFeRD) 'germany.de_vat_status' says how the BMF letter of 15 Oct 2026 reads the result (a business-rule error without a format error is in principle still an e-invoice for VAT). For French invoices (seller or buyer FR) 'france' checks the supplier and client SIREN the 2026 reform requires (BT-30 / BT-47 with scheme 0002), suggests the SIREN from an FR VAT number when it is missing, and lists the French items it does not check (hint only; French XP Z12-012 rules not run). Peppol BIS 3 specific rules are not checked yet. Technical check, not tax advice. Free tier shared with other endpoints, then x402 $0.03.
Request
- Base URL: https://api.wsystem.dev
- URL: https://api.wsystem.dev/einvoice/validate
- Auth: none declared
Query parameters
auto | en16931 | xrechnung
Request body
Response
Successful Response
Changes
No recorded changes to this operation across all 2 revisions of this API.