Skip to main content

KYB Verification (Know Your Business)

KYB verification enables you to verify business identities as part of your compliance onboarding flow. A KYB application collects business information, beneficial owners (UBOs), directors, and supporting documents, then runs registry checks and screening before a compliance officer makes a final decision.

KYB Application Lifecycle​

  ┌───────┐     ┌───────────┐     ┌───────────┐     ┌──────────┐
│ DRAFT │────▶│ SUBMITTED │────▶│ IN_REVIEW │────▶│ APPROVED │
└───────┘ └───────────┘ └─────┬─────┘ └──────────┘
│
▼
┌──────────┐
│ REJECTED │
└──────────┘

Statuses:

StatusDescription
draftApplication created, still being populated
submittedSubmitted for review (registry verified, UBOs collected)
in_reviewUnder compliance officer review or screening
approvedVerification passed
rejectedVerification failed
expiredApplication expired before completion
requires_infoAdditional information requested

Create a KYB Application​

Start a new KYB verification by providing core business details.

curl -X POST https://sandbox.korastratum.com/api/v1/kyb/verifications \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"legal_name": "Acme Holdings Ltd",
"trading_name": "Acme",
"registration_number": "RC-123456",
"country": "NG",
"business_type": "limited_liability",
"industry_sector": "Financial Services",
"tax_id": "TIN-9876543",
"incorporation_date": "2018-03-15T00:00:00Z"
}'

Request body fields:

FieldTypeRequiredDescription
legal_namestringYesRegistered legal name of the business
trading_namestringNoTrade name / DBA
registration_numberstringYesCompany registration number
countrystringYesISO 3166-1 alpha-2 country code
business_typestringYesOne of: sole_proprietorship, partnership, limited_liability, corporation, cooperative, ngo, trust, other
industry_sectorstringYesIndustry or sector classification
tax_idstringNoTax identification number
incorporation_datestringYesIncorporation date in RFC 3339 format

Response:

{
"id": "kyb_abc123",
"status": "draft",
"business_entity": {
"legal_name": "Acme Holdings Ltd",
"trading_name": "Acme",
"registration_number": "RC-123456",
"country": "NG",
"business_type": "limited_liability",
"industry_sector": "Financial Services",
"tax_id": "TIN-9876543",
"incorporation_date": "2018-03-15T00:00:00Z"
},
"ubos": [],
"directors": [],
"documents": [],
"created_at": "2025-06-01T12:00:00Z",
"updated_at": "2025-06-01T12:00:00Z"
}

Update Business Information​

Update or add additional details such as addresses after creating the application.

curl -X PATCH https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"trading_name": "Acme International",
"registered_address": {
"street1": "42 Marina Road",
"city": "Lagos",
"state": "Lagos",
"postal_code": "101001",
"country": "NG"
},
"operating_address": {
"street1": "10 Broad Street",
"city": "Lagos",
"state": "Lagos",
"postal_code": "101002",
"country": "NG"
}
}'

Address fields:

FieldTypeRequiredDescription
street1stringYesPrimary street address
street2stringNoSecondary address line
citystringYesCity
statestringYesState or province
postal_codestringYesPostal / ZIP code
countrystringYesISO 3166-1 alpha-2 country code

Registry Verification​

Verify the business against the official corporate registry in its country of incorporation. This checks that the registration number, legal name, and incorporation details match public records.

curl -X POST https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/verify-registry \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

Response includes:

{
"registry_verification": {
"verified": true,
"company_name": "Acme Holdings Ltd",
"status": "active",
"incorporation_date": "2018-03-15",
"registered_address": "42 Marina Road, Lagos, Nigeria"
}
}
tip

Run registry verification early in the process. If the business cannot be found in the registry, it may indicate incorrect details or a fraudulent application.


Manage UBOs (Ultimate Beneficial Owners)​

UBOs are individuals who ultimately own or control the business. Regulations typically require identifying anyone with 25% or more ownership, or who exercises significant control.

Add a UBO​

curl -X POST https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/ubos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@acme.com",
"phone": "+2341234567890",
"dob": "1985-06-15T00:00:00Z",
"nationality": "NG",
"ownership_percentage": 40,
"role": "owner"
}'

UBO fields:

