Skip to Content
AI Bill Scanning · Odoo Purchase

Your vendor bill says one thing. Your purchase order says another.

Photograph the bill, upload it, and Odoo reads every line and puts it side by side with the purchase order. Price changes, short deliveries and charges you never ordered get flagged before anything is posted.

Installs inside Odoo Works from phone photos Nothing posts without approval
Compare purchase order with delivery bill 72 lines checked in seconds
ProductPO qtyBill qtyPO priceBill priceDiffStatus
Powerade Blood Orange 500ml24241.041.25+0.21Price mismatch
Bavaria Strong Can 500ml48241.261.51+0.25Price mismatch
Kristal Water 2L X63202.53Missing
Fuze Tea Peach Hibiscus 500ml60600.690.69Matched
Standard discount00.00Extra, not on PO
The problem

Nobody checks a 70-line bill properly.

Not because your team is careless. Because the bill arrives as a photograph, and comparing it by hand takes longer than anyone has.

72

Lines to compare, by hand

Every quantity, every unit price, every tax line. On one order, from one supplier, on one day.

JPG

Bills arrive as pictures

A phone photo of a thermal print. Not a spreadsheet, not an EDI feed, not anything a system can read.

+21%

Price creep goes unseen

A supplier lifts a unit price by a few cents. It passes because nobody compared it to what you agreed.

24/48

Short deliveries, full price

You ordered 48. You received 24. You were billed for 48, and it was paid.

?

Found months later

The discrepancy surfaces at reconciliation, long after the credit note was easy to ask for.

How it works

Three steps, and only one of them is yours.

STEP 01

Upload the bill

Photograph each page and drop them into the purchase order. Multiple pages are merged into a single document automatically, in the order you set.

STEP 02

OCR and AI extraction

The pages are read, then every line is pulled out as structured data: product, quantity, unit price, tax. You watch the progress and can leave the page while it runs.

STEP 03

Review the comparison

Each extracted line lands next to the matching purchase order line, with its own status. You correct anything the OCR misread and recalculate.

What it flags

Every line gets a verdict, not a score.

You are not handed a confidence percentage and left to guess. Each line is sorted into one of four states, and the ones that need a human are obvious at a glance.

Matched

Nothing to do

Quantity, price and tax all agree with the purchase order. Pass over it.

Price mismatch

You were charged more

The unit price on the bill differs from the agreed price, with the exact variance and margin impact shown.

Missing

Ordered, never billed

A line on the purchase order that does not appear on the bill. Usually a short delivery worth chasing.

Extra

Billed, never ordered

Deposits, delivery fees, discounts and lines that were never on the purchase order at all.

What you get

Built for bills that are messy, because they always are.

Capture

Multi-page bill scanning

  • Upload photos or scans, several pages at once
  • Reorder pages before sending them to OCR
  • Pages merged into one document against the order
  • Everything attached to the purchase order record
Extraction

AI line reading

  • Product description, quantity, unit price and tax per line
  • Invoice reference and date pulled from the header
  • Runs in the background while you carry on working
  • Read quality reported openly, never hidden
Comparison

Line-by-line matching

  • Bill lines matched against purchase order lines
  • Price, quantity and tax variance on every row
  • Counts for matched, mismatched, missing and extra
  • Margin impact shown next to the difference
Correction

Your team stays in charge

  • Edit any quantity or price the OCR read wrongly
  • Recalculate and the whole comparison rebuilds
  • Tick only the lines you want carried forward
  • No silent overwrites of your purchase order
Control

Price change approvals

  • Every price difference becomes an approval request
  • Approve or reject line by line, with who and when recorded
  • Pending, approved and rejected counts on one screen
  • Nothing reaches your accounts unreviewed
Output

Draft bill and audit trail

  • Draft vendor bill generated from the agreed lines
  • Bill matching, comparison and corrections reachable from the PO
  • Full history in the chatter, including what the AI parsed
  • Receipts and approvals all linked to the same order
See it in action

Real screens from inside Odoo, not mockups.

Upload the pages

Upload the pages

Four photographed pages, reordered and merged into a single document before scanning.

Watch it read

Watch it read

Upload, OCR, extraction, comparison. It keeps running if you navigate away.

The Comparison Screen

The comparison screen

Counts at the top, every line below it, colour-coded by what is wrong with it.

Approve the price changes

Approve the price changes

Each difference queued for a decision, with current cost against invoice price.

Why not the alternatives

Scanning the bill is the easy part.

Plenty of tools will turn a picture into text. Very few will tell you that line 41 was billed at a price you never agreed to.

Checking by handGeneric OCR toolsThis module
Reads a phone photoYes, slowlyYesYes
Compares against the purchase orderIf there is timeNoEvery line, automatically
Flags prices you never agreedRarely caughtNoWith exact variance
Spots lines billed but not orderedRarely caughtNoYes
Corrects a misread lineNot applicableRe-key it elsewhereEdit and recalculate in place
Approval before it hits accountsManual chasingNoBuilt in, line by line
Lives in your Odoo dataYesNo, separate appYes, on your server
Per-page or per-document feesNoneUsuallyNone
Who it is for

High line counts, tight margins, paper bills.

Beverage & FMCG distributionHundreds of SKUs per delivery, cents of margin each
Wholesale & cash and carryFrequent price changes across a long catalogue
Retail chainsDeliveries against one PO, arriving short
Food service & hospitalityDaily deliveries, handwritten and printed docket bills
ManufacturingRaw material bills with deposits and surcharges
Pharma & healthcareBatch deliveries where every line must be traceable
Construction supplyPart deliveries billed across several documents
Any Odoo user with an AP backlogIf bills wait for someone to check them, they will not wait as long
Good to know

Questions, answered.

What if the OCR reads a line wrongly?

It will sometimes, and the module is built on that assumption. A creased photo of a faded thermal print is hard to read. Every extracted quantity and price stays editable in the comparison table. Your team fixes what is wrong, presses recalculate, and the comparison rebuilds against the corrected figures. Read quality is shown openly rather than buried, so you know when a scan is worth redoing.

Does it change my purchase order automatically?

No. Nothing is applied silently. Price differences become approval requests that somebody has to approve or reject, and the draft vendor bill is only created from lines you have agreed. The purchase order itself is never rewritten behind your back.

Does it work with photos, or only clean PDFs?

Photos taken on a phone are the normal case. You can upload several images at once, reorder them, and they are merged into one document before scanning.

What happens to charges that are not on the purchase order?

They are surfaced as extra lines rather than quietly dropped or quietly added. Deposits, delivery charges, promotional discounts and anything else the supplier has put on the bill appears with an Extra status so you can decide what to do with it.

Which Odoo version does it need?

It is built as a standard Odoo module and installs like any other. Tell us the version and edition you are on and we will confirm compatibility before anything is committed.

Does our data leave our server?

The module runs inside your Odoo instance. Where an external AI service is used for extraction we will tell you exactly which one and what is sent, and a fully self-hosted extraction option can be arranged.

Can it be adapted to how our suppliers bill us?

Yes. Bill layouts, tolerance thresholds, who approves what, and which statuses need action are all things we tune per client. That is usually the first conversation.

How do we get started?

Send us a few of your real vendor bills and a purchase order they relate to. We will run them through and show you what it finds on your own documents, before you commit to anything.

Send us your messiest vendor bill.

We will scan it, compare it against the purchase order, and show you what your team would have had to catch by hand. No commitment, no pressure.