Free Tool Desk

E-Invoice Format Detector

Find out what an XML or PDF e-invoice file is: ZUGFeRD, Factur-X, XRechnung, KSeF FA(3), Peppol BIS or plain UBL, from fixed signals you can see.

Free to use No sign-up required Nothing is uploaded

"Send us the e-invoice" gets you a file, and you often cannot tell whether it is a ZUGFeRD PDF, an XRechnung, a Peppol UBL invoice or a Polish FA(3) file. The wrong tool then gives you an error that tells you nothing. This detector answers the first question: what is this file?

It does not guess and uses no AI model. It reads the same signals you could read yourself (root element, namespace, the specification identifier inside, attachment names, PDF metadata) and shows every one it used.

Loading the tool…

Overview

About E-Invoice Format Detector

XML files. The detector looks at the root element and its namespace and, where the format has one, at the declared specification identifier: the guideline identifier of a Cross Industry Invoice (which separates Factur-X / ZUGFeRD profiles, XRechnung and the generic EN 16931 identifier), the customization and profile identifiers of a UBL invoice (which separate Peppol BIS Billing 3.0, XRechnung UBL, EN 16931 UBL and other UBL), and the form code and namespace of a KSeF structured invoice (FA(3) against other forms). Anything else is reported as unknown XML with its root element.

PDF files. The detector reads the XMP metadata for a PDF/A declaration and for the Factur-X block, lists the embedded files, and examines the content of embedded XML. A PDF that carries a Cross Industry Invoice becomes a hybrid invoice and inherits the XML's profile; a PDF/A without XML is reported as such; an attachment that has an invoice-like name but is not invoice XML is reported as that, with low confidence.

Confidence. High means the signals agree and are specific (for example the Peppol customization and profile identifiers together). Medium means the file matches a family but a signal is missing or ambiguous (the EN 16931 identifier is shared by several specifications). Low means the file hints at something but proves little.

Versions. Identifiers carry the specification family, not always the exact release: Factur-X / ZUGFeRD files say "1p0", Peppol files say "3.0", and an XRechnung says its own version (for example 3.0). The result states what the file declares and notes where the exact release cannot be known. After detection you get links to the tool that suits the format.

Compatibility

Supported Formats

XML up to 5 MB and PDF up to 50 MB. Recognised: Factur-X / ZUGFeRD profiles (MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED), XRechnung in CII and UBL syntax, Peppol BIS Billing 3.0, EN 16931 UBL and CII, generic UBL and CII, KSeF FA(3), hybrid PDFs, PDF/A and ordinary PDFs. Anything else is reported as unknown XML or a non-invoice file.

Guide

How to Use E-Invoice Format Detector

  1. Drag in an XML or PDF file.
  2. Read the headline: the format family, the profile and the version where the file states one.
  3. Open Why it was classified this way: those lines are the signals used.
  4. Follow the suggested next tool (extract, view or validate).

Highlights

Features

  • Shows its evidence Every classification lists the signals it was based on, so you can verify it by hand.
  • No guessing Deterministic rules only. Ambiguous identifiers lower the confidence instead of being resolved by a hunch.
  • XML and PDF Reads stand-alone XML and the structure of hybrid PDFs, including embedded attachments.
  • Sends you on Suggests the extractor, viewer or validator that fits what it found.

Applications

Use Cases

  • Sorting a folder of unknown e-invoice files before importing them
  • Finding out why a file was rejected by a system that expected another format
  • Telling an XRechnung from a Peppol invoice when both are UBL
  • Checking that a "Factur-X" file really contains Factur-X XML
  • Confirming that a Polish file is FA(3) and not the older FA(2)

Good to Know

Limitations

Detection says what a file declares, not whether it is valid or acceptable. A file can claim to be Peppol BIS 3.0 and still break the rules. Older generations (such as the first ZUGFeRD layout) are reported as older and not further interpreted. Formats outside the list, such as Italian FatturaPA or Spanish Facturae, are reported as unknown XML with their root element.

For PDFs, only the first level of attachments is examined; an XML inside a ZIP inside a PDF is not unpacked. Files with a DTD or entity declaration are refused before parsing.

This tool runs entirely in your browser — your file is never uploaded to our servers. See our Privacy Policy for full details.

Support

Frequently Asked Questions

Is this an AI classifier?

No. It uses fixed rules: root element, namespace, identifiers, attachment names and PDF metadata. The same file always gives the same answer, and the signals behind it are listed.

What does medium confidence mean?

The file matches a family but a signal is missing or shared. For example, the EN 16931 guideline identifier is used by the Factur-X EN 16931 profile and by other CII uses, so the tool will not claim more than it can see.

Can it tell the exact ZUGFeRD or Peppol release?

Not from the XML. Factur-X / ZUGFeRD files carry the family "1p0" and Peppol files "3.0"; the release (for example ZUGFeRD 2.5.2 or the May 2026 Peppol release) is not written in the file.

Does it validate the invoice?

No. It identifies. To check structure or rules, use the viewers, the Factur-X / ZUGFeRD Validator, or the official validators for the format.

Is the file uploaded?

No. The detector runs in your browser, and nothing from the file is sent to this site or to analytics.

What if my format is not listed?

You get "unknown XML" with the root element and namespace, which is usually enough to search for the right specification.

Keep Going

Related Tools