receipt-ripper.com

Le tue ricevute non lasciano mai il tuo dispositivo

Domande frequenti

Tutto quello che ci viene chiesto, con risposte più lunghe di quanto la home page possa contenere.

Le basi

Receipt Ripper è davvero gratuito?

Sì. Niente registrazione, niente piano a pagamento, niente limite d'uso, niente blocco "premium". Il sito è sostenuto da un singolo banner Google AdSense sopra l'area di rilascio più donazioni opzionali in un click tramite Stripe Payment Link prima delle esportazioni. Questo copre il conto dell'hosting. L'insieme completo delle funzionalità è disponibile a ogni visita, inclusi scontrini illimitati per sessione e ogni formato di esportazione.

Devo registrarmi o creare un account?

No, e non potresti nemmeno volendo — non c'è un sistema di account. Il sito non ha il concetto di utente. Lo stato vive nella scheda del tuo browser e (opzionalmente) nell'IndexedDB del tuo browser se attivi "Mantieni il batch su questo dispositivo". Nulla viene memorizzato sui nostri server perché nulla esce dal tuo browser per cominciare.

Cosa fa effettivamente Receipt Ripper?

Esegue una pipeline a sei fasi su ogni scontrino che trascini:

  • Decodifica l'immagine (o rasterizza la prima pagina di un PDF).
  • Rileva i bordi della carta e corregge la prospettiva se l'hai fotografata in obliquo.
  • Ridimensiona l'immagine corretta a ≤1500 px sul lato lungo per mantenere veloce l'OCR.
  • Esegue l'OCR di Tesseract.js in una configurazione a doppio passaggio (PSM 4 + PSM 6) per gestire sia scontrini a colonne sia testo fluido.
  • Analizza il testo OCR con un estrattore basato su regole che tira fuori esercente, data, righe, totali, tassa e metodo di pagamento.
  • Valida il risultato — matematica dei totali, sensatezza della data, deduplicazione delle righe — e segnala i campi a bassa confidenza per la revisione.

Privacy e dati

Dove vanno esattamente i miei scontrini?

Da nessuna parte fuori dal tuo browser. Ogni fase della pipeline gira in un Web Worker sul tuo dispositivo. Il risultato analizzato resta in memoria e viene scritto sul tuo filesystem tramite blob URL quando esporti. Nessuna richiesta — nessuna — porta byte di scontrino fuori dalla tua macchina. Apri DevTools → Rete durante una scansione per verificarlo: non vedrai un upload perché non c'è.

E Google Analytics e AdSense — vedono i miei scontrini?

No. GA e AdSense vedono solo ciò che vedono sempre su qualsiasi sito: il tuo IP (anonimizzato da GA), browser, SO, URL di provenienza e contatori di eventi non personali come "file_uploaded" con il conteggio dei file (mai i nomi dei file, mai contenuti di scontrini). Allo spazio AdSense vengono comunicati solo i nostri ID di editore e unità. L'Informativa sulla privacy elenca ogni byte che viene inviato.

Posso bloccare interamente pubblicità e tracker?

Sì, e l'app continua a funzionare. Il banner dei cookie ha un'opzione "Rifiuta" che impedisce a GA e AdSense di caricarsi. Un blocco-pubblicità standard, uBlock Origin o la Protezione Antitracciamento Avanzata di Firefox in modalità Rigorosa li bloccano anche loro. L'elaborazione degli scontrini funziona allo stesso modo con o senza quegli script.

Formati di file e input

Quali tipi di file posso trascinare?

JPG, PNG, WebP, HEIC, HEIF (foto iPhone) e PDF. Puoi anche trascinare un archivio ZIP che contiene uno qualsiasi di questi — viene decompresso lato client (tramite jszip caricato pigramente) e ogni file interno viene elaborato individualmente. Lo ZIP originale non viene mai memorizzato o caricato.

Posso scansionare PDF multipagina?

Attualmente il parser usa solo la prima pagina di un PDF. La maggior parte degli scontrini ricevuti per email è di una pagina; per le fatture multipagina, dividile con un qualsiasi strumento PDF e trascina le pagine rilevanti separatamente. Potremmo aggiungere il supporto multipagina in una versione futura — vota per email.

