Build · Intermediate · A weekend
Build a receipt scanner with open-source software
Snap a receipt and it lands in your own books. A local AI model reads the photo; nothing goes to a paid service.
Instead of paying for ChatGPT Plus, Zapier, Make, QuickBooks Online, FreshBooks, Dropbox or Box.
What you'll build
A receipt scanner you own: photograph a receipt on your phone, and a minute later the date, shop, total and tax are sitting in your own accounting app as an expense, with the photo attached. It's the job apps like Expensify and QuickBooks' receipt capture charge for every month. Here an AI model on your own machine reads the photo, so your spending never leaves your hardware. Freelancers use it for tax-ready records; households use it to see where the money goes.
Blueprint
The photo goes into a Nextcloud folder. Activepieces sees it, asks Ollama to pull out the date, shop and total, then creates an expense in Bigcapital.
- You Receipt photo from your phone Nextcloud Server
- Nextcloud Server New file in the receipts folder Activepieces
- Activepieces The image, with a prompt asking for date, shop, total and tax Ollama
- Ollama The fields as JSON Activepieces
- Activepieces A new expense with the photo link Bigcapital
The repos
- 01 · Read the receipt Ollama
Local model runner that downloads and serves open LLMs (Gemma, Qwen, DeepSeek, gpt-oss and more) with a CLI and local API.
- Setup
- Easy; one-line install script or installer, then ollama run source
- Hardware
- Apple M-series or x86 (CPU only) on Mac; 4GB for Windows binary; RAM not stated source
- Paid extras
- None for local use; Ollama Cloud plans optional (Pro $20/month)
- 02 · Move the data Activepieces
Self-hostable no-code automation builder with 280+ TypeScript integrations ("pieces") that are also exposed as MCP servers.
- Setup
- Medium, install script or a single docker run with embedded database source
- Hardware
- Not documented
- Paid extras
- None required; enterprise licence and Activepieces Cloud are optional
- 03 · Keep the books Bigcapital
Double-entry accounting and inventory app with invoices, estimates, Stripe payment links, expenses, Plaid bank sync and financial reports.
- Setup
- Medium; clone the repo, edit .env and start docker-compose.prod.yml, or use the setup script source
- Hardware
- 2 CPU cores and 4 GB RAM minimum for up to 10 organizations; 5-10 GB for MariaDB source
- Paid extras
- Core needs nothing paid; automatic bank sync needs your own Plaid account; Stripe for card payments
- 04 · Store the photos Nextcloud Server
Self-hosted file sync and share server with desktop and mobile clients, share links, file versions and an app store for calendar, contacts and more.
- Setup
- Medium; All-in-One Docker image, appliances, or manual PHP/web server/database install source
- Hardware
- At least 128 MB RAM per PHP process, 512 MB recommended source
- Paid extras
- None required; Nextcloud Enterprise (paid support) and hosted providers are optional
Step by step
Install commands change, so each step links to the repo's own docs for the exact commands.
-
Install Nextcloud and its phone app
Set up Nextcloud Server, then install the Nextcloud app on your phone and create a folder called Receipts. Turn on auto-upload for that folder, or share photos into it by hand. This is the only thing you touch day to day.
Uses Nextcloud Server · its docs
-
Run a vision model in Ollama
Install Ollama on the machine that will do the reading and pull a model that can read images (a "vision" model). Test it on one receipt photo by asking for the date, shop name, total and tax as JSON, and adjust the prompt until the answer is reliable.
-
Set up Bigcapital
Install Bigcapital, create your organisation and an expense account for receipts. Create an API token so the automation can add expenses for you.
Uses Bigcapital · its docs
-
Connect them with Activepieces
In Activepieces, build a flow that starts when a new file appears in the Receipts folder (on a schedule or a webhook from Nextcloud). Send the image to Ollama's local API with your prompt, parse the JSON reply, and call Bigcapital's API to create the expense with the photo's share link in the note.
Uses Activepieces · its docs
-
Test with ten real receipts
Try faded till receipts, foreign currencies and handwritten totals. Add a check that sends anything with a missing total to a "needs review" folder instead of guessing.
Watch out
Bigcapital needs 4 GB RAM. Automatic bank sync needs your own Plaid account.
Take it further
- Tag each expense with a tax category the model suggests, then review them once a month.
- Forward email receipts to the same flow by saving attachments into the Receipts folder.
- Add a weekly summary message of what you spent, by category.
Questions
Do I need a graphics card?
No, but it helps. Vision models run on a CPU, just slower; one receipt taking a minute is fine for this job. Check Ollama's page for what your machine can run.
Can I use this for my tax return?
It gives you organised records and the original photos, which is what most tax authorities ask you to keep. Check the totals it reads; it is a helper, not an accountant.
Why not just use an AI chat app?
You could photograph receipts into a chat app, but the data then sits with that company and you still type it into your books. This keeps both the photos and the numbers on your own machines and files them for you.
Every repo here is open source, still maintained and checked against its own documentation. How we check →