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 <= total
  • tax <= 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.