curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v2/verification/dukcapil \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"date_of_birth": "15-08-1990",
"gender": "<string>",
"name": "<string>",
"nik": "<string>",
"template_id": "{your_trust_flow_id}",
"verification_id": "{your_created_verification_id}"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v2/verification/dukcapil"
payload = {
"date_of_birth": "15-08-1990",
"gender": "<string>",
"name": "<string>",
"nik": "<string>",
"template_id": "{your_trust_flow_id}",
"verification_id": "{your_created_verification_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({
date_of_birth: '15-08-1990',
gender: '<string>',
name: '<string>',
nik: '<string>',
template_id: '{your_trust_flow_id}',
verification_id: '{your_created_verification_id}'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v2/verification/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/v2/verification/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([
'date_of_birth' => '15-08-1990',
'gender' => '<string>',
'name' => '<string>',
'nik' => '<string>',
'template_id' => '{your_trust_flow_id}',
'verification_id' => '{your_created_verification_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/v2/verification/dukcapil"
payload := strings.NewReader("{\n \"date_of_birth\": \"15-08-1990\",\n \"gender\": \"<string>\",\n \"name\": \"<string>\",\n \"nik\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_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/v2/verification/dukcapil")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"date_of_birth\": \"15-08-1990\",\n \"gender\": \"<string>\",\n \"name\": \"<string>\",\n \"nik\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_id}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{environment-subdomain}.idmetagroup.com/api/v2/verification/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 \"date_of_birth\": \"15-08-1990\",\n \"gender\": \"<string>\",\n \"name\": \"<string>\",\n \"nik\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_id}\"\n}"
response = http.request(request)
puts response.read_body{
"status": "VERIFIED",
"message": "OK",
"result": {
"success": true,
"message": "Berhasil",
"data": {
"nik": true,
"name": true,
"date_of_birth": true,
"selfie_image_percentage": "99.8",
"liveness_result": null,
"liveness_fail_message": "",
"no_kk": null,
"mother_maiden_name": null,
"place_of_birth": true,
"address": true,
"gender": true,
"marital_status": true,
"job_type": true,
"province": true,
"city": true,
"district": true,
"subdistrict": true,
"rt": true,
"rw": true,
"uuid": "76367de2-1b77-4eb7-9bc3-3263b62ebf2f",
"url": "",
"reason_code": "0",
"error_message": null
}
},
"risk_rating": "LOW",
"api_request_status": 1
}Dukcapil Data
Retrieve and verify Indonesian citizen data from Dukcapil government records.
curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v2/verification/dukcapil \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"date_of_birth": "15-08-1990",
"gender": "<string>",
"name": "<string>",
"nik": "<string>",
"template_id": "{your_trust_flow_id}",
"verification_id": "{your_created_verification_id}"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v2/verification/dukcapil"
payload = {
"date_of_birth": "15-08-1990",
"gender": "<string>",
"name": "<string>",
"nik": "<string>",
"template_id": "{your_trust_flow_id}",
"verification_id": "{your_created_verification_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({
date_of_birth: '15-08-1990',
gender: '<string>',
name: '<string>',
nik: '<string>',
template_id: '{your_trust_flow_id}',
verification_id: '{your_created_verification_id}'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v2/verification/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/v2/verification/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([
'date_of_birth' => '15-08-1990',
'gender' => '<string>',
'name' => '<string>',
'nik' => '<string>',
'template_id' => '{your_trust_flow_id}',
'verification_id' => '{your_created_verification_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/v2/verification/dukcapil"
payload := strings.NewReader("{\n \"date_of_birth\": \"15-08-1990\",\n \"gender\": \"<string>\",\n \"name\": \"<string>\",\n \"nik\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_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/v2/verification/dukcapil")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"date_of_birth\": \"15-08-1990\",\n \"gender\": \"<string>\",\n \"name\": \"<string>\",\n \"nik\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_id}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{environment-subdomain}.idmetagroup.com/api/v2/verification/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 \"date_of_birth\": \"15-08-1990\",\n \"gender\": \"<string>\",\n \"name\": \"<string>\",\n \"nik\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_id}\"\n}"
response = http.request(request)
puts response.read_body{
"status": "VERIFIED",
"message": "OK",
"result": {
"success": true,
"message": "Berhasil",
"data": {
"nik": true,
"name": true,
"date_of_birth": true,
"selfie_image_percentage": "99.8",
"liveness_result": null,
"liveness_fail_message": "",
"no_kk": null,
"mother_maiden_name": null,
"place_of_birth": true,
"address": true,
"gender": true,
"marital_status": true,
"job_type": true,
"province": true,
"city": true,
"district": true,
"subdistrict": true,
"rt": true,
"rw": true,
"uuid": "76367de2-1b77-4eb7-9bc3-3263b62ebf2f",
"url": "",
"reason_code": "0",
"error_message": null
}
},
"risk_rating": "LOW",
"api_request_status": 1
}Authorizations
Use Bearer {your_api_token} in the Authorization header.
Body
Date of birth of the individual.
Gender of the individual (for example, Male or Female).
Full name of the individual to be verified.
Indonesian National Identity Number (Nomor Induk Kependudukan).
Identifier used to categorize or group requests for tracking or reporting.
A unique ID used to identify your verification request.
Residential address of the individual.
City of residence.
District or municipality.
Occupation or type of job.
Marital status (for example, Single, Married, Divorced).
Mother's maiden name.
Family card number (Nomor Kartu Keluarga).
Place of birth of the individual.
Province of residence.
Neighborhood unit (Rukun Tetangga).
Community unit (Rukun Warga).
Subdistrict or village.

