The challenge
A typical UK accounting practice pays for three tools: one for the ledger, one for document capture, and one for review. Work moves between them by export and import, and errors creep in at every hand off.
The goal
One system that takes an invoice from the inbox all the way to a posted bill and, later, a VAT return, while keeping client documents inside infrastructure we control.
What we built
- Each client gets its own inbox address. Documents sent there are captured automatically.
- Our own OCR pipeline reads them: text PDFs take a fast path, photos and scans are straightened and read by open OCR models in a sandbox with no network.
- Supplier, dates, totals and the VAT rate of every line are extracted, then matched to the right supplier and account, with the reason shown.
- A reviewer sees each figure highlighted on the original document, and one click posts the bill to a double entry ledger.
- Hard documents can go to an LLM: a local model by default, a hosted one only where the practice has agreed.
The hard parts
Accounting data must never leak between clients.
Postgres row level security on every tenant table and a hash chained audit trail.
OCR changes can quietly break extraction.
A 200 document regression gate that runs on every push.
Slow OCR does not fit a serverless web app.
Fast web work on Vercel, heavy document work on a separate worker.
The result
Zeynoc Ledger is live at ledger.zeynoc.com. The first production journal was posted in September 2026, and bank feeds and Making Tax Digital are next.