kerneltics

Blog

AI vendor bill scanning in Odoo: AI Bill Scanner turns PDFs and photos into checked drafts

AI vendor bill scanning in Odoo: upload a PDF or photo and get a draft bill that Odoo has checked, with duplicates blocked and changed bank accounts flagged.

By kerneltics5 min read
  • أودو
  • Odoo
  • فواتير الموردين
  • الذكاء الاصطناعي

In most companies, a vendor bill arrives as a PDF in an inbox or a photo on someone's phone. The accountant opens it on one screen, Odoo on the other, and types it in line by line: supplier, dates, quantities, taxes, total. One wrong digit is a payment you cannot take back.

That is why we built AI Bill Scanner, an Odoo add-on for AI vendor bill scanning in Odoo: the AI reads the bill, and Odoo itself checks every number before anyone relies on it. Here it is in action:

Watch AI Bill Scanner work in Odoo, 78 seconds

What AI Bill Scanner does in Odoo

Bills in. Checked drafts out.

  • PDFs and photos become draft vendor bills in Odoo, with the original file attached.
  • Every number is checked. The lines must add up to the untaxed amount, untaxed plus tax must equal the total, and the taxes Odoo computes must match the bill. Dates, the VAT number and the IBAN are checked too.
  • Duplicates are blocked. Same supplier and reference, or same supplier, total and date: Apply stays locked until a manager confirms it is not a duplicate.
  • Bank changes are flagged. An IBAN that is not one of the supplier's known accounts raises a warning to confirm by phone, and it is never added to the supplier.
  • It remembers each supplier. Products by the supplier's own codes and names, and otherwise the account, taxes and analytics you use most on that supplier's posted bills.
  • E-invoices are read exactly. UBL and CII XML embedded in a PDF (Peppol BIS, XRechnung, Factur-X, ZUGFeRD) is read inside Odoo with no AI call and no cost.
  • Purchase orders. With the Purchase app, the bill is linked to its order, and a quantity billed above the quantity received gets a warning.

How it works, step by step

  1. Install AI Bill Scanner from Apps. It needs Invoicing or Accounting and no extra Python package.
  2. Connect your own AI provider. OpenAI, Azure OpenAI, Anthropic Claude, Google Gemini, Mistral, OpenRouter, Ollama or any OpenAI-compatible API. Paste your key and click Test Connection. You can add a fallback provider for when the first one is down, busy or too slow.
  3. Give consent. No bill is sent anywhere until an administrator ticks "Send bills to the AI provider" in Settings.
  4. Bring bills in, three ways. Click Scan Bills on the vendor bills list and drop in several files at once (PDF, PNG, JPG, WEBP). Or email bills to a purchase journal's address and they are scanned on arrival. Or click Scan with AI on any draft bill that has a file.
  5. Review and apply. The AI Scan panel above the lines lists every check as OK, Warning or Error in plain words, and highlights low-confidence values. Happy with it? Click Apply.

Automatic posting is off by default. Even when you turn it on, a bill is posted only when every check is OK, the supplier has at least 3 posted bills, and the total is under the limit you set.

Who it is for

Any company on Odoo that receives a steady stream of vendor bills and still types them in. Think of a parts wholesaler getting weekly bills from many suppliers in different layouts and currencies.

It also suits teams that do not want another subscription or a credit balance to top up. You pay your AI provider directly for what you use, the usage log shows the estimated cost of every call, and a monthly budget per company warns at 80% and stops new scans at 100%. In our own benchmark on test bills, a bill cost about $0.002 with gpt-4.1-mini. Your bills will differ.

Editions, price and versions

  • AI Bill Scanner (kt_bill_scanner): the global edition, $149, one-time. No subscription, no activation key.
  • AI Bill Scanner Saudi (kt_bill_scanner_sa): $50 on top of the global edition, which the Apps Store adds to your purchase. It adds ZATCA QR verification, exact reading of ZATCA Phase 2 XML, Saudi VAT number checks, simplified invoice warnings, Hijri dates, Eastern Arabic digits and a full Arabic interface.
  • Versions: Odoo 17, 18, 19 and 20, Community and Enterprise, on Odoo.sh or your own server.

What it does not do

  • It does not run on Odoo Online. Odoo Online does not allow modules from the Apps Store. Use Odoo.sh or your own server.
  • It is not a magic reader. An AI can misread a figure. That is why every scan is checked and shown to you, and bills stay drafts unless you allow otherwise.
  • It does not send your own invoices to ZATCA. The Saudi edition reads the bills your suppliers send you; your own e-invoicing is Odoo's Saudi module. We covered that in ZATCA e-invoicing on Odoo.
  • It does not verify Phase 2 signatures. The hash and signature are kept as evidence; the QR's VAT number, total and VAT are compared with the bill.
  • Images need a provider that reads images. A text-only local model reads only PDFs that have a text layer.

FAQ

Do my bills pass through Kerneltics?

No. Bills go from your Odoo straight to the AI provider you chose, with your own key. Kerneltics receives nothing. Your suppliers, products and accounts are never sent: matching happens inside Odoo. With Ollama or another model on your own server, bills never leave your network.

Can it read scans and phone photos?

Yes, with a provider that reads images (OpenAI, Claude, Gemini, Mistral). Files up to 20 MB and PDFs up to 30 pages.

What happens if I uninstall it?

Your bills stay exactly as they are. The scheduled job, the server actions and the module's settings are removed.

How we do it

Get AI Bill Scanner on the Odoo Apps Store, or the Saudi edition if you buy in Saudi Arabia. Before you buy, send us a bill that matters to you (with private data removed) and we will tell you what the scanner reads and which checks it passes.

Weighing a ready-made add-on against custom work? Read Odoo Apps Store vs custom development, see our Odoo work, or book a call and we will look at your bills together.