Create an invoice that will actually be accepted
Fill the form, get Peppol UBL, Factur-X CII, or a PDF with the XML attached. Every field is checked against EN 16931 before you can download โ and nothing leaves your browser.
Compliance check
Which file do I send?
- Peppol UBL โ the usual choice for cross-border invoicing and for German public sector buyers who accept the UBL flavour of XRechnung. Send the XML itself.
- Factur-X CII โ the UN/CEFACT syntax used in France and Germany. Send the XML, or the PDF below which carries the same XML as an attachment.
- PDF + XML โ a readable page for humans with the machine-readable data attached
under the name
factur-x.xml, as the Factur-X specification expects.
Being precise about the PDF: it is not a certified PDF/A-3. Real PDF/A-3 needs embedded fonts, an ICC colour profile and a full XMP metadata block, which is a heavy thing to do in a browser. Since Peppol and XRechnung are delivered as plain XML anyway, the XML is the real output here and the PDF is a convenience. If your recipient insists on certified PDF/A-3, send them the XML instead.
What gets checked
The same EN 16931 checker this site uses on invoices you receive is run on the one you are writing: mandatory fields, arithmetic consistency, and per-rate VAT. The download buttons stay disabled while anything fails, so a broken invoice does not leave this page.
It is a subset of the standard โ the rules that are unambiguous. Rules that turn on code lists or national extensions are not implemented, so passing here is not a guarantee your buyer's portal will accept it. It does mean the arithmetic and the mandatory structure are right, which is what most rejections are about.