Comparison · checked 12 Nov 2026

Peppol validator: InvoiceVerify vs ecosio vs others

Six ways to check a Peppol or EN 16931 invoice, compared on what matters: cost, sign-up, which rules they run, what happens to your file, and whether you can automate it. Every fact comes from the tool's own pages, checked on 12 Nov 2026; where a source says nothing, we write “not stated”. We make InvoiceVerify, so we list where it falls short as well.

Which one to use

  • InvoiceVerify: You want to see exactly which line breaks which rule and how to fix it, read the invoice as a normal invoice, or check whether Belgian customers can receive under 0208 and 9925.
  • ecosio validator: You want the official rule artefacts for a specific Peppol BIS or national version, free and without an account. It runs on Philip Helger's validation engine.
  • Peppol Practical (phax) web service: You want to automate checks against the official artefacts and can live with a SOAP interface and a strict rate limit.
  • EU Interoperability Test Bed (ITB) eInvoice validator: You want the European Commission's own EN 16931 check, by form or API.
  • KoSIT Validator: You need to validate inside your own systems, for example for XRechnung, without sending files anywhere.
  • FNFE-MPE validator: You are preparing for the French reform and need to check complete Factur-X PDFs, not just the XML.

Side by side

Scroll sideways on a phone. “Not stated” means the official pages don't say, not that the feature is missing.

