How it works
Configure a widget
Pick which verification modules to run, set branding, configure risk thresholds, and define the flow order. Use a pre-built template (Fintech, Marketplace, Crypto, Lending) or start from scratch.
Integrate the SDK
Add the widget to your frontend with a single script tag or React/Flutter/RN component. See SDKs.
Applicant completes the flow
The widget guides the applicant through each module — collecting data, running live verifications, and uploading documents. Progress is saved automatically.
Risk engine decides
Once all modules complete, the risk engine computes a score. Based on your thresholds, the applicant is auto-approved, auto-rejected, or flagged for manual review.
You act on the decision
Read the applicant’s final
status — approved, rejected, or requires_review — via GET /v1/kyb/applicants/:applicantId, and update your system accordingly. You can also register a kyc_widget webhook endpoint for this app (see Webhooks).Key concepts
Widgets
A widget is a named, versioned configuration for an onboarding flow. You can have multiple widgets — one for each use case (e.g. seller onboarding, lending KYB, exchange compliance).Modules
Modules are the individual verification checks within a widget. Each module has:- An enabled flag (include in the flow or not)
- A required flag (applicant cannot skip)
- A cost (deducted from your wallet per execution)
Applicants
An applicant is a single entity going through your widget. Each applicant session has:- A status lifecycle:
created→in_progress→submitted→approved/rejected/requires_review - A risk score (0–100)
- A total cost (sum of all modules executed)
Risk tiers
| Tier | Behaviour |
|---|---|
| Low | Fewer modules, higher auto-approve threshold. Fast track for known-low-risk applicants. |
| Standard | Balanced module set. Default for most use cases. |
| Enhanced | Full due diligence including UBOs, adverse media, and operational proof. |
Templates
Pre-configured starting points:| Template | Modules included | Typical use case |
|---|---|---|
| Fintech | CAC, TIN, Bank, Directors KYC, AML, Sanctions, PEP | Payment platforms, lending |
| Marketplace | Business profile, CAC, Bank, Address, Sanctions | Seller onboarding |
| Crypto Exchange | All modules | Regulated exchanges |
| Lending | CAC, TIN, Bank, Operational proof, Directors KYC, AML | Credit providers |
| Payment Processor | CAC, TIN, Bank, AML, Sanctions, PEP | PSPs and aggregators |
Security
- Domain allowlisting — the widget only renders on approved origins.
- Signed requests — optionally require your server to generate a signed session token before the widget opens.
- IP allowlisting — restrict API-initiated sessions to specific IPs.
- Session timeout — configurable inactivity timeout (default 60 minutes).
Where to go next
SDK integration
Install the widget in your frontend.
Widget API
Manage widgets programmatically.
