API Request & Response

The ID Verification service validate the personal identity of your user in a quick and efficient way to protect your business from potential fraud. We provide you a simple API that can be quickly tested and integrated. Please check the details below on the components of our API.

🎈Endpoint

MethodEndpoint
POSThttps://api.verihubs.com/data-verification/id-verification/verify

🎈Headers

KeyTypeDescription
App-IDStringThis is the Application ID that you can generate in the Application Menu in Verihubs Client Dashboard.
The Client Dashboard have 2 modes, Sandbox and Production.
Using the Application ID generated in Sandbox mode will return dummy all-true response in ID Verification Service, while using the Application ID generated in Production mode will process the data with the Authoritative Partner.
API-KeyStringAPI-Key that generated in the Application Menu in Verihubs Client Dashboard that paired to a specific Application ID.

🎈Request

Request Parameter

ParameterTypeDescriptionValidationExample
nikString16 digits of Nomor Induk Kependudukan as stated on the KTP.Must be 16 exact digit.9171022512990011
nameStringFull name as stated on the KTP.Must be alphabet.John Doe
birth_dateStringBirth date in DD-MM-YYYY format as stated on the KTP.Must be in DD-MM-YYYY format.01-01-1901
reference_idStringThis reference_id can be used to indicate your company’s transaction and must be unique. If the reference_id is not inputted, then Verihubs will generate one for youN/AID_CHECK_123

🎈Response

HTTP Code

HTTP CodeDescriptionResponse
200Successful Transaction; Transaction where the data inputted had been successfully verified by the Authoritative Partner.{
"message": "ID Check verification has been done",
"data": {
"id": "e3c0326e-23f7-49d0-8876-71528a860a0c",
"nik": true,
"name": false,
"birth_date": true,
"reference_id": "f3c0326e-23f7-49d0-8876-71528a860a0d"
}
}
400Invalid Payload; Failed transaction due to validation errors. An error_field will appear explaining the error with following possible reason:

1. NIK number inputted is not exactly 16 digit, starts with 0, or ends with 0000.
2. Name inputted contains non-alphabet.
3. Birth date inputted is not in DD-MM-YYYY format.
{
"message": "Invalid payload",
"error_code": "INVALID_PAYLOAD",
"error_fields": [
{
"field": "nik",
"message": "nik is invalid"
}
]
}
401Authorization Failed; Unauthorized transaction due to Application ID and/or API-Key issue. If this error appear, please check the possible reason below:

1. Transaction performed using Sandbox Application ID but Production API-Key, vice versa.
2. Transaction performed using
{
"message": "Authorization Failed",
"error_code": "UNAUTHORIZED",
"error_fields": []
}
403Forbidden; The transaction is in Testing mode and you have 0 (zero) remaining quota. Please contact our team to top up your quota, or go live with the ID Verification service.

This condition only applies for Testing Mode.
{
"message": "Insufficient testing quota",
"error_code": "FORBIDDEN",
"error_fields": []
}
429Too Many Request; Spam Error as the transaction is read as spam, please wait 10 seconds before re-performing the hit process with the same identity.{
"message": "Too many request in the allowed time frame",
"error_code": "TOO_MANY_REQUEST",
"error_fields": []
}
500Internal Server Error; The transaction failed due to an unexpected error. An message will appear explaining the error with following possible reason:

1. Access timeout in the Datasource; this means that your request has been forwarded but but the server did not reply until the pre-set timeout time.
2. Intermittent errors occurred in the Datasource; this means that your request ahs been forwarded but the server in experiencing interruptions and unable to perform checking to your data.
3. Internal server error; this means an unmapped errors occurred in the server.
{
"message": "Internal Server Error",
"error_code": "INTERNAL_SERVER_ERROR",
"error_fields": []
}

Response Parameter

ParameterTypeDescriptionExample
messagestringThe message of your transaction.ID Check verification has been done
data.idstringVerihubs auto generated Transaction ID. Consist of 32 digit excluding stripes (-).e3c0326e-23f7-49d0-8876-71528a860a0c
data.nikbooleanThe verification result of your NIK.true
data.namebooleanThe verification result of your name.true
data.birth_datebooleanThe verification result of your date of birth.true
data.reference_idbooleanClient inputted unique ID. If you did not input any, Verihubs will auto generate the ID.f3c0326e-23f7-49d0-8876-71528a860a0d

Response Case Example

CaseDescriptionResponse
VerifiedAll data inputted (NIK, Name, Date of Birth) verified.{
"message": "Identity verification has been done",
"data": {
"id": "e3c0326e-23f7-49d0-8876-71528a860a0c",
"nik": true,
"name": true,
"birth_date": true,
"reference_id": "f3c0326e-23f7-49d0-8876-71528a860a0d"
}
}
NIK Not FoundNIK inputted not found in the government database.{
"message": "Identity verification has been done",
"data": {
"id": "e3c0326e-23f7-49d0-8876-71528a860a0c",
"nik": false,
"name": null,
"birth_date": null,
"reference_id": "f3c0326e-23f7-49d0-8876-71528a860a0d"
}
}
Name Not MatchName inputted did not match the name recorded in the government database.{
"message": "Identity verification has been done",
"data": {
"id": "e3c0326e-23f7-49d0-8876-71528a860a0c",
"nik": true,
"name": false,
"birth_date": true,
"reference_id": "f3c0326e-23f7-49d0-8876-71528a860a0d"
}
}
Date of Birth Not MatchDate of Birth inputted did not match the date of birth recorded in the government database.{
"message": "Identity verification has been done",
"data": {
"id": "e3c0326e-23f7-49d0-8876-71528a860a0c",
"nik": true,
"name": true,
"birth_date": false,
"reference_id": "f3c0326e-23f7-49d0-8876-71528a860a0d"
}
}