Capture and Check Receipts Automatically: AI Instead of a Shoebox

The shoebox full of receipts is no joke, it is reality for most founders, only in digital form: an email inbox, a downloads folder, three portals. Capturing receipts automatically is the way out, and it is easier than you think.

We built this for Flowhouse and for our own brands. Here is the process in four steps, including the failure cases nobody likes to talk about.

Why receipts are the most annoying bookkeeping problem

Transactions are easy. The bank delivers them cleanly and completely. Receipts are the opposite: they arrive by email, as a download in a customer portal, as a photo of a restaurant bill, sometimes never at all.

And the tax office says: no booking without a receipt. So there you sit at the end of the month, playing memory. Which receipt belongs to which debit?

That memory game is exactly what you can automate. The trick: treat receipts as a data stream rather than as documents. The full picture of our bookkeeping system is in Automating bookkeeping with AI, this article covers the receipt part only.

Step 1: Bundle every inbound channel

Before any AI reads anything, you need one place where all receipts land. For us that is essentially three channels:

The rule behind it is simple: a receipt that sits in none of those channels does not exist for the system. That forces discipline in exactly one place instead of ten.

Start here even if you automate nothing else. A single inbound folder beats any shoebox.

Step 2: AI reads the receipt

Now the AI comes in. Every new receipt goes through a language model that extracts the core data:

This step used to be called OCR and it was painful: rigid templates that broke with every new invoice layout. Modern language models read a PDF or a photo the way a human does. Whether the invoice comes from Meta, from the fulfilment provider or from a trade fair builder barely matters any more.

One detail matters: have the model give you structured data rather than prose. What you want in the end are fields a program can compare.

Step 3: Check against the bank transaction

This is the step almost everyone skips, and it is the most valuable one. An extracted receipt is only worth something once it matches a real payment.

Our system takes the extracted data and looks for the matching bank transaction in Qonto. What gets compared, above all:

This check is more than convenience, it is quality control. It finds duplicate invoices. It finds invoices that were never paid. And it finds debits with a missing receipt, before your tax advisor asks about them.

With us the check runs in both directions: receipts look for their transaction, and transactions without a receipt show up on an exceptions list.

Step 4: Matching and filing

If everything lines up, the receipt is attached to the transaction automatically. From then on it sits where it belongs: in the export for the tax advisor, the receipt reference travels along with the booking.

A human only looks at two lists: uncertain matches and transactions without a receipt. For us that is a short round instead of half a day. The same pattern as everywhere with us, see 3 brands with 2 people: machines handle the standard case, humans handle the exceptions.

The failure cases, named plainly

Capturing receipts automatically sounds like magic. It is not. These cases cause trouble in practice:

With us the clear majority of receipts goes through with no intervention. The rest lands on the review list, and that is fine. The goal is to be left with only the work that needs judgement. Zero manual work was never the target.

Where to start

If you are starting today, in this order:

1. Define one inbound channel. One email address plus one folder. From now on every receipt lands there.

2. Pick a bank with an API. Without clean access to your transactions there is no automatic matching. That was a main reason we went with Qonto.

3. Build or buy the extraction. The AI part is the easiest building block these days.

4. Make the check mandatory. No receipt counts as done before it has been checked against a payment.

And automate only once you have run the process manually and cleanly at least once. Otherwise you automate chaos. Where automation makes no sense at all, I wrote up in When automation makes no sense.

Conclusion

Capturing receipts automatically consists of four steps: bundle the channels, AI extraction, check against the bank, match and file. The check is the most important one, because it turns a filing system into a control system.

For us it replaced the shoebox completely. Not perfect, and good enough that the monthly close no longer scares anyone.

If you want this for your business and would rather not build it yourself: at Flowhouse we build exactly these systems. Just get in touch.