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/uscc

The request body should have the following parameters:

{
   "id": "91110000MA01234567",
   "registration_name": "Acme China Ltd",
   "verification_consent": true
}
FieldData TypeDescription
idstringRequired- 18-character Unified Social Credit Code (USCC) of the company
registration_namestringRequired- Registered name of the company (2 to 200 characters)
verification_consentbooleanRequired- 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/brn

The request body should have the following parameters:

{
   "id": "12345678",
   "registration_name": "Acme Hong Kong Ltd",
   "verification_consent": true
}
FieldData TypeDescription
idstringRequired- 8-digit Business Registration Number (BRN) of the company
registration_namestringRequired- Registered name of the company (2 to 200 characters)
verification_consentbooleanRequired- 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/uen

The request body should have the following parameters:

{
   "id": "201912345A",
   "registration_name": "Acme Singapore Pte Ltd",
   "verification_consent": true
}
FieldData TypeDescription
idstringRequired- 9 or 10-character Unique Entity Number (UEN) of the company
registration_namestringRequired- Registered name of the company (2 to 200 characters)
verification_consentbooleanRequired- 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_by

Business 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/:reference

Fetch 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_on

Company 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.

ScenarioChina (USCC)Hong Kong (BRN)Singapore (UEN)Result
Active company91110000MA0123456712345678201912345Afound, is_active true
Inactive company91110000MA0123456812345679201912345Bfound, is_active false
Company status under review (activity unknown)91110000MA0123457012345681201912345Dfound
Registry check failed91110000MA0123457112345682201912345Enot_found (registry_check_failed), is_active true
Registry check inconclusive91110000MA0123457212345683201912345Fnot_found (registry_check_inconclusive), is_active true
Company not found91110000MA0123457312345684201912345Gnot_found (company_not_found)

Did this page help you?