Rechnungen

Rechnungsvorlagen

Ein Rechnungstemplate (InvoiceTemplate) beschreibt, welche Posten in welcher Reihenfolge auf den Jahresrechnungen eines Vereins erscheinen. Pro Verein und Abrechnungsjahr gibt es genau ein Template. Das Template steuert die Berechnung — die Rechenlogik liest ausschließlich das Template, es gibt keine fest codierten Positionen.

Nur Administratoren und Vorstandsmitglieder können Rechnungstemplates einsehen und bearbeiten. Der Editor liegt unter Vereinseinstellungen → Rechnungsvorlage.


#Aufbau der Template-Konfiguration

Das Template speichert seine Struktur als JSON-Objekt im Feld config. Die Grundstruktur:

 1{
 2    "mode": "combined",
 3    "invoices": [
 4        {
 5            "type": "lease",
 6            "label": "Jahresrechnung",
 7            "sections": [
 8                {
 9                    "id": "pacht",
10                    "label": "Pacht",
11                    "items": [
12                        { "type": "base_rent", "id": "9d23b74a-e7e8-46a2-8e4a-a23b8b4de5dc", "position": 1 },
13                        { "type": "public_legal_rate", "id": "62a2c581-681d-403b-b8fd-647bec4267bf", "position": 2 }
14                    ]
15                }
16            ]
17        }
18    ]
19}
Feld Beschreibung
mode combined oder separate — bestimmt ob eine oder zwei Rechnungen pro Parzelle erzeugt werden
invoices Array mit einem Eintrag (combined) oder zwei Einträgen (separate)
invoices[].type lease für Pacht-/Gebührenrechnung, water für Wasserrechnung
invoices[].sections Abschnitte der Rechnung mit Label und Positionsliste
sections[].id Kennung des Abschnitts, eindeutig innerhalb der Rechnung
items[].type Positionstyp aus InvoiceLineItemTypeEnum (siehe unten)
items[].id Kennung der Zeile, eindeutig innerhalb des Abschnitts
items[].position Anzeigereihenfolge innerhalb des Abschnitts
items[].addon_id Nur für Typ addon: UUID des verknüpften RentPaymentAddOn-Eintrags

Die beiden id-Felder werden beim Anlegen vergeben und identifizieren eine Zeile beim Umsortieren — die Position allein genügt dafür nicht, und der Typ auch nicht, weil ein Abschnitt dieselbe Zwischensumme mehrfach enthalten darf. Ältere Konfigurationen ohne id bekommen beim Öffnen im Editor eine; von Hand vergebene Dubletten werden dabei ersetzt. Beides wirkt sich erst mit dem nächsten Speichern auf die gespeicherte Konfiguration aus.

Eine Zwischensumme zeigt die laufende Summe aller Positionen ihres Abschnitts bis zu ihr selbst; frühere Zwischensummen zählen dabei nicht mit. Ist eine Wasser-Umsatzsteuer eingestellt, steht die Zwischensumme brutto da, mit der Zeile „inkl. … MwSt“ darunter. PDF und der Reiter Pacht im Parzellen-Flyout rechnen sie gleich; Abschnittssumme und Gesamtbetrag ändert sie nicht.

Im Modus separate enthält das invoices-Array zwei Einträge: einen mit "type": "lease" und einen mit "type": "water". Der Wasserabschnitt erscheint dann nur in der Wasserrechnung.

#Modus wechseln

Ein Wechsel zwischen Kombiniert und Getrennt ersetzt die Rechnungsstruktur durch die Standardkonfiguration des neuen Modus. Weicht die Struktur davon ab — Abschnitte, Bezeichnungen, Posten, Reihenfolge, Zwischensummen oder eingefügte Zusatzposten —, fragt der Editor zuerst nach: „Rechnungsstruktur zurücksetzen?“ mit Abbrechen und Zurücksetzen. Das gilt für jede Vorlage, auch für eine neue und eine ohne Rechnungen.

  • Abbrechen, Escape oder das Schließen-X lassen Modus und Struktur unverändert; die Modus-Auswahl springt auf den bisherigen Wert zurück. Escape schließt dabei nur die Rückfrage, nicht den Editor.
  • Zurücksetzen wechselt den Modus und übernimmt die Standardkonfiguration. Dauerhaft wird das erst mit Speichern.

Entspricht die Struktur noch der Standardkonfiguration — etwa direkt nach Neue Vorlage —, wechselt der Modus ohne Rückfrage. Die beim Anlegen vergebenen Zeilen-ids zählen nicht als Abweichung.


#Abschnitte und Posten umsortieren

