Rechnungs- und Belegverarbeitung mit Audit-Trail
Belegverarbeitung ist der Idealfall für Agenten: Das Ergebnis ist maschinell prüfbar. Entweder die Rechnung passt zu Bestellung und Wareneingang, oder sie tut es nicht. Genau deshalb trägt der Use Case — und genau deshalb sind die Klarfälle der interessante Teil.
Geeignet fürBuchhaltungen mit hohem Belegaufkommen, deren Eingangsrechnungen einen Bestellbezug im ERP haben
Guardrails: der Agent bucht nichts — jeder Vorschlag geht durch eine Freigabe
Das Wichtigste auf einen Blick
- Geeignet für
- Buchhaltungen mit hohem Belegaufkommen, deren Eingangsrechnungen einen Bestellbezug im ERP haben
- Ausgangssituation
- Im Beispiel: 1.850 Rechnungen im Monat, 7 Minuten je Beleg, 18 % Klarfälle, 6 % Skonto verfallen
- Wir übernehmen
- Betrieb der Agenten für Extraktion, Abgleich und Klarfall-Routing, dazu Doublettenprüfung und Audit-Trail
- Bei Ihnen bleibt
- Ihre Daten und die Entscheidung, welche davon ein Modell sehen darf. Eigentum und Hoheit wechseln nicht.
- Vorhandene Systeme
- Welche Hardware und welche Schnittstellen sich weiterverwenden lassen, klären wir vor dem Angebot. Das Ergebnis steht schriftlich fest, bevor Sie beauftragen.
- Ihr Ergebnis
- Der Agent bucht nicht, er schlägt vor. Im Beispiel 50 Sekunden Personenzeit je Beleg statt 7 Minuten
- Preisrahmen
- ab 690 € im Monat (Einstiegsklasse)Business 1.490 €, Enterprise 3.900 € — Modellkosten je Beleg werden getrennt ausgewiesen
- Reaktionszeit
- Erstreaktion Ø unter 30 Minuten zur Geschäftszeitzugesichert 4 Stunden (Professional), 1 Stunde (Enterprise)
- Dauer
- Testlauf über 100 echte Belege, danach Pilot, danach Vertrag12 Monate Regellaufzeit, 3 Monate Kündigungsfrist
- Erster Schritt
- Sie liefern einen anonymisierten Stapel Eingangsrechnungen, wir zeigen Extraktionsqualität und Trefferquote
1. Ausgangslage
| Kennzahl | Wert | Anmerkung |
|---|---|---|
| Eingangsrechnungen je Monat | 1 850 | alle Kanäle |
| Positionen je Rechnung | 4,2 | Durchschnitt |
| Bearbeitungszeit je Beleg | 7 min | ohne Klarfälle |
| Klarfallquote | 18 % | Durchlaufzeit dann 3 bis 9 Tage |
| Skonto verfallen | 6 % | der skontofähigen Rechnungen |
2. Agent-Design
- extract-agent — liest den Beleg, gibt ein streng validiertes Schema zurück: Lieferant, Rechnungsnummer, Datum, Positionen, Steuersätze, Zahlungsziel. Kein Freitext, keine Interpretation.
- match-agent — gleicht gegen Bestellung und Wareneingang ab. Arbeitet nicht mit Ähnlichkeitssuche, sondern mit Datenbankabfragen und Toleranzregeln.
- route-agent — entscheidet: Buchungsvorschlag oder Klarfall. Bei Klarfällen bestimmt er Zuständigkeit und formuliert die konkrete Rückfrage.
Ein Modell, das „ungefähr richtige“ Beträge liefert, ist in der Buchhaltung wertlos. Deshalb wird jede Extraktion gegen ein Schema mit Typen, Wertebereichen und Summenprüfung validiert. Was nicht validiert, wird nicht geschätzt, sondern Klarfall.
3. Architektur
beleg
mail · portal · scanextract
schema-validiertmatch
erp · bestellung · weroute
toleranz geprüft4. Code
from hostspezial.agents import step, schema
from decimal import Decimal
# Das Schema ist die Sicherung: Was nicht validiert, wird nicht
# geschaetzt, sondern Klarfall. Decimal statt float — bei Geld
# ist Rundung kein Detail.
Invoice = schema.model(
supplier_id=str, invoice_no=str, invoice_date="date",
net=Decimal, tax=Decimal, gross=Decimal,
positions=schema.list_of(article=str, qty=Decimal, unit_price=Decimal),
)
def run(ctx, document):
inv = step(ctx, "extract", returns=Invoice,
fn=lambda: ctx.extract(document, Invoice))
# Doublette vor allem anderen — der teuerste Fehler waere
# eine zweite Zahlung derselben Rechnung.
if ctx.tools.erp.invoice_exists(inv.supplier_id, inv.invoice_no):
return ctx.clarify("doublette", queue="buchhaltung")
po = step(ctx, "match", fn=lambda: ctx.tools.erp.match_order(
supplier=inv.supplier_id, positions=inv.positions,
tolerance={"price_pct": 2.0, "qty_abs": 0}))
if not po.matched:
# Konkrete Rueckfrage schlaegt allgemeine Eskalation.
return ctx.clarify(po.reason, queue=po.responsible_team,
question=po.as_question())
# Vorschlag, keine Buchung. Die Freigabe bleibt beim Menschen.
return step(ctx, "propose", idempotency_key=f"{ctx.run_id}:propose",
fn=lambda: ctx.tools.erp.create_booking_proposal(inv, po))5. Ergebnis
Funktioniert nicht bei …
… Rechnungen ohne Bestellbezug — ohne Referenz gibt es nichts abzugleichen, das bleibt Handarbeit. … Bauleistungen, Abschlagsrechnungen und Teillieferungen mit komplexer Vertragslogik; hier ist die Toleranzregel keine Zahl, sondern eine juristische Bewertung. … schlechten Scans unter etwa 200 dpi, bei denen bereits die Extraktion unsicher wird. Und: Der Agent bucht nicht. Wer die Freigabe als überflüssig empfindet, hat den Nutzen des Audit-Trails nicht gebraucht — bis zur ersten Prüfung.
Testlauf mit 100 echten Belegen
Belegfluss durchgehen.
Wie viele Belege, welche Formate, welche Freigabestufen — daraus ergibt sich, welcher Teil sich automatisieren lässt und welcher nicht. Ausführlich beschrieben ist das unter Agentic AI.
Betrieb in deutschen Rechenzentren
