← All articles

Representing cash discounts (Skonto) correctly in e-invoices

Published 26 May 2026

An early-payment discount — Skonto in German-speaking markets — looks trivial on a paper invoice: “2% within 10 days, otherwise net 30”. In a structured e-invoice it needs more care, because EN 16931 has no dedicated field for a conditional discount that only applies when the buyer pays early.

Payment terms carry the discount

The established route is the payment terms text (BT-20). XRechnung defines a machine-readable convention for it, so a buyer’s software can parse the percentage, the deadline and the resulting amount. The key technical point: the discount is not subtracted from the document total. The invoice is transmitted over the full amount; the reduced figure only becomes relevant if payment happens inside the window.

Don’t model it as an allowance

A frequent implementation mistake is to encode Skonto as a document-level allowance (BG-20). In the data model an allowance reduces the payable amount unconditionally and feeds into the totals and the VAT breakdown (BG-23) — which is exactly what a conditional early-payment discount should not do at issue time. Mixing the two structures is a reliable way to fail validation, and to transmit a total that does not reconcile.

eunormia recalculates every total server-side and rejects an invoice whose totals do not add up, rather than silently correcting them. That keeps the Skonto question a deliberate modelling decision in the payment terms, not an accident that slips through the gate.

Convert an invoice