Skip to Content
🔐 Closed Beta – Jetzt auf die Warteliste eintragen! Limitierte Plätze für Early Adopters →
De AtAusgabenEigenbelege

Eigenbelege

💬

Hallo, ich bin Sophie! 👋 In diesem Guide erkläre ich Ihnen, wann und wie Sie Eigenbelege erstellen. Das sind selbst ausgestellte Belege für Ausgaben, bei denen kein externer Beleg vorliegt.

Was sind Eigenbelege?

Ein Eigenbeleg (auch Ersatzbeleg genannt) ist ein selbst erstelltes Dokument, das eine betriebliche Ausgabe nachweist, wenn kein externer Beleg (Rechnung, Kassenbon) vorliegt.

Rechtliche Grundlage

Nach BAO §132 sind Eigenbelege als Buchungsbeleg zulässig, wenn:

  1. Die Ausgabe betrieblich veranlasst ist
  2. Ein externer Beleg nicht erhältlich war
  3. Alle Pflichtangaben enthalten sind
  4. Eine nachvollziehbare Begründung vorliegt
  5. Der Beleg 7 Jahre aufbewahrt wird
⚠️

Eigenbelege sind kein Ersatz für reguläre Rechnungen! Sie dürfen nur verwendet werden, wenn wirklich kein externer Beleg zu bekommen ist.


Wann sind Eigenbelege erlaubt?

BuchhaltGenie unterstützt 4 Arten von Eigenbelegen:

1. Ersatzbeleg für Ausgaben

Verwendung: Betriebliche Ausgaben ohne externe Rechnung

BeispielBeschreibung
TrinkgeldBedienung im Geschäftsessen (keine Rechnung erhältlich)
ParkgebührMünzautomat am Straßenrand (kein Ticket ausgedruckt)
Verlorener BelegOriginal-Rechnung verloren gegangen
Telefonkosten-PauschaleAnteilige Nutzung privates Handy für Geschäft
RepräsentationskostenKleinbeträge ohne Rechnung

Limits:

  • Maximum €35,00 pro Eigenbeleg (BMF-010219/0440-IV/6/2018)
  • Kein Vorsteuerabzug möglich (UStG §11 - kein Originalbeleg)

2. Barentnahme (Privatentnahme Geld)

Verwendung: Geldentnahme aus der Kassa für private Zwecke

  • Buchung: Privatentnahme (EKR 9600) an Kassa (EKR 2700)
  • Keine Umsatzsteuer-Relevanz

3. Sachentnahme (Privatentnahme Ware/Leistung)

Verwendung: Entnahme von Waren oder Leistungen für private Zwecke

  • UStG §3.2: Sachentnahmen sind umsatzsteuerpflichtig
  • Buchung mit korrektem Verkehrswert (Marktpreis)
  • Beispiel: Unternehmer entnimmt Ware aus eigenem Lager

Pflicht: Umsatzsteuer-Berechnung (20%, 13%, 10% oder 0%)

4. Privateinlage (Geld oder Sache)

Verwendung: Einlage von privatem Geld/Vermögen in das Unternehmen

  • Buchung: Kassa/Bank an Privateinlage (EKR 9800)
  • Erhöht das Eigenkapital

Pflichtangaben nach BAO §132

Jeder Eigenbeleg muss folgende Angaben enthalten:

PflichtfeldAnforderungBeispiel
DatumDatum der Ausgabe (nicht Zukunft)15.01.2026
BetragBrutto-Betrag in Euro€12,50
BeschreibungMin. 20 Zeichen, detailliert”Trinkgeld für Kellner im Geschäftsessen mit Kunden XY”
BegründungMin. 20 Zeichen, betriebliche Veranlassung”Kassenbon vom Münz-Parkautomaten wird nicht ausgedruckt”
UnterschriftDigitale Signatur/BestätigungDigital in BuchhaltGenie
💡

Sophie’s Tipp: Die 20-Zeichen-Mindestlänge bei Beschreibung und Begründung ist eine BAO §132-Anforderung. Je detaillierter Sie schreiben, desto prüfungssicherer ist der Eigenbeleg!


Eigenbeleg erstellen in BuchhaltGenie

