All Products
Search
Document Center

ID Verification:CheckResult

Last Updated:Oct 23, 2026

This topic describes how to call the CheckResult operation to query the authentication results for the eKYC_PRO solution.

API description

  • Operation name: CheckResult

  • Request method: HTTPS POST

  • Description: When the server-side receives a callback indicating that authentication is complete, call this API to retrieve the corresponding authentication status and information. This callback is sent when the client result code is 1001 or 1002. For more information, see Native SDK client result codes and sub-codes.

  • Important

    The ID Verification service stores verification results for 30 days by default. Please retrieve them within this period, as they are automatically deleted afterward.

  • QPS limit: Each API has its own QPS limit. For more information, see QPS limits of ID Verification server-side APIs.

  • Endpoints:

    Note
    • Benefits of internal network access: An internal network is a private communication network connecting Alibaba Cloud products within the same region. If your application server is deployed in the same region, use the internal endpoint to access the ID Verification service for enhanced security and stability.

    • Optimizing overseas access: Overseas network environments can be complex. Refer to Optimize server network latency to tune your integration and reduce network latency and request failures.

    Asia Pacific SE 1 (Singapore)

    • Public endpoint: cloudauth-intl.ap-southeast-1.aliyuncs.com

    • Internal endpoint: cloudauth-intl-vpc.ap-southeast-1.aliyuncs.com

    Asia Pacific SE 5 (Jakarta)

    • Public endpoint: cloudauth-intl.ap-southeast-5.aliyuncs.com

    • Internal endpoint: cloudauth-intl-vpc.ap-southeast-5.aliyuncs.com

    China (Hong Kong)

    • Public endpoint: cloudauth-intl.cn-hongkong.aliyuncs.com

    • Internal endpoint: cloudauth-intl-vpc.cn-hongkong.aliyuncs.com

    Asia Pacific SE 3 (Kuala Lumpur)

    • Public endpoint: cloudauth-intl.ap-southeast-3.aliyuncs.com

    • Internal endpoint: cloudauth-intl-vpc.ap-southeast-3.aliyuncs.com

Online debugging and integration

Note

Before debugging and integration, read the Use OpenAPI document to learn how to call APIs on the OpenAPI platform and obtain the SDK.

You can test this operation in OpenAPI Explorer and generate sample SDK code.

Integration notes

  1. TransactionId storage specifications: TransactionId is the trusted server-side identifier for an authentication record. It must be bound to your business ID and stored persistently on the server-side.

  2. Log retention period: Authentication result logs are stored for 30 days by default and are automatically deleted after this period. You must query the results within this period and properly save the required data in compliance with regulations.

  3. Video acquisition and retention compliance: Videos are returned only when the corresponding feature is enabled and the authentication process is successful. The download link for an evidence video is valid for 15 minutes. The original video is automatically deleted 30 minutes after the authentication is complete. If your business needs to retain videos, download them promptly and strictly comply with local privacy and data compliance requirements.

  4. Image acquisition specifications: Authentication images are returned only when IsReturnImage is set to Y and the face verification is successful. Because Base64 data is large, you can keep this parameter at its default value N if you do not need to display or retain the images.

  5. Distinguishing between API status and authentication result: A value of Success for the Code parameter only indicates that the API call was successful. The final authentication result must be based on the Result.Passed and Result.SubCode fields.

  6. Troubleshooting authentication failures: If Passed is N, you must determine the cause of the failure by checking the SubCode, ExtFaceInfo, ExtIdInfo, and ExtSourceInfo (if it exists) fields.

  7. Field parsing compatibility: The returned content, such as Optical Character Recognition (OCR) fields, the number of certificate pages, and facial attributes, varies dynamically based on the certificate type, regional service capabilities, and SDK configuration. Your client-side parsing logic must be backward-compatible to ensure normal operation when fields are missing or added.

Field distribution description

The main response structure, liveness detection results, and OCR result fields of CheckResult are consistent for both App SDK and Web SDK integrations.

Category

Field

Description

Common output

General response, authentication conclusion, ExtFaceInfo, ExtIdInfo, ExtSourceInfo, and their subfields

Can be returned in both integration modes. Whether it is returned depends on the authentication flow and the InitializeV2 configuration.

Web SDK specific

procedurePriority

When a compatibility downgrade occurs during authentication, the actual downgrade policy is returned.

App specific

None

None

Request parameters (common)

Field

Type

Required

Description

Example value

MerchantBizId

String

Yes

A unique business ID from the merchant, consisting of 32 letters and numbers. It must be consistent with the value used in the InitializeV2 request.

