Pathine

Receipt OCR

Read a receipt into structured data instead of a wall of text.

Images Free · no signup Processed on our server Google Gemini
Receipt Scanner Processed on our server

This file is sent to a server so a vision model can read it, then discarded. Nothing is stored and nothing is used to train a model. If that is wrong for a particular receipt, don't use this one.

Drop a receipt here

One or a pile — up to 20 at once. JPG, PNG, WebP, HEIC, AVIF and PDF up to 8MB each; larger images are scaled down on your device before anything is sent.

or

Reading the receipt…

That didn't work.

The receipt this was read from

This browser can't display that format, so the file was sent as it is and read on the server. The fields are beside this.

What was on it
Checks
    Item As printed Qty Unit price Line total Remove
    Subtotal
    Discount
    Tax
    Tip
    Fees
    Total

    This tool sends your receipt to a server so a model can read it. It is held in memory for the second or two that takes, never written to disk, and never kept afterwards. No receipt sent here is used to train a model. Everything after the reading — the editing, the checks and the export — happens on your device.

    Keyboard shortcuts
    / or K
    Search every tool
    Run this tool, from anywhere on the page
    S
    Download the result
    ?
    Open and close this list

    About the Pathine Receipt OCR

    Reads a photo, screenshot or PDF of a receipt and returns named fields rather than a block of text: the merchant, the date, the currency, the payment method, each purchased line with its quantity and price, and the printed subtotal, tax and total. Download it as JSON, or as a CSV if a spreadsheet is where it is going.

    This is not the OCR most tools mean. Ordinary OCR reads glyphs in reading order and hands back a transcript, which on a receipt puts the price three lines away from the thing it belongs to and loses the column structure entirely — leaving you to write the parser. Here the structure is the output. If a flat transcript really is what you want, Image to Text does that and does not cost you a field it guessed.

    Nothing is inferred and nothing is calculated. A field that is not legible comes back empty rather than filled in with something plausible, and the printed figures are copied across exactly as printed even when they do not reconcile — a receipt that does not add up is a real receipt, and rewriting a number to make the sums work would hide the only interesting thing on it. Whether it adds up is checked separately, in your browser, and shown as a note rather than as a correction.


    When you'd reach for it

    A folder of them you would otherwise write a parser for

    Receipt layouts have nothing in common between two shops, so a parser is per-shop work. Drop up to twenty at once and the output shape is the same whatever the layouts were — which is the part a parser costs you.

    Feeding another system

    JSON with predictable keys goes into a script, an accounting import or a spreadsheet formula without anybody writing a regular expression against a transcript.

    Checking what an OCR pipeline is missing

    Run a receipt your own pipeline handles badly and compare. Fields it leaves blank are fields it could not read, which is more useful than a transcript that looks complete.

    Reading a receipt in another language or currency

    The date comes back as YYYY-MM-DD whichever way round it was printed, the currency as its three-letter code, and the amounts as plain numbers whether the receipt used a comma or a point for the decimal.


    How to read a receipt into structured data

    1. Add the receipt

      Drop a photo, screenshot or PDF, or choose one from your device. JPG, PNG, WebP, HEIC, AVIF and PDF up to 8MB. Images are scaled down on your device before anything is sent.

    2. Look at what came back

      Every field is on the page and every one is editable. Anything the receipt disagrees with itself about — lines that do not sum to the subtotal, a total that does not follow — is marked with the figure that was expected.

    3. Correct anything misread

      Thermal print on a creased slip is the hardest text there is. Fix a field and the checks re-run as you type, with no second request and no second scan spent.

    4. Download JSON

      Built from the fields on screen, so your corrections are in it. CSV is there too if the destination is a spreadsheet.


    Common questions

    How is this different from ordinary receipt OCR?

    Ordinary OCR returns the words in reading order. That loses which price belongs to which line, which of three numbers is the total, and where the date is — so you get a transcript and still have the parsing left to do. This returns the fields.

    What does the JSON look like?

    An object with `source_file`, `merchant`, `transaction`, `kind`, `items` and `totals` — or an array of those when you read several at once. Amounts are plain decimal numbers, dates are YYYY-MM-DD, and a field the receipt did not carry is an empty string or null — never a zero standing in for a blank, because a receipt with no tip line and a receipt with a tip of zero are different facts.

    Is there an API?

    Not a public one. This is a free tool with no account behind it, and an endpoint anyone could call in a loop is not something we can leave open. If you need this at volume, SlipSheet is where that lives.

    Will it read a handwritten receipt?

    It will try, and accuracy depends entirely on the handwriting. Printed and thermal receipts are what it is good at. Whatever it reads, every field is editable before you export.

    Does it correct a total that does not add up?

    No. The printed figures are copied across as printed. The arithmetic is checked in your browser and any disagreement is shown as a note naming both numbers, so you can see what the receipt actually says and decide which one is the misreading.

    Does my receipt get stored?

    No. It is sent to a server so a model can read it, held in memory for the second or two that takes, and discarded. Nothing is written to disk and no receipt sent here is used to train a model.

    Related tools

    Next door.