curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "",
"nik": "",
"date_of_birth": "",
"gender": "",
"place_of_birth": "",
"marital_status": "",
"job_type": "",
"address": "",
"province": "",
"city": "",
"district": "",
"subdistrict": "",
"rt": "",
"rw": "",
"mother_maiden_name": "",
"no_kk": "",
"selfie_image": "",
"trustFlowId": 0,
"trustValidationId": "{your_created_trust_validation_id}"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full"
payload = {
"name": "",
"nik": "",
"date_of_birth": "",
"gender": "",
"place_of_birth": "",
"marital_status": "",
"job_type": "",
"address": "",
"province": "",
"city": "",
"district": "",
"subdistrict": "",
"rt": "",
"rw": "",
"mother_maiden_name": "",
"no_kk": "",
"selfie_image": "",
"trustFlowId": 0,
"trustValidationId": "{your_created_trust_validation_id}"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '',
nik: '',
date_of_birth: '',
gender: '',
place_of_birth: '',
marital_status: '',
job_type: '',
address: '',
province: '',
city: '',
district: '',
subdistrict: '',
rt: '',
rw: '',
mother_maiden_name: '',
no_kk: '',
selfie_image: '',
trustFlowId: 0,
trustValidationId: '{your_created_trust_validation_id}'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '',
'nik' => '',
'date_of_birth' => '',
'gender' => '',
'place_of_birth' => '',
'marital_status' => '',
'job_type' => '',
'address' => '',
'province' => '',
'city' => '',
'district' => '',
'subdistrict' => '',
'rt' => '',
'rw' => '',
'mother_maiden_name' => '',
'no_kk' => '',
'selfie_image' => '',
'trustFlowId' => 0,
'trustValidationId' => '{your_created_trust_validation_id}'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full"
payload := strings.NewReader("{\n \"name\": \"\",\n \"nik\": \"\",\n \"date_of_birth\": \"\",\n \"gender\": \"\",\n \"place_of_birth\": \"\",\n \"marital_status\": \"\",\n \"job_type\": \"\",\n \"address\": \"\",\n \"province\": \"\",\n \"city\": \"\",\n \"district\": \"\",\n \"subdistrict\": \"\",\n \"rt\": \"\",\n \"rw\": \"\",\n \"mother_maiden_name\": \"\",\n \"no_kk\": \"\",\n \"selfie_image\": \"\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_created_trust_validation_id}\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"\",\n \"nik\": \"\",\n \"date_of_birth\": \"\",\n \"gender\": \"\",\n \"place_of_birth\": \"\",\n \"marital_status\": \"\",\n \"job_type\": \"\",\n \"address\": \"\",\n \"province\": \"\",\n \"city\": \"\",\n \"district\": \"\",\n \"subdistrict\": \"\",\n \"rt\": \"\",\n \"rw\": \"\",\n \"mother_maiden_name\": \"\",\n \"no_kk\": \"\",\n \"selfie_image\": \"\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_created_trust_validation_id}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"\",\n \"nik\": \"\",\n \"date_of_birth\": \"\",\n \"gender\": \"\",\n \"place_of_birth\": \"\",\n \"marital_status\": \"\",\n \"job_type\": \"\",\n \"address\": \"\",\n \"province\": \"\",\n \"city\": \"\",\n \"district\": \"\",\n \"subdistrict\": \"\",\n \"rt\": \"\",\n \"rw\": \"\",\n \"mother_maiden_name\": \"\",\n \"no_kk\": \"\",\n \"selfie_image\": \"\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_created_trust_validation_id}\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Indonesia Dukcapil Full processed successfully",
"data": {
"isValid": true,
"success": true,
"message": "Berhasil",
"data": {
"nik": true,
"name": true,
"dateOfBirth": true,
"selfieImagePercentage": "99.8",
"livenessResult": null,
"livenessFailMessage": "",
"noKk": null,
"motherMaidenName": null,
"placeOfBirth": true,
"address": true,
"gender": true,
"maritalStatus": true,
"jobType": true,
"province": true,
"city": true,
"district": true,
"subdistrict": true,
"rt": true,
"rw": true,
"uuid": "76367de2-1b77-4eb7-9bc3-3263b62ebf2f",
"url": "",
"reasonCode": "0",
"errorMessage": null
}
},
"verificationStatus": "VERIFIED",
"verificationStatusCode": 3,
"trustFlowId": 0,
"trustValidationId": "{your_trust_validation_id}",
"verificationType": "dukcapil_full",
"metadata": null
}Dukcapil Data Full
Verify Indonesia Dukcapil data with full details, including selfie image match.
curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "",
"nik": "",
"date_of_birth": "",
"gender": "",
"place_of_birth": "",
"marital_status": "",
"job_type": "",
"address": "",
"province": "",
"city": "",
"district": "",
"subdistrict": "",
"rt": "",
"rw": "",
"mother_maiden_name": "",
"no_kk": "",
"selfie_image": "",
"trustFlowId": 0,
"trustValidationId": "{your_created_trust_validation_id}"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full"
payload = {
"name": "",
"nik": "",
"date_of_birth": "",
"gender": "",
"place_of_birth": "",
"marital_status": "",
"job_type": "",
"address": "",
"province": "",
"city": "",
"district": "",
"subdistrict": "",
"rt": "",
"rw": "",
"mother_maiden_name": "",
"no_kk": "",
"selfie_image": "",
"trustFlowId": 0,
"trustValidationId": "{your_created_trust_validation_id}"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '',
nik: '',
date_of_birth: '',
gender: '',
place_of_birth: '',
marital_status: '',
job_type: '',
address: '',
province: '',
city: '',
district: '',
subdistrict: '',
rt: '',
rw: '',
mother_maiden_name: '',
no_kk: '',
selfie_image: '',
trustFlowId: 0,
trustValidationId: '{your_created_trust_validation_id}'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '',
'nik' => '',
'date_of_birth' => '',
'gender' => '',
'place_of_birth' => '',
'marital_status' => '',
'job_type' => '',
'address' => '',
'province' => '',
'city' => '',
'district' => '',
'subdistrict' => '',
'rt' => '',
'rw' => '',
'mother_maiden_name' => '',
'no_kk' => '',
'selfie_image' => '',
'trustFlowId' => 0,
'trustValidationId' => '{your_created_trust_validation_id}'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full"
payload := strings.NewReader("{\n \"name\": \"\",\n \"nik\": \"\",\n \"date_of_birth\": \"\",\n \"gender\": \"\",\n \"place_of_birth\": \"\",\n \"marital_status\": \"\",\n \"job_type\": \"\",\n \"address\": \"\",\n \"province\": \"\",\n \"city\": \"\",\n \"district\": \"\",\n \"subdistrict\": \"\",\n \"rt\": \"\",\n \"rw\": \"\",\n \"mother_maiden_name\": \"\",\n \"no_kk\": \"\",\n \"selfie_image\": \"\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_created_trust_validation_id}\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"\",\n \"nik\": \"\",\n \"date_of_birth\": \"\",\n \"gender\": \"\",\n \"place_of_birth\": \"\",\n \"marital_status\": \"\",\n \"job_type\": \"\",\n \"address\": \"\",\n \"province\": \"\",\n \"city\": \"\",\n \"district\": \"\",\n \"subdistrict\": \"\",\n \"rt\": \"\",\n \"rw\": \"\",\n \"mother_maiden_name\": \"\",\n \"no_kk\": \"\",\n \"selfie_image\": \"\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_created_trust_validation_id}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil-full")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"\",\n \"nik\": \"\",\n \"date_of_birth\": \"\",\n \"gender\": \"\",\n \"place_of_birth\": \"\",\n \"marital_status\": \"\",\n \"job_type\": \"\",\n \"address\": \"\",\n \"province\": \"\",\n \"city\": \"\",\n \"district\": \"\",\n \"subdistrict\": \"\",\n \"rt\": \"\",\n \"rw\": \"\",\n \"mother_maiden_name\": \"\",\n \"no_kk\": \"\",\n \"selfie_image\": \"\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_created_trust_validation_id}\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Indonesia Dukcapil Full processed successfully",
"data": {
"isValid": true,
"success": true,
"message": "Berhasil",
"data": {
"nik": true,
"name": true,
"dateOfBirth": true,
"selfieImagePercentage": "99.8",
"livenessResult": null,
"livenessFailMessage": "",
"noKk": null,
"motherMaidenName": null,
"placeOfBirth": true,
"address": true,
"gender": true,
"maritalStatus": true,
"jobType": true,
"province": true,
"city": true,
"district": true,
"subdistrict": true,
"rt": true,
"rw": true,
"uuid": "76367de2-1b77-4eb7-9bc3-3263b62ebf2f",
"url": "",
"reasonCode": "0",
"errorMessage": null
}
},
"verificationStatus": "VERIFIED",
"verificationStatusCode": 3,
"trustFlowId": 0,
"trustValidationId": "{your_trust_validation_id}",
"verificationType": "dukcapil_full",
"metadata": null
}Authorizations
Use Bearer {your_api_token} in the Authorization header.
Body
Full name of the individual to be verified.
Indonesian National Identity Number (Nomor Induk Kependudukan).
Date of birth of the individual in YYYY-MM-DD format.
Gender of the individual (for example, Male or Female).
Place of birth of the individual.
Marital status (for example, Single, Married, Divorced).
Occupation or type of job.
Residential address of the individual.
Province of residence.
City of residence.
District or municipality.
Subdistrict or village.
Neighborhood unit (Rukun Tetangga).
Community unit (Rukun Warga).
Mother's maiden name.
Family card number (Nomor Kartu Keluarga).
Base64-encoded selfie image.
Trust flow identifier used to categorize or group requests for tracking or reporting.
Trust validation identifier for the verification request.
Response
Dukcapil data full verified successfully
Show child attributes
Show child attributes
Outcome of the verification (for example VERIFIED, REJECTED, REVIEW_NEEDED).
Trust flow identifier.
Verification type identifier (for example dukcapil_full).