Ausgaben-Bereich öffnen

Navigiere zu DashboardAusgabenEigenbeleg erstellen.

Eigenbeleg-Typ wählen

Wähle die passende Art:

  • Ersatzbeleg: Trinkgeld, Parkgebühr, verlorener Beleg
  • Barentnahme: Geldentnahme für privat
  • Sachentnahme: Ware/Leistung für privat (mit USt)
  • Privateinlage: Geld/Sache ins Unternehmen

Pflichtfelder ausfüllen

Je nach Eigenbeleg-Typ unterschiedliche Felder:

Ersatzbeleg für Ausgaben

FeldEingabeValidierung
DatumDatum der AusgabeNicht in Zukunft
BetragBrutto-BetragMax. €35,00
ZahlungsartBar oder BankPflicht
BeschreibungWas wurde bezahlt?Min. 20 Zeichen
BegründungWarum kein Beleg?Min. 20 Zeichen

Beispiel:

Datum: 20.01.2026 Betrag: €15,00 Zahlungsart: Bar Beschreibung: Trinkgeld für Kellner beim Geschäftsessen mit Kunden Firma Müller GmbH im Restaurant Zur Post Begründung: Trinkgeld wird ohne Kassenbon gegeben, keine Rechnung erhältlich, übliche Geschäftspraxis

Eigenbeleg signieren

Nach dem Ausfüllen signieren Sie den Eigenbeleg digital:

  1. Klicken Sie auf “Jetzt signieren”
  2. BuchhaltGenie zeigt eine Vorschau des Eigenbelegs
  3. Bestätigen Sie mit “Digital signieren”
  4. Status ändert sich von EntwurfSigniert
🔐

Die digitale Signatur ersetzt die handschriftliche Unterschrift und ist rechtlich gleichwertig (E-Government-Gesetz).

Eigenbeleg verbuchen

Signierte Eigenbelege können Sie verbuchen:

  1. Klicken Sie auf den Eigenbeleg in der Liste
  2. Klicken Sie “Verbuchen”
  3. BuchhaltGenie erstellt automatisch die Buchungssätze
  4. Status ändert sich auf Gebucht

Was passiert beim Verbuchen?

Eigenbeleg-TypBuchungssatz
ErsatzbelegBetriebsausgabe (EKR 7xxx) an Kassa/Bank
BarentnahmePrivatentnahme (9600) an Kassa (2700)
SachentnahmePrivatentnahme (9600) an Warenerlös (4xxx) + USt (3xxx)
PrivateinlageKassa/Bank an Privateinlage (9800)

Limits und Höchstbeträge

Ersatzbelege (Ausgaben ohne Rechnung)

LimitBetragRechtsgrundlage
Maximum pro Beleg€35,00BMF-010219/0440-IV/6/2018
Kumuliert pro JahrAngemessenPrüfungsrisiko bei Übernutzung
Vorsteuerabzug❌ Nicht möglichUStG §11 - kein Originalbeleg
⚠️

Zu viele Eigenbelege = Prüfungsrisiko! Wenn Sie regelmäßig viele Ersatzbelege erstellen, kann das Finanzamt nachfragen. Eigenbelege sind die Ausnahme, nicht die Regel.

Privatentnahmen (Bar & Sache)

  • Kein Betragslimit (aber dokumentationspflichtig)
  • Bei Sachentnahmen: USt-Pflicht beachten
  • Zu hohe Entnahmen können auf Liebhaberei hindeuten

Privateinlagen

  • Kein Betragslimit
  • Erhöhen das Eigenkapital
  • Müssen im Anlage EÜR gemeldet werden

Integration mit Kassenbuch

Eigenbelege für Ersatzbelege und Barentnahmen werden automatisch ins Kassenbuch übernommen:

Eigenbeleg-TypKassenbuch-Eintrag
Ersatzbeleg (Bar)Ausgabe (Bar bezahlt)
Ersatzbeleg (Bank)Keine Kassenbuch-Eintrag
BarentnahmeAusgabe (Privatentnahme)
Privateinlage (Bar)Einnahme (Einlage)

Automatische Synchronisation: Sobald der Eigenbeleg gebucht ist, erscheint er im Kassenbuch (sofern bar bezahlt).


