Examples

E-invoice examples: XRechnung and ZUGFeRD files to download

40 business cases, from the standard invoice to the final invoice on a building site, each in UBL, in CII and as a ZUGFeRD PDF: as XRechnung, as public authorities require it, and for businesses also by EN 16931. Our generator produced the files, and the official KoSIT validator checked every one of them. Free to use, with no sign-up and no attribution.

120 files · 0 errors, 0 warnings · KoSIT rule set v2026-08-31 · CC0

Checked · Rule set v2026-08-31 · Check record (index.json)

VAT: rates, exemptions, reverse charge

Zero rate for solar panels (§ 12(3) UStG)

SM-2026-0207 · Gross €41,200.00

A solar installation for a municipality: category Z without an exemption reason (BR-Z-10), the Leitweg-ID as buyer reference and recipient address.

Intra-community supply to Austria

IG-2026-0117 · Gross €5,765.00

Machine parts to the buyer’s warehouse in Wels: category K, both VAT IDs and the delivery address (BG-15), whose country the rule set insists on (BR-IC-12).

Document types: credit note, correction, progress billing

Payment: discount, direct debit, card, cash

Discounts and charges

Special cases

Billing period: a month of a maintenance contract

WV-2026-10-031 · Gross €1,520.23

October as the invoicing period (BG-14) instead of a delivery date, the contract number (BT-12) and a period per line (BG-26); the on-site call has none.

Purchase order, order lines and delivery note

RE-2026-4412 · Gross €4,319.70

What the buyer’s goods receipt matches against: the purchase order number (BT-13), the order line per line (BT-132), the delivery note number (BT-16) and the project (BT-11).

With an attachment: the timesheet inside the invoice

MB-2026-0091 · Gross €4,855.20

Consulting hours in September, the timesheet as a PDF file inside the e-invoice itself (BG-24, BT-125) and the statement of work as a link (BT-124).

A GmbH with its register entry and managing directors

MW-2026-1187 · Gross €1,204.88

What a German GmbH must state on every business letter (§ 35a GmbHG): the register number (BT-30), seat, register court and managing directors (BT-33), in the XML and at the foot of the PDF.

Wholesale: article numbers, GTIN, price per 100

MB-2026-30871 · Gross €843.00

Screws and dowels priced per hundred (BT-149) with list price and discount (BT-148, BT-147), the seller’s and the buyer’s article numbers (BT-155, BT-156), the GTIN (BT-157) and a note on a line (BT-127).

How the files were made

Every case starts as a request to our API (POST /v1/invoices), just as a program would send it; it sits next to the invoices as JSON. From it, the same generator behind the invoice form and the API writes the invoice in UBL and in CII: as XRechnung or, for the invoices to businesses, by EN 16931. The ZUGFeRD PDF is our readable invoice page with the CII file inside, as PDF/A-3 with the XRECHNUNG or the EN 16931 profile.

All 120 invoice files are checked with the KoSIT validator and the XRechnung configuration v2026-08-31, the PDF by its embedded XML. The scenario, warnings, size and SHA-256 checksum of each file are in the check record.

When a new KoSIT rule set comes out, our build fails until every file has been checked again. The date at the top is the date of that check.

What the examples do not show

Currencies other than the euro are missing, and only one case shows attachments, with a PDF.

The ZUGFeRD files carry the XRECHNUNG or the EN 16931 profile; there are no examples for BASIC or EXTENDED here. The PDF page is in German.

Every name, number and account is invented. Whether a rate or an exemption fits your business is not something the examples can tell you; that remains a question for your tax adviser.

Use

The files are released under CC0 1.0: you may copy, change and use them in software, tests, training and documentation, commercially too, without naming us.

For developers

Each case’s JSON file is the body for POST /v1/invoices. With it you generate the same invoice yourself, as UBL, CII or ZUGFeRD:

Shell
curl -X POST 'https://api.normapi.de/v1/invoices?syntax=zugferd' \
  -H "Authorization: Bearer $NORMAPI_KEY" \
  -H 'Content-Type: application/json' \
  --data-binary @01-standardrechnung-normapi.json \
  -o 01-standardrechnung.pdf

The invoices to businesses (EN 16931) need &profile=en16931 in the address for this; otherwise the API asks for what XRechnung requires. As test cases for invoice intake, import all three files of a case: gross and amount due must come out the same for all three, and both are listed here with every case.

Frequently asked questions

Where can I find an XRechnung sample file?

Here: every case has a file in UBL and one in CII to download, both checked with the KoSIT validator; all but the two invoices to businesses are XRechnung. The standard invoice is a good start; the cases with a Leitweg-ID show what an invoice to a public authority looks like.

Is there a ZUGFeRD example as a PDF?

Yes, with every case: a PDF/A-3 with the invoice embedded, in the XRECHNUNG profile or, for the invoices to businesses, EN 16931. It opens like any PDF; our ZUGFeRD viewer shows the XML inside.

Does an invoice to a business have to be an XRechnung?

No. § 14 UStG asks for an e-invoice that follows the EN 16931 standard; XRechnung is its version for public administration and adds the Leitweg-ID, a contact person and electronic addresses. The invoice to a bakery and its credit note show an EN 16931 e-invoice without them.

Are the sample invoices valid?

Every file passes the check with the KoSIT validator and the XRechnung configuration v2026-08-31, checked on 22 October 2026. Every new rule set release gets every file checked again. Whether the details would fit a real transaction, no check can know.

What is the difference between UBL and CII?

They are two XML syntaxes for the same standard, EN 16931, and German public authorities must accept both. UBL comes from the Peppol world; CII is what every ZUGFeRD PDF carries. The two files of a case show the same invoice; very little fits one syntax and not the other, such as several preceding invoices, which CII cannot hold.

Is there an example of an XRechnung with an attachment?

Yes, the case with the timesheet: the PDF sits base64-encoded inside the invoice itself, as an additional document (BG-24), with a link to the statement of work beside it. PDF, PNG, JPEG, CSV, XLSX and ODS are permitted, each file under a name of its own (BR-DE-22). The XRechnung viewer unpacks such attachments again.

May I use the examples, commercially too?

Yes. The files are released under CC0 1.0: copy, change and pass them on, in software, tests and training, without attribution.

What does an XRechnung to a public authority look like?

It carries the authority’s Leitweg-ID as buyer reference (BT-10), usually also as the recipient’s electronic address with scheme 0204. The invoice to a public authority, the zero rate for solar panels and the three construction invoices show this.

Next