Zum Hauptinhalt springen

Konten (Accounts)

Zweck

Account modelliert das Buchhaltungskonto im Sinne des Kontenrahmens — typischerweise SKR03. Pro Konto pflegen Sie accountNumber, displayName, postingType (revenue / expense), Verknuepfungen zu Klasse, Steuersatz und Steuerkategorie.

**Account vs. TransactionAccount** — diese beiden Modelle werden leicht verwechselt: - **`Account`** (`/accounts`): Buchhaltungskonten im klassischen Sinne (z. B. „1200 Bank", „4400 Erloese"). - **`TransactionAccount`** (siehe [Buchhaltungskonten](/konzepte/buchhaltungskonten)): Hierarchische Konten, die externe Quellen (Bank, PayPal) anbinden — keine eigene FE-Routen-Seite.

Wenn ein Anwender nach „Konten" sucht, fuehren Sie ihn hierhin (/accounts). Für externe Bank-/PayPal-Anbindung verweisen Sie auf Bankkonten und Zuweisungen.

Voraussetzungen

- Berechtigung `create:Account`. - ChartOfAccountClass-Stammdaten für Klassifizierung. - TaxRate- und TaxCategory-Stammdaten für Steuer-Anbindung.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_Account, AccountListe/Details aufrufbar
create/update/deleteAccountPflegenAPP_SPEAMCORE_CREATE/UPDATE/DELETE_ACCOUNT
viewAccountEntrySub-Liste für Konto-EinträgeAPP_SPEAMCORE_VIEW_ACCOUNT_ENTRY

Schritt-für-Schritt-Anleitung

Konto anlegen

  1. Konten (/accounts) → + Neu.
  2. accountNumber und displayName pflegen (z. B. „1200" und „Bank").
  3. postingType wählen — revenue (Erloeskonto) oder expense (Aufwandskonto).
  4. ChartOfAccountClass, TaxRate und TaxCategory zuordnen.
  5. isRelevant auf true setzen, damit das Konto in Auswahllisten erscheint.

Konto-Einträge einsehen

/account-entries zeigt die AccountEntry-Sub-Liste pro Konto — Buchungen und Belegzuordnungen.

Listenansicht — accounts

Toolbar (Detail-Seite)

Schlanke Toolbar oben rechts:

IconAktion (aria-label)CASLWirkung
ZurückgehenZurück zur Liste.
🏠Zur Startseite gehenSpringt auf das Dashboard / /.
⏮/◀/▶/⏭PaginationNavigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung.

Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:

  • KAL. (Mini-Kalender)
  • ZEIT (Persoenliche Wochen-Arbeitszeit)
  • ARBEIT (Eigene bevorstehende Aufträge)

Felder und Eingaben

