Representing cash discounts (Skonto) correctly in e-invoices
Pubblicato 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.