快速入门

本快速入门指南会在约十分钟内,带您在免费沙盒环境中从零开始完成一次公司验证案例。您将申请存取权限、取得权杖(token)、建立公司案例、轮询直至完成,并读取包含股权结构在内的验证结果。

有关每个步骤背后的概念,请参阅指南。如需完整的端点参考,请参阅API Reference

开始之前

您需要沙盒凭证:一组client_id与一组client_secret。如果您尚未拥有,请申请存取权限。您需签署沙盒测试协议,并会在画面上及透过电邮收到凭证。

沙盒基础网址为https://api.knowyourcustomer.dev。本快速入门指南中的所有内容均为免费,并使用合成资料及公开登记资料。

步骤一:取得权杖

验证采用 OAuth2 client-credentials 方式。请以您的client_idclient_secret换取具有范围PublicApi的持有人权杖(bearer token)。此权杖有效期约十分钟;请在每次请求中以Authorization: Bearer <token>

# Exchange client credentials for a bearer token (~10 min TTL)
TOKEN=$(curl -fsS -X POST "$BASE_URL/connect/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=$CLIENT_ID" \
  -d "client_secret=$CLIENT_SECRET" \
  -d "scope=PublicApi" | jq -r '.access_token')

# Send it on every request:
#   -H "Authorization: Bearer $TOKEN"

成功的回应会包含一个access_token。请保留此项以供后续呼叫使用。

步骤二:搜寻公司

找出准确的登记记录,以便据此建立案例。可依名称或注册编号搜寻,并可选择性地按国家缩小范围。

可尝试CROPWELL BISHOP CREAMERY LIMITED,这是一个良好的多层股权结构范例:搜寻cropwell bishopGB。您亦可尝试SC ENGINEERING PRIVATE LIMITED(新加坡,UEN200815219G)或Ubizense Limited(香港,商业登记号码69293323)。

POST /v2/Companies/search

# Search the registry; pick the exact result.
curl -fsS -X POST "$BASE_URL/v2/Companies/search" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"codeiso31662":"GB","query":"CROPWELL BISHOP"}' \
  | jq '.companySearch.searchResults[0]'
# -> note the exact .rawname and the registration number (00364890)

选取您的结果,并记下其准确名称及注册编号(00364890,即 Cropwell Bishop 的资料)。

步骤三:建立案例

使用与搜寻结果相符的名称建立公司案例。请提供国家及注册编号,以便准确比对登记记录。

POST /v2/Companies,并带有rawnamecodeiso31662externalCode

# Create the company case using the exact rawname from search.
CASE_ID=$(curl -fsS -X POST "$BASE_URL/v2/Companies" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"rawname\":\"$RAWNAME\",\"codeiso31662\":\"GB\",\"externalCode\":\"00364890\"}" \
  | jq -r '.caseDetail.details.common.caseCommonId')
echo "caseCommonId: $CASE_ID"   # the case now builds in the background

回应会返回一个caseCommonId。案例现正于背景中建立。

步骤四:轮询直至完成

建立过程为非同步。请轮询该案例并读取其status,直至其状态为3(就绪)。请每隔数秒轮询一次,并采用递增等待间隔;部分司法管辖区可能需时数分钟。

GET /v2/Companies/{caseCommonId}

# Poll until status is 3 (Ready). Some jurisdictions take minutes.
for i in $(seq 1 60); do
  STATUS=$(curl -fsS "$BASE_URL/v2/Companies/$CASE_ID" \
    -H "Authorization: Bearer $TOKEN" \
    | jq -r '.caseDetail.details.common.statusId')
  echo "statusId=$STATUS"
  if [ "$STATUS" = "3" ]; then break; fi
  sleep 5
done

只要状态并非3,即应持续轮询。状态会依序经过0 -> 50 -> 51 ->,实际经过的子集因案例而异,涵盖{53, 54, 9, 100, 107} -> 3

步骤五:读取验证结果

一旦状态为3,即可读取该案例。您将取得已验证的公司属性(名称、注册编号、司法管辖区)以及股权资料:controllingEntitiesAndIndividuals以及递回式组织架构图(shareholders,按memberType)。

# Read members + the recursive org-chart (the ownership tree).
curl -fsS "$BASE_URL/v2/Companies/$CASE_ID/members" \
  -H "Authorization: Bearer $TOKEN" \
  | jq '{controlling: (.controllingEntitiesAndIndividuals | length),
         shareholders: (.shareholdersAndBeneficialOwners | length)}'

curl -fsS "$BASE_URL/v2/Companies/$CASE_ID/org-chart" \
  -H "Authorization: Bearer $TOKEN" \
  | jq '{root: .name, shareholders: [.shareholders[]?.name]}'

# Each individual member has its own caseCommonId, addressable at
#   GET /v2/Individuals/{caseCommonId}

以 Cropwell Bishop 为例,您会看到一个多层架构树:企业母公司位于个人拥有者之上。请走访shareholders阵列以建立完整结构,并读取各个个人成员的caseCommonId,以便在/v2/Individuals/{caseCommonId}

后续步骤