Zurück zu Projekten
OCR & Document Automation

DocuExtract

Extrahiert automatisch die wichtigsten steuerlichen Daten aus Rechnungen und Belegen.

Das Problem

Die manuelle Erfassung von Rechnungsdaten für die Buchhaltung ist langsam und fehleranfällig, und Unternehmen brauchen einen zuverlässigen Ablauf, selbst wenn sich die OCR beim Ergebnis nicht sicher ist.

Die Lösung

DocuExtract ermöglicht das Hochladen einer Rechnung oder eines Belegs und nutzt OCR, um die wichtigsten steuerlichen Daten zu extrahieren — bereit für die Buchhaltung. Bei niedriger Erkennungssicherheit wird das Dokument statt unzuverlässiger Daten in einen manuellen Prüfworkflow überführt.

Architektur / Engineering

  • Die Verarbeitungspipeline (Upload → OCR/Extraktion → Parsing → Persistenz) entworfen und die serverseitige Verarbeitung von der UI getrennt.
  • Tesseract.js (Spanisch + Englisch) für OCR auf Bildern integriert, sowie native Textextraktion aus PDFs mit pdf-parse.
  • Ein Konfidenzsystem gebaut, das OCR-Zuverlässigkeit und erkannte Steuerfelder kombiniert und unterhalb eines konfigurierbaren Schwellenwerts automatisch an die manuelle Prüfung weiterleitet.
  • Spezialisierte Regex implementiert zur Erkennung von Steuer-IDs (NIT/RIF/CUIT/RFC/RUC), Daten (numerisch und in Textform) und Beträgen anhand buchhalterischer Schlüsselwörter.
  • Daten pro Unternehmen mit Supabase Row Level Security isoliert und Originaldokumente über kurzlebige signierte URLs aus einem privaten Storage-Bucket ausgeliefert.
  • Den Supabase `service_role key` ausschließlich in serverseitigen Route Handlers gehalten, niemals im Browser exponiert.

Wichtigste Funktionen

  • Upload von Rechnungen/Belegen mit Validierung von Dateityp und -größe.
  • OCR auf Bildern (Tesseract.js) und native Textextraktion aus PDFs.
  • Extraktion und Normalisierung steuerlicher Felder: Steuer-ID, Daten, Beträge und Positionen.
  • Konfidenz-Scoring mit automatischer Weiterleitung an die manuelle Prüfung.
  • Manuelle Prüfung und Validierung des Dokuments vor Abschluss.
  • CSV-Export von Rechnungen.

Technische Herausforderungen

  • Serverseitige Verarbeitung (OCR, Parsing, Storage-Zugriff) von der UI trennen, damit der `service_role key` niemals den Client erreicht.
  • Die Konfidenzberechnung so entwerfen, dass sie OCR-Zuverlässigkeit mit der Anzahl erkannter Schlüsselfelder kombiniert, statt eines einzelnen willkürlichen Schwellenwerts.
  • Daten pro Unternehmen mit RLS isolieren, damit kein Nutzer Rechnungen eines anderen Unternehmens lesen oder schreiben kann, selbst bei Kenntnis der ID.

Ergebnis / Aktueller Stand

Auf Vercel bereitgestellt. Der komplette Ablauf — Upload, OCR/Parsing, Persistenz und manuelle Prüfung — funktioniert Ende-zu-Ende bei Bildern und PDFs mit nativer Textebene.

Bekannte Einschränkung

Gescannte PDFs ohne native Textebene werden nicht in ein Bild gerastert, um OCR anzuwenden, da diese Umwandlung meist native Abhängigkeiten (poppler-utils) erfordert, die ein Serverless-Deployment erschweren. Diese Dokumente werden automatisch zur manuellen Prüfung markiert; ein dedizierter Worker zur Rasterung ist die dokumentierte Verbesserung für eine künftige Iteration.

Stack

Next.jsTypeScriptNode.jsTesseract.jsTailwind CSSSupabase
LiveGitHubAlle Projekte ansehen →