Im Editor lässt sich jede Zeile auf zwei Wegen verschieben:

  • Ziehen am Griff links (≡) — für Abschnitte wie für einzelne Posten.
  • „Nach oben“ / „Nach unten“ über die Pfeil-Schaltflächen rechts in der Zeile. Sie sind mit der Tastatur erreichbar und an der ersten beziehungsweise letzten Position deaktiviert.

Ein Posten bleibt dabei immer in seinem Abschnitt; verschoben wird ausschließlich innerhalb der Liste, in der die Zeile angefasst wurde. Die neue Reihenfolge steht erst nach Speichern fest und schreibt gleichzeitig die position-Werte des Abschnitts lückenlos neu.


#Editor ohne Speichern verlassen

Escape, Klick außerhalb, Abbrechen und das Schließen-X fragen zuerst nach, wenn der Editor ungespeicherte Änderungen enthält: „Ungespeicherte Änderungen verwerfen?“ mit Weiter bearbeiten und Verwerfen. Das gilt auch für Escape bei geöffnetem Menü „Element hinzufügen“. Weiter bearbeiten — oder Escape im Dialog — schließt nur die Rückfrage; alle Eingaben bleiben erhalten. Verwerfen schließt den Editor, ohne zu speichern.

Als Änderung zählt jede Abweichung vom Stand beim Öffnen: Rechnungsstruktur (Abschnitte, Posten, Reihenfolge, Bezeichnungen), Anschreiben, Wichtige Hinweise, Ratenplan, der Schalter „Kopf- und Fußzeile nur auf der ersten Seite“ und bei einer neuen Vorlage Jahr und Modus. Die beim Öffnen vergebenen Zeilen-ids gehören zum Ausgangsstand und lösen keine Rückfrage aus. Text im Feld „Neuer Abschnitt“, der noch nicht hinzugefügt wurde, zählt nicht. Ohne Änderungen schließt der Editor sofort.


#Kopf- und Fußzeile nur auf der ersten Seite

Im Abschnitt PDF-Layout des Editors steht der Schalter „Kopf- und Fußzeile nur auf der ersten Seite“. Er ist standardmäßig aus; dann stehen Briefkopf und Fußzeile auf jeder Seite (Falz- und Lochmarken stehen immer nur auf der ersten Seite).

Eingeschaltet bleibt die erste Seite unverändert. Ab Seite 2 entfallen Briefkopf, Fußzeile sowie Falz- und Lochmarken, und der Rand beträgt ringsum 20 mm — lange Rechnungen brauchen dadurch weniger Seiten. Unten rechts steht dann nur noch die Seitenzahl („Seite 2 / 3“), und zwar genau dann, wenn auch die erste Seite eine trägt: ohne gestaltetes PDF-Layout immer, mit einem unter Vereinseinstellungen → Allgemein → Layout gestalten gestalteten Layout nur, wenn dort das Element Seitenzahl eingeschaltet ist.

Der Schalter gilt pro Rechnungsvorlage, also pro Abrechnungsjahr. Er wirkt auf Rechnungs-PDFs, die nach dem Speichern erzeugt werden. Rechnungen aus Briefen & Rechnungen folgen dem Schalter ihrer eigenen Vorlage, nicht diesem. PDFs ohne Vorlage — etwa die Vereinsheim- oder Geräteverleih-Rechnung — behalten Kopf- und Fußzeile auf jeder Seite.


#Verfügbare Positionstypen

Jede Position trägt einen Begriff — denselben in den Jahressätzen (wo Sie den Betrag pflegen), in der Rechnungsvorlage (wo Sie die Position auswählen) und auf der Rechnung (wo Sie sie dem Mitglied erklären). Die Rechnung ergänzt ihn nur um die konkreten Zahlen, etwa Wasserverbrauch (55,00 m³).

Die Spalte Bezeichnung unten ist damit auch der Name, unter dem Sie den Satz in den Jahressätzen finden. Bereits erzeugte Rechnungen behalten die Beschriftung ihres Erstellungszeitpunkts — ein Beleg dokumentiert den Stand, zu dem er ausgestellt wurde.

#Pacht

Typ Bezeichnung Berechnung
base_rent Pacht (Parzellenfl. + Gemeinschaftsfl.) × Pachtsatz
public_legal_rate Öffentlich-rechtliche Lasten (Parzellenfl. + Gemeinschaftsfl.) × Satz

Die Pacht ist ein einziger Posten für die Gartenfläche inkl. Gemeinschaftsflächenanteil. Es gibt keine separaten Posten für Hausfläche, Schuppen oder Gewächshaus.

#Verbands- und Vereinsbeiträge

