Comment on page
Full Verification
Demography and Biometric verification to dukcapil database.
This module only support verification for indonesian identity card (KTP)

Method | URL |
POST | $synapses /v1/identity/verification/full |
Header | Value |
Content-Type | application/json |
Authorization |
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>"
}
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
}
}
}
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
}
}
}
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.
Last modified 1yr ago