Skip to content

Cancellations and corrections

An issued invoice is permanent. Under German law it cannot be voided or edited, and nothing in OnERP changes one in place.

Changing what a customer owes means issuing a new document that refers back to it. There are two, and they are not the same instrument at different sizes.

Cancellation (Stornorechnung) Correction (Rechnungskorrektur)
Says this document should never have existed the document was right, the amount changed
Credits the whole invoice the lines you pick
The order reopens for billing stays fully billed

A cancellation withdraws everything the invoice asserted, including that the order was billed — so the quantities go back and the order can be invoiced again.

A correction credits money and nothing else. The goods were delivered and they were billed; a complaint settled afterwards does not unmake either, and an order that reopened would offer to bill goods the customer already has.

Goods actually coming back are a third thing again: a movement into stock, recorded on its own document.

A correction is never labelled Gutschrift. §14 Abs. 2 UStG reserves that word for self-billing, where the buyer issues the invoice, and a document using it for a commercial credit can be read as one.

One business object, three types, two stored balances. An invoice bills an order and counts against its lines; a credit names an invoice and counts against its lines.

flowchart LR
    O[Sales order line\nquantityInvoiced]
    I[Invoice line\namountCredited]
    C[Cancellation]
    K[Correction]
    I -- "+ quantity" --> O
    C -- "− quantity" --> O
    C -- "+ full net amount" --> I
    K -- "+ what it credits" --> I
Invoice Cancellation Correction
Created by Create Invoice on an order Cancel Invoice Correct Invoice
Names the order lines it bills the invoice, and each of its lines the invoice, and the lines it credits
Lines what is still open on the order every line, copied whole the lines picked, at the quantity and price given
Feeds the order’s invoiced quantity, up the order’s invoiced quantity, back down; the invoice’s credited amount, in full the invoice’s credited amount, by what it credits
Offered while the order is open with something left to bill no line of the invoice has been credited some line of the invoice still has net amount left
Refused when nothing is open, or a line is not the order’s never once offered a line is not the invoice’s, or credits more units, more per unit, or more than the line has left

Both balances are kept by a rollup and never typed. They are what the actions read to decide whether they are offered, and what a correction is measured against.

Both carry two things an ordinary invoice does not: an invoice type, and a reference to the preceding invoice. Neither can be typed in; both are written when the document is created.

This follows EN 16931, the e-invoicing standard mandatory for German B2B since 2025, which models a credit as one document plus a type code rather than as a separate kind of record. The reference the law requires is document to document: a credit has to name what it credits specifically and unambiguously. A correction additionally records which invoice line each of its lines credits, so the trail reads from either end.

The type leads the invoice list, which splits into Invoices, Cancellations and Corrections over an unfiltered tab, because the journal has to read gapless.

A credit states its amounts as positive numbers. It carries no negative totals and no minus signs.

Direction is the document’s type, not its arithmetic. That matches accounting practice, where direction is debit or credit rather than a sign, and it is the shape the e-invoice standard expects.

What it means in practice: any total across invoices has to read the type to know which way a document runs. The one place that already happens is the order line’s invoiced quantity, which a cancellation takes back down and a correction leaves alone.

Every invoice line carries a credited amount, kept by a rollup from the credits that name the line: a cancellation adds the whole net amount, a correction what it credits. That one number decides what is still offered.

  • Cancel Invoice is offered only while no line has been credited at all. A reversed invoice, or one a correction has touched, cannot be withdrawn in full.
  • Correct Invoice is offered while some line still has net amount left, and a correction is refused when a line would be credited beyond what is left, or for more units or more per unit than the line billed. Two complaints against one invoice are two credits, as long as they fit.

The balance is money, not units. A correction’s quantity is only how its credit is computed; goods coming back are a stock movement on their own document.

What is checked on every save of any invoice, credit or not, is the same short list: the required fields (profile, customer, date, currency, terms, a product and a quantity per line), that the currency does not change once lines exist, and the VAT treatment the eu-vat domain derives. Everything specific to a credit — whether it may be raised, and how much — is the action’s, so an invoice saved by hand or by an integration meets the same bar and nothing more.

A cancellation copies the invoice whole and re-derives almost nothing. The reason is concrete: VAT rates are read from the current rate table, so a cancellation that re-derived its tax would, after a rate change, reverse a different amount than was billed, and the VAT return would never net back to zero. The two exceptions are the number and the date — a cancellation dates itself today and mints its own number when released.

A correction cannot copy, because its amounts are the point. It inherits what the original froze — the parties, the addresses, the VAT treatment — and works out its own totals and payment dates from the lines it carries. Its tax it re-derives, at the rate the table holds today, because a rate does not yet carry the period it applies to.

Releasing is deliberately a separate step. An invoice carries a service date nothing can guess, and someone should see it before a number is minted and the document locks.

One template renders all three. A credit’s totals block ends in Erstattungsbetrag, a row names the preceding invoice, and the payment block is suppressed — a credit is credited, not collected, so a due date on it would contradict what it announces. A correction also prints the reason it was issued.

Naming the preceding invoice is not optional: the document refuses to print rather than printing a placeholder, because a credit that cannot name what it credits is not a document.

Both leave as a credit note, carrying a reference to the preceding invoice’s number and issue date. See Send a document.

Releasing an invoice is not checked against the order’s remaining quantity. Whether an invoice may bill more than its order line has open has no ruling yet, so nothing prevents it. Nothing checks a credit against what the invoice charged either.

Doing it is Cancel an invoice and Correct an invoice.