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

ParameterDescription
X-ACCESS-TOKENstring Please use Token Authentication API to get your access token

Request Parameters

ParameterDescription
signatureIdstring SignatureId which can use it to get the Verification result

Response Description

ParameterDescription
codeResponse's Status Code
transactionIdThe request id, the max length is 64
pricingStrategyDeprecated, Always return FREE
messageStatus Code Explanation
dataobject : the business result of Verification
extraExtra response info (Exception Message)

Response.code

Status CodeMessage
SUCCESSOK
SIGNATURE_NOT_EXISTThis signatureId is not exist.
ERRORServer 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.

FieldPresenceDescription
signatureIdAlwaysstring. The signatureId of this verification transaction.
overallResultAlwaysstring. PASS, FAIL, or INCOMPLETE when a final result is available; null while the transaction is pending. See overallResult.
submissionCompletedAlwaysbool. 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.
idvResultAlwaysstring. Same as overallResult today (deprecated alias).
errorCodeConditionalstring. Fail reason when overallResult is fail or INCOMPLETE; SUCCESS when pass. See errorCode. Null while transaction has no final result yet.
docDatabaseDetailConditionalobject. 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.
faceDetailConditionalobject 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.
inputParametersAlwaysobject. Echo of Generate URL API input, including the effective scope for THAIEID. See InputParameters.
countryCodeIso3Alwaysstring. Same as region in Generate URL input (ISO3).

overallResult

overallResult is the result code of the verification

ValueDescription
PASSthe user passed the verification check.
FAILthe user failed the verification check.
INCOMPLETEthe user gave up in the middle of the verification check, or the user times out.
nullA 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.overallResultValueDescription
PASSSUCCESSThe user passed the verification.
FAILBVN_NOT_EXISTthe BVN inputed by the user doesn't exists.
FAILNIN_NOT_EXISTthe NIN inputed by the user doesn't exist.
FAILNUMBER_NOT_EXISTThe number inputed by user doesn't exists.
NAME_NOT_MATCHName inputed by user is not match.
LIVENESS_ATTACKThe liveness check failed.
SIMILARITY_FAILEDThe liveness face and the face belong to the number are not considered as the same person.
INVALID_FORMATThe Number or other fields inputed by user is in wrong format.
CAN_NOT_VERIFYDatabase 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_POORThe image quality stored in the official database is too poor.
RISK_STRATEGY_HITThe transaction has triggered risk prevention strategies that are used to reject attacks.
AGE_VERIFICATION_FAILEDAge verification failed.
INFO_ABNORMALA person's record in the official database is missing critical information.
NUMBER_DECEASEDThe identity holder is deceased.
NUMBER_BLOCKEDThe number is blocked or locked by the official institution.
INCOMPLETEPARAMETER_ERRORthe data submitted by our frontend is not valid. this may indicates a frontend bug.
INCOMPLETEUSER_DENIEDThailand ThaID only: the user declined the authorization request.
USER_TIMEOUTUser did not complete the operation within the specified time
ERRORError 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_UNSTABLEThe identity data source is unstable; the verification could not be completed.
NIN_DATASOURCE_UNSTABLEThe NIN identity source is unstable; the verification could not be completed.
FACE_IMAGE_INVALID_FORMATThe face image submitted is in an invalid format.
RETRY_COUNT_REACH_MAXThe 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"
}

Did this page help you?