Asia Business Verification (KYB)
Asia business verification lets you verify a company against the official business registry in China, Hong Kong and Singapore. Verification is asynchronous: the verification request returns a reference with a processing status, the result is sent to your webhook URL when the registry check completes, and you can retrieve the full company details with the fetch verification endpoint.
China Unified Social Credit Code (USCC) verification API
To verify a Chinese company by its Unified Social Credit Code (USCC), make a POST request to the China USCC verification endpoint;
https://api.korapay.com/merchant/api/v1/identities/cn/usccThe request body should have the following parameters:
{
"id": "91110000MA01234567",
"registration_name": "Acme China Ltd",
"verification_consent": true
}| Field | Data Type | Description |
|---|---|---|
id | string | Required- 18-character Unified Social Credit Code (USCC) of the company |
registration_name | string | Required- Registered name of the company (2 to 200 characters) |
verification_consent | boolean | Required- Indicate subject has given consent. Must be true |
China Unified Social Credit Code (USCC) verification response
{
"status": true,
"message": "business verification initiated successfully",
"data": {
"reference": "VR-5QIUtZZ2cvICCn3yi",
"id": "91110000MA01234567",
"id_type": "cn_uscc",
"name": "Acme China Ltd",
"status": "processing",
"requested_by": "API User"
}
}Hong Kong Business Registration Number (BRN) verification API
To verify a Hong Kong company by its Business Registration Number (BRN), make a POST request to the Hong Kong BRN verification endpoint;
https://api.korapay.com/merchant/api/v1/identities/hk/brnThe request body should have the following parameters:
{
"id": "12345678",
"registration_name": "Acme Hong Kong Ltd",
"verification_consent": true
}| Field | Data Type | Description |
|---|---|---|
id | string | Required- 8-digit Business Registration Number (BRN) of the company |
registration_name | string | Required- Registered name of the company (2 to 200 characters) |
verification_consent | boolean | Required- Indicate subject has given consent. Must be true |
Hong Kong Business Registration Number (BRN) verification response
{
"status": true,
"message": "business verification initiated successfully",
"data": {
"reference": "VR-JMMiA9VWFyuu3x7he",
"id": "12345678",
"id_type": "hk_brn",
"name": "Acme Hong Kong Ltd",
"status": "processing",
"requested_by": "API User"
}
}Singapore Unique Entity Number (UEN) verification API
To verify a Singapore company by its Unique Entity Number (UEN), make a POST request to the Singapore UEN verification endpoint;
https://api.korapay.com/merchant/api/v1/identities/sg/uenThe request body should have the following parameters:
{
"id": "201912345A",
"registration_name": "Acme Singapore Pte Ltd",
"verification_consent": true
}| Field | Data Type | Description |
|---|---|---|
id | string | Required- 9 or 10-character Unique Entity Number (UEN) of the company |
registration_name | string | Required- Registered name of the company (2 to 200 characters) |
verification_consent | boolean | Required- Indicate subject has given consent. Must be true |
Singapore Unique Entity Number (UEN) verification response
{
"status": true,
"message": "business verification initiated successfully",
"data": {
"reference": "VR-H4i0IKkTEXhaFJ2T5",
"id": "201912345A",
"id_type": "sg_uen",
"name": "Acme Singapore Pte Ltd",
"status": "processing",
"requested_by": "API User"
}
}Business verification initiate response
All three verification endpoints return the same response. The status is always processing until the registry check completes.
status
message
data
reference
id
id_type
name
status
requested_byBusiness verification webhook
When the registry check completes, a notification is sent to your webhook URL. The status in the notification is found or not_found. Use the reference to fetch the full verification result. The notification is signed with the x-korapay-signature header, like other Korapay webhooks.
event
data
reference
identity_type
status
date
{
"event": "identity.verification.completed",
"data": {
"reference": "VR-5QIUtZZ2cvICCn3yi",
"identity_type": "cn_uscc",
"status": "found",
"date": "2026-10-22T10:00:01.000Z"
}
}Fetch business verification result API
To retrieve the result of a business verification, make a GET request to the fetch verification endpoint with the verification reference;
https://api.korapay.com/merchant/api/v1/identities/verifications/:referenceFetch business verification response
status
message
data
reference
id
masked_id
id_type
identity_type
type
class
country
full_name
name
registration_number
company_status
is_active
status_comment
legal_form
incorporated_on
start_date
address
legal_address
building_name
flat_number
building_number
street
sub_street
town
statepost_code
country
formatted_address
office_address
building_name
flat_number
building_number
street
sub_street
town
state
post_code
country
formatted_address
phone_number
email
website
vat_number
tax_number
registered_capital
employees_number
alternative_names
industry_codes
code
description
officers
full_name
first_name
middle_name
last_name
type
role
status
id_number
date_of_birth
nationality
country
occupation
phone
email
appointed_on
notified_onCompany found
{
"status": true,
"message": "Verification retrieved successfully",
"data": {
"reference": "VR-5QIUtZZ2cvICCn3yi",
"full_name": "Acme China Ltd",
"id": "91110000MA01234567",
"id_type": "cn_uscc",
"name": "Acme China Ltd",
"registration_number": "91110000MA01234567",
"company_status": "Active",
"legal_form": "Limited Liability Company",
"incorporated_on": "2018-03-15",
"address": "Beijing, China",
"source": "CN Registry",
"is_active": true,
"registry_check": {
"status": "passed"
},
"masked_id": "***************567",
"type": "kyb",
"class": "id_lookup",
"identity_type": "cn_uscc",
"country": "cn",
"requested_by": "API User",
"status": "found",
"date_created": "2026-10-22T10:00:00.000Z"
}
}Company not found
{
"status": true,
"message": "Verification retrieved successfully",
"data": {
"reference": "VR-bDy0scvv1b4hNBAx8",
"full_name": "Acme Singapore Pte Ltd",
"id": "201912345G",
"id_type": "sg_uen",
"name": "",
"registry_check": {
"status": "failed",
"reason": "company_not_found"
},
"masked_id": "*******45G",
"type": "kyb",
"class": "id_lookup",
"identity_type": "sg_uen",
"country": "sg",
"requested_by": "API User",
"status": "not_found",
"date_created": "2026-10-22T10:00:00.000Z"
}
}Company details such as addresses, officers, significant_persons and industry_codes are returned only when the registry provides them, so they are not in the sandbox samples.
Business verification status
A business verification is processing until the registry check completes. It then becomes found when the company was located in the registry and the registry check passed, or not_found when the company could not be located or the registry check did not pass.
Registry check
registry_check.status is passed or failed. When it is failed, registry_check.reason explains why: company_not_found means the company is not in the registry, registry_check_failed means the registry returned the company but the check failed, and registry_check_inconclusive means the registry check could not confirm the company. A failed registry check always returns not_found.
Company active status
is_active is true when the registry shows the company is active, and false when it shows the company is inactive, for example dissolved, struck off or deregistered. is_active is left out when the registry does not show whether the company is active. Check company_status for the status as reported by the registry.
Business verification sandbox test values
In sandbox, use these values for id to get each result. Any other id returns not_found.
| Scenario | China (USCC) | Hong Kong (BRN) | Singapore (UEN) | Result |
|---|---|---|---|---|
| Active company | 91110000MA01234567 | 12345678 | 201912345A | found, is_active true |
| Inactive company | 91110000MA01234568 | 12345679 | 201912345B | found, is_active false |
| Company status under review (activity unknown) | 91110000MA01234570 | 12345681 | 201912345D | found |
| Registry check failed | 91110000MA01234571 | 12345682 | 201912345E | not_found (registry_check_failed), is_active true |
| Registry check inconclusive | 91110000MA01234572 | 12345683 | 201912345F | not_found (registry_check_inconclusive), is_active true |
| Company not found | 91110000MA01234573 | 12345684 | 201912345G | not_found (company_not_found) |
Updated 4 days ago