Digitale Signatur und Authentizität

BuchhaltGenie stellt die Authentizität von Eigenbelegen durch eine digitale Signatur und strenge Validierungsschemas sicher. Dies erfüllt die BAO §132-Anforderung nach nachvollziehbarer Dokumentation.

Digitale Signatur (Rechtliche Gleichwertigkeit)

Die digitale Signatur ersetzt die handschriftliche Unterschrift und ist rechtlich gleichwertig (E-Government-Gesetz §4):

// Signatur-Prozess (src/types/eigenbeleg.ts) interface EigenbelegSignature { signedAt: Date; // Zeitstempel der Signatur signedBy: string; // User-ID (auth.uid()) ipAddress: string; // IP-Adresse (DSGVO-konform gehasht) signatureHash: string; // SHA-256 Hash über alle Felder certificateChain: string; // Zertifikat (optional für qualifizierte Signatur) }

Signatur-Ablauf:

  1. User klickt “Jetzt signieren”
  2. BuchhaltGenie erstellt SHA-256 Hash über alle Eigenbeleg-Felder:
    const dataToSign = `${date}${amount}${description}${reason}${userId}`; const signatureHash = await crypto.subtle.digest('SHA-256', dataToSign);
  3. Hash wird unveränderbar in Datenbank gespeichert
  4. Status ändert sich von EntwurfSigniert

Rechtliche Basis:

  • E-Government-Gesetz §4: Digitale Signaturen sind handschriftlichen Unterschriften gleichgestellt
  • BAO §132 Abs. 3: Elektronische Aufzeichnungen sind zulässig, wenn Unveränderbarkeit gewährleistet ist
🔐

Kryptographisch sicher: Die SHA-256 Signatur stellt sicher, dass nachträgliche Änderungen am Eigenbeleg sofort erkennbar sind. Bei Betriebsprüfungen kann die Signatur verifiziert werden!

Zod-Validierung für alle Felder

BuchhaltGenie verwendet Zod-Schemas für strenge Validierung aller Eigenbeleg-Felder. Dies verhindert ungültige oder unvollständige Eigenbelege.

Zod-Schema (src/types/eigenbeleg.ts)

import { z } from 'zod'; // Basis-Schema für alle Eigenbeleg-Typen const eigenbelegBaseSchema = z.object({ date: z .date() .max(new Date(), { message: "Datum darf nicht in der Zukunft liegen (BAO §132 Compliance)" }), amount: z .number() .positive({ message: "Betrag muss positiv sein" }), description: z .string() .min(20, { message: "Beschreibung muss mindestens 20 Zeichen lang sein (BAO §132 Audit-Konformität)" }) .max(500), reason: z .string() .min(20, { message: "Begründung muss mindestens 20 Zeichen lang sein (BAO §132)" }) .max(500) }); // Ersatzbeleg-Schema (Ausgaben ohne Rechnung) export const ersatzbelegSchema = eigenbelegBaseSchema.extend({ type: z.literal('ersatzbeleg'), amount: z .number() .max(35, { message: "Ersatzbelege sind auf €35,00 begrenzt (BMF-010219/0440-IV/6/2018)" }), paymentMethod: z.enum(['bar', 'bank'], { required_error: "Zahlungsart ist Pflicht" }) }); // Sachentnahme-Schema (mit USt-Berechnung!) export const sachentnahmeSchema = eigenbelegBaseSchema.extend({ type: z.literal('sachentnahme'), verkehrswert: z .number() .positive({ message: "Verkehrswert muss positiv sein (Marktpreis)" }), ustSatz: z.enum([0, 10, 13, 20], { required_error: "USt-Satz ist Pflicht (UStG §3.2)" }), sachbeschreibung: z .string() .min(10, { message: "Sachbeschreibung mindestens 10 Zeichen" }), // Automatische Berechnung: netto: z.number().optional(), // Wird berechnet ust: z.number().optional(), // Wird berechnet brutto: z.number().optional() // = verkehrswert }); // Barentnahme-Schema (Privatentnahme Geld) export const barentnahmeSchema = eigenbelegBaseSchema.extend({ type: z.literal('barentnahme') // Keine USt-Relevanz, keine Betragslimits }); // Privateinlage-Schema export const privateinlageSchema = eigenbelegBaseSchema.extend({ type: z.literal('privateinlage') // Erhöht Eigenkapital, keine USt-Relevanz }); // Union-Type für alle Eigenbeleg-Arten export const eigenbelegSchema = z.discriminatedUnion('type', [ ersatzbelegSchema, sachentnahmeSchema, barentnahmeSchema, privateinlageSchema ]); // TypeScript-Type (automatisch generiert) export type Eigenbeleg = z.infer<typeof eigenbelegSchema>;

