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:
- Total service net, VAT and gross from the line items – as for any invoice.
- For each selected partial invoice: the net, VAT and gross amount it billed itself.
- 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_prepaymentsistrueas soon as at least one partial invoice is deducted. Without deductions the invoice stays unchanged.app_amount_dueis the amount still due. It also belongs in the QR code for the bank transfer, e.g.(toFixed app_amount_due 2)instead ofapp_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
- Whether an order is billed with partial invoices, and for which amounts, is decided when the invoice is created – Pantarey does not check this.
- The feature is supported by the services Complete e-invoice, Calculate invoice amounts and Map invoice data to ZUGFeRD.
- It can be combined with reverse charge: the partial invoices are then deducted without VAT, see Reverse charge (Section 13b UStG) in e-invoices.