Zwar steht uns mit der Einführung der E-Rechnung bald ein maschinenlesbares Format zur Verfügung, um den Rechnungseingang zu automatisieren. Jedoch gibt es weiterhin Fälle, in denen Rechnungen in herkömmlichen Formaten als PDF oder eingescannter Papierrechnung vorliegen werden. Zunächst wird es eine verlängerte Übergangsfrist für die Ausstellung von XML-basierten Rechnungen bis Ende 2027 geben. Es werden also noch eine ganze Weile Rechnungseingänge zu erwarten sein, die nicht in den spezifizierten Formaten ausgestellt wurden. Zudem gelten die neuen Regelungen ohnehin nur innerhalb der EU. Wer Rechnungen aus Drittländern empfängt, wird auch über 2027 hinaus noch mit abweichenden Formaten zu tun haben.

Aufgrund dieser Umstände ist es naheliegend, sich mit Strategien zur Vereinheitlichung des digitalen Rechnungseingangs zu befassen. Wünschenswert wäre natürlich eine Lösung, wo alle Formate – egal ob E-Rechnung nach XML-Standard, oder herkömmliche Rechnungsbelege – in einem zentralen Eingangskorb erfasst und dann mit den erforderlichen Datenfeldern in einheitlicher Form ausgestattet werden. Um dieses Ziel zu erreichen, müssen also PDF-Belege und gescannte Belege zunächst per OCR digitalisiert und anschließend die enthaltenen Texte möglichst passend auf das Zielformat zugeordnet werden. Da Rechnungen von verschiedenen Lieferanten jeweils unterschiedlich aussehen, ist dies eine komplexe Aufgabe, die sich nicht mit einfachen Regeln lösen lässt.

Demo-Datei: Digitaler Eingangskorb

Wäre es nicht schön, wenn uns eine KI dabei helfen kann? Um diesen Ansatz in der Praxis zu überprüfen, hat Marcel Moré eine kleine Demo-Datei erstellt, welche PDF-Dateien per Drag&Drop entgegen nimmt und diese dann als Grafik an die “Vision API” von ChatGPT 4 überträgt. Mit dem passenden Prompt liefert ChatGPT anschließend ein JSON-Objekt zurück, das alle relevanten Felder, wie Lieferant, Rechnungsempfänger, Rechnungsnummer, Kundennummer, Datum, Nettobetrag, Umsatzsteuer und Bruttobetrag enthält. Optional lassen sich auch die enthaltenen Rechnungspositionen aufschlüsseln, sowie Währungsangaben und weitere Parameter aus dem Beleg ermitteln.

Die Demo-Datei speichert die ermittelten Angaben aus den Belegen in dafür vorgesehenen Feldern und kann diese anschließend an ein Buchführungsmodul per Script-Aufruf weiter reichen. Eine einfache Logik zur Zuordnung des richtigen Lieferanten anhand der Kundennummer bzw. des Lieferantennamens ist per SQL-Aufruf implementiert und kann für eigene Zwecke angepasst werden.

Die Demo-Datei kann unter dem unten genannten Link geladen werden.

Voraussetzung für den Einsatz ist ein eigener API Key für die ChatGPT API und das MBS Plugin. Es sind drei Prompts für die Erkennung unterschiedlich detaillierter Rechnungsangaben in der Datei vorbereitet. Das Prompt-Template kann für eigene Zwecke angepasst werden.

OCR Ergebnisse

Die Demo zeigt, dass die Aufgabe der automatisierten Rechnungserkennung prinzipiell auf diesem Weg lösbar ist. Allerdings sind die Ergebnisse je nach Aufbau der Belege und Auflösungs-Qualität der an das API übertragenen Grafik nicht immer zu 100% korrekt. Es können vereinzelt Zahlendreher auftauchen und manchmal wird erst nach wiederholter Anfrage ein Ergebnis zurück geliefert. Je nach Auslastung der API kann es mitunter zu spürbaren Verzögerungen bei der Online-Abfrage kommen.

weitere APIs

Dennoch ist dieser Ansatz vielversprechend. Denn neben ChatGPT gibt es bereits eine ganze Reihe spezialisierter Dienstleister, die genau für dieses Thema optimierte Online-Services anbieten. Einige davon sind in Deutschland ansässig und garantieren eine DSGVO-konforme Verarbeitung der Daten in deutschen Rechenzentren. Es wäre also spannend, die Demo-Datei in einem nächsten Schritt für die Verwendung der APIs dieser Dienstleister anzupassen.

Natif.ai – Rechnungen mit KI verarbeiten
https://natif.ai/rechnungen/

fintract.io – Datenextraktion
https://fintract.io

Klippa – OCR für Rechnungen
https://www.klippa.com/de/texterkennung-ocr/finanzunterlagen/rechnungen/

mindee – Invoice OCR
https://www.mindee.com/product/invoice-ocr-api


Downloads