FieldTypeRequiredDescription
first_namestringYesFirst name
last_namestringYesLast name
emailstringYesEmail address (used for identity verification links)
phonestringNoPhone number
dobstringYesDate of birth in RFC 3339 format
nationalitystringYesISO 3166-1 alpha-2 country code
ownership_percentagenumberYesPercentage of ownership (0-100)
rolestringYesOne of: owner, controlling_person

Edit a UBO​

curl -X PATCH https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/ubos/ubo_456 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"ownership_percentage": 35
}'

Delete a UBO​

curl -X DELETE https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/ubos/ubo_456 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

UBO Identity Verification​

Each UBO must complete individual identity verification (KYC). Generate a verification link for a UBO and send it to them:

# Get a verification URL for the UBO
curl https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/ubos/ubo_456/verification-url \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

Response:

{
"verification_url": "https://verify.korastratum.com/v/abc123def456"
}
info

The verification URL is single-use and expires after 7 days. Generate a new one if it expires before the UBO completes verification.


Manage Directors​

Directors are officers of the company who may or may not also be UBOs.

Add a Director​

curl -X POST https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/directors \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"last_name": "Smith",
"dob": "1980-01-20T00:00:00Z",
"nationality": "NG",
"role": "director",
"is_also_ubo": false
}'

Director fields:

FieldTypeRequiredDescription
first_namestringYesFirst name
last_namestringYesLast name
dobstringYesDate of birth in RFC 3339 format
nationalitystringYesISO 3166-1 alpha-2 country code
rolestringYesOne of: director, ceo, cfo, secretary
is_also_ubobooleanYesWhether this director is also a UBO

Delete a Director​

curl -X DELETE https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/directors/dir_789 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

Upload Documents​

Upload supporting documents for the KYB application. Documents are sent as multipart form data.

curl -X POST https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/documents \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-F "type=certificate_of_incorporation" \
-F "document_type=certificate_of_incorporation" \
-F "file=@/path/to/certificate.pdf" \
-F "file_name=certificate.pdf"

Supported document types:

TypeDescription
certificate_of_incorporationCertificate of incorporation
memorandum_of_associationMemorandum of association
articles_of_associationArticles of association
board_resolutionBoard resolution
shareholder_registerShareholder register
proof_of_addressProof of business address
tax_clearanceTax clearance certificate
business_licenseBusiness license
financial_statementFinancial statement
regulatory_licenseRegulatory license
otherOther supporting document

Delete a Document​

curl -X DELETE https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/documents/doc_101 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

Submit for Review​

Once all business information, UBOs, directors, and documents have been added, submit the application for compliance review.

curl -X POST https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"attestations": {
"information_accurate": true,
"authorized_representative": true
}
}'
caution

Submission is irreversible. Ensure all information is complete and accurate before submitting. The application status will change from draft to submitted.


Review a KYB Application (Admin)​

Compliance officers can approve or reject a submitted KYB application.

curl -X POST https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123/review \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"decision": "approved",
"notes": "All documents verified. Registry match confirmed. UBO KYC complete."
}'

Review decision fields:

FieldTypeRequiredDescription
decisionstringYesOne of: approved, rejected, requires_info
notesstringNoReviewer notes explaining the decision

List KYB Verifications​

Retrieve a paginated list of KYB applications, optionally filtered by status.

# List all applications
curl "https://sandbox.korastratum.com/api/v1/kyb/verifications?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

# Filter by status
curl "https://sandbox.korastratum.com/api/v1/kyb/verifications?status=in_review&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

Query parameters:

ParameterTypeDescription
statusstringFilter by status: draft, submitted, in_review, approved, rejected
pageintegerPage number (1-based)
limitintegerItems per page (default 20, max 100)

Get a KYB Verification​

Retrieve full details of a single KYB application, including all UBOs, directors, documents, and screening results.

curl https://sandbox.korastratum.com/api/v1/kyb/verifications/kyb_abc123 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

Webhook Events​

KYB lifecycle events are delivered via webhook:

EventTrigger
kyb.createdNew KYB application created
kyb.submittedApplication submitted for review
kyb.approvedApplication approved
kyb.rejectedApplication rejected
kyb.requires_infoAdditional information requested
kyb.ubo.verification_completedUBO identity verification completed
kyb.registry.verifiedRegistry verification completed
note

Configure webhooks in the Webhooks guide to receive real-time notifications for KYB events.