---
title: "Cancellation, partial cancellation, correction of e-invoices"
description: "Never change an issued invoice: when to cancel, partially cancel or correct, what type codes 380, 381 and 384 mean and how Quittio aligns the VAT to the cent."
canonical_url: "https://quittio.dev/en/guides/cancellation-partial-cancellation-correction"
locale: en
meta:
  "og:description": "Never change an issued invoice: when to cancel, partially cancel or correct, what type codes 380, 381 and 384 mean and how Quittio aligns the VAT to the cent."
  "og:image": "https://quittio.dev/og/quittio-en.jpg"
  "og:image:alt": "Quittio: Invoices, settled. E-invoicing for PHP and Laravel, with a validated sample invoice."
  "og:image:height": "630"
  "og:image:type": image/jpeg
  "og:image:width": "1200"
  "og:title": "Cancellation, partial cancellation, correction of e-invoices"
  "twitter:image": "https://quittio.dev/og/quittio-en.jpg"
  "twitter:image:alt": "Quittio: Invoices, settled. E-invoicing for PHP and Laravel, with a validated sample invoice."
---

> Index of every page on this site: [llms.txt](https://quittio.dev/llms.txt)

# Cancellation, partial cancellation, correction: changing invoices correctly

Editing a wrong invoice is the fastest way into trouble. The right way is a new document that refers to the original. Which one depends on the case.

**Management**16 Oct 2026 · about 11 minutes

**In short**

An issued invoice is **never changed or deleted**. You issue a new document with **its own number** that refers to the original: a **cancellation** when the whole invoice no longer applies, a **partial cancellation** when only lines, quantities or amounts no longer apply, and a **correction** when details were wrong. Cancellations and corrections of an e-invoice are e-invoices themselves, in the same format.

## The principle: never change, always add

Once issued, an invoice is an accounting record. The GoBD require that records are not changed in a way that loses the original content (sec. 146 (4) AO). Besides, your customer already has the invoice and may have booked it.

So you fix mistakes with a **new document**. It gets its own number, names the number and date of the original (field BG-3, “preceding invoice reference”, in the e-invoice) and reverses its amounts in full or in part.

## The terms

| Term | What it is | Typical reason |
| --- | --- | --- |
| **Cancellation** (Stornorechnung) | Reverses the whole invoice | charged twice, order cancelled |
| **Partial cancellation** | Reverses single lines, quantities or amounts | an item returned, a price reduction on one line |
| **Correction** (Rechnungsberichtigung) | Replaces a wrong invoice with a correct one | wrong address, wrong price, missing mandatory detail |
| **Gutschrift** under German VAT law | The **recipient** of the supply bills (self-billing) | commissions, revenue shares; **not** a cancellation |

**Don’t call it “Gutschrift”**

In everyday German, a cancellation is often called “Gutschrift”. Under VAT law, however, a Gutschrift is something else: a self-billed invoice. So call the document “Stornorechnung” (cancellation invoice). Quittio titles it that way in Germany automatically.

## Which document for which case?

| Situation | Document |
| --- | --- |
| Invoice sent twice | Cancellation |
| Order called off after invoicing | Cancellation |
| Customer returns one of three items | Partial cancellation (quantity); not required for VAT |
| Subsequent discount, early payment discount or reduction for a defect | No correction needed; a partial cancellation (amount) is possible |
| Service differs from what was invoiced, e.g. changed measurements | Correction (at least of the description of the service) |
| Wrong address or missing customer VAT ID | Correction |
| Wrong price, wrong date of supply | Correction |
| Invoice to the wrong customer | Cancellation and a new invoice to the right customer |

If the consideration is reduced after invoicing, for example by an early payment discount, a reduction after a complaint about a defect or the return of an item, **no invoice correction** is required for VAT. Output and input VAT are then adjusted under sec. 17 UStG (Federal Ministry of Finance letter of 15 October 2025, no. 51a). A partial cancellation is still allowed and often practical for accounting. If the **scope of the service** changes instead, for example through changed measurements, the invoice must be corrected, at least the description of the service (no. 51b).

## Signs and type codes: 380, 381, 384

Every e-invoice carries a type code (BT-3). There are two common ways to represent cancellations and corrections:

| Representation | Type code | Amounts |
| --- | --- | --- |
| Cancellation as credit note (Quittio default) | 381 (credit note) | positive; the direction follows from the type. UBL writes a separate `CreditNote` document |
| Cancellation as negative invoice | 380 (invoice) | negative |
| Corrected invoice | 384 (corrected invoice) | positive, complete new content |

Both cancellation variants are allowed in Germany. Some receiving systems expect the negative invoice, which is why the strategy is configurable. A cancellation of a credit note (381) is always an invoice (380) with positive amounts.

config

```
// config/quittio.php
'corrections' => [
    'cancellation_strategy' => null,   // credit_note (381) | negative_invoice (380); null = country pack
],

// config/quittio-managed.php
'correction' => [
    'strategy' => null,                // cancel_and_reissue | corrected_invoice (384); null = country pack
],
```

## Cancelling with Quittio open source

Even without Managed, Quittio creates the cancellation document. It is built from the data of the original, in the same format and with a note referring to the original:

InvoiceController.php

```
// from a rendered result, in the same formats
$cancellation = $result->cancel('ST-2026-0001', reason: 'Charged twice');

// from stored invoice data (e.g. InvoiceData::fromJson())
$cancellation = Quittio::make(
    Quittio::cancellation($original, 'ST-2026-0001', reason: 'Charged twice')
)->render();

// as a negative invoice (type code 380)
$cancellation = $result->cancel('ST-2026-0001', reason: 'Charged twice', strategy: 'negative_invoice');
```

With `lines:` you cancel part of an invoice, by whole lines, quantities or amounts:

InvoiceController.php

```
$part = $result->cancel('ST-2026-0002', lines: [
    ['line' => '1', 'quantity' => '1'],      // 1 unit of line 1
    ['line' => '2', 'amount' => '50.00'],    // €50.00 of line 2
]);
```

When an invoice is cancelled in several parts, pass the earlier parts as `history:`. Only then can Quittio align the VAT of all parts with the original (see below). Without Managed, you keep track of numbers and history yourself.

## With Quittio Managed

Managed keeps the history itself, assigns the numbers and sets the status of the original. Three methods cover every case:

InvoiceService.php

```
// full cancellation
$cancellation = $invoice->cancel(reason: 'Charged twice');

// partial cancellation
$cancellation = $invoice->cancelPartially([
    ['line' => '3'],                       // whole line or what is left of it
    ['line' => '1', 'quantity' => 1],      // 1 of 3
    ['line' => '2', 'amount' => '50.00'],  // amount, e.g. a price reduction
], reason: 'Partial return');

// correction: a draft with the data of the original
$draft = $invoice->correct();
$draft->updateData(fn (InvoiceBuilder $b) => $b->updateLine('2', netPrice: '80.00'));
$draft->issue();
```

- The original only gets a new status: `partially_cancelled` or `cancelled`. It is never changed.
- Every cancellation states in a note which invoice it cancels and why.
- More than was invoiced cannot be cancelled, not even by concurrent processes.
- If issuing fails, no number is used up and the original stays unchanged.
- A cancellation cannot be dated before the original.

For corrections there are two strategies:

| Strategy | How it works |
| --- | --- |
| `cancel_and_reissue` (default in Germany) | The original is cancelled completely, then the correction is issued as a new invoice. Two numbers are used. |
| `corrected_invoice` | The correction is issued with type code 384 (“Rechnungskorrektur”) and replaces the original, which is marked as cancelled. |

Both steps run in one transaction: either both documents exist or neither does.

## VAT on partial cancellations

VAT is rounded per document and rate. If each partial cancellation rounds on its own, all parts together often don’t add up to exactly the VAT of the original. An example with three lines at 19 %:

|  | Net | VAT rounded per part | VAT aligned cumulatively |
| --- | --- | --- | --- |
| Original | €29.00 | €5.51 | €5.51 |
| Partial cancellation 1 | €9.67 | €1.84 | €1.84 |
| Partial cancellation 2 | €9.67 | €1.84 | €1.83 |
| Partial cancellation 3 | €9.66 | €1.84 | €1.84 |
| **Sum of cancellations** | €29.00 | **€5.52** (1 cent too much) | **€5.51** |

So Quittio rounds cumulatively: each partial cancellation carries the VAT due after all cancellations so far, minus what was already cancelled. The last part aligns exactly with the original. A single document deviates by at most one cent, which rule BR-CO-17 of EN 16931 allows; the document says so in a note.

**Under review**

The defaults for cancellations (381 with positive amounts) and corrections (cancel and reissue), and the one-cent alignment, are currently being reviewed with a tax adviser. Both strategies are configurable.

## Cancellations and corrections are e-invoices

If the original was an e-invoice, cancellations and corrections are e-invoices too. The Federal Ministry of Finance letter of 15 October 2025 deals with correcting e-invoices specifically (nos. 51a and 51b). Quittio therefore creates both documents in the same format, profile and language as the original and validates them like any other invoice.

## Frequently asked questions

### **May I delete a wrong invoice?**

No. An issued invoice is never deleted or changed. You cancel it with a document of its own and, if needed, issue a new one.

### **Does a cancellation invoice need its own number?**

Yes. Every cancellation invoice is an invoice of its own with its own number that refers to the original.

### **Positive or negative amounts?**

Both are allowed in Germany. By default Quittio creates a document with type code 381 and positive amounts; negative\_invoice creates an invoice (380) with negative amounts.

### **What is the difference between a cancellation and a Gutschrift?**

A cancellation reverses your own invoice. A Gutschrift under German VAT law is a self-billed invoice issued by the recipient. So don’t call a cancellation “Gutschrift”.

### **Can I partially cancel an invoice several times?**

Yes. Quittio tracks what has already been cancelled per line and aligns the VAT of all parts with the original. Without Managed, pass the earlier parts as history.

### **Must the correction of an e-invoice be an e-invoice again?**

Quittio always creates cancellations and corrections in the format of the original. Correcting e-invoices is covered by the Federal Ministry of Finance letter of 15 Oct 2025 (nos. 51a, 51b).

**As of: 16 Oct 2026. Not tax or legal advice.**

Sources: [Sec. 14 UStG (invoice, self-billing)](https://www.gesetze-im-internet.de/ustg_1980/__14.html) · [Sec. 14c UStG](https://www.gesetze-im-internet.de/ustg_1980/__14c.html) · [Sec. 17 UStG](https://www.gesetze-im-internet.de/ustg_1980/__17.html) · [Sec. 31 (5) UStDV](https://www.gesetze-im-internet.de/ustdv_1980/__31.html) · [Sec. 146 (4) AO](https://www.gesetze-im-internet.de/ao_1977/__146.html) · [Federal Ministry of Finance letter of 15 Oct 2025 (nos. 51a, 51b)](https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Steuerarten/Umsatzsteuer/Umsatzsteuer-Anwendungserlass/2025-10-15-einfuehrung-obligatorische-e-rechnung.html)

## Read next

- [**Management**

  **Gapless invoice numbers: what the GoBD require**

  What German VAT law and the GoBD require, typical mistakes and safe number assignment.](https://quittio.dev/en/guides/gapless-invoice-numbers-gobd)
- [**How-to**

  **Create an e-invoice in Laravel, step by step**

  From composer require to a valid ZUGFeRD invoice: installation, company data, format choice, errors, tests and cancellations.](https://quittio.dev/en/guides/create-e-invoices-with-laravel)
- [**Formats**

  **ZUGFeRD, XRechnung or Peppol: which format do you need?**

  How the formats differ, who needs which and how Quittio chooses automatically.](https://quittio.dev/en/guides/zugferd-xrechnung-or-peppol)

## Cancellations without headaches.

Quittio Managed keeps numbers, history and VAT in order for you.

[**Quittio Managed**](https://quittio.dev/en/managed) [**Cancellations in the docs**](https://docs.quittio.dev/managed#cancellations-and-corrections)

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://quittio.dev/en#website","@type":"WebSite","description":"E-invoicing for PHP and Laravel: create, validate, read and archive ZUGFeRD, XRechnung and Peppol invoices.","inLanguage":"en","name":"Quittio","url":"https://quittio.dev/en","publisher":{"@id":"https://quittio.dev/#identity"},"translationOfWork":{"@id":"https://quittio.dev/#website"}},{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#webpage","@type":"WebPage","dateModified":"2026-10-16","datePublished":"2026-10-15","description":"Never change an issued invoice: when to cancel, partially cancel or correct, what type codes 380, 381 and 384 mean and how Quittio aligns the VAT to the cent.","name":"Cancellation, partial cancellation, correction of e-invoices","url":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction","breadcrumb":{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#breadcrumb"},"isPartOf":{"@id":"https://quittio.dev/en#website"},"potentialAction":[{"@type":"ReadAction","target":["https://quittio.dev/en/guides/cancellation-partial-cancellation-correction"]}],"primaryImageOfPage":{"@id":"https://quittio.dev/#logo"}},{"@id":"https://quittio.dev/#identity","@type":"Organization","description":"Open-Source-Bibliothek für E-Rechnungen in PHP und Laravel (ZUGFeRD, XRechnung, Peppol) und Quittio Managed.","email":"kontakt@niklasforst.de","legalName":"Niklas Forst – Softwareentwicklung","name":"Quittio","url":"https://quittio.dev","founder":{"@type":"Person","name":"Niklas Forst","url":"https://quittio.dev/ueber"},"logo":{"@id":"https://quittio.dev/#logo"},"sameAs":["https://github.com/Quittio/quittio","https://packagist.org/packages/quittio/quittio"]},{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#article","dateModified":"2026-10-16","datePublished":"2026-10-15","description":"Never change an issued invoice: when to cancel, partially cancel or correct, what type codes 380, 381 and 384 mean and how Quittio aligns the VAT to the cent.","headline":"Cancellation, partial cancellation, correction: changing invoices correctly","inLanguage":"en","thumbnailUrl":"https://quittio.dev/og/quittio-en.jpg","@type":["Article","TechArticle"],"author":{"@id":"https://quittio.dev/#/schema/person/1"},"image":{"@id":"https://quittio.dev/#/schema/image/1"},"isPartOf":{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#webpage"},"mainEntityOfPage":{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#webpage"},"publisher":{"@id":"https://quittio.dev/#identity"}},{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#breadcrumb","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","name":"Home","item":"https://quittio.dev/en","position":1},{"@type":"ListItem","name":"Guides","item":"https://quittio.dev/en/guides","position":2},{"@type":"ListItem","name":"Cancellation and correction","position":3}]},{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#/schema/question/1","@type":"Question","inLanguage":"en","name":"May I delete a wrong invoice?","acceptedAnswer":{"@type":"Answer","text":"No. An issued invoice is never deleted or changed. You cancel it with a document of its own and, if needed, issue a new one."}},{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#/schema/question/2","@type":"Question","inLanguage":"en","name":"Does a cancellation invoice need its own number?","acceptedAnswer":{"@type":"Answer","text":"Yes. Every cancellation invoice is an invoice of its own with its own number that refers to the original."}},{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#/schema/question/3","@type":"Question","inLanguage":"en","name":"Positive or negative amounts?","acceptedAnswer":{"@type":"Answer","text":"Both are allowed in Germany. By default Quittio creates a document with type code 381 and positive amounts; negative_invoice creates an invoice (380) with negative amounts."}},{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#/schema/question/4","@type":"Question","inLanguage":"en","name":"What is the difference between a cancellation and a Gutschrift?","acceptedAnswer":{"@type":"Answer","text":"A cancellation reverses your own invoice. A Gutschrift under German VAT law is a self-billed invoice issued by the recipient. So don’t call a cancellation “Gutschrift”."}},{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#/schema/question/5","@type":"Question","inLanguage":"en","name":"Can I partially cancel an invoice several times?","acceptedAnswer":{"@type":"Answer","text":"Yes. Quittio tracks what has already been cancelled per line and aligns the VAT of all parts with the original. Without Managed, pass the earlier parts as history."}},{"@id":"https://quittio.dev/en/guides/cancellation-partial-cancellation-correction#/schema/question/6","@type":"Question","inLanguage":"en","name":"Must the correction of an e-invoice be an e-invoice again?","acceptedAnswer":{"@type":"Answer","text":"Quittio always creates cancellations and corrections in the format of the original. Correcting e-invoices is covered by the Federal Ministry of Finance letter of 15 Oct 2025 (nos. 51a, 51b)."}},{"@id":"https://quittio.dev/#/schema/person/1","@type":"Person","name":"Niklas Forst","url":"https://quittio.dev/ueber"},{"@id":"https://quittio.dev/#logo","@type":"ImageObject","caption":"Quittio","contentUrl":"https://quittio.dev/logo.png","inLanguage":"en","url":"https://quittio.dev/logo.png"},{"@id":"https://quittio.dev/#/schema/image/1","@type":"ImageObject","contentUrl":"https://quittio.dev/og/quittio-en.jpg","inLanguage":"en","url":"https://quittio.dev/og/quittio-en.jpg"}]}
```