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. - Credit note — pick it at the top of the invoice block. It is a different document, not a negative invoice: the XML changes its root element and its type code (381), and every amount stays positive. Your customer’s system reads the direction from the type, not from a minus sign.
- The IBAN goes in with your own details — it is written into the XML as the payment means and printed on the PDF. Fill it in once and it stays on this device. The checksum is verified here: a wrong digit is worse than a blank field, because a blank one makes your customer ask.
- Each line has a unit next to the quantity — pieces, hours, days, km and so on. It travels as a UN/ECE code (
HURfor an hour), which is what the receiving system reads; the word beside it is only for you. Billing by the hour and leaving it on "pieces" is the kind of thing nobody notices until an auditor does. - There is a delivery date next to the issue date. Leave it empty if they are the same day; fill it in when they are not. German law (§14 UStG) requires the date of supply on the invoice, and Austria and Italy have equivalents — an invoice missing it can be refused for input VAT even though every other field is right.
- Next invoice keeps the customer, the lines and your bank details, bumps the trailing number by one and sets today’s date — the delivery date is cleared, because last month’s is almost certainly wrong. Padding is preserved (0099 → 0100), since a lot of numbering schemes rely on it to sort.
- Customers you have invoiced before show up in a picker above the customer block — pick one and the six fields fill themselves. It appears only once you have issued something, and it lives on this device like everything else here. Twenty most recent are kept; there is no cloud address book, because that would need an account and a server.
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.