curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "",
"nik": "",
"date_of_birth": "",
"trustFlowId": 0,
"trustValidationId": "{your_created_trust_validation_id}"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil"
payload = {
"name": "",
"nik": "",
"date_of_birth": "",
"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: '',
trustFlowId: 0,
trustValidationId: '{your_created_trust_validation_id}'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil', 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",
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' => '',
'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"
payload := strings.NewReader("{\n \"name\": \"\",\n \"nik\": \"\",\n \"date_of_birth\": \"\",\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")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"\",\n \"nik\": \"\",\n \"date_of_birth\": \"\",\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")
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 \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_created_trust_validation_id}\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Indonesia Dukcapil processed successfully",
"data": {
"isValid": true,
"success": true,
"message": "Berhasil",
"data": {
"nik": true,
"name": true,
"dateOfBirth": true,
"selfieImagePercentage": null,
"livenessResult": null,
"livenessFailMessage": "",
"noKk": null,
"motherMaidenName": null,
"placeOfBirth": true,
"address": false,
"gender": true,
"maritalStatus": true,
"jobType": false,
"province": true,
"city": true,
"district": false,
"subdistrict": false,
"rt": false,
"rw": false,
"uuid": "667dd431-09b7-46b7-95b2-35d19958d78b",
"url": "",
"reasonCode": "1",
"errorMessage": null
}
},
"verificationStatus": "VERIFIED",
"verificationStatusCode": 3,
"trustFlowId": 0,
"trustValidationId": "{your_trust_validation_id}",
"verificationType": "dukcapil",
"metadata": {
"nik": "1371116803860005"
}
}Dukcapil Data
Retrieve and verify Indonesian citizen data from Dukcapil government records.
curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "",
"nik": "",
"date_of_birth": "",
"trustFlowId": 0,
"trustValidationId": "{your_created_trust_validation_id}"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil"
payload = {
"name": "",
"nik": "",
"date_of_birth": "",
"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: '',
trustFlowId: 0,
trustValidationId: '{your_created_trust_validation_id}'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/indonesia/dukcapil', 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",
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' => '',
'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"
payload := strings.NewReader("{\n \"name\": \"\",\n \"nik\": \"\",\n \"date_of_birth\": \"\",\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")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"\",\n \"nik\": \"\",\n \"date_of_birth\": \"\",\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")
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 \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_created_trust_validation_id}\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Indonesia Dukcapil processed successfully",
"data": {
"isValid": true,
"success": true,
"message": "Berhasil",
"data": {
"nik": true,
"name": true,
"dateOfBirth": true,
"selfieImagePercentage": null,
"livenessResult": null,
"livenessFailMessage": "",
"noKk": null,
"motherMaidenName": null,
"placeOfBirth": true,
"address": false,
"gender": true,
"maritalStatus": true,
"jobType": false,
"province": true,
"city": true,
"district": false,
"subdistrict": false,
"rt": false,
"rw": false,
"uuid": "667dd431-09b7-46b7-95b2-35d19958d78b",
"url": "",
"reasonCode": "1",
"errorMessage": null
}
},
"verificationStatus": "VERIFIED",
"verificationStatusCode": 3,
"trustFlowId": 0,
"trustValidationId": "{your_trust_validation_id}",
"verificationType": "dukcapil",
"metadata": {
"nik": "1371116803860005"
}
}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.
Identifier used to categorize or group requests for tracking or reporting.
A unique ID used to identify your verification request.
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).
Optional mother's maiden name.
Optional family card number (Nomor Kartu Keluarga).
Response
Dukcapil data verified successfully

