Valinvo

Free XRechnung validator

Valinvo's free validator checks an XRechnung, ZUGFeRD / Factur-X or Peppol BIS Billing 3.0 e-invoice, as XML or as a PDF with the invoice embedded, against the official rules and lists every problem with its rule ID, its location in the file and a message. You need no account and no API key, and your file is processed in memory and not stored.

Open the validator · Use it from code (API quickstart)

What it checks

The rules come from the official publishers (KoSIT for XRechnung, OpenPeppol for Peppol BIS, FeRD for ZUGFeRD / Factur-X) and are applied as published. In our own tests, every XRechnung sample must pass both our engine and the KoSIT reference validator.

How to use it

  1. Open the validator, paste the XML or upload the file (XML or PDF).
  2. Click Validate. You can first try the built-in valid and broken sample invoices.
  3. Read the list: each error shows the rule ID (for example BR-DE-15), the location and what is wrong. Fix the invoice in your system and validate again.

From code: the same check as an API

curl -X POST https://valinvo.bmk-hub.com/v1/validate \
  -H 'X-Accept-Terms: 1.0' \
  -H 'Content-Type: application/xml' \
  --data-binary @invoice.xml

An invoice with a problem is a normal 200 answer with valid: false:

{
  "ruleSet": "xrechnung-3.0.2-ubl-invoice",
  "valid": false,
  "errors": [{
    "rule": "BR-DE-15",
    "message": "Das Element \"Buyer reference\" (BT-10) muss übermittelt werden.",
    "location": "/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]"
  }],
  "warnings": []
}

For a PDF, send Content-Type: application/pdf and --data-binary @invoice.pdf. Warnings do not make an invoice invalid. More in the quickstart.

Common XRechnung errors

Questions

Is the validator really free? Yes. The online validator needs no account or API key. The API can also be tried without a key, with a small daily limit for creating invoices.

Is my invoice stored? No. The file is processed in memory and not stored. Please use sample data or invoices you are allowed to share.

Does "valid" mean the recipient accepts it? Not necessarily. The check applies the official rules as published. It cannot guarantee that a recipient or a tax authority accepts the invoice, and it is not tax or legal advice.

Can Valinvo also create the invoice? Yes. You send one JSON invoice and receive XRechnung, a ZUGFeRD / Factur-X PDF or Peppol BIS XML that has been checked against the same rules. See the quickstart.

By using the validator you accept the Terms of Use.

Quickstart · XRechnung validator · Peppol validator · ZUGFeRD / Factur-X validator · ZUGFeRD-csharp: your options · Error codes