Turn a folder of invoice PDFs into a checked spreadsheet.

Digital PDFs, scans, phone photos of paper, or a single merged bundle with fifty invoices running together. You get back a spreadsheet listing the date, due date, supplier, reference, description, net, VAT and gross for each one, with the arithmetic on every row already checked.

Priced per invoice, billed monthly · No subscription, no credits, nothing expires

What you can upload

A folder of loose PDFs One merged bundle, no separators Scans with no text layer Phone photos of paper Multi-page invoices Receipts and bills

What you get back

Excel (.xlsx) Xero bill-import CSV Unverified rows on their own sheet Sorted by date, autofilter on every column
How it works

What happens when you upload a batch

01

Upload the pile

Drag in a folder of files, or a single merged PDF. You don't need to tell us which it is, or mark where one invoice ends and the next begins. It works that out for itself, including on a scan with no text layer.

02

See the price first

Counting the documents costs nothing, so you get a price before you commit to anything. The final figure may come down if some of the documents turn out not to be invoices, but it will never be higher than the figure you agreed to.

03

Reading and checking

Every figure is read and then checked. Net plus VAT has to equal the gross to the penny, the VAT rate has to come out at 20%, 5% or 0%, and any line items have to sum to the header total. Rows that fail a check go on a separate sheet instead of being mixed in with the rest.

04

Check its working

Before you download anything, each row is shown next to an image of the page it was read from, so you can check it against the original. You can then download an Excel workbook, or a Xero bill-import CSV of the same rows.

invoicepro.co.uk/jobs/4471/review
Documents found in bundle38
Billable (invoices & credit notes)34
Receipts and other documents4 — processed, not charged
Quoted before conversion£25.50 — will not go up
DateDueSupplierRef NetVATGrossChecks
03/04/202603/05/2026Kestrel Building SuppliesKBS-77310 1,240.00248.001,488.00 balances · VAT 20%
11/04/202611/05/2026Thornaby ElectricalTE2291 486.5097.30583.80 balances · VAT 20%
22/04/202622/05/2026Whitlow RoofingWR-2026-118 28,392.005,666.0033,995.00 does not balance
02/05/2026Redlow Fuel40912 64.1712.8377.00 receipt · not charged
09/05/202608/06/2026Pentley Legal30188 2,150.00380.002,530.00 mixed VAT bands · reconciled
17/05/202616/06/2026Brackmoor ScaffoldingINV-4471 3,780.00756.004,536.00 read from scan · figures matched

Flagged rows are written out in full, exactly as printed on the invoice, and repeated on a separate sheet. Nothing is dropped or included without being shown to you.

The example we get asked about

An invoice for £33,995 that didn't add up

The mistake was the supplier's, not ours. The page printed three figures that cannot all be correct at the same time. Keying invoices in by hand at 48 seconds each, nobody would catch it.

Whitlow Roofing — WR-2026-118 Net printed 28,392.00 VAT printed 5,666.00 Gross printed 33,995.00 28392.00 + 5666.00 != 33995.00 difference 63.00 implied VAT rate 19.96% → row written as printed → contradiction described on the row → repeated on the Unverified sheet

Every figure the page prints is written out as printed. Nothing is quietly corrected, and an empty cell means the figure wasn't on the invoice, not that we decided to ignore it. What gets added is a note on the row saying which sum failed and by how much.

There is a limit to this. It finds the contradiction every time, but it is much less reliable about which figure is at fault: run the same invoice twice and it may point at the net on one pass and the VAT rate on the next. Working out which of the printed figures is actually wrong is still your job.

Most capture tools will convert a folder of invoices happily enough. They won't mention that one of them doesn't add up.

What it checks

What gets checked on every row

⚖️

Arithmetic

Net plus VAT has to equal the gross to the penny, any line items have to sum to the header, and VAT bands have to reconcile. Anything that fails ends up on a separate sheet.

🇬🇧

UK VAT rates

The rate has to come out at 20%, 5% or 0%. Anything else is flagged as mixed-rate or an odd rate. A printed £0.00 of VAT is recorded differently from an invoice with no VAT line at all, because the two mean different things on a return.

📅

UK date order

03/04/2026 is read as 3 April. Read the American way it becomes 4 March, which puts the invoice in the wrong VAT quarter. A transposed date still balances, so no arithmetic check would pick it up.

💬

Notes in plain English

Where something couldn't be checked, the row says so in a sentence you can act on. A check that couldn't be run is recorded differently from one that ran and failed, since those don't mean the same thing.

🔍

The page beside the row

Every row is shown next to the page it came from, on screen, before you download anything, so you can check it yourself rather than take it on trust.

🖨️

Scanned documents

We printed twelve documents, scanned them at 300 dpi and again at 150 dpi, and read all three versions. Every date, reference, net, VAT, gross and currency matched across the three. The low-resolution scan read as accurately as the high one.

✂️

Merged bundles

It works out where one invoice ends and the next begins, even in a bundle with no separators and no text layer. On a real scanned bundle it found 12 documents out of 12, with none missed and none invented.

Duplicates

The same invoice appearing twice in one batch is flagged, rather than quietly doubling a VAT reclaim.

💷

A price up front

You see the number before committing, with receipts and other non-invoice documents already left out of it, and it can only come down from there.

Testing so far

What we have actually measured

About fifty real documents so far, including a scanned bundle checked against a known-correct control. That's enough to turn up the awkward cases, but not enough to support an accuracy percentage, so we don't quote one.

12 of 12 documents found in a real scanned bundle None missed, none invented
3 readings of the same twelve documents: native PDF, 300 dpi scan, 150 dpi scan Every field matched across all three, with no errors in any figure
3.5 s per document on the text path; 4.3 s read as a scan 15 documents end to end in 52 seconds
zero false alarms so far Every row it has flagged turned out to have something wrong with it
Scope

What it doesn't do

Before you upload a year's worth, here is what it does not do.

Not a replacement for Dext, AutoEntry or Hubdoc

Those tools watch a mailbox and post into a ledger as documents arrive, one at a time. This is for the backlog that turns up all at once instead. A lot of firms will have use for both.

No ledger integration

You get a file. The Xero bill-import CSV is just an export in someone else's format, with no connection to your ledger and no write access to it. The nominal code column is left blank on purpose, because coding it is your judgement to make.

No mobile capture, no supplier rules

There's nothing watching a mailbox and nothing that learns a supplier's layout over time. It reads what you upload, when you upload it.

It doesn't sign the schedule off

The schedule still needs someone to go over it before you file anything. What you save is the time spent working out which rows need that attention, since those are already on a separate sheet.

We don't quote an accuracy percentage

Fifty documents will turn up awkward cases, but it won't establish a rate. A claim of "99% accurate" would be the first thing you'd test, and quite right too.

We're not the only ones in this field

Other tools split merged PDFs and check arithmetic, and one search will turn them up. If you are comparing them, look at what happens to the rows that fail a check, and whether the tool is built for UK VAT or for tax in general.

Send us the worst scan you have

We're taking on a small number of UK practices at the moment. Tell us what you'd want to put through it and we'll get you set up.

Request access

Priced per invoice, invoiced monthly. No card, no subscription, no minimum.