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://api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/get-result
POST (application/json)https://sg-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/get-result
POST (application/json)https://ph-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/get-result
POST (application/json)https://th-api.advance.ai/intl/openapi/identity-risk/idvs-h5/ekyc/v1/get-result
POST (application/json)https://my-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, or INCOMPLETE when a final result is available; null while the transaction is pending. See overallResult. |
| submissionCompleted | Always | bool. Indicates whether ADVANCE.AI frontend data submission has completed. For THAIEID this is always false, and the SUBMIT_COMPLETED webhook event is not sent; use overallResult or the COMPLETED event to determine whether verification is complete. |
| 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. The shape depends on the market. For THAIEID, this is populated only when overallResult is PASS. null when the flow ended before the number-database step produced detail (e.g. INCOMPLETE). See DocDatabaseDetail. |
| faceDetail | Conditional | object when applicable. When liveness ran, see FaceDetail. For THAIEID, this is null because the flow does not use ADVANCE.AI liveness capture or face matching. |
| inputParameters | Always | object. Echo of Generate URL API input, including the effective scope for THAIEID. 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 times out. |
null | A final result is not yet available. Query again using the same signatureId. |
For Thailand ThaID, Get Result can return code: SUCCESS while the verification result is still pending. Check data.overallResult for the outcome. A browser redirect or link expiry does not determine the outcome. If the session still has no final result after 24 hours, it can be closed as INCOMPLETE with USER_TIMEOUT. To let the user start again after the link expires, generate a new link.
errorCode
| Response.data.overallResult | Value | Description |
|---|---|---|
| PASS | SUCCESS | The user passed the verification. |
| FAIL | BVN_NOT_EXIST | the BVN inputed by the user doesn't exists. |
| FAIL | NIN_NOT_EXIST | the NIN inputed by the user doesn't exist. |
| 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. For Thailand ThaID, this also applies when the authorization result expires before it can be retrieved. | |
| 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. |
| INCOMPLETE | USER_DENIED | Thailand ThaID only: the user declined the authorization request. |
| USER_TIMEOUT | User did not complete the operation within the specified time | |
| ERROR | Error during processing in our backend. this may indicates a backend bug. For Thailand ThaID, this can indicate that the authorization result could not be retrieved. | |
| DATASOURCE_UNSTABLE | The identity data source is unstable; the verification could not be completed. | |
| NIN_DATASOURCE_UNSTABLE | The NIN identity source is unstable; the verification could not be completed. | |
| FACE_IMAGE_INVALID_FORMAT | The face image submitted is in an invalid format. | |
| RETRY_COUNT_REACH_MAX | The user's retry count reach max in face stage. |
DATASOURCE_UNSTABLE and FACE_IMAGE_INVALID_FORMAT are not specific to one market: they can be returned by several Non-Doc number types. NIN_DATASOURCE_UNSTABLE applies to NIN only.
For Non-Doc flows, PARAMETER_ERROR with overallResult = INCOMPLETE can also mean the identity data-source session expired before the check completed; in that case restart the verification with a new Generate URL.
Response Examples
docDatabaseDetail payloads: DocDatabaseDetail Examples.
PASS (Indonesia NIK)
See DocDatabaseDetail for market-specific identity details. For Thailand ThaID, use the examples below for the complete response structure.
{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId": "d1e3c29cb99749fd",
"overallResult": "PASS",
"idvResult": "PASS",
"errorCode": "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",
"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",
"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",
"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",
"submissionCompleted": false,
"docDatabaseDetail": null,
"faceDetail": { "faceResult": null, "faceLivenessScore": null, "faceSimilarityScore": null },
"inputParameters": { "region": "IDN", "numberType": "NIK" },
"countryCodeIso3": "IDN"
},
"extra": null,
"transactionId": "575dd4bff57999c7",
"pricingStrategy": "FREE"
}PASS (Thailand ThaID)
{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId": "8c61234ab90def21",
"overallResult": "PASS",
"idvResult": "PASS",
"errorCode": "SUCCESS",
"submissionCompleted": false,
"docDatabaseDetail": {
"idNumber": "1***********2",
"firstName": "A****",
"lastName": "S*****",
"birthday": "1992/03/17",
"issueDate": "2023/06/15",
"expiryDate": "2031/03/17",
"address": "B******, Thailand",
"numberTypeInfo": { "numberType": "TH_THAIEID", "region": "THA" }
},
"faceDetail": null,
"inputParameters": {
"region": "THA",
"numberType": "THAIEID",
"scope": ["idNumber", "firstName", "lastName", "birthday", "issueDate", "expiryDate", "address"]
},
"countryCodeIso3": "THA"
},
"extra": null,
"transactionId": "bfe60cfd591123ac",
"pricingStrategy": "FREE"
}Awaiting a final result (Thailand ThaID)
code is SUCCESS while overallResult is still null. Query again with the same signatureId.
{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId": "2a1cd833eb90674f",
"overallResult": null,
"idvResult": null,
"errorCode": null,
"submissionCompleted": false,
"docDatabaseDetail": null,
"faceDetail": null,
"inputParameters": {
"region": "THA",
"numberType": "THAIEID",
"scope": ["idNumber", "firstName", "lastName", "birthday"]
},
"countryCodeIso3": "THA"
},
"extra": null,
"transactionId": "c978f76e5ac8f5ea",
"pricingStrategy": "FREE"
}INCOMPLETE — USER_DENIED (Thailand ThaID)
The user declined the authorization request in the ThaID app.
{
"code": "SUCCESS",
"message": "OK",
"data": {
"signatureId": "391db8046ab7c572",
"overallResult": "INCOMPLETE",
"idvResult": "INCOMPLETE",
"errorCode": "USER_DENIED",
"submissionCompleted": false,
"docDatabaseDetail": null,
"faceDetail": null,
"inputParameters": {
"region": "THA",
"numberType": "THAIEID",
"scope": ["idNumber", "firstName", "lastName", "birthday"]
},
"countryCodeIso3": "THA"
},
"extra": null,
"transactionId": "ff86eb01d9c5b2ac",
"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
