So hängt das Buchungsmodell zusammen
Ein Buchungsvorgang hat einenbooking_headers, der alle dabei ausgelösten Positionen
(booking_positions) vereint. Eine Buchung kann ein Sachkonto, ein Personenkonto, ein
Kreditorkonto, ein Projektkonto oder eine Kostenstelle betreffen — siehe
accounts.account_type_name. Da ein Vorgang in der Regel nur eine Buchung auf ein
Kreditor-, Personen- oder Kostenstellenkonto enthält, hat booking_headers creditor_id,
person_id und property_structure_account_id bereits als eigene Felder — eine
Verknüpfung über accounts ist dafür nicht nötig.
Jeder Buchungsvorgang gehört zu genau einem Objekt. Zu einem Konto kann es ein Budget
(budgets) für einen bestimmten Monat geben. Eine Kostenstelle ist immer mit einem Teil
der Objektstruktur (property_structure) verbunden. Sollstellungen
(Contracts.contract_debits) referenzieren immer ein in accounts gelistetes Sachkonto,
über account_number. Contracts.contract_debit_diffs nutzt denselben Feldnamen, löst aber
gegen ein Personenkonto auf — siehe die Verknüpfungsschlüssel-Tabelle auf der
Übersichtsseite.
Reporting-Strukturen fassen Sachkonten zu Positionen zusammen (account_hierarchies). Für
eine Auswertung nach Positionen statt nach Einzelkonten verknüpfst du booking_positions
oder budgets über property_id + account_id mit account_hierarchies, wählst einen
hierarchy_name und gruppierst nach position.
Buchungen auf einem Personenkonto sind nur auf Objektebene mit einem Mieter
verknüpfbar (
property_id + person_id), nicht bis auf eine bestimmte Einheit herunter.
Bewohnt ein Mieter mehrere Einheiten desselben Objekts, lassen sich seine Buchungen nicht
zwischen ihnen aufteilen.accounts
GET /v1/accounting/accounts — der Kontenplan. Umfasst Sachkonten, Personenkonten,
Kreditorkonten, Projektkonten, Kostenstellen und Anlagenkonten — siehe
account_type_name.
string
erforderlich
Eindeutige Objekt-ID.
integer
erforderlich
Interne Konto-ID. Wird von
booking_positions und budgets als account_id
referenziert.string
Kontonummer.
null bei Kreditorkonten, die keine Nummer führen. Bei den meisten anderen
Kontoarten belegt, auch bei der großen Mehrheit der Personenkonten.string
Kontoname.
string
Kontoart: Sachkonto, Personenkonto, Kreditorkonto, Projektkonto, Kostenstelle oder
Anlagenkonto.
string
Reporting-Kategorie des Kontos (z. B. Einnahmen, Ausgaben, Abschreibungen).
string
Ob das Konto ergebniswirksam oder bilanzneutral ist.
integer
Sortiernummer der Position innerhalb ihrer Kategorie.
string
Kontengruppe, der das Konto zugeordnet ist.
integer
Steuerschlüssel des Kontos.
integer
MwSt-Behandlungsmethode des Kontos.
object
Bilanzseiten-Klassifizierung, wie auf dem Konto hinterlegt.
string
Objekt-ID der buchenden Einheit.
integer
Erfolgsmodell-Code des Objekts.
integer
Steuermodell-Code des Objekts.
booking_headers
GET /v1/accounting/booking_headers — Hauptbuch-Buchungsköpfe. Jeder Kopf gruppiert
zusammengehörige Positionen.
string
erforderlich
Eindeutige Objekt-ID.
integer
erforderlich
Eindeutige ID des Buchungskopfs.
booking_positions referenziert dies als
booking_header_id.integer
Laufende Nummer der Buchung im Journal (Primanota) — dem chronologischen Buchungsprotokoll.
string
Mit der Buchung verknüpfter Kreditor. Referenziert
Stakeholder.creditors.string
Mit der Buchung verknüpfter Mieter oder Ansprechpartner.
date
Datum der Buchung.
number
Gesamtwert des Buchungskopfs.
number
Mit der Buchung verbundene Fläche in Quadratmetern, falls zutreffend.
string
Freitextbeschreibung des gesamten Buchungsvorgangs. Einzelne Positionen können einen
abweichenden Text tragen — siehe
booking_positions.booking_position_text.string
Ursprünglicher Buchungstext, vor Bearbeitungen.
string
Belegnummer / Barcode.
string
Link zum verknüpften Dokument im DMS.
string
Kostenstellen-ID und -Name, zur Anzeige (z. B. in Power BI) bereits kombiniert. Kein
Verknüpfungsschlüssel.
string
Verbindet diese Buchung mit einer Kostenstelle oder Einheit in
Property.property_structure.booking_positions
GET /v1/accounting/booking_positions — einzelne Buchungspositionen. Jede Position
gehört über booking_header_id zu genau einem Buchungskopf.
integer
erforderlich
Eindeutige ID der Position.
integer
erforderlich
ID des übergeordneten Buchungskopfs. Verknüpft sich mit
booking_headers.booking_header_id.integer
erforderlich
Konto, auf das die Position gebucht wird. Verknüpft sich mit
accounts.account_id.integer
Gegenkonto für die Buchung, als Kontonummer — nicht derselbe Nummernkreis wie
accounts.account_id.string
erforderlich
Eindeutige Objekt-ID.
integer
Zusammengesetzter Schlüssel, der den Mieter identifiziert, auf den sich diese Buchung
bezieht. Nicht verlässlich aus
property_id und person_id rekonstruierbar — direkt
lesen.string
Mit der Buchung verknüpfter Kreditor. Referenziert
Stakeholder.creditors.string
Mit der Buchung verknüpfter Mieter oder Ansprechpartner. Gleicher Wert wie
booking_headers.person_id.string
Verbindet diese Buchung mit einer Kostenstelle oder Einheit in
Property.property_structure.object
Leistungszeitraum, den die Position abdeckt.
object
Netto-, Steuer- und Bruttobetrag der Position.
object
amount, je Quadratmeter normalisiert.string
Kontengruppe aus dem Kontenmapping.
date
Datum der Buchung.
integer
Laufende Nummer der Buchung im Journal (Primanota) — dem chronologischen Buchungsprotokoll.
integer
Laufende Positionsnummer innerhalb der Buchung.
integer
Buchungsart-Code.
string
Name des Gegenkontos. Direkt auf dieser Tabelle geführt — nicht durch eine Verknüpfung
von
contra_account_id gegen accounts ableitbar.string
Freitextbeschreibung dieser Position. Kann vom Buchungstext des Buchungskopfs
(
booking_headers.booking_text) abweichen.string
Soll/Haben-Kennzeichen. Nicht verlässlich aus dem Vorzeichen von
amount.net ableitbar.number
Betrag mit Vorzeichen nach Soll/Haben-Kennzeichen. Die fachliche Bedeutung ist noch nicht
geklärt — stattdessen
amount verwenden.budgets
GET /v1/accounting/budgets — Budgetbeträge, eine Zeile pro Objekt, Konto und Monat.
string
erforderlich
Eindeutige Objekt-ID.
integer
erforderlich
Konto, auf das sich das Budget bezieht. Verknüpft sich mit
accounts.account_id.string
Kontonummer.
date
erforderlich
Monat, auf den sich die Budgetzeile bezieht.
number
erforderlich
Budgetbetrag für den spezifischen Monat und das Konto.
account_hierarchies
GET /v1/accounting/account_hierarchies — wo jedes Sachkonto in einer Reporting-Struktur
steht. Eine Zeile pro Objekt, Konto und Struktur.
string
erforderlich
Eindeutige Objekt-ID.
integer
erforderlich
Konto, das die Zeile zuordnet. Verknüpft sich mit
accounts.account_id und über
property_id + account_id mit booking_positions und budgets.string
erforderlich
Name der Reporting-Struktur, z. B.
Trassets-Standard. Ein Objekt kann mehrere Strukturen
haben, dasselbe Konto steht dann einmal je Struktur in der Tabelle. Vor dem Summieren von
Beträgen auf eine Struktur filtern, sonst zählt jeder Betrag einmal je Struktur.string[]
Pfad des Kontos durch die Struktur, oberste Ebene zuerst. Leere Ebenen fehlen. Das letzte
Element ist die Position, mit vorangestellter Sortiernummer, sofern die Struktur eine hat
(z. B.
["B – Bestandskonten", "04 – Forderungen & Verbindlichkeiten / Finanzamt", "11 - Rückstellungen"]).string
Position, der das Konto zugeordnet ist — die letzte Ebene von
path, ohne Sortiernummer.integer
Sortiernummer der Position. In
Trassets-Standard gleich accounts.sort_order. null,
wenn die Struktur keine Sortiernummern hat.Enthalten sind nur Sachkonten. Ein Konto ohne eindeutige Zuordnung in einer Struktur fehlt
in dieser Struktur. Summen je Position können deshalb kleiner sein als die Summe über alle
Konten.
Trassets-Standard eingeschränkt sein — siehe
Konten-Einschränkungen.