"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
- Drag in an XML or PDF file.
- Read the headline: the format family, the profile and the version where the file states one.
- Open Why it was classified this way: those lines are the signals used.
- 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
- ZUGFeRD / Factur-X XML Extractor Pull the invoice XML out of a ZUGFeRD or Factur-X PDF, see which profile it declares, and download it. The PDF is read in your browser.
- XRechnung Viewer Open an XRechnung (or ZUGFeRD / Factur-X) invoice and read it as a clear table of parties, lines, VAT, totals and payment data. Runs in your browser.
- Factur-X / ZUGFeRD Validator (Technical Checks) Run technical checks on a hybrid Factur-X / ZUGFeRD PDF: PDF/A-3 declaration, attachment, profile in the metadata, a documented subset of EN 16931 rules and totals. Not the official validation.
- KSeF FA(3) XML Viewer Open a Polish KSeF structured invoice (FA(3)) and read it as a table. Checks the XML against the official schema. Runs in your browser.
- Peppol UBL Invoice Viewer Open a Peppol BIS Billing 3.0 or other UBL 2.1 invoice or credit note, read the business terms as a table, and check the structure against the UBL schema.
- PDF Attachments Extractor List every file embedded in a PDF, see what each one really is, and download one or all of them. The PDF stays in your browser.
- pain.001 Payment File Checker Technical pre-check of a pain.001 credit transfer file: version, counts and control sums, IBANs, references and structured, hybrid or unstructured addresses. Not a bank validator. In your browser.
- KSeF QR Code Generator & Checker Kod QR KSeF (KOD I): zbuduj link weryfikacyjny z NIP, daty i skrótu SHA-256 faktury, dodaj kod do PDF albo odczytaj i sprawdź istniejący kod. W przeglądarce, bez wysyłania plików.
- Fattura Elettronica Viewer (XML & P7M) Aprire fattura elettronica XML e XML.P7M: righe, IVA, totali, cedente e cessionario in forma leggibile, con stampa o PDF. Il contenitore firmato viene aperto, non validato. Nel browser.
- Facturae XML & XSIG Viewer Visor Facturae: abre facturas Facturae 3.2.x en XML o XSIG, muestra emisor, receptor, líneas, impuestos y totales, con impresión o PDF. La firma se describe, no se verifica. En el navegador.