IdentifAI Dukcapil Validation

IdentifAI Dukcapil Validation aims to validate the facial biometric identity of an individual through the National ID Database (Dukcapil). We can do this thanks to our cutting-edge technology and Agreement with Indonesia's Ministry of Home Affairs who oversees the National ID Database.

Below are some of our key technology & platform:

  • Face Match [1:1] --> Comparing two photos containing facial biometric information, through AI and Face Recognition Technology, we can define their level of similarities.

  • Our computational platform for face-matching is operated on-premise in Dukcapil's environment.

  • The Shared-Platform (Platform Bersama) is an interface managed by the appointed agency (where Nodeflux is one of the appointees) and served as a bridge in validating the data to Dukcapil's National ID Database.

Prerequisite

Please ensure you are authorized to access the Dukcapil Platform Bersama. The Dukcapil credentials data are identifier data used to validate that users actually get access rights to use the Dukcapil Platform Bersama. Without sending the credential data, the Rest API call will be rejected by the system. You need to fill your credentials in the IdentifAI dashboard such as:

Credential Data

Explanation

Dukcapil Agreement Number (Nomor PKS)

The agreement number is stated in your Dukcapil Agreement letter for accessing face bimetric service

Dukcapil Agreement expiration date

Expiration date of Dukcapil Agreement that state in the agreement letter

Dukcapil Customer ID

The unique profile name of and institution that has been approved by Dukcapil

Dukcapil User ID

The unique username of and institution that is given by Dukcapil

Password

The password is given by Dukcapil as an authorization of rights service access.

For the privacy and the security consent, the submitted credential will be encrypted in our system

Credentials Dashboard

post
Dukcapil Validation API

https://api.cloud.nodeflux.io/v1/analytics/dukcapil-validation
This endpoint allows you to hit Dukcapil Validation for matching the photo by NIK (Indonesia citizen ID) as an identifier to Dukcapil Database.
Request
Response
Request
Headers
Authorization
required
string
"YOUR AUTHORIZATION KEY"
x-nodeflux-timestamp
required
string
"Your nodeflux timestamp from the authorization"
Content-Type
required
string
application/json
Body Parameters
images
required
string
The base64 encoded image jpeg string and it should follow the data URI scheme format
nik
optional
string
16 digit of NIK (Citizen ID number)
transaction_id
optional
string
random transaction-id
transaction_source
optional
string
Device for requesting API
Response
202: Accepted
{
"job": {
"id": <job_id>,
"result": {
"status": "success",
"analytic_type": "DUKCAPIL_VALIDATION",
"result": [
{
"dukcapil_validation": {
"similarity": 0.8
}
}
]
}
},
"message": "Dukcapil Validation Success",
"ok": true
}
500: Internal Server Error
{
"job": {
"id": <job_id>,
"result": {
"status": "failed",
"analytic_type": "DUKCAPIL_VALIDATION",
"result": []
}
},
"message": "Invalid Response from Gateway",
"ok": true
}

Request Body

The request body should follow this format:

{
"additional_params":{
"nik": "{16 digits of NIK}",
"transaction_id": "{random digit}",
"transaction_source": "{device}"
},
"images": [
"{INSERT_JPEG_IMAGE_AS_BASE64_STRING_FOR_SELFIE_PHOTO}"
]
}

Note for image input:

  • The maximum allowed image file size is 1 MB per image The image should be represented in base64 data based on a.JPG format. You can use any online jpg-to-base64 encoder to get the base64 data.

  • Please provide a self-portrait or selfie image and make sure only a single face is presented on the frame.

  • For more detail about image configuration please check the page Image Configuration Guideline.

Example Success Response

{
"job": {
"id": <job_id>,
"result": {
"status": "success",
"analytic_type": "DUKCAPIL_VALIDATION",
"result": [
{
"dukcapil_validation": {
"similarity": 0.8
}
}
]
}
},
"message": "Dukcapil Validation Success",
"ok": true
}

Example Error Response

5xx: Dukcapil Gateway Invalid Respon

{
"job": {
"id": <job_id>,
"result": {
"status": "failed",
"analytic_type": "DUKCAPIL_VALIDATION",
"result": []
}
},
"message": "Invalid Response from Gateway",
"ok": false
}

4xx: Bad Request

Parameter Missing or Invalid

{
"job": {
"id": <job_id>,
"result": {
"status": "incompleted",
"analytic_type": "DUKCAPIL_VALIDATION",
"result": []
}
},
"message": "Parameter Missing or Invalid",
"ok": false
}

4xx: Unauthorized

Unauthorized credential

{
"job": {
"id": <job_id>,
"result": {
"status": "incompleted",
"analytic_type": "DUKCAPIL_VALIDATION",
"result": []
}
},
"message": "Insufficient rights to use the service",
"ok": false
}

4xx: Not Found

No image in request payload

{
"code": "invalid-argument",
"errors": [
"images cannot be empty"
],
"message": "Required field(s) is not supplied or having an invalid type please check again",
"ok": false
}

5xx: Internal Server Error

Dukcapil Gateway Not Responding

{
"job": {
"id": <job_id>,
"result": {
"status": "failed",
"analytic_type": "DUKCAPIL_VALIDATION",
"result": []
}
},
"message": "Gateway not Responding",
"ok": false
}