Thirteen real files to test an import, a parser or a validator: one invoice in all five profiles, a credit note, a deposit invoice, reverse charge and franchise en base cases, the CII and UBL XML, and two deliberately invalid files.
Every file was generated with this site's own engine and checked against its declared profile with the validator before being published. The data is fictitious: made-up companies, SIREN, VAT numbers and IBAN. Download a file, or open it in the viewer, run it through the validator or extract its XML with the extraction tool.
One invoice, five profiles
The five files below carry the same fictitious invoice, FAC-2026-0342 from Dupont Services SARL to Martin Industries SAS, with a different profile declared in the specification identifier (BT-24). Under the French reform, MINIMUM and BASIC WL do not count as invoices; EN 16931 is the profile to use by default. What each profile means is covered in the Factur-X format guide.
Credit note, deposit and special VAT cases
Four documents that trip up imports more often than the plain invoice: an avoir, a deposit invoice, a reverse charge invoice and a franchise en base invoice, each carrying the mentions and VAT categories the French rules expect.
The XML on its own: CII and UBL
The reference invoice again, as bare XML in both EN 16931 syntaxes: the CII file that lives inside the hybrid PDF, and its UBL 2.1 equivalent.
Want the CII file explained piece by piece? A Factur-X example, read field by field walks through every block of this exact file.
Why two files are broken on purpose
An import pipeline is only as good as its error handling, and you cannot test error handling with valid files. The two invalid files above are the valid CII and UBL with the currency code (BT-5) removed: each fails exactly one rule, BR-05, so a validator that reports anything else, or nothing, has a problem. Try them in the online validator to see what a clean failure report looks like.