Quanto grande può essere un file?

Non c'è un limite rigido — il vincolo è la RAM del tuo dispositivo. Abbiamo testato foto iPhone da 20 MB e batch da 50 pagine senza problemi su un laptop di fascia media. Mobile Safari inizia a faticare sopra i 30 MB circa per immagine perché iOS uccide le schede che si avvicinano a 1 GB di memoria. Ridimensiona le foto molto grandi prima di trascinarle se incappi in problemi.

Posso incollare uno scontrino dagli appunti?

Sì. Copia un'immagine da qualsiasi posto (un'app di chat, un'email, uno strumento di screenshot) e incollala nella pagina con Ctrl/Cmd+V. L'area di rilascio la raccoglie allo stesso modo di un trascina-e-rilascia.

Lingue e valute

Quali lingue di scontrini sono supportate?

Inglese, spagnolo, francese, tedesco, olandese, italiano e portoghese — questi sono i pacchetti lingua Tesseract che spediamo. Scegli la lingua col menù in alto nella pagina; il selettore controlla anche la lingua dell'interfaccia. La prima volta che passi a una nuova lingua, il pacchetto viene scaricato (≈3 MB ciascuno) e poi resta in cache indefinitamente.

E gli alfabeti non latini — greco, cirillico, arabo, cinese, giapponese?

Attualmente no. Tesseract supporta quegli alfabeti ma le regole di parsing degli scontrini non coprono ancora i loro layout e formati numerici. Aggiungere una lingua è una discreta mole di costruzione di fixture. Se ne useresti una regolarmente, scrivici.

Quali valute vengono rilevate?

EUR, USD, GBP, CHF, JPY sono testate esplicitamente. Il parser riconosce sia il simbolo (€, $, £, ¥, Fr.) sia la forma scritta (euro, dollaro, franco) e ricade sulla tua locale se uno scontrino è ambiguo. Gli scontrini che mescolano valute (raro ma capita coi viaggi internazionali) vengono analizzati con la valuta dominante e puoi correggere nella tabella di revisione.

Come vengono gestiti i numeri come "1.234,56"?

Receipt Ripper rileva il formato per numero contando i separatori e le loro posizioni, non dalla locale del browser. Quindi uno scontrino tedesco con "12.345,67 €" e uno scontrino statunitense con "12,345.67" si analizzano correttamente anche nella stessa sessione del browser. Internamente tutti gli importi sono memorizzati come centesimi interi per evitare la deriva a virgola mobile; l'arrotondamento avviene solo all'esportazione.

Accuratezza OCR e foto cattive

Quanto è accurato l'OCR nella pratica?

Per uno scontrino piatto, ben illuminato e fotografato di fronte con uno smartphone moderno, il parser azzecca esercente, data, totale e le righe quasi sempre. Tassa e subtotale sono corretti la maggior parte delle volte. Man mano che la qualità della foto cala, i campi numerici soffrono per primi — l'OCR confonde 8 con 3 e B, 0 con O e D, 5 con 6 e S. È per questo che la tabella di revisione segnala in giallo i campi a bassa confidenza: puoi sistemare la mezza dozzina di valori dubbi senza dover ridigitare l'intero scontrino.

Come gestite foto sgualcite, sbiadite o inclinate?

La fase di correzione della scansione rileva i bordi della carta usando un rilevatore di bordi di Canny più una trasformata di Hough, sceglie le quattro linee più esterne, calcola una trasformazione prospettica e raddrizza lo scontrino tramite un'omografia WebGL. Inclinazioni leggere (fino a circa 40°) e la maggior parte dei segni di piega vengono gestiti automaticamente. Per gli scontrini che il rilevatore non trova, ogni sessione ha un pulsante "Ritaglia manualmente" che apre un selettore interattivo a quattro angoli.

Qual è il modo migliore di fotografare uno scontrino?

