Use “Capture a receipt” in Recued. Read one receipt locally — OCR for a photograph, text extraction for a PDF — pull out the merchant, date, total, VAT and payment method, and keep it as an expense.
Capture a receipt
Use “Capture a receipt” in Recued. Read one receipt locally — OCR for a photograph, text extraction for a PDF — pull out the merchant, date, total, VAT and payment method, and keep it as an expense.
Complete workflow
Use Expense Ledger in Recued for expenses, receipts, bookkeeping, and ocr. It includes 7 built-in actions and 5 ready-to-run workflows. Actions that change data use Recued's approval controls.
You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.
Use “Review an expense” in Recued. Confirm or correct one captured expense. Whatever you leave blank keeps what was extracted; whatever you fill in replaces it.
Use “Show the expenses” in Recued. List captured expenses for a period with a running total, and count what still needs review. Read-only — it re-reads no receipt and re-runs no extraction.
Use “Export a period” in Recued. Produce the CSV for one month — every reviewed expense, with totals. Only rows you have reviewed are included, so the export is what you stand behind rather than what the model read.
Use “Import expenses (CSV)” in Recued. Reads a card or expense export you downloaded yourself, maps its columns the way you named them, and records every line as an expense. Re-importing an overlapping export adds only what is new.
Use “Records runtime” in Recued. It helps you complete this workflow using the connections and settings you choose.
How a receipt is read
A photograph (image/*) goes through tesseract OCR. A PDF goes through pdftotext. Both are small local tools; nothing is uploaded to a scanning service.
⛔⛔ A scanned PDF produces NO TEXT, and pdftotext reports that as SUCCESS. Verified live on 2026-07-30: a receipt image saved as a PDF came back exit 0 with zero characters. That is the ordinary case for anyone who scans rather than photographs, and it is the dangerous one — an empty string handed to the extractor returns a row of nulls that is indistinguishable from a real receipt with nothing on it.
⇒ This recipe checks the extracted text is non-empty before the model ever sees it. A PDF with no text layer is recorded no_text with a note telling you what to do — re-add it as a JPG or PNG and it will be OCR'd. It is never guessed at.
⚠ There is no local path from a scanned PDF to text. pdfimages can only LIST the images inside a PDF, not extract them, so the pack cannot pull the page out and OCR it for you. Photographing the receipt directly is the working path.
What is stored, and what is not
The extracted TEXT is kept as its own record so you can see what the model actually read. The receipt file itself is untouched — this recipe copies nothing and deletes nothing.
⚠ Every field is AI-extracted and unverified. The extractor is told not to invent a total, tax, date or merchant that is not printed, and to report its own confidence; a low-confidence row is still stored, marked needs_review. Nothing here is booked to your accounts — this is a ledger of what was read, which you confirm in Review an expense.
⚠ A likely duplicate is FLAGGED, never refused. If a receipt matching an existing merchant, date and total is captured again, the new row is kept and marked duplicate_suspect. Refusing it would be the wrong trade: photographing the same receipt twice is cheap to sort out, and a silently dropped receipt is an expense you never claim.
How it works
Inspect the data fetches, transforms, gates, and output this recipe runs.
Settings
Configurable at install. Defaults shown — change them anytime in Recued.
language
setting
=
eng
record id
setting
=
[object Object]
min confidence
setting
=
0.6
Trust & control
What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.