KYB and UBO verification automation for business customers
A KYB agent reads the company documents, lists the beneficial owners above your threshold, screens each person and the company, and sends gaps in the ownership picture to a reviewer.
Works with


- Custom REST
and any system with an API via Custom REST
What is KYB and UBO verification?
The procedure
KYB checks a business customer: the company, the people who run it and the people who own or control it. UBO verification traces ownership through any holding companies until each owner above your threshold has a name, an ID and a screening result. Layered structures and undocumented owners are where the work slows down.
What the agent does
Reads the company documents and ownership declaration from Sumsub
Traces ownership through holding companies and lists owners above your threshold
Screens the company and each owner in ComplyAdvantage
Saves the ownership map to the case folder in Google Drive
What your team decides
Whether a layered or undocumented structure is acceptable
Whether an owner's possible sanctions match stands
Which extra documents to ask the customer for
Escalations to your MLRO or compliance officer
Example runs for KYB analysts, onboarding teams, MLROs or compliance officers
KYB Review Agent
Maps ownership for each new business customer against your procedure.


- +1
Trigger: Sumsub · applicantReviewed
From a procedure KYB review · v1.2
Diego
New business customer: Lumen Print. Run the ownership review.
KYB Review Agent
Pulled the company documents and ownership declaration from Sumsub- Listed the beneficial owners above your threshold: two people
Screened the company and both owners in ComplyAdvantage: no hits- All ownership is accounted for
ownership.unaccounted_share == 0
Approved. Both owners are documented and screening is clear under v1.2 of the procedure.
4 steps · 0 reviews
KYB Review Agent
Maps ownership for each new business customer against your procedure.

- +1
Trigger: Sumsub · applicantReviewed
From a procedure KYB review · v1.2
Marcus
New business customer: Corvid Freight. Run the ownership review.
KYB Review Agent
Pulled the company documents from Sumsub- Traced ownership through a holding company and a second layer
- The holding company's owners are not documented
ownership.unaccounted_share > 0 - Paused for a reviewer on the undocumented holding company Waiting for a reviewerPriya: acceptable, register extract requested
Saved the ownership map and the reviewer's note to the case folder
Waiting on documents. The reviewer accepted the structure, subject to a register extract for the holding company. The run resumes when it arrives.
5 steps · 1 review
KYB Review Agent
Maps ownership for each new business customer against your procedure.


- +1
Trigger: Sumsub · applicantReviewed
From a procedure KYB review · v1.2
Tom
New business customer: Ostrava Metals. Run the ownership review.
KYB Review Agent
Pulled the company documents and owner IDs from Sumsub
Screened the company and its owners in ComplyAdvantage
One owner returned a possible sanctions match- Sent the possible match to a reviewer, as your procedure requires Waiting for a reviewerLena: possible match stands, escalate to your MLRO or compliance officer
- Held the onboarding and recorded the escalation
Escalated. The onboarding is on hold until your compliance officer decides on the match. Lena's note and the screening result go with it.
5 steps · 1 review
Setting up the KYB Review Agent
Connect your systems
Read company documents from Sumsub, screen the company and each owner in ComplyAdvantage, keep the ownership map in Google Drive, and reach registry or other systems through Custom REST.


- Custom REST
Write the rules
Your ownership threshold and structure rules are CEL conditions. Any share that is not accounted for sends the case to a reviewer.
ownership.unaccounted_share > 0Ask a reviewerowners.exists(o, o.screening.hits > 0)Ask a reviewerownership.unaccounted_share == 0ApproveAdd reviewers where the procedure says
When the ownership picture has a gap, the reviewer sees the map the agent built and decides what the procedure allows.
Review requested: Corvid Freight
- Reason
- Holding company owners not documented
- Rule
- ownership.unaccounted_share > 0
- Procedure
- KYB review · v1.2
Accept structureRequest documents
Start it from the event
Start a KYB review when Sumsub finishes with a business applicant or a new business customer arrives by webhook. A daily schedule re-checks ownership requests still waiting on documents.
- Sumsub · applicantReviewed
- Inbound webhook · new business customer
- Daily at 06:00 · ownership requests awaiting documents
Version and evaluate
Test each version against cases you define: a simple two-owner company, a layered holding structure and an owner with a screening hit. A failing case blocks publishing until it is fixed.
KYB review · v1.2Published
12/12 scenarios passed
KYB review · v1.2 Superseded
KYB review · v1.1 Superseded
Share with the team
KYB analysts take the Reviewer role for ownership gaps, an Author maintains the KYB procedure and its threshold, and auditors get read-only access to each ownership map and decision.
Admin
Author
Reviewer
Auditor
Questions about KYB and UBO verification
How does the agent handle a holding company?
It follows the ownership chain through each layer it has documents for. If part of the ownership is unaccounted for, a CEL rule sends the case to a reviewer with the map built so far.
Can we set our own ownership threshold?
Yes. The threshold is part of your procedure and its rules, so you set it and change it by publishing a new version.
Does it check company registries?
There is no built-in registry connector. If your registry provider has an API, the agent can call it through Custom REST.
Who sees the ownership map?
Reviewers see it when a run pauses, and it is saved to the case folder in Google Drive. Auditors can read it alongside the run.
Controls your auditors will ask about
These controls apply to each agent you build. Sample data
Admin
Author
Reviewer
Auditor
Role-based access
Admin, Author, Reviewer and Auditor roles, scoped to each workspace.
- 41
7c2e… - 42
a91f… ← 7c2e - 43
03d8… ← a91f
Hash-chained audit log
Each entry carries the hash of the one before it. Verifying the log recomputes the chain and flags entries that no longer match.
- 41
- v1.1v1.2v1.3Published
Versioned specs
Each run records the exact version it followed; old versions stay readable.
- vault/sumsub/key
Secrets in a vault
Steps point to a vault path, and the key stays in the vault.
- Signed delivery accepted
- Unsigned delivery rejected
Signed webhook triggers
Unsigned or stale deliveries are rejected before a run starts.
- SandboxLive
Sandbox before live
New versions run on test data first. Going live is a separate step.
Related use cases
-


KYC onboarding reviewCheck documents, screen the applicant and apply your risk rules, with a reviewer where the procedure asks.
-
Sanctions screeningScreen counterparties before the first payment and send each possible match to a person.
-

PEP and adverse media reviewCompare each PEP or adverse media hit with the customer file and put the evidence in front of a reviewer.
Run this procedure as an agent
Book a demo with your own version of this procedure, and we'll show it running with each step logged.
Book a demo