Validierungs-Vorteile:

ValidierungEffekt
20-Zeichen MinimumErzwingt aussagekräftige Beschreibungen (BAO §132)
€35-Limit (Ersatzbeleg)Verhindert BMF-Verstoß bei Ersatzbelegen
USt-Pflicht (Sachentnahme)Automatische UStG §3.2 Compliance
Datum-ValidierungVerhindert Zukunftsdaten
PflichtfelderVollständigkeit garantiert

Typensicherheit (src/types/eigenbeleg.ts)

Die TypeScript-Types werden automatisch aus den Zod-Schemas generiert:

// src/types/eigenbeleg.ts (vollständige Type-Definition) export type EigenbelegType = 'ersatzbeleg' | 'sachentnahme' | 'barentnahme' | 'privateinlage'; export type EigenbelegStatus = 'draft' | 'signed' | 'booked' | 'deleted'; export interface EigenbelegBase { id: string; businessId: string; userId: string; type: EigenbelegType; date: Date; amount: number; description: string; reason: string; status: EigenbelegStatus; signature?: EigenbelegSignature; retentionUntil: Date; // BAO §132: 7 Jahre createdAt: Date; signedAt?: Date; bookedAt?: Date; } export interface Ersatzbeleg extends EigenbelegBase { type: 'ersatzbeleg'; paymentMethod: 'bar' | 'bank'; // Max €35 (enforced by Zod) } export interface Sachentnahme extends EigenbelegBase { type: 'sachentnahme'; verkehrswert: number; ustSatz: 0 | 10 | 13 | 20; sachbeschreibung: string; netto: number; ust: number; brutto: number; // = verkehrswert } export interface Barentnahme extends EigenbelegBase { type: 'barentnahme'; // Keine zusätzlichen Felder } export interface Privateinlage extends EigenbelegBase { type: 'privateinlage'; // Keine zusätzlichen Felder } export type Eigenbeleg = Ersatzbeleg | Sachentnahme | Barentnahme | Privateinlage;

Typsicherheit im Code:

// Beispiel: Server Action für Eigenbeleg-Erstellung export async function createEigenbeleg(data: unknown) { const { user, businessId } = await requireAuth(); // Zod-Validation (Runtime-Check) const validatedData = eigenbelegSchema.parse(data); // TypeScript weiß jetzt: validatedData ist vom Typ Eigenbeleg // Auto-completion für type, description, reason, etc. // Signatur-Hash berechnen const signatureHash = await generateSignatureHash(validatedData); // retention_until berechnen (7 Jahre + Jahresende) const retentionUntil = calculateRetentionDate(validatedData.date); // In Datenbank speichern const eigenbeleg = await supabase .from('eigenbelege') .insert({ ...validatedData, business_id: businessId, user_id: user.id, signature_hash: signatureHash, retention_until: retentionUntil }) .select() .single(); return eigenbeleg; }
💡

Sophie’s Tipp: Die Zod-Schemas validieren sowohl zur Laufzeit (Runtime) als auch zur Entwicklungszeit (TypeScript). Dadurch sind ungültige Eigenbelege technisch unmöglich!

BAO §132-konforme Speicherung

Eigenbelege werden in der Tabelle eigenbelege gespeichert mit automatischer retention_until Berechnung:

