Finance & AP

Automated invoice data extraction

Tavnit reads supplier invoices in any layout and returns vendor, invoice number, dates, tax, totals and every line item as typed fields. No per-vendor template to build. Nothing posts to your ledger until a reviewer approves it, and every approval is recorded.

Why this is painful

Accounts payable is the classic version of this problem: the same eight fields, re-typed from a hundred different layouts, every month. Each supplier formats differently, some send scans, some send photos of scans, and the ones who change their template do it without warning.

Template-based tools handle the first problem badly — you configure a layout per vendor, and every new supplier is a setup task. The moment a vendor redesigns their invoice, the template silently breaks and the errors flow downstream into your ledger.

What to extract

FieldWhy it needs care
Vendor name and addressOften differs from the trading name you have on file — a lookup Cleaner can match it to your supplier list.
Invoice numberTyped as text, not a number. Leading zeros and prefixes matter and get destroyed by numeric parsing.
Issue and due datesFormats vary by country. A date Cleaner normalises DD/MM and MM/DD to one output format.
Line itemsA repeating table: description, quantity, unit price, amount. The part most tools either skip or flatten.
Subtotal, tax, discount, totalWorth extracting all four so the arithmetic can be checked rather than trusted.
CurrencyA currency Cleaner can convert to your reporting currency at the same time.
PO numberWhere present, this is what lets you match the invoice to a purchase order automatically.

What makes invoice processing hard

Line items are where extraction usually fails

Header fields are easy. A table that runs across a page break, has merged cells, or mixes descriptions across two lines is where most tools return something plausible and wrong. Table fields in a flow handle repeating rows as rows, so a five-line invoice returns five records rather than one blob of text.

A wrong total looks exactly like a right one

There is no visual difference between a correctly read €1,240.00 and a misread €1,240.00 that was actually €1,249.00. This is the argument for conditional review: a Cleaner rule can check that line items sum to the subtotal and route only the failures to a human, so you are not reviewing everything to catch the few that matter.

Multiple invoices arrive in one PDF

A supplier statement or a scanned batch often contains several invoices in a single file. A Splitter separates them first, so each becomes its own run with its own extracted record instead of one merged mess.

How the pipeline handles it

  • Email Integration Suppliers already email invoices. Auto-forward the AP inbox and every attachment is processed without anyone opening the app.
  • Splitters Separates batched or stapled scans into individual invoices before extraction.
  • Cleaners Normalises dates, converts currency, matches vendors against your supplier list, and flags arithmetic that does not add up.
  • Human in the Loop Holds a run for approval — every invoice, or only the ones a rule flagged — with an append-only record of who approved what.
  • Webhooks Pushes the approved record straight into your accounting system the moment it clears review.

Common questions

Does it handle scanned and photographed invoices?
Yes. Scans, photos and image-based PDFs all go through OCR before extraction. Quality still matters — a sharp scan extracts more reliably than a phone photo at an angle — which is why review exists for the marginal cases.
Do I need to set up a template per supplier?
No. You define the fields you want once, and the same flow reads invoices from any supplier in any layout. Adding a new vendor requires no configuration.
Can it extract line items, not just totals?
Yes. Line items are defined as table fields, so a repeating table returns one record per row with description, quantity, unit price and amount typed separately.
How does it handle different currencies?
Currency is extracted as its own field, and a Cleaner can convert amounts to your reporting currency during processing so downstream systems receive one consistent unit.

Other document types

Try it on one document

Build a flow, send a real invoice processing through it, and see what comes back. Free credits to start.

Start free