e0c34a77f5ac40a5aa5e6ed20c35****

TransactionId

String

Yes

The unique authentication identifier returned by a successful init API call. To prevent tampering, always retrieve this value from your server-side storage and do not trust the value sent from the client-side.

hksb7ba1b28130d24e015d6********

IsReturnImage

String

No

Specifies whether to return authentication image materials (including certificates):

  • Y: Return

  • N: Do not return (default)

Y

Return Data

Name

Type

Description

Example value

HTTP Status Code

Integer

The HTTP status code.

200

HTTP Body

RequestId

String

The request ID, used for troubleshooting.

130A2C10-B9EE-4D84-88E3-5384FF039795

Code

String

The server-side return code. For more information, see Server-side HTTP status codes.

Success

Message

String

A detailed description of the return code.

success

Result.Passed

String

The final authentication result:

  • Y: Passed

  • N: Failed

Y

Result.SubCode

String

The description of the authentication result. For more information, see Result.SubCode authentication result subcode descriptions.

200

Result.ExtFaceInfo

String

Results related to face liveness verification. For more information, see Result.ExtFaceInfo.

{
  "faceAttack": "N",
  "faceComparisonScore": 99.99,
  "faceImg": "base64 format",
  "facePassed": "Y",
  "faceQuality": 95.45,
  "faceOcclusion": "N",
  "docVideoUrl": "https://aliyun-cloudauth.oss-aliyuncs.com/******.webm" 
}

Result.ExtIdInfo

String

Certificate OCR and anti-spoofing results. For more information, see Result.ExtIdInfo.

{
  "ocrIdInfoData": {
    "01": {
      "ocrIdInfo": {
        "id_number": "083099003767",
        "full_name": "MAC PHAM HOÀNG DƯƠNG",
        "nationality": "Vietnam",
        "date_of_expiry": "",
        "date_of_birth": "16/08/1999",
        "sex": "Male"
      },
      "ocrIdPassed": "Y",
      "spoofInfo": {
        "spoofResult": "N"
      }
    },
    "02": {
      "ocrIdInfo": {
        "date_of_issue": "10/02/2022",
        "personal_identification": "Dot-shaped scar approx. 2 cm above and behind the right corner of the mouth."
      },
      "ocrIdPassed": "Y",
      "spoofInfo": {
        "spoofResult": "N"
      }
    }
  },
  "ocrIdPassed": "Y"
}

Result.ExtSourceInfo

String

Details of the authoritative data source verification. This is returned only when Authorize=T in InitializeV2 and the corresponding data source is actually called. For more information, see Result.ExtSourceInfo.

{
  "govId": 1.0,
  "fullName": 1.0,
  "dob": 0.9,
  "selfiePhoto": 0.8777,
  "liveness": 0.1152,
  "imgManipulationScore": 0.2253
}

Result.ExtInfo

String

Other authentication information, mainly including the actual downgrade information for mobile H5. For more information, see Result.ExtInfo.

{
  "procedurePriority": "keep"
}

Result.ExtFaceInfo

Name

Type

Description

Example value

facePassed

String

The overall result of face liveness verification:

  • Y: Passed

  • N: Failed

Y

faceComparisonScore

Double

The comparison score between the live face and the certificate photo, ranging from 0 to 100. A score greater than or equal to 90 indicates a pass.

99.99

faceImg

String

The live face image in Base64 format. Returned only when IsReturnImage=Y and the face scan is successful.

Base64 format

docVideoUrl

String

The OSS download URL for the evidence video. This may be returned only when the DocVideo parameter in InitializeV2 is set to Y and the video is successfully uploaded. The URL is valid for 15 minutes. You can query it repeatedly within 30 minutes after the authentication is complete. After 30 minutes, the video is deleted and cannot be recovered.

https://aliyun-cloudauth.oss-aliyuncs.com/******.webm

faceAttack

String

Indicates whether a liveness attack was detected:

  • Y: Yes

  • N: No

N

faceAttributeInfo

String

Detects the facial attributes of the main face in an input image. The main face is the one that is largest, clearest, and closest to the camera. The detection results are returned as a string. You can use this string to make decisions about the content.