-- Tabelle: eigenbelege CREATE TABLE eigenbelege ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), business_id UUID NOT NULL REFERENCES businesses(id), user_id UUID NOT NULL REFERENCES users(id), type TEXT NOT NULL CHECK (type IN ('ersatzbeleg', 'sachentnahme', 'barentnahme', 'privateinlage')), date DATE NOT NULL CHECK (date <= CURRENT_DATE), -- Keine Zukunftsdaten! amount DECIMAL(10,2) NOT NULL CHECK (amount > 0), description TEXT NOT NULL CHECK (char_length(description) >= 20), -- 20-Char Minimum! reason TEXT NOT NULL CHECK (char_length(reason) >= 20), -- 20-Char Minimum! status TEXT NOT NULL DEFAULT 'draft' CHECK (status IN ('draft', 'signed', 'booked', 'deleted')), signature_hash TEXT, -- SHA-256 Hash signed_at TIMESTAMPTZ, booked_at TIMESTAMPTZ, retention_until DATE NOT NULL, -- ← Automatischer Trigger (7 Jahre) created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); -- Trigger: Automatische Berechnung von retention_until CREATE TRIGGER calculate_eigenbeleg_retention BEFORE INSERT ON eigenbelege FOR EACH ROW EXECUTE FUNCTION set_retention_until(); -- Gleiche Funktion wie Kassenbuch!

retention_until Berechnung (gleich wie Kassenbuch):

Eigenbeleg vom 15.03.2026 → retention_until = 31.12.2033 (7 Jahre + Jahresende)

Unveränderbarkeit nach Verbuchung

Nach der Verbuchung (status = 'booked') sind Eigenbelege unveränderbar:

-- RLS Policy: Keine Updates nach Verbuchung CREATE POLICY "no_updates_after_booking" ON eigenbelege FOR UPDATE USING (status != 'booked'); -- Resultat: UPDATE-Versuche auf gebuchte Eigenbelege werden abgelehnt

Korrektur nur durch Stornierung:

// Storno-Eigenbeleg erstellen (gleicher Betrag, negiert) const stornoEigenbeleg = { type: 'ersatzbeleg', date: new Date(), amount: originalEigenbeleg.amount, // Gleicher Betrag description: `Stornierung Eigenbeleg #${originalEigenbeleg.id} - ${originalEigenbeleg.description}`, reason: `Irrtum bei Erfassung, Originalbeleg nachträglich gefunden`, paymentMethod: originalEigenbeleg.paymentMethod }; // Originalbeleg bleibt sichtbar, wird aber durch Storno neutralisiert

Audit-Trail und 7-Jahres-Archivierung

Alle Eigenbelege unterliegen der 7-Jahres-Aufbewahrungspflicht nach BAO §132:

Automatische Archivierung

BuchhaltGenie speichert jeden Eigenbeleg mit:

ArchivdatenZweck
Erstellt amZeitstempel der Erstellung
Signiert amZeitstempel der digitalen Signatur (mit SHA-256 Hash)
Gebucht amZeitstempel der Verbuchung
Retention bisAutomatisch 7 Jahre ab Belegdatum (DB-Trigger)
ÄnderungshistorieAlle Änderungen nachvollziehbar (Audit Log)
Signatur-HashSHA-256 Hash zur Authentizitätsprüfung

Unveränderbarkeit

  • Nach Verbuchung sind Eigenbelege nicht mehr änderbar (RLS Policy)
  • Soft Delete: Gelöschte Eigenbelege bleiben 7 Jahre archiviert (retention_until)
  • Audit Log: Jede Aktion wird protokolliert (DSGVO Art. 32)
  • Signatur-Verifikation: SHA-256 Hash verhindert Manipulation
🔍

Finanzamts-Prüfung: Bei einer Betriebsprüfung kann BuchhaltGenie alle Eigenbelege inklusive digitaler Signatur, SHA-256 Hash und Änderungshistorie exportieren. Die Archivierung ist automatisch BAO §132-konform.


Häufig gestellte Fragen (FAQ)

Kann ich für jede Ausgabe einen Eigenbeleg erstellen?

Nein. Eigenbelege sind nur erlaubt, wenn kein externer Beleg zu bekommen ist. Für reguläre Geschäftsausgaben benötigen Sie eine ordnungsgemäße Rechnung nach UStG §11.

Was passiert, wenn ich mehr als €35 für Trinkgeld ausgebe?

