# Receipt Scanner

A receipt scanner that runs on your device: OCR reads merchant, date, total and tax off receipt photos into one CSV, each field a guess you check. No upload.

Canonical page: https://filetity.com/receipt-scanner

## Capabilities

- Free: Yes, with no watermark and no page limit.
- Account required: No. There is no account system.
- Processed on device: Yes. The file is read by your browser and never uploaded. There is no server to send it to.
- Formats: PNG, JPG or WebP photos of receipts in, several at once. One CSV row per receipt out, with the text the engine read shown beside every row.
- Limits: Printed receipts in Latin alphabets, with the total labelled in English, German, French, Spanish or Italian. Handwritten receipts and other scripts come back with blank fields and the reason. The total is a guess from the words on the receipt and can be wrong when a till labels it unusually, so it is presented for checking and never as a fact. A receipt printed in one currency and paid in another is read as printed.
- Mobile: Yes, on any modern mobile browser. Large files are limited by the memory the phone gives the browser.
- Offline: Yes, after the first use. The OCR engine downloads once and your browser keeps it, so later visits work with no network connection.

## Questions

### Will it get the total right?

Usually, and the page is built for the times it does not. The rule is to take the last line that says total, amount due or balance due, which handles a subtotal before a discount, the cash you handed over and a savings line, all of which are bigger than the total on a normal till roll. It goes wrong when OCR misreads a digit, when a receipt labels its total with a word the rules do not know, or when a card slip and a check are in one photo with a tip added on the slip. That is why the total is an editable box with its reason underneath and the full text beside it, and why a receipt with no line saying total gets an empty box rather than a guess.

### Why is a field blank instead of a number?

Because nothing on the receipt matched the rule for that field, and a blank is the honest answer. A zero would look like a real amount in a spreadsheet and get summed. Tax is blank on most supermarket and card slips, which print no tax line at all. A date is blank when it is not in one of the printed forms the rules read, and a currency is blank when the receipt prints no sign or code, which is most UK till rolls. Type the value in from the text on the right and it goes into the CSV as you wrote it.

### Can I do a whole envelope of receipts at once?

Yes. Drop every photo in together and each one becomes a row in the same CSV, with the file name in the first column so a row can be traced back to its picture. Each receipt is read in turn and the page says which one it is on. The engine takes a few seconds per photo on a laptop and longer on a phone, and the time is spent reading, not uploading, since nothing leaves the device.

### What goes into the CSV?

Six columns: file, merchant, date, total, tax and currency, one row per receipt, in the order the photos were dropped. Amounts are written as plain numbers so a spreadsheet sums them. Dates are written as year, month, day when the receipt printed them without ambiguity and exactly as printed otherwise. A merchant name that starts with an equals sign or a plus is written with a leading apostrophe so a spreadsheet shows it as text instead of running it as a formula.

## Related tools

- [OCR: Image to Text](https://filetity.com/ocr): Read the text out of an image or a scanned PDF, on your own device.
- [CSV to Excel](https://filetity.com/csv-to-excel): Turn a CSV into a real Excel .xlsx workbook, with zeros intact.
- [CSV Viewer](https://filetity.com/csv-viewer): Open a CSV file as a readable table, without a spreadsheet app.
