Kostenlos testen
Handbuch

E-Rechnung und Kontoauszug-Dateien

ZUGFeRD, Factur-X und XRechnung (CII/UBL) exakt lesen, Kontoauszüge als CAMT oder Bank-CSV übernehmen – ohne KI-Schätzung.

Die Vorlage Belege & E-Rechnung liest zwei Dateiarten deterministisch, also direkt aus den Daten der Datei und ohne KI:

  • E-Rechnungen: ZUGFeRD/Factur-X (PDF mit eingebetteter XML) und XRechnung als reine XML-Datei, in beiden Syntaxen (CII und UBL)
  • Kontoauszug-Dateien: CAMT.053 (auch als ZIP) und die CSV-Exporte der großen Banken

Alles andere (normale PDF-Rechnungen, Fotos, Scans, Kontoauszüge als PDF) läuft wie bisher über Textebene bzw. Texterkennung und KI-Extraktion mit Betragsprüfung.

E-Rechnungen

Was gelesen wird

Format Woran erkannt Bemerkung
ZUGFeRD 2.x / Factur-X PDF mit eingebetteter factur-x.xml, zugferd-invoice.xml oder xrechnung.xml Profile EN 16931 (COMFORT), BASIC, EXTENDED, XRECHNUNG
ZUGFeRD 1.0 PDF mit CrossIndustryDocument alte Lieferanten, wird noch gelesen
XRechnung CII XML, Wurzel CrossIndustryInvoice Mail-Anhang oder Chat-Upload
XRechnung UBL / Peppol XML, Wurzel Invoice oder CreditNote Gutschriften (CreditNote, Typ 381) werden als Gutschrift erfasst

Übernommen werden Lieferant (mit USt-IdNr.), Empfänger, Rechnungsnummer, Rechnungs- und Fälligkeitsdatum, Leistungszeitraum, Netto/USt/Brutto je Steuersatz, Zahlart, IBAN, Verwendungszweck und die Positionen. Die XML schlägt den sichtbaren Text: Bei einem ZUGFeRD-PDF zählen die Beträge aus der XML, centgenau.

Was geprüft wird

  • Netto + USt = Brutto, Summe der Positionen, Summe der Steueraufschlüsselung (±1 Cent)
  • Pflichtfelder Rechnungsnummer, Datum, Betrag, Verkäufer
  • Profil MINIMUM und BASIC WL sind nach § 14 UStG keine E-Rechnung (keine Positionen). Sie werden gelesen, der Beleg bekommt einen Hinweis.

Stimmt eine Summe nicht, wird der Beleg trotzdem übernommen, aber mit Status prüfen und dem Grund („E-Rechnung: Netto + USt ≠ Brutto …“).

Grenzen

  • Keine vollständige Prüfung gegen den KoSIT-Validator (Schematron). Geprüft werden Summen und Pflichtfelder, nicht jede Geschäftsregel der Norm.
  • Keine Prüfung von Signaturen. XML mit DOCTYPE/ENTITY wird aus Sicherheitsgründen nicht gelesen.
  • Eine kaputte XML führt nicht zum Abbruch: der Beleg läuft dann über den normalen PDF-Weg.
  • Die Original-Datei (XML bzw. ZUGFeRD-PDF) wird abgelegt. Keine Zusage „revisionssicher“ im Sinne der GoBD.

Woher die Dateien kommen

  • Postfach: collectDocuments nimmt PDF- und XML-Anhänge. Sonstige XML-Anhänge (z. B. Signaturen) werden ignoriert.
  • Chat: Im Buchhaltungs-Chat hochgeladene PDF- oder XML-Dateien liest ingestUpload. E-Rechnungen kosten dabei keine KI-Tokens.

Kontoauszug-Dateien (Ausweichweg zu finAPI)

Der Standardweg ist die Bankanbindung über finAPI (Banking). Wer kein Konto verbinden kann oder will, lädt den Monatsexport hoch.