Typ Bezeichnung Berechnung
federation_bv_fee Verbandsbeitrag BV BV-Satz × Mitgliederzahl oder BV-Satz × 1 — je nach eingestellter Bezugsgröße
federation_lv_fee Verbandsbeitrag LV LV-Satz × Mitgliederzahl oder LV-Satz × 1 — je nach eingestellter Bezugsgröße
membership_fee_first Vereinsbeitrag 1. Mitglied Mitgliedsbeitrag, je nach Einstellung als Monats- oder Jahresbetrag
membership_fee_others Vereinsbeitrag weitere Mitglieder Beitrag × (Mitgliederzahl − 1)

Pro Mitglied oder pro Parzelle?

Für den BV- und den LV-Beitrag legen Sie unter Vereinseinstellungen → Jahressätze je Beitrag getrennt fest, worauf sich der Satz bezieht:

Auswahl Wirkung Feldbeschriftung
Pro Mitglied (Voreinstellung) Der Satz wird mit der Mitgliederzahl der Parzelle multipliziert. BV-Beitrag (€/Mitglied)
Pro Parzelle Der Satz wird einmal je Parzelle berechnet, unabhängig davon, wie viele Mitglieder auf ihr stehen. BV-Beitrag (€/Parzelle)

Viele Vereine führen die Verbandsbeiträge je Parzelle ab, nicht je Person — für sie war die feste Berechnung pro Mitglied bei einer Parzelle mit zwei Mitgliedern der doppelte Beitrag.

Die Auswahl gehört zum Jahressatz, ist also pro Jahr einstellbar: eine Umstellung für 2027 lässt Rechnungen für 2026 unverändert. Bestehende Jahressätze stehen auf Pro Mitglied und rechnen damit unverändert weiter.

Der Zeitanteil bei einem unterjährigen Pächterwechsel wirkt in beiden Fällen. Bei Pro Parzelle entfällt der Zusatz „(2 Mitglieder)“ hinter der Positionsbezeichnung, und es werden keine gezählten Namen gespeichert — es wurde niemand gezählt.

Wer zählt als Mitglied?

Die Zählung unten gilt für alle vier Positionen, für Zusatzposten mit Anzahl = Mitglied und für die Verbandsbeiträge, solange diese auf Pro Mitglied stehen:

  • Archivierte Mitglieder zählen nie mit.
  • Maßgeblich ist nicht „heute Mitglied“, sondern „im Abrechnungsjahr Mitglied“. Wer im Laufe des Jahres ausscheidet, zählt für dieses Jahr noch voll mit; wer schon vor dem Jahr ausgeschieden ist, gar nicht mehr.
  • Bei BV und LV wird jedes befreite Mitglied einzeln übersprungen. Eine Parzelle mit drei Mitgliedern, von denen eines vom BV-Beitrag befreit ist, wird mit zwei Mitgliedern berechnet. Ist das Mitglied befreit, an das die Rechnung geht, entfällt die Position ganz.
  • Bei Pro Parzelle bleiben die Befreiungen wirksam, verringern den Betrag aber nicht: Ist das rechnungsempfangende Mitglied befreit, entfällt die Position; ist jedes Mitglied der Parzelle befreit, entfällt sie ebenfalls. Ist nur eines von zweien befreit, wird der volle Parzellen-Beitrag berechnet.
  • Eine Befreiung wirkt ab dem Jahr, in dem sie beginnt — eine ab 2026 geltende Befreiung ändert nichts an einer Rechnung für 2024.

Welche Personen in die Anzahl eingeflossen sind, steht auf der Rechnungsvorschau und in der Rechnungsprüfung unter der jeweiligen Position.

#Feste und variable Gebühren

Typ Bezeichnung Berechnung
winter_service Winterdienst Pauschalbetrag pro Parzelle
working_hours_fee Abgeltung Arbeitsstunden Fehlstunden × Stundensatz; nur wenn Fehlstunden > 0
waste_fee Müllgebühren Aus Waste/WasteCommunity-Einträgen; nur wenn Feature Müll aktiv
addon (benutzerdefiniert) Betrag × Anzahl (Parzelle oder Mitglied); erfordert addon_id im Template

working_hours_fee ist nur verfügbar, wenn das Feature Arbeitsstunden aktiv ist. waste_fee setzt das Feature Müll voraus. Alle Wasserposten setzen das Feature Wasser voraus.

#Überträge aus dem Vorjahr

Typ Bezeichnung Berechnung
open_balance_prev_year Offener Betrag [Jahr−1] Summe unbeglichener Belastungszahlungen aus dem Vorjahr
credits_prev_year Guthaben/Vorauszahlungen [Jahr−1] Summe ungenutzter Guthabenzahlungen aus dem Vorjahr (negativer Wert)
balance_carryover Differenzbetrag [Jahr−1] Offene Soll- und Guthabenposten des Vorjahres saldiert; ersetzt die beiden Zeilen darüber

#Welchem Jahr eine Zahlung zugerechnet wird

