Invoice viewer

Invoice (a text file computers can read) is hard to read when a field is missing. View the invoice here.

New to this? Explained in 30 seconds

An electronic invoice stores amounts and other details for accounting software.

Raw XML can make those details hard to read.

This tool shows supported invoice data in a readable view.

Review the fields, then open the separate invoice check before sending.

Runs in your browser. No document upload.

Choose your file or paste its contents

or drop your file here
max. 10 MB
More options

Choose one XML or Factur-X PDF file, or paste XML below. Read locally to show the result. An input error keeps the previous successful result visible.

A selected file takes priority over pasted XML. Rendering supports UBL Invoice/CreditNote, CII and KSeF FA(3). Unknown fields are marked unsupported; missing mapped fields stay missing. No totals are recalculated. The selected package does not prove the document matches that profile.

Check your month’s files together and get alerts when the rules change.Compare plans
Details

Read invoice XML or extract the named XML attachment from a Factur-X PDF locally. No document upload, persistent storage or external stylesheet. PDF pages are never rendered; active PDF content is rejected. Your chosen package links to its existing validator; viewing does not run validation or establish recipient acceptance.

Skip to invoice result

Open existing validator (separate consent)

Payment comparison in Invoice viewer

Compare an invoice with one selected camt.053/054 transaction, version 08 or 14. Read the invoice above, choose one local camt XML file, then choose the transaction and payment reference explicitly. Invoice reference, payable amount and currency are shown beside the transaction amount, currency, direction, booking status and available references.

Payment comparison limits and meaning

Only ordinary UBL and CII invoices type 380 have mapped payable fields here. Missing or ambiguous fields, collected amounts, charges, possible partial payments, debit entries, reversals and pending status remain unknown. Exact decimal comparison uses integers, up to 18 integer and five fractional digits, with no floating point, currency conversion, IBAN, name or fuzzy matching.

Selected values can be equal only when the selected fields are complete and unambiguous. This never marks an invoice as paid or makes a booking. It proves no authenticity, bank acceptance or fiscal validity. Independent invoice and camt validation layers remain separate; incomplete XSD status never becomes a pass. Sources remain unchanged. No upload, new storage or account data measurement.

Existing 10 MB XML, 30,000 elements, 80 levels and 64 KB field limits apply. Maximum 1000 transactions in the comparison view. A 15 second deadline includes file reading; Cancel terminates the worker. Changing your choice invalidates the old result. One explicit JSON export contains document data and source hashes.

Read an invoice above to compare its payment values.

CSV comparison in Invoice viewer

Compare mapped invoice line values with a CSV overview you supply. Choose the invoice line ID field, CSV line ID column and both sources for reference, quantity and unit. Only exact source text is compared; 2 and 2.0 differ. Missing values stay unknown.

Comparison limits and meaning

UTF-8 CSV: maximum 1 MiB, 1000 data rows, 50 columns and 15 seconds including file reading. Cancel terminates processing. Quotes and Unicode are preserved. Duplicate or empty keys and unknown or ambiguous column mappings block a global conclusion. A partial overview keeps the global conclusion unknown. Results use equal, different or unknown and show both source values. There is no acceptance judgement.

This local comparison adds no Order or Despatch XML parser, Peppol transport, standard validation or automatic matching service. No fuzzy matching, unit conversion, tax calculation or correction. Original XML and document bytes stay unchanged; mapped namespace paths still open the original XML. No upload, new storage or document telemetry. Download JSON only by explicit action; it contains document data. Spreadsheet formulas remain literal JSON strings; no CSV or spreadsheet export is offered.

Read an invoice above to choose its mapped line fields.

CII → UBL core

Create a separate UBL Invoice copy locally from the limited general EN 16931 CII core. EUR, type 380, positive quantity/price and standard VAT S only. No credit notes, discounts/charges, advances, exemptions, national profiles, PDF or XMLDSig. Unknown content blocks conversion; no missing values are filled.

Technical validation does not prove external acceptance. Read the supported fields before starting; source values and exact decimals stay unchanged.

Supported CII → UBL core: read before starting

Self-written whitelist v1: one ordinary CII CrossIndustryInvoice (D16B namespace :100), general EN 16931 identifier urn:cen.eu:en16931:2017, type 380, EUR, 1: 100 lines, positive quantity/price and standard VAT S with positive rates. Supplied amounts, VAT breakdowns and decimal strings stay exact; nothing is calculated or filled. Decimal notation: at most 18 integer and 6 fractional digits, optional dot, no exponent or comma.

Invoice number and issue date, seller/buyer name and postal address (street, city, postcode, country) are required. Optional party ID, legal ID and scheme, VAT registration VA, electronic address and scheme, contact name/telephone/email, due date, delivery date, buyer reference, buyer order ID and bank transfer code 30 with IBAN are copied only when explicitly supplied. Other references block conversion. Dates must explicitly use format 102 (YYYYMMDD), represented in UBL as YYYY-MM-DD. VA becomes UBL VAT. Explicit InvoiceCurrencyCode supplies UBL amount currencyID attributes; any source amount currencyID must agree. Missing optional values stay absent. No other business values are inferred.