Bank / Format Datei
CAMT.053 / .052 / .054 XML oder ZIP mit mehreren XML (Tagesauszüge)
Sparkasse „CSV-CAMT-Format“ und „CSV-MT940-Format“
Volksbank / Raiffeisenbank CSV-Export (mit „Saldo nach Buchung“)
DKB CSV, neues Format (seit 2023) und altes Format
ING CSV „Umsatzanzeige“
Commerzbank CSV
N26 CSV (neues und altes Format)

Dabei gilt:

  • Vorgemerkte Umsätze werden übersprungen, nur gebuchte kommen in die Buchhaltung.
  • Saldenprüfung: Enthält die Datei Salden (CAMT, Volksbank, ING), muss Anfangssaldo + Umsätze = Endsaldo sein. Sonst wird nichts übernommen, weil Zeilen fehlen oder falsch gelesen wären.
  • Keine Dubletten: Umsätze, die schon über finAPI oder einen früheren Upload da sind (gleiches Konto, Datum, Betrag), werden nur mit dem Auszug verknüpft. Zwei echte identische Umsätze am selben Tag bleiben zwei.
  • Das Konto erkennt das Tool an der IBAN in der Datei. N26-Exporte haben keine IBAN, dann im Chat die letzten 4 Ziffern nennen.

Unbekanntes CSV

Für ein anderes CSV-Format fragt das Tool einmal die KI nach der Spaltenzuordnung. Dafür bekommt sie nur die Kopfzeile und 5 Beispielzeilen, nicht alle Umsätze. Die Umsätze liest das Tool danach selbst. Der Standard-Prompt steht in config/tenants/_shared/accounting/prompts.php (accounting.prompts.bank_csv_mapping). Ein Workspace kann ihn in seiner Config ohne Code überschreiben:

'accounting' => [
    'prompts' => [
        'bank_csv_mapping' => 'Ordne die Spalten dieses Kontoauszugs zu … Antworte NUR mit JSON '
            . '{"header_row": n, "bank": "", "columns": {"datum": "…", "betrag": "…", "gegenseite": "…", "zweck": "…"}}.',
    ],
],

Rollen in columns: datum, valuta, betrag (oder soll/haben bzw. soll_haben), waehrung, gegenseite, gegen_iban, zweck, buchungstext, status, konto_iban, saldo. Ist der Prompt leer, antwortet das Tool mit erkannt: false und nennt die Kopfzeile. Dann bleibt der Weg über den Kontoauszug als PDF.

Tools (für Builder und eigene Automationen)

Tool Wirkung Args
readEInvoice liest eine E-Rechnung, schreibt nichts. Ausgabe data im Format von parseInvoicePdf plus art, richtung, faellig_am, einvoice_format sha256 (Chat-Upload) oder attachment_id (Mail-Anhang), optional firma, privat
parseBankStatement liest einen Kontoauszug, schreibt nichts sha256 oder attachment_id, optional mapping
importBankStatement übernimmt Auszug + Umsätze in die Buchhaltung (über recordsQuery), Original in die Ablage sha256 oder attachment_id, konto, mapping_prompt, neu_einlesen, dry_run

Alle drei sind interne Tools (internal: true) mit derselben Zugriffsregel wie Bankdaten: Admins/Manager des Workspace bzw. eigene Automationen. Die Dateien verlassen den Server nicht, und an die KI geht bei E-Rechnungen nichts.

Qualität prüfen (Entwickler)

Zum Fixture-Monat 09/2026 der Vorlage gehören 15 Fälle, darunter ZUGFeRD, XRechnung CII/UBL, Sparkasse CSV-CAMT mit identischen Umsätzen und eine KK-Abrechnung. Er liegt unter tests/fixtures/templates/belege_erechnung/.

bin/cake template_eval belege_erechnung --selbsttest            # Fixtures + Bewertung, ohne KI
bin/e2e-belege-erechnung.sh e2e_belege admin@example.com        # echter Lauf in einem Test-Workspace

Schwellen: ≥ 85 % der Bewegungen zugeordnet, ≤ 10 % ohne Beleg. Der Bericht nennt auch die KI-Kosten des Laufs.

Zuletzt aktualisiert: 2026-10-12