initialize
Important Notice:
- All request and response parameters are strictly subject to the official API documentation.
- The API response may contain fields not defined in the documentation. These fields are for internal debugging purposes only and are not guaranteed to be stable or compatible. Do not rely on these fields in production environments. ZOLOZ reserves the right to modify or remove these fields at any time without prior notice.
Overview
- API URL: POST /api/v1/zoloz/realid/reusable/initialize
- API Description: The Recipient uses the one-time shareToken provided by the Donor to initialize the Reusable RealID identity verification process. This process reuses the identity data that the Donor has authorized for sharing. The user is only required to complete face liveness capture during this process, without the need to re-capture document images.
Notes:
- This API does not support idempotent calls. Repeated calls with the same parameters are not allowed.
- The
shareTokencan only be used once. Once initialization is successful, the token is immediately consumed and becomes invalid. It cannot be used again. - Before initialization, ensure that the Reusable RealID partnership between the Donor and the Recipient is active, and that the Recipient has the Reusable RealID capability enabled.
Request Parameters
Field Name | Data Type | Max Length | Required | Default Value | Description | Example |
bizId | String | 32 | Yes | - | A unique business ID for tracing purposes. For example, the sequence ID from the merchant's business-related database. Note: The ZOLOZ server does not perform uniqueness checks on the value of this field. For better tracking, it is strongly recommended to enable the merchant server to guarantee the uniqueness of the business ID. | 2026053000001 |
metaInfo | String | 512 | Yes | - | The meta information about the SDK and the user's device. This value is returned by the ZOLOZ SDK in JSON string format. Note: Do not modify the returned value; pass it through directly. When H5 mode is used, set this value to | MOB_H5 |
flowType | String | 32 | Yes | - | Specifies the type of the identity verification flow. Supported values:
| REUSABLE_REALIDLITE_KYC |
userId | String | 64 | Yes | - | The Recipient-side user ID or other identifier that can be used to identify a specific user. It is strongly recommended to pre-desensitize sensitive identifiers such as phone numbers or email addresses (e.g., by hashing). | u_recipient_88001 |
shareToken | String | 64 | Yes | - | The one-time sharing credential generated by the Donor, which can only be used by the current Recipient. |
|
acceptedDocTypes | List | 200 | No | null | Specifies the list of document types acceptable to the Recipient, used to filter the Donor's documents. This parameter can be used alone or in combination with
For supported document types, see Document types supported and OCR results returned. |
|
acceptedDocCategories | List | 50 | No | null | Specifies the document categories acceptable to the Recipient, used to filter the Donor's documents. This parameter can be used alone or in combination with
|
|
acceptedDocCountryCodes | List | 50 | No | null | Specifies the list of countries or regions acceptable to the Recipient for the Donor's document. Supports three-letter country codes conforming to the ISO 3166-1 alpha-3 standard (e.g., Usage methods:
Note:
|
|
sceneCode | String | 64 | No | null | A business scenario code, used to distinguish data performance across different business scenarios. |
|
productConfig | ProductConfig | - | No | null | Face liveness and risk control configuration for Reusable RealID. See the ProductConfig Field Description section for details. |
|
| PageConfig | - | No | null | SDK page configuration. See the PageConfig Field Description section for details. |
|
| H5ModeConfig | - | Required in H5 mode | - | H5 Reusable RealID configuration. This field is required when |
|
| Map<String, Object> | - | No | null | SDK runtime environment parameters. Currently only supports |
|
| String | - | No | null | The user device identifier in H5 mode. |
|
| String | - | No | null | The client IP address of the user device in H5 mode. |
|
| String | 32 | No | null | SDK wireless configuration group, used to select the corresponding SDK wireless configuration for different business scenarios. |
|
Document Filtering Rules
acceptedDocTypes,acceptedDocCategories, andacceptedDocCountryCodesare in an AND relationship. The Donor's document must meet all specified conditions to be considered a match.- Multiple values within each dimension are in an OR relationship (satisfying any one is sufficient).
- If a parameter is not passed or passed as an empty list, that dimension is not restricted.
Examples:
acceptedDocTypes=["00000001003"]: Only accepts passport-type documents.acceptedDocCategories=["PASSPORT","ID_CARD"]: Only accepts passport or ID card categories.acceptedDocCountryCodes=["HKG","CHN"]: Only accepts documents issued by Hong Kong or China.acceptedDocCategories=["ID_CARD"]+acceptedDocCountryCodes=["PHL"]: Only accepts Philippine ID cards.
Note: If the Donor's document does not meet the above filtering criteria, or if the document has expired, the API returns DONOR_DATA_NOT_ACCEPTABLE and the shareToken is not consumed (i.e., the shareToken can still be used).
ProductConfig Field Description
Reusable RealID currently only supports the following configurations related to face capture, liveness detection, and risk control.
Field Name | Data Type | Max Length | Required | Default Value | Description | Example |
livenessMode | String | 10 | No | STANDARD | Specifies the liveness level for face liveness detection check. The following values are supported:
| STANDARD |
actionCheckItems | List<String> | - | No | FACEBLINK | User actions to be detected. For better user experience, it is not recommended to use two or more actions. The following values are supported:
Notes:
| ["FACEBLINK","HEADLOWER"] |
actionRandom | String | 1 | No | N | Specifies whether the order of action detection is random. Supported values:
| Y |
actionRandomNumber | String | - | No | null | Defines the number of random action checks from the customer-specified action list ( Value range: Must be a positive integer, and 0 < Notes:
| 1 |
actionFrame | List<String> | - | No | null | This parameter refers to capturing other frame pictures, defined as follows:
| ["EYECLOSE"] |
colorFlash | String | - | No | N | Enable color-based liveness detection.
Note:
| Y |
riskMode | String | 10 | No | STANDARD | This parameter refers to multi-dimensional risk control cooldown rule verification in RealID. It is used to intercept suspicious transactions. The values are as follows:
| STANDARD |
faceAttributeCheck | FaceAttributeCheck | - | No | null | Optional. Face Attribute Detection. For details, see FaceAttributeCheck. Note: The For example, if | { "occlusionCheck": { "details": [ "eyesOcclusion", "noseOcclusion", "mouthOcclusion", "foreheadOcclusion", "chinOcclusion", "cheekOcclusion" ], "detectOpen": "Y", "needRetry": "Y" }, "maskCheck": { "detectOpen": "Y", "needRetry": "N" }, "glassesCheck": { "detectOpen": "Y", "needRetry": "N" }, "hatCheck": { "detectOpen": "Y", "needRetry": "N" } } |
cropFaceImage | String | 1 | No | N | Specifies whether to crop the face area of the captured FACE image. Valid values include:
| Y |
FaceAttributeCheck
Field Name | Data Type | Max Length | Required | Default Value | Description | Example |
occlusionCheck | FaceAttributeDetails | - | No | null | Specifies whether to detect face occlusion attributes. For details, please refer to the faceAttributeDetails. | { "details": [ "eyesOcclusion", "noseOcclusion", "mouthOcclusion", "foreheadOcclusion", "chinOcclusion", "cheekOcclusion" ], "detectOpen": "Y", "needRetry": "Y" } |
maskCheck | FaceAttributeDetails | - | No | null | Specifies whether to detect mask attributes. For details, please refer to the faceAttributeDetails. | { "detectOpen": "Y", "needRetry": "N" } |
glassesCheck | FaceAttributeDetails | - | No | null | Specifies whether to detect glasses attributes. For details, please refer to the faceAttributeDetails. | { "detectOpen": "Y", "needRetry": "N" } |
hatCheck | FaceAttributeDetails | - | No | null | Specifies whether to detect hat attributes. For details, please refer to the faceAttributeDetails. | { "detectOpen": "Y", "needRetry": "N" } |
FaceAttributeDetails
Field Name | Data Type | Max Length | Required | Default Value | Description | Example |
detectOpen | String | 1 | Yes | null | Specifies whether to detect face attributes and return its result in checkresult API.
| "Y" |
needRetry | String | 1 | Yes | null | Specifies whether to allow the user to retry when the specified attribute is detected. Supported values:
| "Y" |
details | List<String> | - | No | null | A list of specific occlusion parts for which detailed results should be returned. Currently, this only supports returning detailed results for
Note:
| [ "eyesOcclusion", "noseOcclusion", "mouthOcclusion", "foreheadOcclusion", "chinOcclusion", "cheekOcclusion" ] |
PageConfig
Field Name | Data Type | Max Length | Required | Default Value | Description | Example |
urlFaceGuide | String | 256 | No | null | Optional. Specifies the URL to the face guide page, which is an H5 prompt page that can be customized to guide users during face scanning. Note:
| https://example.com/face-guide |
H5ModeConfig
Field Name | Data Type | Max Length | Required | Default Value | Description | Example |
state | String | 128 | No | the value of | An identifier that is used to recover the customer's context. You can set this field to any String value. The value is then passed as a parameter when the ZOLOZ SDK calls back to the merchant's application. If the value is not set, the value of the transactionId field is used instead. | order_2026053000001 |
completeCallbackUrl | String | 128 | Yes | - | Specifies the callback URL where the browser is redirected when the whole identity proofing process is completed. | https://example.com/complete |
interruptCallbackUrl | String | 128 | Yes | - | Specifies the callback URL where the browser is redirected when the process is interrupted. | https://example.com/interrupt |
locale | String | 16 | No | en | Language of the web page, currently supports:
| zh-CN |
isIframe | String | 1 | No | N | If the Web Page needs to be open in Iframe, this parameter should be set as
| Y |
uiCfg | String | 256 | No | null | Custom UI Configuration in JSON String Format. Supports the following fields:
| {\"titlebarbgcolor\":\"#ffffff\",\"titlebartextcolor\":\"#000000\",\"buttoncolor\":\"#3696fd\",\"isDesktop\":\"Y\"} |
allowDegradation | String | 1 | No | N | If degraded mode is allowed, this parameter should be set to
Notes:
| Y |
facePageGuideUrl | String | 128 | No | null | Specifies the URL of the face guide page in downgrade mode. This is an H5 prompt page that can be customized to guide users in collecting selfies. If this parameter is not provided, the default page will be displayed. | "http://xxx.html" |
Response Parameters
Field Name | Data Type | Always Returned | Description | Example |
result | Yes | The API request result, which contains the result status, result code, and result message. | { "resultStatus": "S", "resultCode": "SUCCESS", "resultMessage": "Success" } | |
transactionId | String | No | The unique transaction ID generated by ZOLOZ for this Reusable RealID identity verification process. Note: The system will only return the
| G000000005FID2020030400000000000157**** |
clientCfg | String | No | The client configuration information, including parameters about the SDK connection and behavior. The value of this field is specified only when the result.resultStatus field is | …… |
Result
For different request results, different actions will be performed. See the following for details:
- When
result.resultStatusisS: Initialization successful. Use the returnedtransactionIdandclientCfgto start the Reusable RealID SDK. - When
result.resultStatusisF: Initialization failed. Check theresultCodeandresultMessageto identify the cause.
Common error codes
For the full list of common error codes, see the Common error codes section in the Error handling topic.
API-specific error codes
The error codes specific to the Reusable RealID initialize API are listed in the table below.
resultCode | resultStatus | Description |
| S | API call successful. |
| F | The |
| F | The Donor's shareable identity data does not exist or is currently unavailable. |
| F | The Donor's document does not meet the Recipient's filtering criteria configured in |
| F | The Reusable RealID partnership between the Donor and the Recipient is not active or has been suspended. |
| F | High risk detected. The user account has been frozen by the risk engine. |
| F | The user account has been blacklisted by the risk engine. |
| F | The current device type is not supported. |
| F | The operating system of the current device is not supported. |
| F | The current ZOLOZ SDK version is not supported. |
| F | Invalid input parameters. Possible causes include missing required parameters, field length exceeded, or unsupported fields being passed. For detailed error information, check the returned |
| F | Internal system error. For error details, check the returned |
Note: Face liveness detection failure, face matching failure, or user cancellation are not part of the initialize API result codes. Please check the eKYC result returned by v1.zoloz.realid.reusable.checkresult to determine these outcomes.
Sample
Request Sample
Native SDK Request Example
{
"bizId": "2026053000001",
"metaInfo": "{\"deviceType\":\"android\",\"appVersion\":\"1.0\",\"osVersion\":\"13\",\"bioMetaInfo\":\"3.46.0:2916352,0\",\"deviceModel\":\"MI 11\",\"zimVer\":\"2.0.0\",\"appName\":\"com.recipient.wallet\"}",
"flowType": "REUSABLE_REALIDLITE_KYC",
"userId": "u_recipient_88001",
"shareToken": "Ks3LpQa9R7vN2bWxYz8Hf7pK_demo_token_43_chars",
"acceptedDocTypes": [
"00000001003",
"00000001001"
],
"acceptedDocCategories": [
"PASSPORT"
],
"acceptedDocCountryCodes": [
"HKG"
],
"sceneCode": "ONBOARDING_REUSE",
"pageConfig": {
"urlFaceGuide": "https://example.com/face-guide"
},
"productConfig": {
"livenessMode": "STANDARD",
"actionCheckItems": [
"FACEBLINK"
],
"colorFlash": "Y",
"faceAttributeCheck": {
"maskCheck": {
"detectOpen": "Y",
"needRetry": "Y"
}
}
}
}H5 Request Example
{
"bizId": "2026053000002",
"metaInfo": "MOB_H5",
"flowType": "H5_REUSABLE_REALIDLITE_KYC",
"userId": "u_recipient_88001",
"shareToken": "Ks3LpQa9R7vN2bWxYz8Hf7pK_demo_token_43_chars",
"acceptedDocTypes": [
"00000001003",
"00000001001"
],
"acceptedDocCategories": [
"PASSPORT"
],
"acceptedDocCountryCodes": [
"HKG"
],
"h5ModeConfig": {
"state": "order_2026053000002",
"completeCallbackUrl": "https://example.com/complete",
"interruptCallbackUrl": "https://example.com/interrupt",
"locale": "zh-CN",
"isIframe": "N"
},
"productConfig": {
"livenessMode": "STANDARD",
"actionCheckItems": [
"FACEBLINK"
]
}
}Response Sample
{
"result": {
"resultStatus": "S",
"resultCode": "SUCCESS",
"resultMessage": "Success"
},
"transactionId": "G000000005FRR2026053000001",
"clientCfg": "<base64-encoded SDK config>"
}