Get Result API
After the Verification process is done on the user side, you can request the Verification result by calling the Get Result API.
Request Example:
curl -X POST \
https://sg-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/get-result \
-H 'Content-Type: application/json' \
-H 'X-ACCESS-TOKEN:{Your Access Token}' \
-d '{"signatureId": "f302f5d2454a85c2"}'Request Url
https://sg-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/get-result
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 |
|---|---|
| signatureId | string SignatureId which can use it to get the Verification result |
Response Description
| 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 |
| SIGNATURE_NOT_EXIST | This signatureId is not exist. |
| ERROR | Server error. |
Response.data
Non-Doc responses do not include docDetail. Presence values are defined on DocDatabaseDetail. docDatabaseDetail object examples (per market) are on that page — below are full Get Result envelopes only.
| Field | Presence | Description |
|---|---|---|
| signatureId | Always | string. The signatureId of this verification transaction. |
| overallResult | Always | string. PASS / FAIL / INCOMPLETE. See overallResult. |
| submissionCompleted | Always | bool. Whether frontend data submission is completed. |
| idvResult | Always | string. Same as overallResult today (deprecated alias). |
| errorCode | Conditional | string. Fail reason when overallResult is fail or INCOMPLETE; SUCCESS when pass. See errorCode. Null while transaction has no final result yet. |
| docDatabaseDetail | Conditional | object. null when the flow ended before the number-database step produced detail (e.g. INCOMPLETE). Otherwise see DocDatabaseDetail Examples. |
| faceDetail | Conditional | object. When liveness ran. See FaceDetail. |
| inputParameters | Always | object. Echo of Generate URL API input. See InputParameters. |
| countryCodeIso3 | Always | string. Same as region in Generate URL input (ISO3). |
overallResult
overallResult is the result code of the verification
| Value | Description |
|---|---|
| PASS | the user passed the verification check. |
| FAIL | the user failed the verification check. |
| INCOMPLETE | the user gave up in the middle of the verification check, or the user timeouts. |
errorCode
| Response.data.overallResult | Value | Description |
|---|---|---|
| PASS | SUCCESS | The user passed the verification. |
| FAIL | NUMBER_NOT_EXIST | The number inputed by user doesn't exists. |
| NAME_NOT_MATCH | Name inputed by user is not match. | |
| LIVENESS_ATTACK | The liveness check failed. | |
| SIMILARITY_FAILED | The liveness face and the face belong to the number are not considered as the same person. | |
| INVALID_FORMAT | The Number or other fields inputed by user is in wrong format. | |
| CAN_NOT_VERIFY | Database unusable or the number can not be verified. | |
| FACE_QUALITY_TOO_POOR | The image quality stored in the official database is too poor. | |
| RISK_STRATEGY_HIT | The transaction has triggered risk prevention strategies that are used to reject attacks. | |
| AGE_VERIFICATION_FAILED | Age verification failed. | |
| INFO_ABNORMAL | A person's record in the official database is missing critical information. | |
| NUMBER_DECEASED | The identity holder is deceased. | |
| NUMBER_BLOCKED | The number is blocked or locked by the official institution. | |
| INCOMPLETE | 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. | |
| RETRY_COUNT_REACH_MAX | The user's retry count reach max in face stage. |
Response Examples
docDatabaseDetail payloads: DocDatabaseDetail Examples.
PASS (Indonesia NIK)
One end-to-end sample. Other markets: same envelope; swap docDatabaseDetail from DocDatabaseDetail Examples.
{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId": "d1e3c29cb99749fd",
"overallResult": "PASS",
"idvResult": "PASS",
"errorCode": "SUCCESS",
"errorCodes": ["SUCCESS"],
"submissionCompleted": true,
"docDatabaseDetail": {
"numberValue": "************1734",
"numberTypeInfo": { "numberType": "ID_NIK", "region": "IDN" },
"fullName": "A*** S*****",
"gender": "MALE",
"birthday": "2000/05/03",
"verification": { "numberValue": "pass", "fullName": "pass", "dob": "fail", "face": "pass" }
},
"faceDetail": { "faceResult": "PASS", "faceLivenessScore": 100, "faceSimilarityScore": null },
"inputParameters": { "region": "IDN", "numberType": "NIK" },
"countryCodeIso3": "IDN"
},
"extra": null,
"transactionId": "cb45cbd73a43a16d",
"pricingStrategy": "FREE"
}FAIL — NUMBER_NOT_EXIST
The number is not found. docDatabaseDetail is still returned: verification.numberValue is fail, and the identity fields are null.
{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId": "55eb36c110064ded",
"overallResult": "FAIL",
"idvResult": "FAIL",
"errorCode": "NUMBER_NOT_EXIST",
"errorCodes": ["NUMBER_NOT_EXIST"],
"submissionCompleted": true,
"docDatabaseDetail": {
"numberValue": "************0002",
"numberTypeInfo": { "numberType": "ID_NIK", "region": "IDN" },
"fullName": "L**** r******** ",
"verification": { "numberValue": "fail", "fullName": null, "dob": null, "face": null }
},
"faceDetail": { "faceResult": null, "faceLivenessScore": null, "faceSimilarityScore": null },
"inputParameters": { "region": "IDN", "numberType": "NIK" },
"countryCodeIso3": "IDN"
},
"extra": null,
"transactionId": "98ea1f5130e071e2",
"pricingStrategy": "FREE"
}FAIL — SIMILARITY_FAILED
The face captured during liveness does not match the face registered to the number. docDatabaseDetail is returned with verification.face = fail.
{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId": "a1ce1105e80bb7b8",
"overallResult": "FAIL",
"idvResult": "FAIL",
"errorCode": "SIMILARITY_FAILED",
"errorCodes": ["SIMILARITY_FAILED"],
"submissionCompleted": true,
"docDatabaseDetail": {
"numberValue": "************0003",
"numberTypeInfo": { "numberType": "ID_NIK", "region": "IDN" },
"fullName": "K**** H******* P****",
"gender": "MALE",
"birthday": "1996/10/26",
"verification": { "numberValue": "pass", "fullName": "pass", "dob": "fail", "face": "fail" }
},
"faceDetail": { "faceResult": "FAIL", "faceLivenessScore": null, "faceSimilarityScore": null },
"inputParameters": { "region": "IDN", "numberType": "NIK" },
"countryCodeIso3": "IDN"
},
"extra": null,
"transactionId": "d716c0dc79c4918f",
"pricingStrategy": "FREE"
}FAIL — NAME_NOT_MATCH
The submitted name does not match the name registered to the number: verification.fullName is fail.
{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId": "750d471db1443573",
"overallResult": "FAIL",
"idvResult": "FAIL",
"errorCode": "NAME_NOT_MATCH",
"errorCodes": ["NAME_NOT_MATCH"],
"submissionCompleted": true,
"docDatabaseDetail": {
"numberValue": "************0002",
"numberTypeInfo": { "numberType": "ID_NIK", "region": "IDN" },
"fullName": "F**** D** S******",
"gender": "MALE",
"birthday": "1990/02/26",
"verification": { "numberValue": "pass", "fullName": "fail", "dob": "fail", "face": "pass" }
},
"faceDetail": { "faceResult": null, "faceLivenessScore": null, "faceSimilarityScore": null },
"inputParameters": { "region": "IDN", "numberType": "NIK" },
"countryCodeIso3": "IDN"
},
"extra": null,
"transactionId": "9d3f36ceed75ca9a",
"pricingStrategy": "FREE"
}INCOMPLETE
The user did not finish the flow in time, so the number database step never produced a detail: docDatabaseDetail is null and submissionCompleted is false.
{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId": "7bc805ef66573af0",
"overallResult": "INCOMPLETE",
"idvResult": "INCOMPLETE",
"errorCode": "USER_TIMEOUT",
"errorCodes": ["USER_TIMEOUT"],
"submissionCompleted": false,
"docDatabaseDetail": null,
"faceDetail": { "faceResult": null, "faceLivenessScore": null, "faceSimilarityScore": null },
"inputParameters": { "region": "IDN", "numberType": "NIK" },
"countryCodeIso3": "IDN"
},
"extra": null,
"transactionId": "575dd4bff57999c7",
"pricingStrategy": "FREE"
}SIGNATURE_NOT_EXIST
{
"code": "SIGNATURE_NOT_EXIST",
"message": "This signatureId is not exist",
"data": null,
"extra": null,
"transactionId": "b6d722f7e9f553ae",
"pricingStrategy": "FREE"
}ERROR
{
"code": "ERROR",
"message": "Server error",
"data": null,
"extra": null,
"transactionId": "1deae5a13ef2bd5e",
"pricingStrategy": "FREE"
}Updated about 19 hours ago
