initialize
POST /api/v1/zoloz/idrecognition/initialize
The ZOLOZ initialize API is used to initialize the ID recognition process in ZOLOZ. A unique transaction ID is generated for the ID recognition process and used in all the subsequent interactions with the ZOLOZ server. This API is not idempotent.
Structure
Request parameters
Field name | Data type | Max length | Default Value | Description | Example |
bizId | String | 32 | - | Required. A unique business ID for tracing purpose. For example,the sequence ID from the merchant's business-related database. Note: The ZOLOZ server does not perform uniqueness check 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. | "2017839040588699" |
metaInfo | String | 512 | - | Required. The meta information about the SDK and the user's device. The value of this field is returned from the ZOLOZ SDK in the JSON string format, for example: "{\"apdidToken\":\"69b74bfe-bf7f-4d3b-ac59-907ee09e7955\",\"appName\":\"com.zoloz.atomic.client\",\"appVersion\":\"1.0.9\",\"bioMetaInfo\":\"3.46.0:2916352,0\",\"deviceModel\":\"MI 6\",\"deviceType\":\"android\",\"osVersion\":\"9\",\"zimVer\":\"1.0.0\"}". Note: Do not modify the returned value as it only needs to be passed through directly. When H5 mode is used, simply set the value as MOB_H5. | "{ \"deviceType\": \"android\", \"appVersion\": \"1.0.9\", \"osVersion\": \"9\", \"appName\": \"com.zoloz.atomic.client\", \"bioMetaInfo\": \"3.46.0:2916352,0\", \"apdidToken\": \"69b74bfe-bf7f-4d3b-ac59-907ee09e7955\", \"deviceModel\": \"MI 6\", \"zimVer\": \"1.0.0\" }" |
userId | String | 64 | - | Required. Merchant user ID, or other identifiers that can be used to identify a specific user, for example, mobile phone number, email address and so on. It is strongly recommended to pre-desensitize the value of the userId field, for example, by hashing the value. | "123456abcd" |
docType | String | 16 | - | Optional. Type of document. Note:
| "08520000001" |
autoDocTypes | List<String> | 200 | - | Optional. Specify the list of document types. The system automatically classifies uploaded documents. This parameter can be used alone or combined with the
Supported document types, see Document types supported and OCR results returned. | ["08520000001","08520000002"] |
autoDocCategory | List<String> | - | null | Optional. Specifies categories of document. The system automatically classifies uploaded documents. This parameter can be used alone or combined with the
Note: When | "ID_CARD" |
autoDocCountrycode | List<String> | 300 | null | Optional. Specify the country or region to which the document belongs. Supports passing
For example:
Note:
For example:
Note:
To ensure your system smoothly adapts to newly supported document-issuing countries, we recommend implementing compatibility measures in advance—for example, avoiding strict validation of the returned | ["CHN","PHI"] |
autoDocPages | Map<String, String> | - | null | Optional. Specify the document pages tha need to scan and upload. This parameter is supported only when used in combination with document auto-classification parameters (
For the maximum and default number of pages supported by different document types, see Document types supported and OCR results returned. Note:
| { "00630000032": "1", "00630000004": "1,2" } |
pages | String | 32 | Default page count for document types | Optional. Specify the document pages tha need to be scan and upload. This parameter is supported only when used in combination with
For the maximum and default number of pages supported by different document types, see Document types supported and OCR results returned. Note:
| "1" |
serviceLevel | String | 32 | IDRECOGNITION0002 | This parameter is no longer recommended for use; please set the specific parameters in Optional. Three levels are supported:
| "IDRECOGNITION0002" |
operationMode | String | 32 | STANDARD | This parameter is no longer recommended for use; please set the specific parameters in Optional. Specifies the operation mode where the identity proofing process runs. The following values are supported:
| "STANDARD" |
h5ModeConfig | Object | - | Optional. Specifies the configuration settings for H5 ID Recognition flow. For more information,see h5ModeConfig. | { "completeCallbackUrl": "https://sg-production-cdn.zoloz.com/page/zoloz-doc-fe/index.html", "interruptCallbackUrl": "http://xxx.html" } | |
productConfig | ProductConfig | - | - | Optional. Specifies finer controls for the IDR product. For more information, see productConfig. |
Response parameters
Field name | Data type | Description |
result | Required. The API request result, which contains information about the result of the API request, such as status and error codes. | |
transactionId | String | Optional. A unique transaction ID that is generated by the ZOLOZ server for the ID recognition process. This ID will be used as an input parameter for the ID recognition checkresult API request. Note: The system will only return the
|
clientCfg | String | Optional. The client configuration information, including parameters about SDK connection and behavior. The value of this field is specified only when the result.resultStatus field is |
productConfig
Note: When any parameter in productConfig is provided, the serviceLevel and operationMode will be ignored.
The following table shows the fields that can be specified in the productConfig data model.
Field name | Data type | Max length | Default Value | Description | Example |
cropDocImage | String | 1 | N | Optional. Specifies whether to crop the background of the captured DOC image. Valid values include:
| "Y" |
landmarkCheck | Array | - | null | Optional. Specifies landmark check in the DOC spoofing check. For detailed inspection items, refer to the DOC spoofing check component. Note: Landmark check is only applicable to MyKad | [ {"name":"kadPengenalan"}, {"name":"mykadLogo"}, {"name":"flagLogo"}, {"name":"mscLogo"}, {"name":"ghostFace"}, {"name":"hibiscusLogo"}, {"name":"coatOfArm"}, {"name":"twinTower"} ] |
hologramCheck | Array | - | null | Optional. Specifies hologram check in the DOC spoofing check. For detailed inspection items, refer to the DOC spoofing check component. Note: Hologram check is only applicable to MyKad. | [ { "name": "hologram" } ] |
pageInfoCheck | Array | - | null | Optional. Specify page information check in the DOC spoofing check. For detailed inspection items, refer to the DOC spoofing check component. Note: Page information check is only applicable to Hong Kong, China identity cards and Malaysia Mykad. | [ {"name":"id"}, {"name":"symbol"}, {"name":"name"} ] |
consistencyCheck | List<ConsistencyCheckItem> | - | null | Optional. Specify whether to perform consistency checks. Consistency checks are only applicable for selected documents. An array of supported information check components needs to be specified if consistency check is expected. To understand the valid values for this field, please refer to consistency check data structure. | [ { "type": "commonConsistencyCheck" }, { "details": [ "NAME", "SEX" ], "type": "mrzVisualConsistencyCheck" } ] |
riskMode | String | 10 | STANDARD | Optional. This parameter refers to multi-dimensional risk control cooldown rule verification in ID recognition. It is used to intercept suspicious transactions. The values are as follows:
| "STANDARD" |
allowExpiredDocument | String | - | Different document types have different default values:
| Optional. Specifies whether expired documents are allowed. The following values are supported:
Note:
| "N" |
docUiType | String | 20 |
| Optional. This parameter refers to methods for taking ID photos. The values are as follows:
Note: This capture method is deprecated and no longer maintained.
Note: The Deeper feature relies on two collection methods: Deep-scan and Auto-scan. When the Deeper feature is enabled, please select the appropriate collection method based on your actual application scenario to ensure optimal detection performance. Use Deep-scan for the Native SDK and Auto-scan for the Web SDK. The detection effect will be greatly impacted if these two modes are not selected. | "2" |
cropFaceImageFromDoc | String | 1 | N | Optional. Specify whether to crop the face area of the captured doc image. Valid values include:
| "Y" |
enableOCR | String | - | N | Optional. Whether to enable the OCR function. The values are as follows: | "Y" |
spoofMode | String | 10 | CLOSED | Optional. This parameter refers to document anti-spoofing levels, defined as follows:
Note: You need to purchase the Spoof product before you can use this feature. | "STANDARD" |
deeperMode | String | 10 | CLOSED | Optional. AIGC attack detection Deeper level. For a detailed introduction to the Deeper detection function, see "What is Deeper". This parameter supports the following values:
Note: You must purchase the Deeper product to use this function. | "STANDARD" |
ConsistencyCheckItem data structure
commonConsistencyCheck
Field name | Data type | Value range | Description | Supported ID / Country or Region / docType / OCR field to check |
type | String | commonConsistencyCheck | consistency check of OCR field within DOC spoofing check | Mykad / Malaysia / 00600000001 / ID_NUMBER
|
mrzVisualConsistencyCheck
Field name | Data type | Value range | Description | Supported ID / Country or Region / docType / OCR field to check |
type | String | mrzVisualConsistencyCheck | consistency check of OCR field which has both MRZ (machine readable zone) and VIZ (visual inspection zone) within DOC spoofing check | - |
details | List<String> | refer to supported ocr fileds of each docType | specify ocr field in details for consistency check.
| MyVisa / Malaysia / 00600000011 /
|
Passport (both MRZ and VIZ) / All countries or regions / 00000001006 /
| ||||
Travel Permit for Hong Kong and Macau / China / 00860000011
|
passportCountryCheck
Field name | Data type | Value range | Description | Supported ID / Country or Region / docType / OCR field to check / default country code |
type | String | passportCountryCheck | Checks that the | |
valueRange | List<String> | Each value should be the same as the default country code. | The COUNTRY_CODE in the OCR result should be within the valueRange. When the type is set to passportCountryCheck, the valueRange field must be provided. For the supported valueRange of each document, please refer to | For below docTypes, valueRange should be a list of its default country or region code
|
Each value should comply with ISO_3166-1_alpha-3 | For below docTypes,
|
Result
Result process logic
For different request results, different actions are to be performed. See the following for details:
- If the value of the result.resultStatus is
S, the ZOLOZ initialize API is invoked successfully and a unique transaction ID is returned. - If the value of the result.resultStatus is
F, the invocation of the ZOLOZ initialize API fails. Check the error code and message for more information about the possible reasons. Error codes
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 following table shows the possible error codes that are specific for the ID Recognition initialize API.
resultCode | resultStatus | Description |
SUCCESS | S | The API call is successful. |
| HIGH_RISK | F | High risks are detected. The user account is strategically cooled down by the risk engine. |
| ACCOUNT_SERVICE_SUSPEND | F | The user account is blacklisted by the risk engine. |
| DEVICE_NOT_SUPPORT | F | The device type is not supported. |
OS_NOT_SUPPORT | F | The operating system of the device is not supported. |
SDKVERSION_NOT_SUPPORT | F | The version of the ZOLOZ SDK is not supported. |
| INVALID_ARGUMENT | F | Input parameters are invalid. For more information about which parameter is invalid, check the result message or the related log. |
SYSTEM_ERROR | F | Other internal errors. For more information about the error details, check the result message that is returned and the related log. |
Sample
Request sample
For different integration modes, the request structures are a little different. When the ID recognition process is initiated in the H5 mode, additionally, an object called h5ModeConfig must be specified. Refer to the following two request samples for the detailed information.
Native Request Sample
The following sample shows what a request looks like if the identity proofing process is initiated in the App SDK mode.
{
"bizId": "2017839040588699",
"userId": "123456abcd",
"autoDocTypes":["00630000032","00630000004"],
"autoDocPages":{
"00630000032": "1",
"00630000004": "1,2"
},
"productConfig": {
"deeperMode": "STANDARD",
"cropDocImage": "Y",
"landmarkCheck": [
{"name":"kadPengenalan"},
{"name":"mykadLogo"},
{"name":"flagLogo"},
{"name":"mscLogo"},
{"name":"ghostFace"},
{"name":"hibiscusLogo"},
{"name":"coatOfArm"},
{"name":"twinTower"}
],
"hologramCheck": [
{"name":"hologram"}
],
"pageInfoCheck": [
{"name":"id"},
{"name":"symbol"},
{"name":"name"}
],
"consistencyCheck": [
{
"type": "commonConsistencyCheck"
},
{
"details": [
"NAME",
"SEX"
],
"type": "mrzVisualConsistencyCheck"
},
{
"valueRange": [
"CHN",
"PHL"
],
"type": "passportCountryCheck"
}
],
"allowExpiredDocument": "Y",
"cropFaceImageFromDoc": "Y",
"enableOCR":"Y",
"spoofMode":"STANDARD"
},
"metaInfo": "{
\"deviceType\": \"deviceType\",
\"appVersion\": \"1.0\",
\"osVersion\": \"7.1.1\",
\"appName\": \"com.company.wallet\",
\"bioMetaInfo\": \"3.37.0:262144,0\",
\"apdidToken\": \"mock-apdidToken\",
\"deviceModel\": \"MI 6\",
\"zimVer\": \"2.0.0\"
}",
"serviceLevel": "IDRECOGNITION0002",
"operationMode": "CLOSED"
}H5 RealId Request Sample
The following sample shows what a request looks like if the ID recognition process is initiated in the H5 mode.
{
"bizId": "2017839040588699",
"userId": "123456abcd",
"autoDocTypes":["00630000032","00630000004"],
"autoDocPages":{
"00630000032": "1",
"00630000004": "1,2"
},
"metaInfo": "MOB_H5",
"h5ModeConfig":{
"completeCallbackUrl":"https://sg-production-cdn.zoloz.com/page/zoloz-doc-fe/index.html",
"interruptCallbackUrl":"http://xxx.html",
"uiCfg": "{\"titlebarbgcolor\":\"#ffffff\",\"titlebartextcolor\":\"#000000\",\"buttoncolor\":\"#3696fd\", \"captureMode\":\"landscape\", \"isDesktop\":\"Y\"}",
"enableUpload": "Y"
},
"productConfig": {
"deeperMode": "STANDARD",
"cropDocImage": "Y",
"landmarkCheck": [
{"name":"kadPengenalan"},
{"name":"mykadLogo"},
{"name":"flagLogo"},
{"name":"mscLogo"},
{"name":"ghostFace"},
{"name":"hibiscusLogo"},
{"name":"coatOfArm"},
{"name":"twinTower"}
],
"hologramCheck": [
{"name":"hologram"}
],
"pageInfoCheck": [
{"name":"id"},
{"name":"symbol"},
{"name":"name"}
],
"consistencyCheck": [
{
"type": "commonConsistencyCheck"
},
{
"details": [
"NAME",
"SEX"
],
"type": "mrzVisualConsistencyCheck"
},
{
"valueRange": [
"CHN",
"PHL"
],
"type": "passportCountryCheck"
}
],
"allowExpiredDocument": "Y",
"cropFaceImageFromDoc": "Y",
"enableOCR":"Y",
"spoofMode":"STANDARD"
},
"serviceLevel": "IDRECOGNITION0002",
"operationMode": "CLOSED"
}Response Sample
The following sample shows what a response that the ZOLOZ server returns looks like.
{
"result": {
"resultStatus": "S",
"resultCode": "SUCCESS",
"resultMessage": "Success"
},
"transactionId":"G000000005FID20200304000000000001570702",
"clientCfg": "……"
}More information
h5ModeConfig
The following table shows the fields that can be specified in the h5ModeConfig Object.
Field name | Data type | Max length | Default Value | Description |
state | String | 128 | The value of the | Optional. 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. |
locale | String | 16 | en | Optional. Language of the web page, currently supports:
|
completeCallbackUrl | String | 128 | - | Required. Specifies the callback URL where the browser is redicted when the whole identity proofing process is completed. |
interruptCallbackUrl | String | 128 | - | Required. Specifies the callback URL where the browser is redirected when the process is interrupted. |
isIframe | String | 1 | N | Optional. If the Web Page need to be open in Iframe, this param should be set as Y. Supported Value: Y / N |
uiCfg | String | 256 | null | Optional. Custom UI configuration in JSON string format. Supports the following fields:
For example:"{\"titlebarbgcolor\":\"#ffffff\",\"titlebartextcolor\":\"#000000\",\"buttoncolor\":\"#3696fd\", \"captureMode\":\"landscape\",\"isDesktop\":\"Y\"}" |
enableUpload | String | 1 | N | Optional. Support for obtaining document images from uploaded files.
Note:
|