FinVerify converts bank statement PDFs into structured transactions only when reconciliation can be proven. Otherwise it returns FAILED with machine-readable reason codes.
curl -X POST https://api.finverify.tools/v1/process -H "Authorization: Bearer fv_live_xxx" -F "file=@statement.pdf"FinVerify enforces a hard invariant: Opening + Σ transactions = Closing. If it can't be proven, the job fails explicitly. Returns VERIFIED, AMBER, or FAILED — designed to route jobs automatically.
Every job returns a reconciliation verdict. If the math can't be proven, you get FAILED with reason codes — not silent errors.
Headless by design. Workspace-scoped API keys, sub-second status checks, and structured JSON output ready for your pipeline.
We charge by Document Units (page-equivalent). Costs scale linearly with volume — no surprises.
Upload a PDF. Get verified transactions or an explicit failure. FinVerify handles extraction and reconciliation in one API call.
Three steps to a reconciliation verdict you can trust.
We normalize table structure so columns are stable — regardless of bank format or language.
We use balances and totals as constraints. Every row must satisfy the running balance.
When layouts are ambiguous, we search for a reconciliation-consistent interpretation and mark ambiguity as AMBER — not silent success.
Built for teams that need control over their financial data pipelines.
Manage multiple projects, clients, or environments under a single account.
Create, revoke, and monitor keys with workspace-level permissions.
No more “per job” gaming. Our ceil(pageCount/2) logic ensures fair pricing for all document sizes.
Route only verified statements into credit decisions.
Accept PDFs when bank feeds fail — with proof.
Audit trail with deterministic reason codes.
We measure usage in Document Units (DU). 1 DU covers up to 2 pages of a PDF. This ensures predictable pricing for modern fintech apps.
We don't. If our geometric reconciler cannot prove the math of a statement, the status is returned as RED with an explicit reason code. We prefer to fail loudly than to return wrong data.
OCR extracts text. FinVerify returns a reconciliation verdict with reason codes. That verdict — not raw extraction — is the product.