Kredibel API
Search
K
Comment on page

Full Verification

Demography and Biometric verification to dukcapil database.
This module only support verification for indonesian identity card (KTP)

Endpoints

Method
URL
POST
$synapses/v1/identity/verification/full

Headers

Header
Value
Content-Type
application/json
Authorization
Bearer YOUR_API_KEY

Request

Description
Example
Field
Type
Description
identityId
(required)
String (len: 16)
Nomor induk kependudukan (NIK).
fullName
(required)
String
Full name.
birthPlace (required)
String
Birth Place.
birthDate (required)
String (format: yyyy-mm-dd)
Birth Date.
address (required)
String
Address.
faceImage
(required)
Base64
Image binary encoded in base64 without <data:image/png;>. - Supports: JPG, JPEG, PNG, SVG - Max Size: 1MB
threshold (optional)
Float (0-1)
Matched threshold for demography data (fullName, birthPlace, address) - 0=0% match, 0.5=50% match, 1=100% match
faceThreshold (optional)
(0-1)
Matched threshold for biometric data (face) - 0=0% match, 0.5=50% match, 1=100% match
{
"identityId": "1234567890123456",
"fullName": "ASEP SUPRIYADI",
"address": "JL SESAMA NO 123",
"birthPlace": "JAKARTA",
"birthDate": "1990-07-06",
"faceImage": "<base64>"
}

Testing

In the sandbox environment, we only response api call with dummy data. To get valid response data, you can use our production environment instead.
All Match
Wrong Identity
Wrong Name
Wrong Address
Wrong Birthplace
Wrong Birthdate
You can use identityId=1234567890123456 to produce all-match result.
Example:
{
"identityId": "1234567890123456",
"fullName": "ASEP SUPRIYADI",
"address": "JL SESAMA NO 123",
"birthPlace": "JAKARTA",
"birthDate": "1990-07-06",
"faceImage": "<base64>"
}
{
"message": "Identity full verification succeeded.",
"data": {
"id": "57746ec6-8b36-404c-890f-8a683f2372ef",
"identityId": "1234567890123456",
"isValid": true,
"isActive": true,
"response": {
"fullName": true,
"fullNameSimilarity": 1.0,
"address": true,
"addressSimilarity": 1.0,
"birthPlace": true,
"birthPlaceSimilarity": 1.0,
"birthDate": true,
"face": true,
"face_similarity": 1.0
}
}
}
You can use any identityId except 1234567890123456 to produce identity not valid result.
Example:
{
"identityId": "1234567890123450",
"fullName": "ASEP SUPRIYADI",
"address": "JL SESAMA NO 123",
"birthPlace": "JAKARTA",
"birthDate": "1990-07-06",
"faceImage": "<base64>"
}
{
"message": "Identity full verification succeeded.",
"data": {
"id": "f9f66616-12f0-402f-93bf-5b7f165ab23d",
"identityId": "1234567890123450",
"isValid": false,
"isActive": false,
"response": {}
}
}
You can use identityId =1234567890123451 to produce full name is not valid.
Example:
{
"identityId": "1234567890123451",
"fullName": "ASEP SUPRIYADI",
"address": "JL SESAMA NO 123",
"birthPlace": "JAKARTA",
"birthDate": "1990-07-06",
"faceImage": "<base64>"
}
{
"message": "Identity full verification succeeded.",
"data": {
"id": "df25614d-dce8-436e-9318-b3ac9bbda179",
"identityId": "1234567890123451",
"isValid": true,
"isActive": true,
"response": {
"fullName": false,
"fullNameSimilarity": 0.43,
"address": true,
"addressSimilarity": 1.0,
"birthPlace": true,
"birthPlaceSimilarity": 1.0,
"birthDate": true,
"face": false,
"face_similarity": 0.12
}
}
}
You can use identityId=234567890123452 to produce address is not valid.
Example:
{
"identityId": "1234567890123452",
"fullName": "ASEP SUPRIYADI",
"address": "JL SESAMA NO 123",
"birthPlace": "JAKARTA",
"birthDate": "1990-07-06",
"faceImage": "<base64>"
}
{
"message": "Identity full verification succeeded.",
"data": {
"id": "b26ebc48-20fa-4f53-8bb4-652058def9b0",
"identityId": "1234567890123452",
"isValid": true,
"isActive": true,
"response": {
"fullName": true,
"fullNameSimilarity": 1.0,
"address": true,
"addressSimilarity": 0.58,
"birthPlace": true,
"birthPlaceSimilarity": 1.0,
"birthDate": true,
"face": false,
"face_similarity": 0.73
}
}
}
You can use identityId=234567890123453 to produce birth place is not valid.
Example:
{
"identityId": "1234567890123453",
"fullName": "ASEP SUPRIYADI",
"address": "JL SESAMA NO 123",
"birthPlace": "JAKARTA",
"birthDate": "1990-07-06",
"faceImage": "<base64>"
}
{
"message": "Identity full verification succeeded.",
"data": {
"id": "6fbf106c-ad7e-4371-8571-3e9615a9590d",
"identityId": "1234567890123453",
"isValid": true,
"isActive": true,
"response": {
"fullName": true,
"fullNameSimilarity": 1.0,
"address": true,
"addressSimilarity": 1.0,
"birthPlace": false,
"birthPlaceSimilarity": 0.23,
"birthDate": true,
"face": false,
"face_similarity": 0.65
}
}
}
You can use identityId=234567890123454 to produce birth date is not valid.
Example:
{
"identityId": "1234567890123454",
"fullName": "ASEP SUPRIYADI",
"address": "JL SESAMA NO 123",
"birthPlace": "JAKARTA",
"birthDate": "1990-07-06",
"faceImage": "<base64>"
}
{
"message": "Identity full verification succeeded.",
"data": {
"id": "84ede311-7eb7-462b-80ae-0795fafcf368",
"identityId": "1234567890123454",
"isValid": true,
"isActive": true,
"response": {
"fullName": true,
"fullNameSimilarity": 1.0,
"address": true,
"addressSimilarity": 1.0,
"birthPlace": true,
"birthPlaceSimilarity": 1.0,
"birthDate": true,
"face": false,
"face_similarity": 0.46
}
}
}