Alle Vorjahrespositionen — die drei oben und die beiden Vorauszahlungs-Abzüge weiter unten — fragen dasselbe: In welchem Jahr hat diese Zahlung wirtschaftlich stattgefunden? Maßgeblich ist das Datum auf dem Kontoauszug, nicht der Zeitpunkt, zu dem die Zeile in der Anwendung entstanden ist:

Art der Zahlung Maßgebliches Datum
Guthaben / Zahlungseingang Valutadatum (paid_at)
Soll-Posten / Forderung Fälligkeitsdatum (due_at)
Zeile ganz ohne Datum (Altbestand, Handbuchung) Anlagedatum

Der Bankimport übernimmt das Valutadatum aus der CSV — deshalb ist der Normalfall unkritisch: Sie können die Kontoauszüge des Vorjahres im Januar einlesen und danach die Jahresrechnung erzeugen. Die im Vorjahr geflossenen Zahlungen landen im Vorjahr, auch wenn sie erst jetzt erfasst wurden. Umgekehrt zieht ein nachträglich erfasster Alt-Beleg das Geld nicht in das Jahr der Erfassung.

Erfassen Sie eine Zahlung von Hand, tragen Sie das Datum vom Kontoauszug ein und nicht das heutige. Ohne Datum fällt die Zuordnung auf den Erfassungszeitpunkt zurück — und damit möglicherweise in das falsche Rechnungsjahr.

#Wasserposten

Typ Bezeichnung Berechnung
water_usage Wasserverbrauch Verbrauch (m³) × Satz je m³; Mehrwertsteuer wird auf Rechnungsebene aufgeschlagen
water_wastewater_levy Abwasser Voller Verbrauch × Satz je m³ — oder, wenn ein Abwasseranteil in Prozent gepflegt ist, nur dieser Anteil der Verbrauchsmenge zum selben Satz
water_meter_fee Wassergrundgebühr Pauschalbetrag pro Parzelle — die Grundgebühr des Vereins, nicht der Zähler der Parzelle
water_meter_difference Messdifferenz Differenz bei nicht übereinstimmenden Zählerständen; nur wenn > 0
water_prepayment_deduction Wasservorauszahlung [Jahr−1] Summe der im Vorjahr geleisteten Wasser-Vorauszahlungen als negativer Posten — siehe Welchem Jahr eine Zahlung zugerechnet wird
water_prepayment_current_year Wasservorauszahlung [Jahr] Vorauszahlung, die mit dieser Rechnung für das laufende Jahr eingezogen wird
meter_info Wasserzähler Kopfzeile ohne Betrag: Zählernummer und Ablauf der Eichung der Parzelle

#Zusatzposten (Add-ons)

RentPaymentAddOn-Einträge erlauben vereinsspezifische Posten (z. B. Versicherung, Kulturgebühr, Zeitung). Jedes Add-on hat:

Feld Beschreibung
Name Anzeigename auf der Rechnung
Betrag Betrag in Cent
Bezug plot (einmal pro Parzelle) oder member (einmal je aktivem Mitglied)
Gültig ab / bis Optionaler Gültigkeitszeitraum. Das Add-on wird in jedem Jahr berechnet — und im Editor dort angeboten —, in das der Zeitraum hineinreicht, und zwar anteilig nach Tagen: „Gültig ab 01.07.2026“ kostet 2026 die Hälfte, „Gültig bis 31.12.2026“ den vollen Betrag. Nur ein Zeitraum, der das Jahr gar nicht berührt, wird nicht berechnet

Ein Add-on wird in das Template aufgenommen, indem ein Positionseintrag mit "type": "addon" und der entsprechenden addon_id eingefügt wird. Im Editor geschieht das über Element hinzufügen → Gruppe Zusatzposten.

Eine Schritt-für-Schritt-Anleitung für Vereine — Zusatzposten anlegen, in die Vorlage des Jahres einfügen, Ergebnis prüfen — steht unter Zusatzposten auf die Rechnung bringen.


#Proratierung

Posten werden anteilig berechnet, wenn ein Mitglied das Pachtjahr nicht vollständig belegt oder eine Parzelle zeitweise zahlungsfrei gestellt ist. Es gibt zwei unabhängige Faktoren:

Faktor Basis
membershipFactor Zeitraum, in dem das Mitglied die Parzelle als Erstbelegter nutzt
paymentPeriodFactor Freistellungszeitraum der Parzelle (no_payment_from / no_payment_until)

Der effektive Faktor ist min(membershipFactor, paymentPeriodFactor) und wird auf alle Geldposten angewendet. Der Arbeitsstunden-Ausgleich wird nicht proratiert — hier zählt nur die tatsächliche Fehlstundenzahl.

Weitere Details zur Berechnung finden Sie unter Rechnungen generieren.