Skip to content

Partial and final invoices, early payment discount in e-invoices

Larger orders are often billed in parts: partial invoices (Abschlagsrechnungen) are issued while the work is in progress, and a final invoice (Schlussrechnung) covering the whole service follows at the end, with the partial invoices deducted. Pantarey calculates these deductions, shows them on the invoice and writes them into the e-invoice as required by EN 16931. In addition, an early payment discount (Skonto) can be set on any invoice.


Invoice types

The invoice type is chosen in the field "Dokumenttyp" (app_invoice_type):

Value Label Type code in the e-invoice Use
invoice Rechnung 380 regular invoice (default)
partial Abschlagsrechnung 326 partial invoice outside construction, e.g. an agreed advance payment
partial_construction Abschlagsrechnung (Bau) 875 partial invoice by construction progress
partial_final_construction Teilschlussrechnung (Bau) 876 final billing of an accepted construction section
final_construction Schlussrechnung (Bau) 877 final billing of the entire construction work

Cancellation and credit note are unchanged (type code 384 and 381).

  • The invoice types are part of version 1.7.0 of the template "Rechnungen (Datenstrukturen)".
  • Updating the template adds new fields but does not change existing ones. In an existing installation, the four new values therefore have to be added by hand to the field "Dokumenttyp" in the data designer (value and label as in the table).

Deducting partial invoices

In the field "Abschlagsrechnungen (abziehen)" (app_partial_invoices), select the partial invoices already issued that are deducted from this invoice – typically in the partial final or final invoice. The most recent invoices are listed first.

The invoice itself contains the entire service. When it is created, Pantarey calculates:

  1. Total service net, VAT and gross from the line items – as for any invoice.
  2. For each selected partial invoice: the net, VAT and gross amount it billed itself.
  3. Amount still due = total service gross minus the sum of the partial invoices gross.

Example:

Net VAT 19 % Gross
Total service 40,000.00 € 7,600.00 € 47,600.00 €
1st partial invoice 10,000.00 € 1,900.00 € 11,900.00 €
2nd partial invoice 15,000.00 € 2,850.00 € 17,850.00 €
Amount still due 17,850.00 €

Notes on the selection:

  • If a partial invoice already deducts earlier ones itself (cumulative partial invoices), it only counts with the amount it billed in addition. In the final invoice, simply select all partial invoices.
  • The amount billed by the selected partial invoices is deducted. German VAT law refers to amounts already received. How an unpaid partial invoice is handled – for example cancelling it and billing the full amount in the final invoice – is up to the company, if in doubt together with its tax advisor.
  • The partial invoices must be selected in the form or read from the data store beforehand. If only an ID is passed, the calculation stops with a message.
  • For a cancellation invoice, the deductions of the original invoice are taken over with reversed sign.

Early payment discount (Skonto)

"Skonto (%)" (app_skonto_percent) and "Skontofrist (Tage)" (app_skonto_days) offer a discount, e.g. 2 % for payment within 10 days. The following fields are calculated:

Field Content
app_skonto_date last day for the discount (invoice date plus discount period)
app_skonto_amount discount amount in euros
app_amount_due_skonto amount to pay with the discount
  • The discount applies to the amount still due – for a final invoice, the amount after deducting the partial invoices.
  • No discount is calculated for cancellations, credit notes and invoices without an amount due.
  • If no discount is entered, the fields stay empty.

What the e-invoice contains

Information Content
Invoice type (BT-3) type code as in Invoice types
Invoice total (BT-112) total service gross
Paid amount (BT-113) sum of the deducted partial invoices gross
Amount due for payment (BT-115) amount still due
Invoice note (BT-22) list of all partial invoices with number, date, net, VAT and gross
Preceding invoice (BT-25, BT-26) number and date of the last deducted partial invoice
Payment terms (BT-20) discount in the machine-readable form #SKONTO#TAGE=10#PROZENT=2.00#
  • The VAT breakdown refers to the entire service. German VAT law requires this for final invoices (Section 14 (5) UStG): state the total consideration and tax, then deduct the partial payments with their tax.
  • The e-invoice can only hold one preceding invoice reference. All partial invoices are therefore also listed in the invoice note.
  • When partial invoices are deducted, the discount line also states the amount the discount refers to (BASISBETRAG).

Adapting the PDF template

The service task's HTML template is not adapted automatically. The following block shows the deductions as a separate table below the totals, followed by the amount still due and the discount sentence:

{{#if app_has_prepayments}}
<h3>Abzüglich bereits berechneter Abschlagsrechnungen</h3>
<table class="deductions">
  <tr><th>Rechnung</th><th>vom</th><th>Netto</th><th>USt.</th><th>Brutto</th></tr>
  {{#each app_prepayments}}
  <tr>
    <td>{{app_invoice_no}}</td>
    <td>{{toGermanDate app_invoice_date}}</td>
    <td>{{currency_eur app_net}}</td>
    <td>{{currency_eur app_vat}}</td>
    <td>{{currency_eur app_gross}}</td>
  </tr>
  {{/each}}
  <tr>
    <td colspan="2">Summe Abschlagsrechnungen</td>
    <td>{{currency_eur app_prepaid_net}}</td>
    <td>{{currency_eur app_prepaid_vat}}</td>
    <td>{{currency_eur app_prepaid_total}}</td>
  </tr>
</table>
<p><strong>Noch zu zahlen: {{currency_eur app_amount_due}}</strong></p>
{{/if}}

{{#if app_skonto_amount}}
<p>
  Bei Zahlung bis zum {{toGermanDate app_skonto_date}} {{numberFormat app_skonto_percent}} % Skonto
  ({{currency_eur app_skonto_amount}}), zu zahlen sind dann {{currency_eur app_amount_due_skonto}}.
  Ohne Abzug zahlbar bis zum {{toGermanDate app_due_date}}.
</p>
{{/if}}

Explanation:

  • app_has_prepayments is true as soon as at least one partial invoice is deducted. Without deductions the invoice stays unchanged.
  • app_amount_due is the amount still due. It also belongs in the QR code for the bank transfer, e.g. (toFixed app_amount_due 2) instead of app_gross_total.
  • The template sets the subject per invoice type, e.g. "Schlussrechnung" instead of "Rechnung", with ifEquals app_invoice_type "final_construction".
  • All available helpers are described in the Handlebars helper reference.

Notes