2026-02-09
Invoice OCR validation checks: reconcile totals, catch missing fields, and reduce bad exports
A checklist of invoice OCR validation rules (line totals, subtotal/total reconciliation, required fields, currency sanity checks) to prevent bad CSV exports.
Why validation is the difference between “OCR” and “automation”
OCR output is text. Automation output is trusted structured data.
Validation is how you prevent:
- exporting wrong totals
- paying the wrong amount
- importing broken CSV into accounting software
If you’re starting from scratch, begin with: Invoice OCR.
Tier 1: required fields (blockers)
These fields are commonly required for AP/bookkeeping:
- vendor name
- invoice number
- invoice date
- total amount
- currency (implicit or explicit)
If any are missing, route to review.
Tier 2: arithmetic reconciliation (trust builders)
Line totals → subtotal
If line items exist, check:
sum(line_total) ≈ subtotal
Use a tolerance (0.01–0.10) for rounding.
Subtotal + tax + shipping - discounts → total
Check:
subtotal + tax + shipping - discount ≈ total
If you don’t extract all components, at least verify:
subtotal <= totaltax <= total
Quantity × unit price → line total
For each line:
qty * unit_price ≈ line_total
This catches shifted columns (qty read as price) and OCR digit errors.
Tier 3: sanity checks (fraud + data quality)
Currency sanity
If you detect a currency symbol, ensure it matches the expected currency for the vendor/account.
Date sanity
Reject impossible dates:
- invoice date in the future beyond a small window
- due date before invoice date (unless you allow that)
Vendor identity consistency
If vendor name is uncertain, require a higher confidence threshold before auto-export.
Duplicate invoice hints
Flag potential duplicates:
- same vendor + invoice number
- same vendor + total within a time window
(See: Duplicate invoice detection in Accounts Payable.)
How to present validation in a review UI
Validation is only useful if it’s actionable.
A good review UI:
- shows which rule failed
- highlights the fields involved
- lets the user edit quickly
- re-runs validation immediately
If you want to try review + export: Sign in.
FAQ
What tolerance should I use?
Start with 0.01–0.10 for totals, and 1–2% for unit-price comparisons. Adjust based on your invoice mix.
Should I block exports on every failed check?
No. Block on missing required fields; warn on arithmetic mismatches; and always allow manual override after review.