Validate and explain UBL invoice errors
Paste a UBL Invoice or CreditNote XML, or upload a .xml file. Every issue is shown with a plain-English explanation, likely cause and suggested fix.
Paste or load UBL XML
Related tools
UBL Viewer
Render a UBL XML invoice as a readable invoice summary.
Embedded PDF checker
Check whether the invoice has a valid embedded PDF attachment.
UBL totals checker
Verify line, tax and payable totals against LegalMonetaryTotal.
UBL VAT checker
Compare declared and calculated VAT per category.
UBL field explainer
Search UBL fields and read what each XML path means.
Peppol BIS Billing checker
Check common Peppol BIS Billing 3.0 invoice issues.
Frequently asked questions
›Which UBL versions and profiles do you support?
All of them. The validator auto-detects the profile from cbc:CustomizationID, cbc:ProfileID and cbc:UBLVersionID. We recognise Peppol BIS Billing 3.0, NLCIUS 1.0, XRechnung, EN 16931 (bare), SI-UBL 1.x/2.0 (legacy), OIOUBL and plain OASIS UBL 2.0–2.4. Generic UBL structural checks always run; profile-specific rules (Peppol EndpointID, NLCIUS EUR-only / KvK 0106) are layered on top when applicable.
›Does this validator certify my invoice for Peppol?
No. This tool performs browser-based structural and semantic checks and explains issues in plain English. It is not a replacement for official Peppol validation or access-point certification.
›Which checks are included?
Well-formed XML, root element (Invoice or CreditNote), required fields (ID, IssueDate, supplier, customer, currency), invoice lines, tax totals, monetary totals, currency consistency, plus profile-specific rules when the document declares a known CustomizationID.
›Are my invoices uploaded?
No. Parsing and validation happen entirely in your browser. The XML never leaves the page.