FlowParse
Blog August 2026 24 min read

What KYB Platforms Actually Need from a Document API

A lot of KYB scoping starts with a search for an API that reads incorporation documents. What most platforms end up actually needing — and building an entire risk decision around — is something narrower and more concrete: a bank statement, read reliably.

FlowParse
flowparse.io
flowparse.iono audio needed
0:00 / 0:00

The search that starts most of these projects

If you're currently in the middle of exactly this scoping exercise, the practical version of this article's conclusion is in the step-by-step integration guide — this piece is the reasoning behind why that guide is scoped the way it is.

A product manager scoping a KYB flow for the first time tends to write down a fairly specific requirement early on: read the certificate of incorporation, extract the company name, the registration number, maybe the directors. It sounds like exactly what "knowing your business" should mean — reading the document that proves the business exists. It's also, for most platforms, close to the wrong document entirely.

This article is about that gap — why the instinct to reach for incorporation documents is so common, why it's usually misdirected, and what a KYB flow actually ends up needing to read once the scoping settles.

FlowParse
flowparse.io

Why the confusion is genuinely reasonable

It doesn't help that vendor marketing across the KYB space uses "document verification" loosely, sometimes to mean registry-backed identity checks, sometimes to mean literal document parsing, often without drawing a clear line between the two. A team new to the space has little reason to know that distinction matters until they've tried to build or buy both pieces and discovered how differently they actually work.

"Know your business" sounds, on its face, like a document-reading problem — read the paperwork, confirm the business is real. That framing isn't unreasonable; it just doesn't match how the underlying data actually works. A business's legal existence isn't proven by reading a PDF a business hands you — a business could hand over a forged or outdated certificate, and a document reader has no way to check it against the actual government record. Legal existence is proven by checking against the record directly, which is exactly what a registry API does.

The confusion is reasonable because the word "document" shows up naturally when people describe what onboarding requires, and it's a short conceptual leap from "we need documents" to "we need an API that reads documents," without pausing to ask which specific documents actually need reading versus which questions are better answered by a lookup.

The three checks a KYB flow actually runs

CheckSource
Legal existence, registration status, directorsA registry lookup — government or commercial database
Sanctions, PEP and watchlist statusA screening provider — curated list matching
Financial activity and standingDocument reading — bank statements and financial reports

Once laid out this way, it's clear the three checks come from three genuinely different kinds of data sources, built by three genuinely different kinds of vendors. Scoping a KYB flow well means recognizing which check answers which question, rather than expecting one document-reading API to somehow cover all three.

What a registry lookup already gives you

A registry API typically returns the company's registered legal name, its registration or company number, incorporation date, current status (active, dissolved, in liquidation), registered address, and often a list of current directors or officers — all pulled directly from the official record, updated whenever that record changes.

This is precisely the data a certificate of incorporation would show you, except sourced from the authority itself rather than from a document a business could, in theory, alter, misplace, or submit an outdated version of. For the specific question "does this business legally exist, under this name, in good standing" — a registry lookup is both more reliable and dramatically simpler to integrate than any document-reading approach could be.

FlowParse
flowparse.io

What's actually left for a document to prove

Once legal existence and screening are handled, what remains is a genuinely document-shaped question: is this business actually operating, with real financial activity, under the name it claims to be. That's not a question a registry can answer — a registry knows a business is registered, not whether it has a functioning bank account with genuine transaction history. It's a question only a document — specifically, a bank statement — can answer.

This is the gap document reading actually fills in a KYB flow, and it's a narrower, more concrete gap than "read the paperwork" suggests — but it's also a gap that genuinely needs solving well, since it's the one piece of the flow with no equivalent lookup shortcut.

The moment most teams have this realization

It rarely happens during initial planning. More often, a team starts evaluating document-extraction vendors for incorporation documents, discovers how genuinely hard reliable cross-jurisdiction legal document parsing is — different countries, different document formats, different levels of document quality depending on how a business obtained its filing — and, in the process of that evaluation, realizes the registry API they already integrated (or are about to) returns most of that same data more reliably.

That realization usually redirects the document-reading requirement toward what a KYB flow actually asks applicants to submit as evidence: a bank statement, sometimes financial reports for higher-risk tiers — which is also, not coincidentally, a much more tractable document-reading problem than a legal registration filing.

Why the bank statement carries so much weight

A bank statement does two things a registry lookup structurally cannot. First, it names an account holder — a string your platform can compare directly against the legal entity name from the registry check, catching the case where a business opens an account under a name that doesn't quite match its registration. Second, it shows a transaction history — regular, varied activity looks structurally different from a dormant or newly-funded account, and that difference is a real signal about whether a business is genuinely operating.