The returned fields are defined as follows:

  • gender: The gender of the main entity. A value of 1 indicates male, and 0 indicates female.

  • glasses: Indicates whether the main entity is wearing glasses. A value of 1 indicates that glasses are detected, and 0 indicates that they are not.

  • hat: Indicates whether the main entity is wearing a hat. This includes headscarves or veils. A value of 1 indicates that a hat is detected, and 0 indicates that it is not.

  • mask: Indicates whether the main entity is wearing a mask. A value of 1 indicates that a mask is detected, and 0 indicates that it is not.

  • tattoo: Indicates whether the main entity has a visible tattoo. A value of 1 indicates that a tattoo is detected, and 0 indicates that it is not.

  • smoking: Indicates whether the main entity is smoking. A value of 1 indicates that smoking is detected, and 0 indicates that it is not.

  • others: Indicates whether people other than the main entity are present. A value of 1 indicates that other people are detected, and 0 indicates that they are not.

  • env: The environment of the main entity, such as an office, factory, hospital, or vehicle. The system currently supports returning office, hospital, factory, vehicle, or other.

  • expression: Indicates whether the main entity has an exaggerated expression. An exaggerated expression is a strong facial expression that is distinct from a natural or calm state. A value of 1 indicates that an exaggerated expression is detected, and 0 indicates that it is not.

  • age: The age of the main entity in years.

{
        gender: 1
        glasses: 0
        hat: 1
        mask: 1
        tattoo: 0
        smoking: 0
        others: 1
        env: office
        expression: 1
        age: 16
}

faceAttackScore

(Offline)

Double

The liveness attack risk score, ranging from 0 to 100.

The risk of liveness attacks is now determined by a Large Language Model (LLM), so the concept of a risk score is no longer applicable. This field is offline.

80

guardRiskScore

Double

The device risk score, ranging from 0 to 100. A higher score indicates a higher device risk.

90

deviceToken

String

The DeviceToken for Face Guard. It is returned when the Face Guard module is fully integrated and can be used to query the Face Guard server-side API operations to get device risk details.

  • Face Guard is a paid service. For more information, see Billing overview.

  • This token is valid for 7 days and is not unique.

e0c34a77f5ac40a5aa5e6ed20c35****

Result.ExtIdInfo

Name

Type

Description

Example value

ocrIdPassed

String

The final result of the certificate OCR recognition stage:

  • Y: Passed

  • N: Failed

N

ocrDocType

String

Returned only when the DocType parameter in InitializeV2 is set to a specified country/region or a specified country/region and document category. It serves as the precise document code automatically identified by the system in auto-classification mode.

CHN01001

ocrIdInfoData

Map<String,Object>

Detailed results for each page of the certificate. The key is the page number, and the value contains the fields for a single page. For more information, see ocrIdInfoData.{page} single-page fields.

`01` and `02` indicate the front and back (or secondary page) of the certificate, respectively.

{
  "01": 
    "ocrIdInfo": {
      "expiryDate": "2030.01.01",
      "englishName": "SUN, xxx",
      "originOfIssue": "National Immigration Administration",
      "placeOfIssue": "Beijing",
      "sex": "Male",
      "name": "Sun X",
      "idNumber": "CGxxxxxxxx",
      "issueDate": "2024.12.01",
      "birthDate": "1992.12.01"
    },
    "ocrIdPassed": "Y",
    "spoofInfo": {
      "spoofResult": "N"
    }
  }
}

ocrIdEditInfo

String

The certificate OCR field information submitted by the user after editing on the OCR result page. This is returned when the client is configured to enable the OCR result editing page (ShowOcrResult).

{
  "expiryDate": "2026-01-02",
  "originOfIssue": "Exit and Entry Administration of the Ministry of Public Security",
  "englishName": "ZHANG SAN",
  "sex": "Male",
  "name": "Zhang San",
  "idNumber": "H11111115",
  "issueDate": "2013-01-02",
  "birthDate": "1990-02-21"
}

ocrStandardData

String

Standardized OCR fields of the ID certificate.

Note

Returned only when the document type is supported and OcrValueStandard is set to 1.

{
    "given_name_s": "HYUNEUI",
    "surname_s": "MUN",
    "date_of_expiry_s": "2028-02-08",
    "date_of_birth_s": "1988-10-26",
    "sex_s": "M"
}

ocrIdInfoData.{page} single-page fields

Name

Type

Description

Example value

idImage

String

The certificate OCR photo in Base64 format. Returned only when IsReturnImage=Y and OCR is successful.

Base64 format

ocrIdPassed

String

The OCR result for the current certificate page:

  • Y: Passed

  • N: Failed

N

ocrIdInfo

String

The OCR field information for the current certificate page. This is empty if OCR fails. The specific fields vary depending on the certificate type.

For field details, see Certificate OCR fields.

