Document API
Call this API to do a Document Verification without AAI's Frontend.
Request Example:
curl -X POST \
https://sg-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/api/document \
-H 'Content-Type: application/json' \
-H 'X-ACCESS-TOKEN:{Your Access Token}' \
-d '{
"callbackUrl": "https://www.example.com/callback",
"bizId": "7ac66c0f148de9519b8bd264312c4d64",
"userId":"8e44f0089b076e18a718eb9ca3d94674",
"region":"THA",
"language": "en-US",
"docType": "TH-ID-N",
"productLevel": "ADVANCED",
"frontImageBase64":"YWJjZGVmZw==", // use real image base64 string
"bizCode":"WhiteCard"
}'Request Url
https://api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/api/document
POST (application/json)https://sg-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/api/document
POST (application/json)https://ph-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/api/document
POST (application/json)https://th-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/api/document
POST (application/json)https://my-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/api/document
POST (application/json)https://vn-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/api/document
POST (application/json)Request Header Parameters
| Parameter | Description |
|---|---|
| X-ACCESS-TOKEN | string Please use Token Authentication API to get your access token |
Request Parameters
Parameter | Description |
|---|---|
callbackUrl |
|
bizId |
|
userId |
|
region |
|
docType |
|
bizCode |
|
productLevel |
|
frontImageBase64 |
|
frontImageUrl |
|
backImageBase64 |
|
backImageUrl |
|
returnImageType |
|
ProductLevel
The productLevel defines the tier of the Identity Verification(..DV, LD, FA) service. Please consult with our sales representative to determine the tier that best aligns with your business requirements and use the granted product level for your API request submission.
| Supported Values | Description |
|---|---|
| STANDARD | Basic compliance / High coverage rate / Acceptable accuracy |
| ADVANCED | Medium compliance / High pass rate / High accuracy |
| PRO | Strong compliance / Enhanced accuracy |
ReturnImageType
| Supported Values | Description |
|---|---|
| URL | the value of the image fields in the response will be image urls , so the caller can download images. |
| BASE64 | the value of image fields in the repsone will be base64 encoded string of image bytes. |
Response Description
the response data structure is similar with Get Result API's Response.
| Parameter | Description |
|---|---|
| code | Response's Status Code |
| transactionId | The request id, the max length is 64 |
| pricingStrategy | Deprecated, Always return FREE |
| message | Status Code Explanation |
| data | object : the business result of Verification |
| extra | Extra response info (Exception Message) |
Response.code
| Status Code | Message |
|---|---|
| SUCCESS | OK |
| PARAMETER_ERROR | Parameter error, please check you input. |
| Parameter should not be empty | |
| Region is wrong | |
| Invalid image format, image format should be one of jpeg/jpg/png, and request content type should be image/jpeg or image/png | |
| Invalid image size, max image size should be less than 2M, and image dimension should be between 256 * 256 and 4096 * 4096 | |
| The image download has exceeded 3 seconds. Please check the network and operate again. | |
| SIGNATURE_NOT_EXIST | This signatureId is not exist. |
| ERROR | Server error. |
Response.data
| Field | Description |
|---|---|
| signatureId | string, the signatureId of this verification transaction. |
| overallResult | string, The result code of this verification transaction. |
| idvResult | string, The result code of this verification transaction. (will be deprecated, use overallResult instead) |
| errorCode | string, The fail reason when overallResult is fail |
| docDetail | object, The detail of the doc results. Refer to DocDetail. |
| countryCodeIso3 | string, the region in the Request Parameters. |
overallResult
overallResult is the result code of the Verification, the value is same with DocDetail.ocrResult.
| Value | Description |
|---|---|
| PASS | the user passed the verification check. |
| FAIL | the user failed the verification check. |
| null | the overallResult is still in processing, please wait and use Get Result API to get final overallResult. |
errorCode
| Response.data.overallResult | Value | Description |
|---|---|---|
PASS | SUCCESS | The user passed the verification. |
FAIL | NO_FACE_DETECTED | No face detected on the front image of the document. |
CARD_INFO_MISMATCH | The front part and the back part of the two-side document do not match with each other. | |
ID_FORGERY_DETECTED | The document ( only the front part if the document is two-side) is forgery. | |
NO_SUPPORTED_CARD | The card type detected from the document image is not supported. | |
CARD_TYPE_MISMATCH | The card type detected from the document image doesn't match with the docType | |
CARD_LOW_QUALITY_IMAGE | The document images are too poor to do verification. | |
INCOMPLETED_CARD | The card is not completed in the document images. | |
TOO_MANY_CARDS | More than one cards were detected. | |
CARD_NOT_FOUND | Can't detect card from the document image. | |
OCR_NO_RESULT | Can't extract ocr result from the docImages | |
PARAMETER_ERROR | the data submitted by our frontend is not valid. this may indicates a frontend bug. | |
USER_TIMEOUT | User did not complete the operation within the specified time(1 hour) | |
ERROR | Error during processing in our backend. this may indicates a backend bug. |
Response Examples
SUCCESS
{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId": "f302f5d2454a85c2",
"overallResult": "PASS",
"idvResult": "PASS",
"errorCode": "SUCCESS",
"docDetail": {
"ocrResult": "PASS",
"docFrontImage": "https://abc.com/idFrontImage.jpg",
"docBackImage": "https://abc.com/idBackImage.jpg",
"docType": {
"front": "MY-ID-MYKAD",
"back": "MY-ID-MYKAD"
},
"subDocType": {
"front": "MY-ID-MYKAD",
"back": "MY-ID-MYKAD"
},
"ocrInfo": {
"front": {
"gender": "PEREMPUAN",
"name": "****** ******",
"address": "****** ****** ****** ******",
"idNumber": "************",
"religion": "",
"birthday": "1977/10/28",
"citizen": "MYS"
},
"back": {
"idNumber": "************"
}
},
"qualityLabels": {
"front": {
"isBlur": false,
"isDim": false,
"isExposure": true
},
"back": null
},
"forgeryLabels": [
"photocopy"
],
"eventDetails": [
{
"event": "FE_DOCUMENT_SCAN",
"result": "PASS",
"createTimestmap": 1665993522952
}
]
},
"countryCodeIso3": "MYS"
},
"extra": null,
"transactionId": "d3fde1547eeaf226",
"pricingStrategy": "FREE"
}{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId":"f302f5d2454a85c2",
"overallResult":"FAIL",
"idvResult":"FAIL",
"errorCode":"NOT_SUPPORTED_CARD",
"faceDetail": {
"faceResult": null,
"faceImageFar": null,
"faceImageNear": null,
"auditImageUrl": null,
"faceLivenessScore": null,
"faceSimilarityScore": null
},
"docDetail": {
"docResult": null,
"docFrontImage": null,
"docBackImage": null,
"ocrInfo": null,
"qualityLabels": null,
"forgeryLabels": null
},
"feeDetail": [
{
"name": "SOLUTION",
"type": "SOLUTION"
}
],
"countryCodeIso3":"MYS"
},
"extra": null,
"transactionId": "d3fde1547eeaf226",
"pricingStrategy": "FREE"
}{
"code": "SUCCESS",
"message": "OK",
"data": {
"overallResult": null, // still in processing
"idvResult": null, // still in processing
"errorCode": null,
"docDetail": {
"ocrResult": "PASS",
"docFrontImage": "https://abc.com/idFrontImage.jpg",
"docBackImage": "https://abc.com/idBackImage.jpg",
"ocrInfo": {
"front": {
"birthday": "OCTOBER 28,1977",
"name": "**************",
"birthdayParsed": "1977/10/28",
"idNumber": "09-*******-*"
},
"back": null
},
"qualityLabels": {
"front": [],
"back": []
},
"forgeryLabels": null, // in processing
"eventDetails": [
{
"event": "BE_DOCUMENT",
"result": "PASS",
"createTimestmap": 1665993522952
}
]
},
"feeDetail": [
{
"name": "SOLUTION",
"type": "SOLUTION"
}
],
"countryCodeIso3":"MYS"
},
"extra": null,
"transactionId": "d3fde1547eeaf226",
"pricingStrategy": "FREE"
}SIGNATURE_NOT_EXIST
{
"code":"SIGNATURE_NOT_EXIST",
"message":"This signatureId is not exist",
"data":null,
"extra":null,
"transactionId":"b6d722f7e9f553ae",
"pricingStrategy":"FREE"
}Updated about 2 months ago
