Steuerkram/docs/funktionen.md

9.8 KiB
Raw Blame History

Funktionen

Kontenrahmen SKR03

DATEV-konformer SKR03 2026 mit 157 Systemkonten (Klassen 0, 1, 2, 4, 8), zugeschnitten auf EÜR-Buchhalter ohne Bilanzierungspflicht. Alle Konten sind mit geprüften UStVA-Kennzahlen (ELSTER) und EÜR-Zeilennummern hinterlegt.

Vollständige Kontenliste: kontenrahmen.md


Belegverwaltung

  • Upload von PDF, PNG, JPEG, TIFF und ZUGFeRD-XML
  • SHA-256 Integritätsprüfung je Datei
  • Automatischer Weißrand-Zuschnitt bei JPEG/PNG via GD
  • KI-gestützter Kontierungsvorschlag (optional, siehe konfiguration.md)
  • Nextcloud-Import via WebDAV (optional)
  • Belege können nicht gelöscht werden, solange Buchungen darauf verweisen (GoBD)
  • Ereignisanzeige (/ereignisse/nextcloud-import): Log der letzten 500 Import-Ereignisse (importiert/übersprungen/Fehler); aktualisiert sich per Ein-/Aus-Button oben rechts automatisch alle 60 Sekunden (Zustand wird im Browser gemerkt)

Buchungen

EÜR-Buchungsmodell (Einnahme/Ausgabe) mit Kategorie- und Zahlungskonto.

  • Netto-/Brutto-Umschalter: Der Betrag kann in der Buchungsmaske wahlweise als Netto- oder Bruttobetrag eingegeben werden (Umschalt-Buttons oberhalb des Betragsfelds); der jeweils aktive Button bestimmt die Interpretation. Vermeidet manuelle Rundungsdifferenzen bei bekanntem Bruttobetrag.
  • Steuerarten für Auslandsumsätze: Inland, steuerfreie ig. Lieferung (Kz 41), steuerfreie Ausfuhr (Kz 44), ig. Erwerb 19 % (Kz 89/91), ig. Erwerb 7 % (Kz 93/94)
  • Bewirtungsausgaben: automatischer Split 70 %/30 % bei Konten 4650, 4651, 4652
  • Eigenanteil (30 %) bei Telefon/Internet (Konten 4920/4925): optional zubuchbar
  • Stornobuchungen: GoBD-konforme Gegenbuchung statt Löschung
  • GoBD-Schutz: MariaDB BEFORE UPDATE/DELETE-Trigger verhindern nachträgliche Manipulation gebuchter Sätze
  • Journal: gefilterte Übersicht aller Buchungen mit CSV-Export

Lieferantenverwaltung

CRUD für Lieferantenstammdaten. Lieferanten können Belegen zugeordnet werden; beim Buchen eines Belegs wird ein unbekannter Lieferant automatisch angelegt (findOrCreate). Der Lieferantenname ist direkt im Beleg inline editierbar. Sowohl in der Belegmetadaten-Bearbeitung (Buchungsmaske) als auch in der Belegliste bietet die Lieferanteneingabe eine Typeahead-Auswahl (HTML5-Datalist) der bereits vorhandenen Lieferanten, um Dubletten durch abweichende Schreibweisen zu vermeiden.


Kundenverwaltung

CRUD für Kundenstammdaten. Kunden werden beim Erstellen von Ausgangsrechnungen ausgewählt.

  • Pro Kunde können neben der Haupt-E-Mail-Adresse zwei zusätzliche CC-Adressen hinterlegt werden. Beim Rechnungsversand werden diese automatisch in die CC-Felder des E-Mail-Dialogs übernommen.

