KYC China
Single endpoint, smart fan-out
What can be verified
Data sources & residency
Cost & rate limits
Client ID in x-client-id header.
Client Secret in x-client-secret header.
All fields are optional. The endpoint runs every sub-check whose required
fields are present (see the Sub-check eligibility table above). At least
one sub-check must be eligible — otherwise a 400 is returned.
Full legal name in Chinese characters (simplified). Must match the name on the resident ID card exactly. Latin pinyin transliterations are not accepted by the upstream.
Enables: identity-document checks, mobile-cross checks, bank checks, criminal records.
张三18-digit Chinese Resident Identity Card number (居民身份证号码).
The 18th character may be X for older IDs.
Enables: identity-document checks, mobile-cross checks, bank checks, fraud, criminal records.
110101199001011234Pattern: ^[0-9]{17}[0-9Xx]$ID card issue date in YYYYMMDD format (no separators). Found on the
back of the physical card under 签发日期.
Pair with idExpiryDate to upgrade identity.two-factor to the stronger
identity.four-factor check that also validates the on-file dates.
20180501Pattern: ^[0-9]{8}$ID card expiry date in YYYYMMDD format, or the literal string 长期
when the card has no expiry (issued to citizens 46+ in some cases).
Found on the back of the physical card under 有效期限.
20281231Base64-encoded facial photo. Do not include the data:image/...;base64,
prefix — only the raw base64 payload.
Recommended: clear front-facing photo, no occlusions, JPEG/PNG, ≤2 MB.
Enables identity.image, which compares the photo against the MPS face
on file for the supplied name + ID. Requires name and idNumber.
iVBORw0KGgoAAAANSUhEUgAA...11-digit mainland China mobile number. No country code, no +86,
no spaces. First two digits must be 13-19.
Enables: mobile lookups, mobile-cross identity checks, fraud screening,
bank four-factor. Mobile alone is enough to run mobile/risk lookups
without any identity fields.
13800138000Pattern: ^1[3-9][0-9]{9}$Bank card number — debit or credit. Digits only, no spaces. Enables
bank.three-factor (with name + idNumber) or bank.four-factor
(also with mobile).
6222021234567890123HTTPS URL to receive a webhook POST when the report is ready.
When provided, the completed report (same payload as a 200 response from /kyc/cn/poll)
is delivered to this URL.
Polling remains available as a fallback.
^https://.+KYC verification request initiated. Use the returned token with /kyc/cn/poll to fetch the result.
JWT token encoding the request — pass it to /kyc/cn/poll until a 200 response
is returned (typically within 10-30 seconds for a full KYC fan-out).
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...No sub-checks were eligible with the provided fields. The body contains
{ "message": "..." } describing the missing combination — e.g. supplying only
facePhoto without name and idNumber, or an empty request body.
Internal failure invoking the upstream verification service before any sub-check
could run. Per-check failures during fan-out do not produce a 502 — they
appear in summary.errored inside a successful 200 response.
Client ID in x-client-id header.
Client Secret in x-client-secret header.
JWT token
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8UPattern: ^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$KYC China result. Categories are present only when at least one of their sub-checks ran.
Presigned URL to download a PDF version of this report. Valid for 7 days. The underlying object is deleted after 30 days by bucket lifecycle rule.
https://kyc-bucket-ap-east-1-staging-canary.s3.ap-east-1.amazonaws.com/kyc/abc123.pdf?X-Amz-...Suggested filename for the PDF download.
kyc-cn-abc123.pdfKYC verification still processing — keep polling every 2-3 seconds.
Invalid or expired token.
Last updated