{
  "expiryDate": "2030.01.01",
  "englishName": "SUN, xxx",
  "originOfIssue": "National Immigration Administration",
  "placeOfIssue": "Beijing",
  "sex": "Male",
  "name": "Sun X",
  "idNumber": "CGxxxxxxxx",
  "issueDate": "2024.12.01",
  "birthDate": "1992.12.01"
}

spoofInfo

String

The result of spoof detection, including the risk decision and risk types:

Note

Card spoofing detection is enabled only when IdSpoof = Y in the Initialize request.

Otherwise, spoofResult sets to N, and spoofType is empty.

  • spoofResult:

    • Y: Risk detected

    • N: Normal

  • spoofType:

    • SCREEN_REMARK: screen recapture

    • PHOTO_COPY: photocopy

    • TAMPER: tampering

    • SHORTCUT: screenshot

{
 "spoofResult": "Y",
 "spoofType": ["SCREEN_REMARK"]
}

Result.ExtSourceInfo

Field descriptions for the Indonesian data source:

Field

Type

Description

govId

Double

The comparison score of the certificate number against the official data source. A value of 1.0 indicates a perfect match. A value below 1.0 indicates a mismatch.

fullName

Double

The name comparison score. A value of 1.0 indicates a perfect match. A value below 1.0 indicates a mismatch.

dob

Double

The date of birth comparison score. A value of 1.0 indicates a perfect match. A value below 1.0 indicates a mismatch.

selfiePhoto

Double

The selfie comparison score. A value greater than 0.8 indicates a match with the official data source information. A value less than or equal to 0.8 indicates a mismatch.

liveness

Double

The liveness risk score from the data source. A value higher than 0.95 indicates a liveness risk.

imgManipulationScore

Double

The image tampering risk score. A value higher than 0.95 indicates a tampering risk.

Result.ExtInfo

Field

Type

Description

procedurePriority

String

The actual downgrade method for mobile H5 authentication:

  • keep: No downgrade

  • url: Downgrade using a URL

Result.SubCode authentication result subcode descriptions

Error code

Is the authentication record billed?

Description and suggestions

200

Yes

Authentication passed.

204

Yes

[Face Comparison] The live face does not match the certificate photo. This may be because the person does not match the certificate or the quality of the live photo is low.

205

Yes

[Liveness Attack] A risk was detected during liveness detection.

206

Yes

[Liveness Attack] Limited by business policy. After safe mode is enabled, the device and environment are checked for security. If a potential risk is detected, the authentication fails.

You can troubleshoot and handle this as follows:

  1. Remind the user to uninstall any multi-instance, cloning, or virtual environment software or plugins from the device, and then retry after restoring the device's initial security environment.

  2. Check if the package name used is a test demo package name. If so, change it to the business package name to avoid being blocked by the project's or service's security policy.

212

Yes

[Certificate Solution] A risk was detected during certificate anti-spoofing detection. High-risk operations such as screen recapture, tampering, or photocopying may have occurred.

202

Yes

[Authoritative Data Source] The certificate number does not exist in the authoritative source data.

207

Yes, authoritative source is billed additionally

[Authoritative Data Source] The authoritative source data indicates that the personal information matches, but the face does not.

214

Yes, authoritative source is billed additionally

[Authoritative Data Source] The authoritative source data indicates that the face matches, but the personal information does not.

215

Yes, authoritative source is billed additionally

[Authoritative Data Source] The authoritative source data indicates that neither the personal information nor the face matches.

216

Yes, authoritative source is billed additionally

[Authoritative Data Source] The authoritative source data indicates that the photo liveness is abnormal (in the Indonesian data source verification, the liveness value in the ExtSourceInfo field is higher than 0.95, or the imgManipulationScore is higher than 0.95).

217

Yes, authoritative source is billed additionally

[Authoritative Data Source] The authoritative source data indicates that the image quality is abnormal.

218

Yes, authoritative source is billed additionally

[Authoritative Data Source] The business process passed, but the parameters passed to the authoritative source were incorrect.

209

Yes, authoritative source is not billed

[Authoritative Data Source] The authoritative source is abnormal.

FAQ

faceComparisonScore: What is the false acceptance rate (FAR) for the face comparison threshold, and what are the corresponding thresholds for different FARs?

The false acceptance rate (FAR) is the probability that the system incorrectly identifies a non-matching person as a matching person. A lower FAR value indicates higher security. The thresholds that correspond to each FAR value are as follows:

1% FAR

0.1% FAR

0.05% FAR

0.01% FAR (Recommended)

0.005% FAR

0.001% FAR

57.3

76.4

81.8

90.0

90.5

91.3