Posalo piatto su una superficie a contrasto (un tavolo scuro va bene con la carta termica bianca). Luce dall'alto, nessuna ombra che attraversi la carta. Telefono parallelo allo scontrino, non angolato. Riempi l'inquadratura ma lascia un piccolo bordo perché il rilevatore di bordi abbia qualcosa con cui lavorare. Il flash a volte aiuta con la stampa termica sbiadita e a volte la brucia — prova entrambi.

Perché un campo è uscito vuoto?

O l'OCR non l'ha letto (spesso perché quella parte dello scontrino è troppo sbiadita o troppo piccola dopo il ridimensionamento) o il parser ha visto del testo ma non l'ha riconosciuto come il campo. Entrambi sono modificabili nella tabella di revisione — clicca sulla cella e scrivi.

Mobile e iPhone

Funziona su mobile?

Sì. Tutto il sito è responsive e funziona in Safari mobile, Chrome mobile e Firefox per Android. L'area di rilascio mostra un pulsante "Scatta foto" che apre direttamente la fotocamera posteriore per scansionare e analizzare sul posto. La dimensione del pool di worker su mobile è limitata a 2 worker per evitare uccisioni di scheda per esaurimento memoria.

Perché la prima scansione è lenta su mobile?

Il motore OCR e il pacchetto lingua inglese insieme fanno circa 12 MB. Quello viene scaricato una volta e poi messo in cache. Il download è la parte più lenta della prima visita a freddo — le scansioni successive sono di pochi secondi ciascuna.

Foto HEIC di iPhone — funzionano?

Sì, decodificate lato client tramite libheif-js. Il primo HEIC di una sessione innesca un piccolo caricamento pigro del decodificatore HEIC. Dopo sono veloci quanto i JPG.

Esportazioni — CSV, Excel, ZIP

Cosa c'è nel CSV?

Una riga per voce attraverso tutti gli scontrini elaborati. Colonne: id scontrino, esercente, data, nome voce, quantità, prezzo unitario, totale voce, poi i totali per scontrino (subtotale, tassa, totale) ripetuti su ogni riga di quello scontrino per pivotare facilmente. Unicode è UTF-8 con BOM così Excel lo apre correttamente su Windows.

Cosa c'è nell'esportazione Excel (.xlsx)?

Due tipi di foglio. Un foglio "Riepilogo" raggruppa ogni scontrino per categoria e valuta e dà i totali generali — quello che tipicamente vuole il tuo commercialista. Un foglio di dettaglio per scontrino per ciascuno elenca ogni voce con indicatori di confidenza e il testo OCR originale in una colonna nascosta per audit. Il foglio di calcolo viene generato interamente lato client con SheetJS.

Cosa c'è nello ZIP?

Ogni immagine originale o corretta in prospettiva dello scontrino, rinominata in AAAA-MM-GG_esercente.jpg così i file si ordinano cronologicamente. Più lo stesso foglio Excel descritto sopra. L'intero pacchetto usa compressione STORE perché i JPG e l'XLSX già zippato non comprimono ulteriormente.

Perché c'è un'attesa di 5 secondi prima dei download?

Gli strumenti gratuiti supportati dalla pubblicità costano denaro reale per essere ospitati. Il modal pre-esportazione offre una donazione in un click tramite Stripe prima che il file venga scaricato. Salta è proprio lì se hai fretta — il download parte nel momento in cui finisce il conto alla rovescia, indipendentemente dal fatto che tu abbia donato. Le donazioni non sono vincolate ad alcuna funzionalità.

Posso nascondere le colonne tassa nell'esportazione?

Sì — l'interruttore "escludi tassa dalle esportazioni" vicino al selettore di lingua. Alcune giurisdizioni sconsigliano di consegnare dati con dettaglio fiscale a terzi; attiva l'interruttore e le colonne tassa scompaiono dalle esportazioni CSV / XLSX / ZIP.

Dichiarazione redditi e contabilità

Posso usare Receipt Ripper per la dichiarazione dei redditi?