Neither signal is a fabricated risk score — both are concrete facts read directly from a real document, which is exactly the kind of thing document extraction is actually good at, as opposed to inferring legal status from a certificate that can't itself be checked against anything.

Where financial reports come in

Not every applicant needs to submit financial reports — most KYB flows reserve this for higher-risk tiers or applicants requesting higher transaction limits, where evidence of financial standing beyond a single bank account is worth the extra friction of asking for it. A financial report gives a second, independent name-match point (the reporting entity, distinct from the bank account holder) and a concrete internal-consistency check: do the document's own numbers add up.

Like the bank statement, this doesn't verify the underlying figures are accurate in any absolute sense — it verifies something narrower and genuinely checkable: the submitted document is internally consistent, and it names the entity it claims to represent.

Why incorporation documents are the wrong target

Setting aside the redundancy with registry data, incorporation documents are also, on their own technical merits, a poor fit for reliable automated extraction at scale. Formats vary enormously by jurisdiction, sometimes by decade within the same jurisdiction, and the specific fields that matter — beneficial ownership structure, share classes, filing amendments — often require legal interpretation that goes well beyond reading printed text off a page.

A vendor promising reliable incorporation-document extraction across many jurisdictions is promising something considerably harder than reading a bank statement, for a data set that a registry lookup already provides more reliably. That combination — harder problem, redundant answer — is why this requirement so often gets quietly dropped once a team actually maps out what each check is supposed to prove.

A useful analogy from personal KYC

Personal identity verification went through a version of this same clarification years earlier, and it's a useful comparison. A person's passport proves who they are — a government-issued credential, checked against its own security features and sometimes against a government database. But most KYC flows also ask for a separate proof of address, because a passport doesn't tell you where someone currently lives, and that's a genuinely different fact that needs its own evidence.

No mature KYC flow tries to extract a current address from a passport, because passports don't reliably carry one. The document requested for identity and the document requested for address are different, because they prove different things. KYB has the same shape: a registry lookup is the "passport" — it proves the business exists and is who it claims to be. A bank statement is the "proof of address" — it proves something a registration record structurally cannot: that the business has genuine, ongoing financial activity. Asking one document to do both jobs was never really the pattern, once you look at how the equivalent personal flow actually works.

A scoping conversation, before and after

A fintech's product team drafts an initial KYB requirements document, then revises it after a week spent evaluating vendors.

BeforeAfter
"API that reads incorporation certificates for company data"Registry API for legal existence and officer data
"OCR for business registration documents"Document API for bank statements and financial reports
One vendor search covering everythingThree separate, purpose-fit integrations

The revised requirements document took about a week longer to arrive at than the original, but the resulting integration was faster to build — each piece was scoped against a vendor actually built for that specific problem, rather than one vendor stretched across all three.

What happens when this gets scoped wrong

A team that commits to incorporation-document extraction as its primary KYB document requirement usually discovers the gap late — either the extraction accuracy across jurisdictions turns out disappointing once real applicant documents arrive, or the redundancy with registry data becomes obvious only after both integrations are already built and someone notices they're answering the same question twice.

There's also a quieter cost: a launch date that slips because the team spent weeks on a document-parsing problem harder than it needed to be, for data a registry lookup would have returned in a single call from day one.

Meanwhile, the bank statement — the document that actually needed careful, reliable extraction — often gets a much thinner implementation, built later and under more time pressure, precisely because it wasn't the original focus of the project.

What a compliance reviewer actually asks about

A useful reality check when scoping this: think through what a compliance reviewer, or an auditor, would actually ask when examining the document-verification step of an onboarding flow. The questions tend to be concrete — which documents are requested at which risk tier, what happens when a name doesn't match, what the confidence threshold is and who set it, how long documents are retained. Almost none of those questions are "did you parse the certificate of incorporation" — because that's not the piece the review is actually probing.

Building the document-reading piece around what actually gets reviewed — not around what sounds most official on paper — tends to produce a flow that holds up better under real scrutiny, simply because it was designed against the right questions from the start.

Myths worth retiring

"A KYB API should read every document type a business might submit"

The most useful KYB document APIs are narrow and reliable on the specific documents that carry real verification weight — bank statements and financials — not broad and shallow across every document type.

"Incorporation documents are the most 'official' proof, so they matter most"

Official-sounding doesn't mean most useful for verification — a registry lookup checks the same claim against the actual record, more reliably than reading a PDF of it.

"One vendor covering registry, screening and documents is simpler"

It can reduce integration count, but it rarely means best-in-class at all three — evaluate each check on its own merits before assuming a bundle is the simpler path.

"If a document API can't read incorporation certificates, it's not a real KYB tool"