No credit notes, discounts/charges, advances, exemptions, national profiles, PDF or XMLDSig conversion. DTD/XXE, processing instructions, external resources, mixed content, unknown extensions and unmapped fields/attributes block XML with namespace-aware paths and reasons. Only namespace bindings, comments, known container structure (including empty header delivery) and XML formatting whitespace are technical metadata. XML formatting/entity spelling/prefixes may change; the source XML and upload bytes stay unchanged.

Maximum 1 MiB UTF-8, 100 lines, 30 XML levels, 20,000 nodes and 15 seconds in the existing cancellable worker. No automatic conversion when loading or reading; no document upload before separate server consent, no new storage. The mapping report contains document content and is never sent as anonymous telemetry. Only current UBL 2.1 XSD and EN 16931 1.3.16 approval with current explicit consent unlocks XML download; changes, failures, missing/late checks or consent withdrawal lock it again. Technical validation does not prove external acceptance.

Use the XML/file input above; file takes priority. Conversion results and the shared consent/download controls appear below both directions.

UBL → CII core

Create a separate CII CrossIndustryInvoice copy locally, only when every source field is covered. Loading or reading an invoice never starts conversion. Technical validation does not prove recipient, national or external acceptance.

Only general EN 16931 UBL Invoice, EUR, type 380, positive quantity/price and standard VAT S. No credit notes, discounts, charges, advances, exemptions, national profiles, PDF or XMLDSig. Source values stay unchanged; missing values are never filled.

Supported core: read before starting

Self-written mapping v1: one ordinary UBL Invoice, general EN 16931 identifier urn:cen.eu:en16931:2017, type 380, EUR, 1: 100 lines with positive quantity and price, standard VAT S with positive rates, supplied totals and VAT breakdowns. Decimal notation uses digits with an optional dot, at most 18 integer and 6 fractional digits; no exponent or comma. Invoice number/date; seller and buyer legal names, street/city/postcode/country, optional party/legal identifiers, VAT identifiers, electronic addresses and seller/buyer contact. Optional due/delivery dates, buyer reference, order reference and bank transfer code 30 with IBAN are copied only when present.

No credit notes, discounts/charges, advances, exemptions, national profiles, PDF or XMLDSig conversion. Other references and fields are unsupported and block output. No missing values are filled and no amounts are recalculated. Decimal strings and parsed text/attributes, including Unicode, stay exact; dates change from YYYY-MM-DD to CII format 102 (YYYYMMDD). The VAT tax scheme becomes CII registration scheme VA; each EUR amount attribute is represented by the shared invoice currency and the CII VAT-total currency attribute. No other codes are inferred. XML formatting, entity spelling and namespace prefixes may change. The source XML stays unchanged.

Maximum 1 MiB UTF-8, 100 lines, 30 XML levels, 20,000 nodes, 15 seconds in the existing bounded local worker; Cancel terminates it. DTD/XXE, external resources, processing instructions, mixed content, unknown extensions and unmapped fields/attributes block XML with namespace-aware paths and reasons. Namespace bindings, comments, container structure, formatting whitespace and optional UBLVersionID 2.1 are supported technical metadata; they are not copied as invoice fields. No automatic fetch or new storage.

Use the XML/file input above. File takes priority. Create a general EN 16931 UBL example and choose the general profile; its fields are covered by this mapping.

Conversion result and validation · both directions

The mapping report contains invoice content and is never sent as anonymous telemetry. Download it only to a trusted destination.

No conversion started. XML download is locked.

Check more invoices; existing Pro / Team batches · Existing XML projects and batch workflow

Read an invoice without mistaking the view for validation

The viewer presents fields it can map from the selected document. Start by comparing the invoice number, issue date, seller, buyer and currency with the source XML. A missing field in the view can mean the mapping does not support that location; it does not justify deleting information from the original invoice. Open the original XML when a business decision depends on an extension or unmapped attribute.

Amounts are displayed from the file. If a line total and a document total disagree, viewing them does not decide which amount is correct and the viewer does not repair the calculation. Use the existing validator for the selected invoice family, review its scope and provide separate consent where a server check is required. Return to the accounting source before changing a financial value.

For a Factur-X PDF, this tool extracts the named embedded invoice XML rather than drawing the PDF pages. Compare the structured data with the human-readable document in your own PDF viewer when necessary. Extraction alone establishes neither PDF/A conformance nor agreement between the two representations. A rejected active PDF or unsupported attachment requires investigation at the document source.

You can try the fictional example before using a real invoice. After opening another file, verify the displayed document identifier so that you do not compare results from different inputs. Clear the document when finished. An existing-validator link opens a separate workflow; it does not silently transfer the invoice or preserve it in an account.

Factur-X publication

Your next check

Check UBL and CII invoice XML against fixed official EN 16931 and XRechnung rules after explicit server-processing consent.

E-invoice validator
XML

A text file with labelled fields, such as an invoice amount. Your software makes it for another computer to read.

Read the full definition
Factur-X

An invoice with a readable PDF and an XML file inside. People read the PDF; software reads the XML.

Read the full definition

Search

File rejected? Find the error and how to fix it.

Enter an error code or topic.