FeldnamePflichtDatentypWirkung beim AusfuellenVoraussetzung
accountNumberjaStringKonto-Nummer (z. B. „1200"). Muss eindeutig sein.
displayNamejaStringAnzeigename in Belegen, Reports und Auswahllisten.
postingTypeneinrevenue/expenseBestimmt, ob das Konto für Erloese oder Aufwand verwendet wird. Filtert in Beleg-Selects.
isRelevantneinBoolean (Switch)true: erscheint in Auswahllisten. false: ausgeblendet.
descriptionneinTEXTErlaeuterung des Kontos.
chartOfAccountClassIdneinUUIDKlassifizierung im Kontenrahmen.view:ChartOfAccountClass.
taxRateIdneinUUIDStandard-Steuersatz für Buchungen auf dieses Konto.view:TaxRate.
taxCategoryIdneinUUIDSteuerkategorie für Reports und Steuererklaerungen.view:TaxCategory.
reverseChargeTypeneinString, nullableMarkiert das Konto als Reverse-Charge-Konto (§13b UStG). Aktuell unterstützter Wert: foreign_service (sonstige Leistung eines ausländischen Unternehmers). null = kein Reverse-Charge.siehe §13b-Abschnitt

Steuerschuldumkehr nach §13b UStG

Bei der Steuerschuldumkehr (Reverse-Charge, §13b UStG) schuldet nicht der leistende, sondern der empfangende Unternehmer die Umsatzsteuer — typisch bei sonstigen Leistungen ausländischer Unternehmer. Ein Aufwandskonto wird dafür über reverseChargeType = foreign_service als §13b-Konto markiert.

Für die Gegenbuchung legt SpeamCore zwei Steuerkonten automatisch an (Seed-Migration, abgeleitet von den Schwesterkonten 1576/1776):

KontoBezeichnung
1577Abziehbare Vorsteuer nach §13b UStG 19% (Input)
1787Umsatzsteuer nach §13b UStG 19% (Output)

Beim Buchen einer Eingangsrechnung auf ein §13b-Konto werden Vorsteuer (1577) und Umsatzsteuer (1787) gegeneinander gebucht, sodass sie sich neutralisieren — als Verbindlichkeit bleibt nur der Nettobetrag. Wie das in der Konten-Buchung erscheint, siehe Konten-Buchungen. Welches §13b-Aufwandskonto je Lieferant vorbelegt wird, steuert das Feld defaultExpenseAccountId am Lieferanten.

DATEV-Kontenabgleich-Wizard (seit Juni 2026)

Über Aus DATEV abgleichen lässt sich der Kontenrahmen mit einer DATEV-SUSA (Summen- und Saldenliste, CSV) abgleichen und vervollständigen — in einem zweistufigen Wizard:

  1. Vorschau (POST /accounts/datev-chart/preview) — die SUSA wird geparst und gegen den vorhandenen Kontenrahmen gehalten. Angezeigt wird, welche Konten vorhanden, welche fehlen und welche Personenkonten (≥ 10000, Debitoren/Kreditoren) nur gemeldet — letztere werden nicht angelegt. Schreibt nichts.
  2. Übernehmen (POST /accounts/datev-chart/apply) — legt die fehlenden GL-Konten an (idempotent, wiederholbar) und führt anschließend direkt in die Zahlungskonten-Verknüpfung über (Bilanz-/Verrechnungskonten den Zahlungskonten zuordnen).

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

  • VerkaufsbelegeSalesDocument.revenueAccountId.
  • BestellbelegePurchaseDocument.expenseAccountId.
  • ProdukteProduct.accountId und Product.expenseAccountId.
  • Niederlassungen — primary/secondary Bank-Account-Verknuepfung.
  • AccountEntry — Sub-Liste pro Konto.
  • TaxRate, TaxCategory, ChartOfAccountClass — Stammdaten.
  • Setup-Wizard Schritt 4Standards (DE) laden importiert ~250 SKR03-Konten als Account-Sätze.

Häufige Fehler und Lösungen

FehlerLösung
Konto erscheint nicht in Beleg-AuswahlisRelevant = false oder postingType passt nicht zum Beleg-Kontext (z. B. Verkaufsbeleg sucht revenue).
Doppelte accountNumberValidierungsfehler beim Speichern — eindeutige Nummer wählen.
Steuersatz wird nicht übernommentaxRateId nicht gesetzt — manuell pflegen oder im Setup-Wizard SKR03-Standard laden.

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/accountsListeview Account
POST/api/accountsAnlegencreate Account
GET/api/accounts/:idDetailview Account
PATCH/api/accounts/:idÄndernupdate Account
DELETE/api/accounts/:idSoft-Deletedelete Account
POST/api/accounts/datev-chart/previewDATEV-SUSA abgleichen (Vorschau)view Account
POST/api/accounts/datev-chart/applyfehlende Konten anlegencreate Account
GET/api/account-entriesEintrag-Liste pro Kontoview AccountEntry

Versionshinweise

  • 2026-06-12: DATEV-Kontenabgleich-Wizard (/accounts/datev-chart/preview + /apply) dokumentiert — SUSA-Abgleich, fehlende GL-Konten anlegen, Übergang zur Zahlungskonten-Verknüpfung. Verifiziert an account.router.ts, datevChartReconciliation.service.ts.
  • 2026-06-11: Feld reverseChargeType (§13b-Steuerschuldumkehr, Wert foreign_service) und die geseedeten §13b-Steuerkonten 1577/1787 dokumentiert. Verifiziert an account.model.ts und 20260610170002-seed-section13b-vat-accounts-and-flags.js.
  • 2026-04-29: Initiale Veroeffentlichung.