Documents, formats and the GoBD archive
Updated
Every document is a ZUGFeRD invoice: a PDF/A-3 with embedded XML according to EN 16931, valid for B2C and B2B in Germany and the EU. Before it is created, every invoice is validated against the mandatory details of § 14 Abs. 4 UStG (the German VAT Act) and against the format.
This page answers: who the e-invoicing mandate applies to, which formats Rechnungskit creates, when an XRechnung is created, how cancellation invoices and address corrections work, and how Rechnungskit archives under the GoBD.
- ValidationMandatory details and format§ 14 Abs. 4 UStG, EN 16931
- DocumentZUGFeRD or XRechnungXRechnung only for customers with a Leitweg-ID
- ArchiveXML for 8 years, WORMSHA-256 checksum, verified on every retrieval
- Correctionnever overwrittencancellation plus new invoice, or a corrected invoice
The e-invoicing mandate in brief
Since January 1, 2025, every business in Germany must be able to receive e-invoices (Abschn. 14.1 Abs. 5 UStAE). For sending domestic B2B invoices, transition periods apply (§ 27 Abs. 38 UStG):
| Prior-year revenue | Send e-invoices from | Allowed until then |
|---|---|---|
| more than €800,000 | January 1, 2027 | another kind of invoice until the end of 2026 |
| at most €800,000 | January 1, 2028 | another kind of invoice until the end of 2027 |
During this transition, a PDF is only allowed with the recipient's consent. A plain PDF is not an e-invoice, because it lacks the structured format (§ 14 Abs. 1 Satz 3 und 4 UStG).
- Jan 1, 2025All businesses receiveAbschn. 14.1 Abs. 5 UStAE
- Jan 1, 2027Sending above €800,000 prior-year revenueanother kind of invoice allowed before
- Jan 1, 2028Sending for everyone else§ 27 Abs. 38 UStG
Exceptions
- Consumers (B2C): the mandate only covers supplies to other businesses (§ 14 Abs. 2 Satz 2 Nr. 1 UStG). A shop that only sells to consumers (a D2C Shopify store, for example) does not have to send e-invoices. It must still be able to receive them, from suppliers for instance.
- Small amounts and travel tickets: small-amount invoices up to €250 and travel tickets are exempt (§ 33 Satz 4 and § 34 Abs. 1 UStDV).
- Buyers abroad: the German e-invoicing mandate does not apply to sales to businesses not established in Germany (§ 14 Abs. 2 Satz 2 Nr. 1 UStG). Whether the buyer's country has its own requirements is something to check case by case with your tax advisor.
Rechnungskit still issues every invoice as ZUGFeRD: consumers open the PDF, business customers import the XML. That way the shop is ready as soon as business customers buy.
Delivery and authorities
Germany has no central platform and no PEPPOL obligation. Seller and buyer agree on the channel, and according to the Federal Ministry of Finance (BMF), email is one of them (Abschn. 14.1 Abs. 4 Satz 6 und 7 UStAE). Rechnungskit sends by email once delivery is switched on.
Federal authorities generally require XRechnung with a Leitweg-ID (routing ID) (§ 4 Abs. 1 and § 5 Abs. 1 ERechV, see XRechnung). Federal states and municipalities have their own rules. For details on deadlines and exceptions, refer to rechnungskit.de/en/guides/e-invoicing-mandate; for individual cases, to your tax advisor.
Sources: § 14 UStG, § 27 Abs. 38 UStG, § 33 UStDV, § 34 UStDV, Abschn. 14.1 UStAE, § 4 ERechV, § 5 ERechV
Formats
| Format | Status | When |
|---|---|---|
| ZUGFeRD 2.5 (profile EN 16931) | live | standard for all documents |
| XRechnung 3.0 (pure XML for public-sector customers) | live | per customer, as soon as a Leitweg-ID is stored, see XRechnung |
| PEPPOL, FatturaPA, ebInterface | not supported | German trade does not require them |
For a customer with a Leitweg-ID, future invoices are created as XRechnung automatically, and everyone else stays on ZUGFeRD.
Small-amount invoices and missing addresses
Small-amount invoices up to €250 (§ 33 UStDV) work without full recipient details. That never applies to EU distance sales, intra-community supplies or reverse charge.
If a required recipient address is missing, you request it from the buyer with a data request. The buyer adds their billing address through a link without logging in, and the document is then created automatically. The button "Request details" sits on the task under Payments or Orders.
XRechnung for public-sector customers
Authorities and other public-sector customers in Germany usually require the invoice as XRechnung (pure XML according to EN 16931, CIUS XRechnung 3.0) with their Leitweg-ID. For the federal government this is set out in § 4 Abs. 1 and § 5 Abs. 1 Nr. 1 ERechV. Rechnungskit has no project setting for it; the format is decided per customer.
Customer list
Under Customers, Rechnungskit groups your orders by email address. If the order has no address, it takes the address from the payment, for Mollie subscriptions for example.
After going live, only real orders and documents count, and the test data from test mode no longer appears there. In test mode you correspondingly see only the test data.
Adding a Leitweg-ID
- Under Customers, expand the customer.
- Enter the Leitweg-ID in the box "Invoice format" (example 04011000-1234512-68).
- Save.
From then on, all future invoices for this customer are created as XRechnung. Documents already created stay unchanged (GoBD). Owners, bookkeeping and setup roles may save; in the demo account the field is read-only.
Alternatively, the Leitweg-ID comes with the order. In the Rechnungskit checkout and the subscription checkout, business customers with country Germany see the link "Leitweg-ID ergänzen" (add Leitweg-ID) below the billing address. It opens an optional field "Leitweg-ID". Through your own API it is leitweg_id in the billing address.
An invalid Leitweg-ID is rejected. The format is 2 to 12 digits, an optional fine-addressing part and a two-digit check number, each separated by a hyphen.
Phone number required
XRechnung requires a phone number for the invoice issuer (rule BR-DE-6). It lives under Settings in the invoice contact ("Phone"). If it is missing, the invoice is not created incorrectly; it is held and shown as a task.
What changes on the document
- Delivery: the customer gets the XML file as an attachment to the invoice email, plus a PDF as a readable copy.
- Archive: the XRechnung sits in the archive like every other document, with hash and validation. The document view shows "XRechnung 3.0" as the format.
- No small amounts: there are no small-amount invoices for XRechnung customers; the full invoice is always created.
- No authority portal: PEPPOL delivery to an authority portal is not included. You upload the XML file in the customer's portal or send it by email.
If you have no Leitweg-ID, you don't need to do anything: ZUGFeRD is the right and sufficient standard for all businesses and consumers.
Date of supply (Leistungsdatum)
The invoice must state the time of supply (§ 14 Abs. 4 Satz 1 Nr. 6 UStG). For shipped goods that is when shipping begins, so the shipping date and not the payment date (Abschn. 13.1 Abs. 2 Satz 2 UStAE). Rechnungskit takes it automatically from the shop's shipping event or from the fulfillment message of the API.
Rechnungskit always writes the date of supply as a date on the invoice and into the XML (BT-72, for subscriptions the service period), even when it falls on the invoice date. The note "date of supply equals invoice date" is only enough for other invoices. In an e-invoice the date must be in the structured part (Abschn. 14.5 Abs. 16 Satz 3 und 4 UStAE, BMF letter of October 15, 2025). Older invoices with the note stay unchanged in the archive.
Sources: § 14 Abs. 4 UStG, Abschn. 13.1 UStAE
Cancellation invoices (Storno): only from events
Cancellation invoices are created automatically from refunds and cancellations in the shop or at the payment provider, accurate to the cent, partial refunds included. There is deliberately no manual cancellation button; that protects the number sequence and traceability.
Partial refunds with items
For a partial refund from Shopify or WooCommerce, the cancellation invoice lists exactly the refunded items, for example "−1 × item" when one of two units came back. This also applies when the money went back through PayPal, Stripe or Mollie: Rechnungskit takes the items from the refund in the shop and the amount from the payment provider. If shipping was refunded as well, it appears as its own line.
Partial refunds without items
If the shop reports no items (Shopware, say, or a refund of an amount only), the setting under Document rules → Cancellation invoices for refunds decides:
| Setting | What the cancellation invoice shows |
|---|---|
| Proportional (default) | the amount spread across all lines |
| Collective line | one line "Refund", only with a single tax rate, otherwise proportional |
| "Assign manually" | you pick the refunded items yourself in the task "Assign partial refund" (see Assign partial refund, in German) |
Two special cases without a cancellation invoice
- Chargebacks (Rücklastschriften) do not create a cancellation invoice. The goods or service were delivered, the receivable is open again and lands in your tasks for clarification.
- An unpaid B2B invoice is not canceled. If the payment becomes uncollectible, that is a bad debt for tax purposes, which your bookkeeping handles through an adjustment under § 17 Abs. 2 Nr. 1 UStG.
Source: § 17 UStG
Correcting the billing address
If a customer entered the billing address wrongly or incompletely at checkout (forgot the company name, mistyped the street) or wants a different billing address, you correct it directly on the invoice, without a cancellation invoice. This creates a corrected invoice (berichtigende Rechnung, § 31 Abs. 5 UStDV) under the same invoice number. The original invoice stays unchanged and valid, and the correction is archived in addition, tamper-proof.
How to correct it
- Open. In the invoice view, choose "Correct billing address". A small form opens, prefilled with the current address, and you change only the wrong field. Optionally you add a VAT ID (USt-IdNr.), which is then checked automatically with the Federal Central Tax Office (BZSt).
- Correct. One click creates the corrected invoice under the same number, archived tamper-proof. The original invoice stays untouched.
- Pass it on. You can download the documents one by one or as a combined PDF and send them to the customer again together ("Resend both").
Downloads after a correction
| Download | Content |
|---|---|
| Invoice + correction (PDF) | both documents in one file. The recommended document to pass on to the customer (it contains the corrected address); it is the primary download at the top. |
| Original invoice (PDF) | the unchanged original invoice, still available on its own. It is never removed or hidden; original and correction are separate documents, each to be kept. |
| Correction (PDF) | only the correction document |
The correction document uses the same invoice template as the invoice (logo, color, letterhead, footer), so it reads like a natural second page in the combined PDF. At the top it shows the reference to the original invoice (number and date), the corrected address and, below it, the previous (wrong) address struck through.
What applies legally
- No second revenue, no second DATEV booking. Only the address changes; amount and supply stay the same, so nothing is booked again and no new invoice number is assigned.
- Input tax deduction stays possible. From the original invoice and a clearly linked address correction, the recipient can deduct input tax. The correction takes effect retroactively from the time the invoice was first issued (BFH, judgment of October 20, 2016, V R 26/15; Abschn. 15.2a Abs. 7 UStAE).
- Same invoice recipient. A correction may only fix the address of the same person or company (adding a forgotten company name, for example). A different recipient (say, from a private person to someone else's company for the input tax deduction) is a change of recipient, not an address correction, and is rejected. The invoice names the recipient of the supply (§ 14 Abs. 4 Satz 1 Nr. 1 UStG), and a correction does not swap that. For this you need a cancellation invoice and a new invoice.
- No country lock. For supplies of goods, the place of supply follows the route of the goods (§ 3 Abs. 6 and § 3c UStG), not the billing address. So the corrected address may also be abroad, and the delivery address is not affected. Digital services to consumers are different: there the customer's place of residence counts (§ 3a Abs. 5 UStG). If the address changes country in that case, check the tax rate with your tax advisor.
- Pay-by-invoice/BNPL (Unzer, Billie): there the address was the basis for approving the payment. Kit warns you before the change. You can still make it, but if in doubt, clear it with the payment provider first.
- Can be corrected several times. A further correction creates another corrected invoice; every version stays archived.
Sources: § 31 Abs. 5 UStDV, § 14 Abs. 4 UStG, § 3 UStG, § 3a UStG, § 3c UStG, BFH, V R 26/15, Abschn. 15.2a UStAE
GoBD archive
The structured XML record (EN 16931) is archived for 8 years, tamper-proof (§ 14b Abs. 1 UStG, § 147 Abs. 3 AO). It sits in immutable storage (WORM) with a SHA-256 checksum that is verified on every retrieval.
Why no PDF is stored
The human-readable PDF/A-3 view is reproduced from the XML on demand. For small-amount invoices, the pinned HTML is archived instead. The PDF is not stored permanently, because it contains nothing that is not in the XML.
Under the current version of the GoBD (the German tax authority's rules for electronic bookkeeping, BMF letter of July 14, 2025), an invoicing program does not have to keep a pictorial copy of the outgoing invoice. That includes the PDF part of a hybrid format, as long as an identical copy in content can be produced at any time (GoBD para. 76). For e-invoices received, the structured part is likewise enough, as long as the image part contains no additional tax-relevant details (GoBD para. 131).
Immutable, exportable, your duty
- Immutable: finalized documents are never changed or deleted. Corrections that change the amount go through a cancellation invoice and a new invoice; a pure address correction goes through a corrected invoice under the same number (see Correcting the billing address).
- Export after the contract ends: the export of the complete archive stays open to you after the contract ends (free of charge for 90 days after cancellation).
- Retention duty: under § 14b UStG and § 147 AO it lies legally with you as the merchant. Rechnungskit provides the archive and export for it.
Sources: § 14b UStG, § 147 AO, GoBD, 2nd amendment of July 14, 2025
Layout
You set the template, logo, accent color and text blocks under Settings → Invoice template. Every change creates a new, immutable template version, and existing documents stay as they were.
Where to find it in the app
Rechnungskit is not a tax advisory or law firm. This article explains general principles and does not replace advice from a tax advisor (Steuerberater, § 5 StBerG) or a lawyer (§ 3 RDG). Rechnungskit is built for businesses based in Germany and prepares documents, tax rates and bookings automatically. How your specific case is treated remains your decision, ideally together with your tax advisor or a lawyer.