fakturai blog

Correct & cancel

Correcting and cancelling a German e-invoice: corrections, cancellations and credit notes

Short answer: once a German e-invoice has been issued and transmitted, you do not edit or delete it. You create a new, standalone document that references the original in a structured way — a cancellation/credit note (invoice type 381), a corrected invoice (type 384), or a supplementary correction. That correction document is itself a full EN 16931 e-invoice and has to pass the KoSIT accept gate again.

Why you cannot just overwrite an e-invoice

A structured e-invoice is a machine-readable record that the recipient books automatically and that must be archived unchanged (GoBD). Once it has left your system it counts as issued. A correction therefore works like it did on paper: through a further document that clearly refers to the original (cf. § 31(5) UStDV on invoice correction). Timing matters:

The structured mandatory field: the preceding invoice reference (BG-3)

The technical core of every e-invoice correction is the reference to the preceding invoice (business group BG-3):

Through these fields the recipient system links the correction to the original automatically. Without the reference the correction floats unconnected in the system — a common cause of queries and rejections.

The invoice type code (BT-3) decides the kind of correction

In the header, the invoice type code (BT-3) defines the document type. The codes relevant to corrections:

Which codes are actually allowed depends on the profile and XRechnung version; the KoSIT validator shows whether the chosen type is accepted.

A language trap: "Gutschrift" has two meanings

The German word Gutschrift is ambiguous and regularly causes mistakes:

When cancelling or correcting you almost always mean the first. Use code 389 only if you genuinely settle via self-billing.

Two clean routes: full cancellation or corrected invoice

  1. Cancel + reissue: create a cancellation/credit note (381) that fully reverses the original via BG-3, then a new correct invoice (380) with its own sequential number.
  2. Corrected invoice (384): a single document replaces the faulty invoice and references it via BG-3.

In both cases the correction document gets its own sequential invoice number (BT-1) — you never reuse the original number.

The most common mistake: sending the correction as a PDF

A trailing PDF "correction" is no more a structured e-invoice than the original was — see why a PDF is not an e-invoice. The correction document must satisfy the same mandatory fields as a regular e-invoice — see German e-invoice mandatory fields.

VAT: why the correction matters (§ 14c UStG)

If an invoice states too much or unauthorised VAT, the issuer in principle owes that VAT until the invoice is effectively corrected towards the recipient (§ 14c UStG). A correct, traceable correction is therefore not just a formality. The tax classification of the individual case belongs with your tax advisor — fakturai delivers the technically compliant form, not the tax assessment.

B2G: the correction document also needs the Leitweg-ID

If the original invoice goes to a public authority (XRechnung), the cancellation or corrected invoice must also satisfy the Leitweg-ID (BT-10) and the German business rules (BR-DE), otherwise the receiving portal rejects it. Background: Leitweg-ID in XRechnung.

What the fakturai validator and API do here

Typical validation pitfalls are the same as for any e-invoice — see common XRechnung validation errors (BR-DE).

What fakturai does not replace (GHOA-1671)

fakturai checks and generates technical format and structural compliance. Whether a correction counts for VAT as a cancellation, a correction or a credit note, which amounts and periods apply, and how to book it, is decided by your tax and accounting advisors. fakturai is not tax advice and makes no legal, tax or financial guarantees.

Next step

Free German e-invoice validator

Related: Mandatory fields · E-invoice example (XML) · XRechnung validation errors · E-invoices and DATEV · What is XRechnung?

Free validator · Create API key · API docs