ToolCostSign-upWhat it checksYour fileErrors shownAutomation
InvoiceVerifyKalmwerk (that's us)3 validations a month free; sample files don't count. Pro (unlimited) opens soon.Not neededUBL 2.1, Peppol BIS Billing 3.0, CII, XRechnung and the XML inside Factur-X/ZUGFeRD PDFs. 153 rules re-implemented in TypeScript: 101 EN 16931, 28 Peppol, 13 XRechnung, 11 own checks.Checked in memory on our server, then discarded. We keep metadata only: date, file name, format, invoice number, error count. The UBL viewer runs entirely in your browser.Rule ID, the line in your XML, and a plain-language fix for each errorREST API and MCP server for AI agents; 100 calls a month free with an account
ecosio validatorecosioFree (“free of charge”, per the tool)Not needed (“no signup needed”)Peppol BIS 3.0, Peppol PINT, EN 16931, UBL, CII, XRechnung and many national sets, each as a versioned rule set you pick. XML schema and Schematron checks.Uploaded to ecosio. In their words: stored and processed “in a non-persistent manner for the duration of the validation only, and deleted after the result is displayed.”Error ID, element/context, XPath test and message. Line numbers: not stated.No documented public API offer found
Peppol Practical (phax) web servicePhilip Helger (personal project)“Currently provided free of charge”Not stated for the web serviceVersioned rule sets (VESIDs): Peppol BIS Billing 3.0 and other Peppol documents, EN 16931, XRechnung and national sets.Sent to the hosted service. Retention: not stated.Error ID, field, location, Schematron test and message. Line numbers: not stated.Hosted SOAP service, rate-limited to 1 request every 2 seconds per IP (admin note, 18 Nov 2025). Self-hosted REST option (phorm).
EU Interoperability Test Bed (ITB) eInvoice validatorEuropean Commission, DG DIGITPrice not stated; the form was usable without payingForm usable without logging inEN 16931 for UBL invoice, UBL credit note and CII invoice (release 1.3.17). You can add your own XSD or Schematron.Sent to the Commission's service. Retention: not stated on the form.Not stated on the form (we did not submit an invoice).REST and SOAP APIs
KoSIT ValidatorKoSIT (open source, Apache 2.0)Free software; you host and run itNone (runs on your machine)Whatever configuration you install: XRechnung (EN 16931 + XRechnung), or the separate Peppol BIS Billing configuration.Stays on your own infrastructure.XML validation report; content depends on the configuration.Command line, Java library or local HTTP daemon
FNFE-MPE validatorFNFE-MPE (French e-invoicing forum)FreeAccount requiredFactur-X (including the PDF/A-3 check), UBL, CII, CDAR and Order-X, with French BR-FR rules where they apply. Peppol BIS coverage: not stated.Files and reports kept in your test history for a rolling 90 days unless you delete them; deletion is immediate.Blocking errors and warnings. Line numbers: not stated.No public API stated

Each tool in more detail

InvoiceVerify

Kalmwerk (that's us)

Use it when: You want to see exactly which line breaks which rule and how to fix it, read the invoice as a normal invoice, or check whether Belgian customers can receive under 0208 and 9925.

  • Not the full official Schematron set: our rules are a partial re-implementation, so an official validator can flag errors we miss.
  • No XML Schema (XSD) check and no PDF/A-3 check of Factur-X files.
  • Rules are not pinned to a specific Peppol BIS release number.

Sources:Rule catalog Privacy

ecosio validator

ecosio

Use it when: You want the official rule artefacts for a specific Peppol BIS or national version, free and without an account. It runs on Philip Helger's validation engine.

  • One XML file at a time; paste input not stated.
  • Checks XML only; a full Factur-X PDF check is not stated.
  • Error-correction help is for ecosio customers.

Sources:ecosio validator ecosio product page Rule sets (VESIDs)

Peppol Practical (phax) web service

Philip Helger (personal project)

Use it when: You want to automate checks against the official artefacts and can live with a SOAP interface and a strict rate limit.

  • The web upload page moved to ecosio; there is no separate Helger upload form.
  • Not provided or approved by OpenPeppol, per the site footer.

Sources:Web service docs Upload moved notice

EU Interoperability Test Bed (ITB) eInvoice validator

European Commission, DG DIGIT

Use it when: You want the European Commission's own EN 16931 check, by form or API.

  • The form checks EN 16931; built-in Peppol BIS rules are not advertised on it.
  • No Factur-X PDF check advertised.

Sources:ITB eInvoice validator REST API

KoSIT Validator

KoSIT (open source, Apache 2.0)

Use it when: You need to validate inside your own systems, for example for XRechnung, without sending files anywhere.

  • An engine, not a website: you need Java and a rule configuration.
  • No hosted public upload.

Sources:KoSIT validator Peppol BIS configuration

FNFE-MPE validator

FNFE-MPE (French e-invoicing forum)

Use it when: You are preparing for the French reform and need to check complete Factur-X PDFs, not just the XML.

  • For conformity tests, not production flows, per its terms.
  • Reports don't guarantee acceptance by a platform or customer, per its terms.

Sources:FNFE-MPE services Terms and privacy (8 Sep 2026)

Comparing results fairly

  • Match the rule set and version. The current Peppol BIS Billing 3.0 release is 3.0.21 (published 20 May 2026, mandatory from 17 Aug 2026). A tool running an older set, or EN 16931 only, can pass an invoice another tool rejects.
  • EN 16931 is not Peppol. Peppol BIS adds its own rules on top, such as the buyer's Peppol address (PEPPOL-EN16931-R010) and the Belgian company number format (PEPPOL-COMMON-R043).
  • XML is not the whole Factur-X file. Checking the embedded XML is not the same as checking the PDF/A-3 container.

What no validator tells you

  • Whether the customer can receive it. A valid invoice still bounces if the customer is not registered under the Peppol ID you send to. In Belgium that is often the 0208 vs 9925 split. Check your client list
  • Whether it will be accepted. The customer can still reject a valid invoice. Why Peppol invoices get rejected
  • Whether the VAT treatment is right. A validator checks that the numbers add up and the codes exist, not that you picked the right VAT regime.

Questions

Is the ecosio Peppol validator free?
Yes. ecosio describes its validator as free of charge with no signup needed. You choose a rule set, upload one XML file and get the errors. Files are processed on ecosio's servers for the duration of the validation and deleted after the result is shown, per ecosio.
Does InvoiceVerify use the official Peppol Schematron files?
No. InvoiceVerify re-implements 153 rules in TypeScript (EN 16931, Peppol BIS Billing 3.0, XRechnung and its own checks) so it can point at the exact line and explain the fix. That set is partial, and there is no XML Schema check, so a validator running the official artefacts can find errors InvoiceVerify misses. For a final check before go-live, also run the official rules.
Why do two validators give different results for the same invoice?
They usually run different rule sets or versions. The current Peppol BIS Billing 3.0 release is 3.0.21 (published 20 May 2026, mandatory from 17 Aug 2026), with EN 16931 artefacts 1.3.16; the EU ITB form runs EN 16931 release 1.3.17. Some tools check only EN 16931, others add Peppol or national rules. Compare the rule set and version before comparing error counts.
If an invoice passes a validator, will it be delivered?
Not necessarily. Validation checks the file. Delivery also needs the customer to be registered on Peppol under the ID you send to. In Belgium many companies are registered under only one of their two IDs (0208 or 9925), so a valid invoice sent to the other ID cannot be delivered. A validator also does not confirm legal or tax correctness.
Which validator should I use for Belgian Peppol invoices?
Any validator with the Peppol BIS Billing 3.0 rules covers the format Belgium uses. Use ecosio or the Helger service for the official artefacts, InvoiceVerify to see the failing line with a fix and to check whether your customers can receive under 0208 and 9925.