Bei Beträgen über €35,00 können Sie keinen Ersatzbeleg erstellen. Versuchen Sie, eine Rechnung vom Restaurant zu bekommen (z.B. Trinkgeld auf Rechnung setzen lassen) oder teilen Sie die Ausgabe auf mehrere Tage auf (wenn betrieblich gerechtfertigt).

Kann ich mit Eigenbelegen die Vorsteuer abziehen?

Nein. Für den Vorsteuerabzug benötigen Sie eine ordnungsgemäße Rechnung nach UStG §11 mit allen Pflichtangaben. Eigenbelege berechtigen nicht zum Vorsteuerabzug.

Wie viele Eigenbelege pro Jahr sind „normal”?

Es gibt keine gesetzliche Grenze, aber das Finanzamt kann bei übermäßiger Nutzung nachfragen. Als Richtwert:

  • 5-10 Eigenbelege/Jahr: Unproblematisch
  • 20+ Eigenbelege/Jahr: Rechtfertigung erforderlich
  • 50+ Eigenbelege/Jahr: Hohes Prüfungsrisiko

Muss ich Eigenbelege ausdrucken?

Nein. Die digitale Archivierung in BuchhaltGenie ist rechtlich ausreichend (BAO §132 iVm § 131 Abs. 3). Bei einer Betriebsprüfung können Sie die Eigenbelege digital vorlegen.

Kann ich einen Eigenbeleg nachträglich ändern?

Ja, aber nur im Status „Entwurf” oder „Signiert”. Nach der Verbuchung sind Eigenbelege unveränderbar (BAO §132 - Unveränderbarkeit von Buchungen). Sie können dann nur noch einen Storno-Beleg erstellen.

Was ist der Unterschied zwischen Eigenbeleg und Ersatzbeleg?

Eigenbeleg ist der Oberbegriff für alle selbst erstellten Belege (Ersatzbeleg, Privatentnahme, Privateinlage). Ersatzbeleg ist speziell für Ausgaben ohne externen Beleg (Trinkgeld, Parkgebühr).

Wie erfasse ich einen verlorenen Kassenbon?

Erstelle einen Ersatzbeleg (Typ: „Ersatzbeleg für Ausgaben”) und schreibe in die Begründung: „Original-Kassenbon verloren gegangen, Ausgabe laut Kontoauszug/Kassenstand nachweisbar”. Füge nach Möglichkeit einen Screenshot des Kontoauszugs hinzu.


Compliance-Hinweise

BAO §132: Buchführungspflichten

  • 7-Jahres-Aufbewahrung: Alle Eigenbelege werden automatisch 7 Jahre archiviert
  • Unveränderbarkeit: Nach Verbuchung keine Änderungen mehr möglich
  • 20-Zeichen-Mindestlänge: Beschreibung und Begründung (BAO §132 Abs. 1)
  • Lückenlose Nummerierung: BuchhaltGenie vergibt automatisch fortlaufende Nummern

UStG §11: Vorsteuerabzug

  • Kein Vorsteuerabzug bei Ersatzbelegen möglich
  • UStG §3.2: Sachentnahmen sind umsatzsteuerpflichtig
  • Ordnungsgemäße Rechnung: Für Vorsteuerabzug erforderlich

EStG §4: Betriebsausgaben

  • Betriebliche Veranlassung: Muss nachvollziehbar begründet sein
  • Angemessenheit: Zu hohe Eigenbelege können Liebhaberei-Prüfung auslösen
  • Privatentnahmen: Mindern nicht den Gewinn (EKR 9600)

DSGVO Art. 32: Sicherheitsmaßnahmen

  • Verschlüsselte Speicherung: Alle Eigenbelege AES-256 verschlüsselt
  • Audit Log: Jede Aktion wird protokolliert
  • Zugriffsrechte: Nur berechtigte User sehen Eigenbelege

💡

Sophie kann Ihnen bei Eigenbelegen helfen! Fragen Sie mich einfach:

  • “Sophie, wann brauche ich einen Eigenbeleg?”
  • “Kann ich für die Parkgebühr einen Eigenbeleg erstellen?”
  • “Wie buche ich eine Privatentnahme?”

Ich erkenne automatisch, welcher Eigenbeleg-Typ zu Ihrer Situation passt!


Nächste Schritte

Siehe auch