Molti lo fanno. Il foglio Riepilogo dell'esportazione XLSX è progettato esattamente per quello — totali raggruppati per categoria e valuta, pronti per la sezione delle spese deducibili di una dichiarazione italiana (modello Redditi PF), di una Schedule C americana, di un'Anlage EÜR tedesca o equivalente. Non diamo né possiamo dare consulenza fiscale; controlla ogni valore analizzato prima di affidartici.

Come categorizzo gli scontrini (alimentari, carburante, viaggio, …)?

Clicca sul badge della categoria su ogni scheda di sessione e scegli dalla lista. La prima volta che imposti una categoria per un esercente, la scelta viene memorizzata localmente — gli scontrini futuri dello stesso esercente pre-compilano la categoria, con il punteggio di rilevamento automatico originale sostituito dalla tua scelta esplicita.

Il mio commercialista riuscirà ad aprire l'esportazione?

Il CSV si apre praticamente in tutto. L'XLSX si apre in Excel, LibreOffice, Numbers, Google Sheets e nella maggior parte delle piattaforme di contabilità (QuickBooks, Xero, Wave, FreshBooks accettano l'import XLSX). La struttura è intenzionalmente noiosa — una riga per voce, colonne con il nome ovvio.

Risoluzione problemi

La scansione non finisce mai — resta bloccata su "OCR".

Tre cause comuni. (1) Il WASM di Tesseract non si è caricato — controlla la console del browser per un 404 o un errore di tipo MIME su tesseract-core-*.wasm. (2) Il tuo browser ha bloccato i Web Worker — alcune estensioni di privacy lo fanno; consenti i worker per il sito. (3) La foto è enorme e il tuo dispositivo è rimasto senza RAM — ridimensiona la foto e riprova.

L'esercente è uscito come incomprensibile — cos'è successo?

O l'intestazione dello scontrino è in un alfabeto che il pacchetto lingua caricato non copre, o la parte superiore dello scontrino è troppo sbiadita / tagliata per essere letta. Modifica il campo direttamente nella tabella di revisione; il resto dello scontrino di solito si analizza bene.

I totali non quadrano — il validatore si lamenta.

Il validatore controlla che somma(totali di riga) + tassa + mancia ≈ totale entro una piccola tolleranza. Quando fallisce, uno dei totali di riga è stato letto male, la tassa è stata letta male o lo scontrino stesso ha una riga di sconto che il parser non ha riconosciuto. Il suggerimento dice quale valore non è d'accordo con quale — sistemalo nella tabella e l'avviso sparisce.

Il mio pacchetto lingua si è scaricato due volte.

Può succedere se il tuo browser ha svuotato la cache tra le visite (modalità privata, pulizia automatica di Firefox, strumenti di pulizia dei dati del browser). La navigazione normale tiene il pacchetto in cache indefinitamente — la memoria IndexedDB di solito non viene cancellata.

Aspetti tecnici e licenze

Cosa c'è sotto il cofano?

React 18 + Vite + Tailwind 4 per la UI. Tesseract.js per l'OCR. pdf.js di Mozilla per il rendering PDF. libheif-js per la decodifica HEIC. SheetJS per la scrittura Excel. jszip per l'impacchettamento ZIP. Tutto è impacchettato come asset statici e servito da nginx dentro un container Docker. Il container non ha backend applicativo — solo nginx che serve HTML, JS, WASM e pacchetti lingua.

I componenti sono open source?

Le dipendenze della pipeline (Tesseract.js, pdf.js, libheif-js, SheetJS, jszip) sono tutte open source — vedi /LICENSES.txt per l'attribuzione e il testo delle licenze. Il codice applicativo di Receipt Ripper stesso è proprietario, anche se buona parte di ciò che è interessante sta nel parser basato su regole, che è semplice da reimplementare.

Come segnalo un bug di parsing?

Scrivi a contact@receipt-ripper.com con la foto o il PDF che è stato analizzato male e una nota su quale sarebbe dovuto essere il risultato. Ogni scontrino problematico che condividi viene trasformato in una fixture di test interna (con dati personali oscurati) così lo stesso errore non può ripresentarsi dopo la prossima versione.