Here you find free test invoices for e-invoicing and Peppol: valid e-invoices and invoices with deliberate errors, in UBL, CII and other formats. Download them to test your own software, or open them in our free validator with one click. That way you see right away what is checked.
All test invoices
Belgian Peppol invoice
A complete invoice according to Peppol BIS Billing 3.0, with valid Belgian company numbers for seller and buyer.
Expected result: structure and business rules valid.
Peppol invoice in an SBDH envelope
This is how an Access Point forwards an invoice. The validator takes the invoice out of the envelope.
Expected result: valid, with a note that the invoice was in an envelope.
CII invoice: structure right, rules not
A minimal invoice in CII, the second syntax of the European standard. The structure is correct, but data that EN 16931 makes mandatory is missing.
Expected result: structure valid, 10 errors in the European business rules.
Signed Italian invoice
A FatturaPA in a signed .p7m file. The validator extracts the XML itself.
Expected result: structure valid; there are no public business rules for FatturaPA.
Peppol invoice with business rule errors
An invoice with, among other things, wrong VAT calculations, as an Access Point would reject it.
Expected result: structure valid, 5 business rule errors, with an explanation per error code.
Element in the wrong place
The invoice date comes before the invoice number. The business rules do not notice, the structure check does.
Expected result: 1 structure error, business rules valid.
Totals missing
The block with the invoice totals (LegalMonetaryTotal) is missing. The schema makes that block mandatory.
Expected result: 1 structure error and 1 business rule error.
Element that does not exist in UBL
Software sometimes adds its own fields. The schema does not allow that.
Expected result: 1 structure error, business rules valid.
Date that does not exist
The due date is 2026-13-45: month 13 and day 45 do not exist.
Expected result: 1 structure error and 1 business rule error.
Structure error in an SBDH envelope
The same order error, now inside an envelope. The line numbers match the original file.
Expected result: 1 structure error, with the line number in the full file; business rules valid.
Amount with a comma
The total amount is written as 121,00. In XML a decimal number always uses a point.
Expected result: 1 structure error and 1 business rule error.
Factur-X MINIMUM with a structure error
The smallest Factur-X profile, with an error in the structure. In Germany and France MINIMUM does not count as an e-invoice.
Expected result: 1 structure error and 5 business rule errors.
Unknown format
An XML file that is not an e-invoice. This shows how the validator responds.
Expected result: message that the format is not recognised.
File that is not XML
A plain text file with the .xml extension.
Expected result: message that the file is not valid XML.
Sample UBL invoice (XML)
This is how the start of a valid UBL invoice under Peppol BIS Billing 3.0 looks. The fragment comes from our test invoice voorbeeld-geldig.xml, which you can download above or test straight away.
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" …>
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>VOORBEELD-001</cbc:ID>
<cbc:IssueDate>2026-10-09</cbc:IssueDate>
<cbc:DueDate>2026-11-08</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>PO-7781</cbc:BuyerReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0208">0123456749</cbc:EndpointID>
…
CustomizationIDandProfileIDstate that this is an invoice under Peppol BIS Billing 3.0.InvoiceTypeCode380 stands for a normal commercial invoice.BuyerReferenceis the buyer reference. Peppol requires it or an order reference.EndpointIDwith scheme 0208 is the Peppol address of the supplier: its Belgian company number.
What are these test invoices for?
Software vendors use them to test their import and export. Accountants and business owners see what a valid e-invoice looks like, and which messages an Access Point gives for an error. Moreover, each invalid invoice contains exactly one deliberate error. As a result, you see exactly which check finds it.
Structure or business rules?
The validator first checks the structure against the official XML schema, then the business rules. Some errors are only found by the first check, such as an element in the wrong place. Others, such as a wrong VAT calculation, only by the second. Per country you can see which checks we perform.
Testing your own invoice
Do you have an e-invoice of your own? Then drop it into the e-invoice validator. Your file stays on your own computer. If you get an error code, read the explanation of the Peppol error codes.
All test invoices contain fictitious data. The signed FatturaPA is the public example of the Italian tax authority (fatturapa.gov.it), signed with a test certificate.