A document API scoped specifically to bank statements and financial reports, done well, covers exactly the gap registry and screening checks leave open.

What this means for evaluating a document API

Once the scoping is clear, evaluating a document API for KYB becomes a much more concrete exercise: test it specifically on bank statements and financial reports from your own applicant base, check the accuracy on the fields that matter for your name-match and activity checks, and confirm the confidence scoring is granular enough to drive a real review-queue decision — not whether it also happens to claim support for reading incorporation documents.

A vendor that leads its marketing with broad document-type coverage, rather than depth on the two or three document types that actually carry verification weight, is worth a second look — breadth claimed across many document types often comes at the expense of reliability on the ones that matter most to your specific flow.

Matching documents to risk, not the other way around

A well-scoped KYB flow decides which documents to request based on risk tier and transaction limit, not based on which documents a vendor happens to support. A low-risk tier might rely on registry and screening checks alone; a higher-risk tier adds a bank statement; the highest tier adds financial reports. Building the flow around what actually needs proving, at each tier, keeps the friction proportional to the actual risk being managed.

A five-person fintech vs. an established platform

A small team scoping its first KYB flow benefits the most from getting this distinction right early — there's no legacy integration to unwind, and a clear separation between the three checks from day one avoids months of confusion later. An established platform revisiting its KYB stack after this realization faces a bigger job — untangling logic that may have quietly conflated registry data with document data over time — but the resolution is the same either way: separate the three checks, and give document reading the specific, narrower scope it actually needs.

What a bank statement can actually tell you that a registration can't

It's worth being concrete about exactly what a bank statement adds, since "financial activity" can sound vague. A statement shows the actual cadence of money moving through an account — regular payments in and out, consistent with a genuinely operating business, versus a single large deposit shortly before an application with no activity before or after it. Neither pattern proves fraud or legitimacy on its own, but it's a real, checkable fact a registry simply has no way to provide, because a registry records legal status, not transaction history.

The account holder name is the second concrete thing a statement adds: a business could register under one name and operate its banking under a subtly different one — a trading name, an old name mid-rebrand, a parent company's account used for a subsidiary. None of that is inherently suspicious, but it's exactly the kind of discrepancy a platform wants visibility into, and a registry lookup alone will never surface it, because the registry doesn't know what name is on the applicant's bank account.

What might change as KYB tooling matures

As registry APIs continue to expand their coverage across more jurisdictions, the case for ever attempting incorporation-document extraction gets weaker still — there's less and less reason to read a document for data a lookup already provides more reliably. Document-reading vendors are likely to keep specializing further into the financial-document niche specifically, rather than broadening into legal document parsing, since that's where the genuine, unmet need actually sits.

What's unlikely to change is the underlying shape of the three-check model itself — registry, screening, and financial documents answer three genuinely different questions, and no amount of tooling maturity collapses a question about legal existence into a question about transaction history. The tools around each check will keep improving; the reason to keep them conceptually separate won't.

A quick self-check for your own scoping doc

Does the requirements doc name a specific legal document — a certificate, articles of association, a registration filing?

If so, check whether a registry API already returns that same data more reliably before scoping any document-extraction work around it.

Is "KYB API" used as a single line item covering registry, screening and documents together?

Splitting it into three explicit line items, each with its own evaluation criteria, usually surfaces gaps the bundled framing hides.

Does the document-reading requirement mention a bank statement or financial report at all?

If the only documents named are legal filings, the requirement is very likely missing the piece that actually needs the most reliable extraction.

Is there a risk-tier mapping showing which document is required at which tier?

If every applicant is asked for the same documents regardless of risk, the flow is probably either under- or over-collecting relative to actual risk.

In short

A KYB flow needs three genuinely different checks — legal existence from a registry, sanctions status from a screening provider, and financial activity from documents a business actually submits. The document piece is almost never the incorporation certificate; it's the bank statement, and sometimes financial reports for higher-risk tiers. Scoping this correctly from the start saves months of redirected engineering effort and produces a document-reading integration that's actually reliable on the document that matters.

If there's one habit worth taking from this, it's asking "what question does this specific check answer, and what's the most reliable source for that specific answer" every time a new document requirement gets proposed — rather than defaulting to "read it with OCR" because the input happens to be a PDF.

None of this requires a sophisticated framework to get right — it requires asking, for each piece of your KYB flow, exactly what question it's supposed to answer, and matching that question to the kind of data source actually built to answer it.

That one habit is the entire argument of this article, restated as a practice rather than a conclusion — apply it consistently, and the incorporation-document detour rarely happens at all.

Frequently asked questions

See what your KYB flow actually needs

Get a free API key and run a real bank statement through the extraction endpoint.

Keep reading