Ausgangsrechnungen

  • DIN 5008-konformes Layout, PDF-Export via mPDF
  • Rechnungsnummernformat PPPYYYYMM-nn (konfigurierbarer Präfix + Jahr + Monat + laufende Nummer, monatlicher Reset)
  • Status-Workflow: Entwurf → Finalisiert (gesperrt für Bearbeitung) → Gesendet → Teilzahlung / Bezahlt / Überzahlt / Storniert
  • Zahlungsstatus automatisch: Sobald dem Beleg einer Rechnung Zahlungsbuchungen zugeordnet werden, ergibt sich der Status aus der Summe der aktiven Einnahme-Buchungen – weniger als der Rechnungsbetrag → Teilzahlung, exakt → Bezahlt, mehr → Überzahlt. Stornierte Buchungen zählen nicht mit; ohne aktive Buchung fällt die Rechnung auf Gesendet (falls bereits versendet, Zeitpunkt in sent_at) bzw. Finalisiert zurück. Entwürfe und stornierte Rechnungen bleiben unberührt. Der Button „Rechnung als bezahlt markieren" bleibt als manuelle Übersteuerung erhalten (z. B. bei Skonto), wird aber von der nächsten Buchungsänderung wieder überschrieben.
  • Das Zahlungs-Modal der Detailansicht und die Buchungsansicht zeigen Rechnungsbetrag, gezahlten Betrag und offenen Rest; der Betragsvorschlag entspricht dem offenen Restbetrag.
  • Buchungsworkflow: Finalisierung erzeugt automatisch einen Beleg und eine Buchung in der Belegverwaltung
  • ZUGFeRD EN16931 (E-Rechnung): Jede generierte PDF enthält ein eingebettetes factur-x.xml nach EU-Norm EN 16931; Pflichtangaben laut § 14 UStG vollständig abgedeckt; Validierung möglich unter portal.e-rechnung-bund.de; Bibliothek: horstoeko/zugferd v1.x
  • XML-Rechnung als Einzeldatei: In der Detailansicht liefert das XML-Symbol neben dem PDF-Symbol die reine XML-Rechnung (Rechnung-<Nr>.xml, Route /invoices/{id}/xml). Verwendet wird das Profil XRechnung 3.0 – eine CIUS von EN 16931, die zusätzlich die deutschen BR-DE-Regeln erfüllt und daher von Prüfdiensten wie dem E-Rechnungsvalidator ohne Beanstandung akzeptiert wird. Fehlen Stamm- oder Rechnungsdaten, wird die Datei trotzdem ausgeliefert; die Detailansicht listet die fehlenden Angaben mit ihrer BT-Nummer auf und färbt das Symbol als Warnung ein.
  • Für XRechnung zwingend sind unter anderem der Ansprechpartner des Verkäufers (BG-6: Inhaber, Telefon, E-Mail aus den Firmeneinstellungen) sowie die Kundennummer als Käuferreferenz (BT-10); fehlen sie, weist die Detailansicht darauf hin.
  • E-Mail-Versand via SMTP direkt aus der Anwendung
  • Stornorechnung (§ 14 UStG): Finalisierte, gesendete oder bezahlte Rechnungen können storniert werden; dabei entsteht automatisch eine nummerierte Stornorechnung mit negierten Beträgen (storno_of_id), GoBD-konforme Stornobuchungen heben die Originalbuchungen auf; Querverweise in der Detailansicht, angepasstes PDF-Layout (Titel „STORNORECHNUNG", Referenzzeile)

Anlagevermögen

Anlagenspiegel für abnutzbare Wirtschaftsgüter – siehe anlagevermögen.md.


Bank buchen

  • Import von Kontoauszügen über zwei Wege: CSV-Upload (TXT/XLSX ebenfalls) und Direktverbindung (API/FinTS)
  • CSV-Upload: konfigurierbare Spalten- und Datumsformate je Bank, automatische Format-Erkennung beim Datei-Upload, Vorschau-Panel mit Headerzeile und Spalten-Zuordnung; bei unbekannten Formaten wird ein Vorschlag generiert und auf der Settings-Seite zum expliziten Speichern angeboten
  • Neues CSV-Format manuell anlegen: im „Neue Direktverbindung"-Dialog (Importieren) kann per „+ CSV-Importformat…" ein neues CSV-Format mit Trennzeichen, Datums-/Dezimalformat etc. angelegt werden; Spaltenzuordnung wird anschließend unter Einstellungen → CSV Bankimport Formate verfeinert
  • Direktverbindung „PayPal" (NVP/SOAP-API): API-Benutzer, API-Kennwort, Signature und Sandbox-Flag werden verschlüsselt abgelegt. Live-Log via Server-Sent Events
  • Direktverbindung „FinTS" (Comdirect, DKB und weitere): BLZ, Benutzerkennung und PIN, optional FinTS-Server-URL (sonst Default aus dem Provider) und IBAN-Filter. PIN wird verschlüsselt abgelegt (AES-256-GCM). Leseabruf mit PIN; TAN-pflichtige Aktionen werden mit Fehlermeldung abgebrochen. Die FinTS-Server-URL wird beim Speichern und erneut vor jedem Abruf mit SsrfGuard geprüft: nur https:// zu öffentlich erreichbaren Hosts ist erlaubt, private/interne Ziele (RFC1918, Loopback, Link-Local) werden abgelehnt (Schutz vor SSRF)
  • Letzter Abrufzeitpunkt wird pro Verbindung gespeichert; nächster Abruf startet ab 00:00 dieses Tages (max. ein Tag Überlappung für Dedup)
  • Kontostand: FinTS-Abrufe liefern den Schlusssaldo des letzten Statements, PayPal den aktuellen Saldo über GetBalance; der Wert wird zusammen mit dem Abrufzeitpunkt auf der Verbindungskachel angezeigt und bleibt bei Abrufen ohne ermittelten Kontostand erhalten
  • Abrufen ab: Im Bearbeiten-Dialog kann pro Direktverbindung ausgewählt werden, ab wann der nächste Lauf Buchungen holt: Ab letztem Abruf (Default), Letzte 7 Tage, Aktueller Monat (ab 01.), Letzte 30 Tage oder Ohne Datum (letzte 365 Tage). Die Sonderauswahl gilt nur einmalig – nach erfolgreichem Abruf fällt die Verbindung wieder auf den Default zurück
  • Dublettenprüfung: CSV-Import vergleicht Datum+Betrag+Text; Direktverbindungen nutzen eine external_id (Hash aus IBAN/Datum/Betrag/Verwendungszweck bei FinTS, Transaktions-ID bei PayPal)
  • Beleg-Zuordnung: jede Banktransaktion kann einem oder mehreren Belegen zugeordnet werden; der zugeordnete Betrag wird separat erfasst
  • Teilzuordnung: eine Transaktion kann schrittweise mehreren Belegen anteilig zugeordnet werden
  • Status-Logik: offen → keine Zuordnung, teilweise → Restsaldo > 0,01 €, gebucht → vollständig zugeordnet
  • Direkter Beleg-Upload aus der Transaktionsansicht heraus (erzeugt neuen Beleg und verknüpft ihn)
  • Verschlüsselung: Der APP_KEY in .env ist Pflicht für Direktverbindungen – im Backup mitsichern, Verlust = Verlust aller gespeicherten Credentials

UStVA (Umsatzsteuervoranmeldung)

  • Monatliche Kennzahlen-Berechnung aus Buchungen (Kz 81, 89, 66, 61, 83)
  • ELSTER XML-Export
  • Drill-down: Klick auf eine Kennzahl zeigt alle zugehörigen Buchungszeilen

Zuordnungsregeln: berechnungslogik.md


EÜR (Einnahmen-Überschuss-Rechnung)

  • Jahresauswertung: Einnahmen, Ausgaben, Gewinn je Kategorie-Konto
  • Nicht abzugsfähige Betriebsausgaben (§ 4 Abs. 5 EStG, EÜR-Zeile 51) in separatem Abschnitt
  • PDF-Export
  • Drill-down: Klick auf ein Konto zeigt alle zugehörigen Buchungszeilen

Zuordnungsregeln: berechnungslogik.md


Einstellungen

  • Firmendaten und Logo (erscheinen auf Rechnungen und im EÜR/UStVA-Export)
  • ELSTER-Steuernummer
  • Nummernkreis-Präfixe für Belege, Rechnungen und Anlagen
  • SMTP-Konfiguration für E-Mail-Versand (Host, Port, Benutzer, Passwort, TLS/SSL)
  • KI-Kontierungsvorschlag (Ollama oder OpenAI-kompatible API)
  • Nextcloud-Belegimport (WebDAV-Zugangsdaten)

Benutzerverwaltung

  • Benutzer anlegen, bearbeiten, deaktivieren und löschen
  • Session-basierte Authentifizierung mit 24 h Timeout
  • Erste Benutzeranlage über Ersteinrichtungs-Dialog beim ersten Aufruf