- What documents can I check?
- A UBL 2.1 Invoice or CreditNote in XML that follows Peppol BIS Billing 3, one document at a time, up to 5 MiB. PDF invoices, archives and compressed files are not accepted.
- Do I need an account?
- No. The validator on this page is free to use without signing up, within anonymous rate limits. You only need an account to run the same checks through the API.
- What happens to my file?
- It is sent to the Ironfang Finance API only when you choose Validate. Anonymous invoice XML and results are processed transiently and are not stored. Content-free request and security metadata, including your IP address, may be kept for up to 90 days.
- What does a pass mean?
- The document you submitted passed the UBL 2.1 schema, EN 16931 and Peppol BIS Billing 3 checks for the ruleset release shown in the result. A pass does not certify the invoice, does not guarantee a recipient will accept it, and does not send anything over the Peppol network.
- Can I run these checks from my own software?
- Yes. The Ironfang Finance API runs the same validation and returns the findings as JSON. A free account includes 250 validations per UTC calendar month.
Technical details: rulesets, limits and XML handling
What is checked
Your document is validated against the current sendable ruleset, an exact and immutable release: the UBL 2.1 schema, the EN 16931 business rules and the Peppol BIS Billing 3 rules, in that order. Each finding carries a stable identifier, the official one where the standard supplies it and an Ironfang FW- identifier for the input and XML boundary checks. The result tells you whether the document is valid against that ruleset. It does not certify the document, does not guarantee a recipient will accept it, and does not send anything over the Peppol network.
Limits
One XML document of at most 5 MiB per request, and anonymous rate limits. Archives and compressed uploads are refused before validation. With both options on Detect, a document whose profile cannot be detected, including one with a DOCTYPE before its root element, is refused before validation as profile undetected. Once a ruleset can be selected, detected or declared, a DOCTYPE, entity declarations or references beyond XML's five predefined entities, or XInclude are reported as invalid at the XML layer; the rules are not reached.
XML handling
- UTF-8, or UTF-16 with a byte-order mark.
- A DOCTYPE, entities beyond the five predefined ones, or XInclude are refused before validation or reported invalid at the XML layer, never validated.
- At most 1,000 findings are returned; a result says when the list was shortened.
- The readable report and JSON download are unsigned and contain no invoice XML.