Response

Description
Example
Field
Type
Description
id
String
Unique identifier.
identityId
String
Nomor induk kependudukan (NIK).
isValid
Boolean
Return true if identityId is exist in the Dukcapil database.
isActive
Boolean
Return true if identityId is active in the Dukcapil database.
response:fullName
Boolean
Return true if input fullName match with the fullName in Dukcapil database.
response:fullNameSimilarity
Float (0-1)
Similarity between the input fullName and the fullName in Dukcapil database.
response:address
Boolean
Return true if input birth date match with the birth date in Dukcapil database.
response:addressSimilarity
Float (0-1)
Similarity between the input address and the address in Dukcapil database.
response:birthPlace
Boolean
Return true if input birth place match with the birth place in Dukcapil database.
response:birthPlaceSimilarity
Float (0-1)
Similarity between the input birthPlace and the birthPlace in Dukcapil database.
response:birthDate
Boolean
Return true if input birth date match with the birth date in Dukcapil database.
response:face
Boolean
Return true if input face match with the face in dukcapil database. - Default threshold: >= 0.75: True
response:faceSimilarity
Float (0-1)
Similarity between the input face and the face in Dukcapil database. - Default threshold: >= 0.8: True
{
"message": "Identity full verification succeeded.",
"data": {
"id": "68224a77-60f4-40f6-85ff-35801f4d6541",
"identityId": "1234567890123451",
"isValid": true,
"isActive": true,
"response": {
"fullName": false,
"fullNameSimilarity": 0.43,
"address": true,
"addressSimilarity": 1.0,
"birthPlace": true,
"birthPlaceSimilarity": 1.0,
"birthDate": true,
"face": true,
"faceSimilarity": 0.81
}
}
}

Errors

Please read this page <Responses & Errors> to know more about response.
Error 4XX
Error Type
Structure
Error Type
Description
Is charged?
invalid_base64_encoding
Invalid base64 encoding.
False
image_too_large
Input image is greater than the maximum size allowed.
False
no_face_detected
No face was detected from the input image or the input image is blurry.
True
request_error
Cannot get response from Dukcapil server.
False
{
"errors":{
"errorId": <log_id:uuid>,
"errorType": <error_type:str>
},
"message": <message:str>
}
Error 5XX
For every 5XX http code response, there will be no charge.