receipt-ripper.com
Ihre Belege verlassen Ihr Gerät nicht
Alles, was uns gefragt wird, mit längeren Antworten, als die Startseite fassen kann.
Ja. Keine Anmeldung, keine Bezahlstufe, kein Nutzungslimit, keine „Premium"-Sperre. Die Seite wird über ein einzelnes Google-AdSense-Banner über der Drop-Zone sowie optionale Ein-Klick-Spenden über Stripe Payment Link vor Exporten finanziert. Das deckt die Hosting-Kosten. Der volle Funktionsumfang ist bei jedem Besuch verfügbar, einschließlich unbegrenzter Belege pro Sitzung und jedem Exportformat.
Nein, und Sie könnten es auch nicht — es gibt kein Konto-System. Die Seite kennt das Konzept eines Nutzers nicht. Der Zustand liegt in Ihrem Browser-Tab und (optional) im IndexedDB Ihres Browsers, wenn Sie „Batch auf diesem Gerät behalten" einschalten. Es wird nichts auf unseren Servern gespeichert, weil nichts Ihren Browser überhaupt verlässt.
Es führt eine sechsstufige Pipeline auf jedem Beleg aus, den Sie fallen lassen:
Nirgendwohin außerhalb Ihres Browsers. Jede Pipeline-Stufe läuft in einem Web Worker auf Ihrem eigenen Gerät. Das geparste Ergebnis wird im Speicher gehalten und beim Export über blob URLs in Ihr Dateisystem geschrieben. Keine Anfrage — keine einzige — trägt Beleg-Bytes von Ihrem Rechner weg. Öffnen Sie DevTools → Netzwerk während eines Scans, um es zu prüfen: Sie werden keinen Upload sehen, weil es keinen gibt.
Nein. GA und AdSense sehen nur, was sie auf jeder Website immer sehen: Ihre IP (von GA anonymisiert), Browser, Betriebssystem, Referrer-URL und nicht-personenbezogene Ereigniszähler wie „file_uploaded" mit der Anzahl der Dateien (niemals Dateinamen, niemals Beleg-Inhalt). Dem AdSense-Werbeplatz werden nur unsere Publisher- und Unit-IDs mitgeteilt. Die Datenschutzerklärung listet jedes gesendete Byte auf.
Ja, und die App funktioniert weiter. Das Cookie-Banner hat eine „Ablehnen"-Option, die das Laden von GA und AdSense verhindert. Ein Standard-Werbeblocker, uBlock Origin oder Firefox' verstärkter Tracking-Schutz im Modus „Streng" blockiert sie ebenfalls. Die Beleg-Verarbeitung funktioniert mit oder ohne diese Skripte identisch.
JPG, PNG, WebP, HEIC, HEIF (iPhone-Fotos) und PDF. Sie können auch ein ZIP-Archiv mit jeder dieser Dateien fallen lassen — es wird client-seitig entpackt (über lazy-geladenes jszip) und jede enthaltene Datei einzeln verarbeitet. Das ursprüngliche ZIP wird niemals gespeichert oder hochgeladen.
Aktuell verwendet der Parser nur die erste Seite eines PDFs. Die meisten per E-Mail erhaltenen Belege sind einseitig; bei mehrseitigen Rechnungen teilen Sie diese mit einem beliebigen PDF-Werkzeug auf und lassen Sie die relevanten Seiten separat fallen. Wir könnten Multi-Page-Unterstützung in einer zukünftigen Version hinzufügen — stimmen Sie per E-Mail dafür ab.
Es gibt kein hartes Limit — die Grenze ist der RAM Ihres Geräts. Wir haben 20-MB-iPhone-Fotos und 50-Seiten-Batches ohne Probleme auf einem Mittelklasse-Laptop getestet. Mobile Safari beginnt oberhalb von etwa 30 MB pro Bild zu schwächeln, weil iOS Tabs killt, die sich 1 GB Speicher nähern. Skalieren Sie sehr große Fotos vor dem Fallenlassen herunter, falls Sie auf Probleme stoßen.
Ja. Kopieren Sie ein Bild von überall (Chat-App, E-Mail, Screenshot-Tool) und fügen Sie es mit Strg/Cmd+V auf der Seite ein. Die Drop-Zone nimmt es genauso auf wie ein Drag-and-Drop.
Englisch, Spanisch, Französisch, Deutsch, Niederländisch, Italienisch und Portugiesisch — das sind die Tesseract-Sprachpakete, die wir ausliefern. Sie wählen die Sprache über das Dropdown oben auf der Seite; der Auswahler steuert auch die UI-Sprache. Beim ersten Wechsel auf eine neue Sprache wird das Sprachpaket heruntergeladen (≈3 MB pro Sprache) und dann unbegrenzt zwischengespeichert.
Aktuell nicht. Tesseract unterstützt diese Alphabete, aber die Beleg-Parsing-Regeln decken ihre Layouts und Zahlenformate noch nicht ab. Eine Sprache hinzuzufügen bedeutet einigen Aufwand für Fixtures. Wenn Sie eine dieser Sprachen regelmäßig nutzen würden, schreiben Sie uns.
EUR, USD, GBP, CHF, JPY werden explizit getestet. Der Parser erkennt sowohl das Symbol (€, $, £, ¥, Fr.) als auch die ausgeschriebene Form (Euro, Dollar, Franken) und greift auf Ihre Locale zurück, wenn ein Beleg mehrdeutig ist. Belege, die Währungen mischen (selten, aber kommt bei Auslandsreisen vor), werden mit der dominanten Währung geparst und Sie können in der Prüf-Tabelle korrigieren.
Receipt Ripper erkennt das Format pro Zahl, indem es die Trennzeichen und ihre Positionen zählt, nicht aus der Browser-Locale. Also werden ein deutscher Beleg mit „12.345,67 €" und ein US-Beleg mit „12,345.67" sogar in derselben Browser-Sitzung korrekt geparst. Intern werden alle Beträge als ganzzahlige Cents gespeichert, um Fließkomma-Drift zu vermeiden; Rundung erfolgt erst beim Export.
Für einen flachen, gut beleuchteten Beleg, frontal mit einem modernen Smartphone fotografiert, bekommt der Parser Händler, Datum, Summe und die Positionen fast jedes Mal richtig. Steuer und Zwischensumme sind meistens korrekt. Sinkt die Foto-Qualität, leiden zuerst die numerischen Felder — OCR verwechselt 8 mit 3 und B, 0 mit O und D, 5 mit 6 und S. Deshalb markiert die Prüf-Tabelle Felder mit niedrigem Vertrauen gelb: Sie können die halbe Handvoll wackliger Werte korrigieren, ohne den ganzen Beleg neu zu tippen.
Die Scan-Korrektur-Stufe erkennt Papierkanten mit einem Canny-Edge-Detektor plus Hough-Transformation, wählt die vier äußersten Linien, berechnet eine perspektivische Transformation und verzerrt den Beleg über eine WebGL-Homographie flach. Leichte Neigungen (bis ca. 40°) und die meisten Faltspuren werden automatisch behandelt. Für Belege, die der Detektor nicht findet, hat jede Sitzung einen Knopf „Manuell zuschneiden", der einen interaktiven Vier-Ecken-Picker öffnet.
Legen Sie ihn flach auf eine kontrastreiche Oberfläche (ein dunkler Tisch passt gut zu weißem Thermopapier). Licht von oben, kein Schatten quer übers Papier. Telefon parallel zum Beleg, nicht geneigt. Füllen Sie das Bild aus, lassen Sie aber einen kleinen Rand, damit der Kantendetektor etwas hat, an dem er arbeiten kann. Der Blitz hilft bei verblasstem Thermo-Druck mal und überstrahlt ihn mal — testen Sie beides.
Entweder hat das OCR es nicht gelesen (oft, weil dieser Teil des Belegs nach dem Skalieren zu verblasst oder zu klein ist) oder der Parser hat Text gesehen, ihn aber nicht als das Feld erkannt. Beides ist in der Prüf-Tabelle bearbeitbar — klicken Sie die Zelle an und tippen.
Ja. Die ganze Seite ist responsiv und funktioniert in mobilem Safari, mobilem Chrome und Firefox für Android. Die Drop-Zone zeigt einen „Foto aufnehmen"-Knopf, der die Rückkamera direkt öffnet, damit Sie vor Ort scannen und parsen können. Die Worker-Pool-Größe ist auf dem Handy auf 2 Worker begrenzt, um Out-of-Memory-Tab-Kills zu vermeiden.
OCR-Engine und das englische Sprachpaket zusammen sind etwa 12 MB. Das wird einmal heruntergeladen und dann gecacht. Der Download ist der langsamste Teil des ersten kalten Besuchs — nachfolgende Scans dauern jeweils ein paar Sekunden.
Ja, client-seitig dekodiert über libheif-js. Das erste HEIC einer Sitzung löst ein kleines lazy-Laden des HEIC-Dekoders aus. Danach sind sie so schnell wie JPGs.
Eine Zeile pro Position über alle verarbeiteten Belege. Spalten: Beleg-ID, Händler, Datum, Positionsname, Menge, Einzelpreis, Positionssumme, danach pro-Beleg-Summen (Zwischensumme, Steuer, Summe), die in jeder Zeile dieses Belegs wiederholt werden, damit man leicht pivotieren kann. Unicode ist UTF-8 mit BOM, damit Excel es unter Windows korrekt öffnet.
Zwei Arten von Blättern. Ein „Zusammenfassung"-Blatt gruppiert jeden Beleg nach Kategorie und Währung und liefert Gesamtsummen — was Ihr Steuerberater normalerweise möchte. Ein Aufschlüsselungs-Blatt pro Beleg listet jede Position mit Konfidenz-Indikatoren und dem Original-OCR-Text in einer ausgeblendeten Spalte für Audit. Die Arbeitsmappe wird vollständig client-seitig mit SheetJS generiert.
Jedes Originalbild oder perspektivisch korrigierte Beleg-Bild, umbenannt zu JJJJ-MM-TT_Händler.jpg, damit die Dateien chronologisch sortieren. Plus dieselbe Excel-Arbeitsmappe wie oben beschrieben. Das gesamte Bündel verwendet STORE-Kompression, weil JPGs und das bereits gezippte XLSX unter DEFLATE nicht weiter komprimieren.
Kostenlose, werbefinanzierte Werkzeuge kosten echtes Geld im Betrieb. Das Pre-Export-Modal bietet eine Ein-Klick-Spende über Stripe an, bevor die Datei heruntergeladen wird. „Überspringen" ist direkt daneben, falls Sie es eilig haben — der Download startet am Ende des Countdowns, unabhängig davon, ob Sie gespendet haben. Spenden schalten keine Funktion frei.
Ja — der Schalter „Steuer aus Exporten ausschließen" neben dem Sprachwähler. Manche Rechtsräume raten davon ab, steuerlich detaillierte Daten an Dritte weiterzugeben; aktivieren Sie den Schalter und Steuer-Spalten verschwinden aus CSV-/XLSX-/ZIP-Exporten.
Viele tun das. Das Zusammenfassungs-Blatt des XLSX-Exports ist genau dafür ausgelegt — gruppierte Summen nach Kategorie und Währung, bereit für den Bereich der abzugsfähigen Ausgaben einer deutschen Anlage EÜR, einer britischen SA103, einer US-amerikanischen Schedule C oder Äquivalent. Wir geben keine Steuerberatung und können das auch nicht; prüfen Sie jeden geparsten Wert, bevor Sie sich darauf verlassen.
Klicken Sie auf das Kategorie-Badge auf jeder Sitzungs-Karte und wählen Sie aus der Liste. Beim ersten Mal, wenn Sie einem Händler eine Kategorie zuweisen, wird die Wahl lokal gemerkt — zukünftige Belege desselben Händlers füllen die Kategorie vor, wobei der ursprüngliche Auto-Erkennungs-Score durch Ihre explizite Wahl ersetzt wird.
CSV öffnet sich buchstäblich in allem. XLSX öffnet sich in Excel, LibreOffice, Numbers, Google Sheets und den meisten Buchhaltungs-Plattformen (QuickBooks, Xero, Wave, FreshBooks akzeptieren XLSX-Import). Die Struktur ist absichtlich langweilig — eine Zeile pro Position, Spalten mit dem naheliegenden Namen.
Drei häufige Ursachen. (1) Das Tesseract-WASM wurde nicht geladen — prüfen Sie die Browser-Konsole auf einen 404 oder einen MIME-Typ-Fehler bei tesseract-core-*.wasm. (2) Ihr Browser hat Web Workers blockiert — manche Privacy-Erweiterungen tun das; erlauben Sie Worker für die Seite. (3) Das Foto ist riesig und Ihrem Gerät ging der RAM aus — verkleinern Sie das Foto und versuchen Sie es erneut.
Entweder ist die Beleg-Kopfzeile in einer Schrift, die das geladene Sprachpaket nicht abdeckt, oder der obere Teil des Belegs ist zu verblasst / abgeschnitten, um gelesen zu werden. Bearbeiten Sie das Feld direkt in der Prüf-Tabelle; der Rest des Belegs parst normalerweise gut.
Der Validator prüft, ob Summe(Positions-Summen) + Steuer + Trinkgeld ≈ Gesamt innerhalb einer kleinen Toleranz liegt. Wenn das fehlschlägt, wurde eine der Positions-Summen falsch gelesen, die Steuer falsch gelesen oder der Beleg selbst hat eine Rabattzeile, die der Parser nicht erkannt hat. Der Hinweis sagt, welcher Wert mit welchem nicht übereinstimmt — korrigieren Sie es in der Tabelle und die Warnung verschwindet.
Das kann passieren, wenn Ihr Browser zwischen Besuchen den Cache geleert hat (Privater Modus, Firefox' automatisches Leeren, Browser-Datenreinigungs-Werkzeuge). Normales Browsen hält das Paket unbegrenzt im Cache — IndexedDB-Speicher wird normalerweise nicht gelöscht.
React 18 + Vite + Tailwind 4 für die UI. Tesseract.js für OCR. Mozillas pdf.js für PDF-Rendering. libheif-js für HEIC-Dekodierung. SheetJS für Excel-Schreiben. jszip für ZIP-Packen. Alles wird zu statischen Assets gebündelt und von nginx in einem Docker-Container ausgeliefert. Der Container hat kein Anwendungs-Backend — nur nginx, das HTML, JS, WASM und Sprachpakete bedient.
Die Pipeline-Abhängigkeiten (Tesseract.js, pdf.js, libheif-js, SheetJS, jszip) sind alle Open Source — siehe /LICENSES.txt für die vollständige Attribution und den Lizenztext. Der Anwendungscode von Receipt Ripper selbst ist proprietär, auch wenn das meiste Interessante im regelbasierten Parser steckt, der unkompliziert nachgebaut werden kann.
Schreiben Sie an contact@receipt-ripper.com mit dem falsch geparsten Foto oder PDF und einer Notiz, was das Ergebnis hätte sein sollen. Jeder mit uns geteilte Problem-Beleg wird zu einer internen Test-Fixture (mit geschwärzten personenbezogenen Daten), damit derselbe Fehler nach dem nächsten Release nicht mehr auftreten kann.