Ringkasan Utama
Dukcapil tidak bisa diakses tanpa perjanjian. Permendagri 102/2019 yang diubah pada 2023 hanya memberi akses setelah nota kesepahaman dan perjanjian kerja sama, sehingga fintech tanpa perjanjian memverifikasi NIK lewat penyedia yang memilikinya. Badan hukum mayoritas asing hanya mendapat hasil sesuai atau tidak sesuai. Biometrik adalah data pribadi spesifik menurut UU PDP, sehingga wajib persetujuan eksplisit dan penyimpanan ketat.
Di sebuah proyek baru-baru ini saya membangun alur onboarding untuk aplikasi pinjaman di Indonesia, dan syarat yang paling sering disalahpahami adalah verifikasi identitas. Banyak founder mengira ada endpoint Dukcapil publik yang tinggal Anda kirimi NIK. Tidak ada. Dukcapil (Direktorat Jenderal Kependudukan dan Pencatatan Sipil) mengelola registri kependudukan nasional di balik e-KTP, dan hanya memberikan akses data kependudukan kepada lembaga yang menandatangani perjanjian dengannya. Aplikasi yang belum punya perjanjian sendiri terhubung lewat penyedia resmi yang sudah memilikinya.
Artikel ini membahas arsitektur dan kepatuhan alur tersebut, bukan scraping. Jika ada yang menawarkan cara melakukan lookup NIK secara massal, tinggalkan saja: itu ilegal, melanggar UU PDP, dan bisa membuat izin Anda dicabut. Jalur yang sah memang terkesan membosankan, dapat diaudit, dan justru itulah yang ingin dilihat OJK.
Cara kerja verifikasi Dukcapil yang sebenarnya
Dukcapil tidak menyediakan layanan lookup terbuka, dan seberapa banyak data yang dikembalikan bergantung pada siapa yang bertanya. Permendagri 102/2019 yang diubah dengan Permendagri 17/2023 membatasi badan hukum Indonesia dengan kepemilikan mayoritas asing pada jawaban sesuai atau tidak sesuai saja (Pasal 29 ayat 4). Bagi pengguna lain, data yang diakses lewat web service hanya boleh disimpan setelah persetujuan pemilik data diverifikasi dengan NIK dan biometrik (Pasal 30 ayat 1). Tingkatan akses yang akan Anda temui di lapangan adalah:
- Verifikasi data — Anda mengirim NIK plus field demografis (nama, tanggal lahir) dan menerima true/false per field. Ini adalah pengecekan inti.
- Verifikasi wajah — Anda mengirim selfie langsung dan pencocokan wajah di sisi Dukcapil membandingkannya dengan foto referensi yang tersimpan untuk NIK tersebut, mengembalikan skor kemiripan.
- Akses perjanjian langsung — badan hukum Indonesia mengajukan permohonan kepada Dirjen Dukcapil, menandatangani nota kesepahaman lalu perjanjian kerja sama, dan terhubung lewat jaringan tertutup yang disediakannya sendiri. Bank, pelaku pasar modal seperti KSEI, dan perusahaan pengiriman uang sudah menempuh jalur ini.
- Lewat penyedia e-KYC — aplikasi yang belum punya perjanjian sendiri memanggil penyedia yang sudah memilikinya. Permendagri 17/2023 menghapus ketentuan Platform Bersama sejak 30 Oktober 2023, sehingga regulasinya tidak lagi mengenal tingkatan perantara tersendiri: apa yang boleh dilakukan penyedia untuk Anda bergantung pada perjanjiannya sendiri dengan Dukcapil.
Sejak Permendagri 17/2023, setiap pengguna data kependudukan wajib menerapkan standar keamanan dengan prioritas Standar Nasional Indonesia (SNI) bidang keamanan informasi atau keamanan siber, dibuktikan dengan kepemilikan sertifikat standar keamanan (Pasal 18A), dan para pihak dalam perjanjian kerja sama dilarang memberikan data kependudukan kepada pihak ketiga atau menggunakannya di luar perjanjian (Pasal 7 huruf k). Penyedia mana pun yang mengaku bisa menjual lookup NIK-ke-profil-lengkap berarti berbohong atau melanggar hukum. Pilih penyedia yang mempublikasikan status kerja sama data dan sertifikasi keamanannya.
Alur verifikasi ujung ke ujung
Onboarding e-KYC produksi untuk aplikasi Indonesia biasanya merangkai lima langkah. Penyedia seperti Verihubs, Privy, dan lainnya menyediakan tiap langkah sebagai panggilan API, dan satu proses penuh umumnya selesai di bawah 30 detik.
- OCR KTP — pengguna memotret e-KTP, OCR mengekstrak NIK, nama, dan tanggal lahir. Jangan pernah percaya OCR saja; ia hanya mengisi awal field yang akan Anda verifikasi.
- Verifikasi demografi ke Dukcapil — kirim NIK plus field yang diekstrak; dapatkan hasil kecocokan per field.
- Ambil selfie liveness — SDK menjalankan liveness aktif atau pasif untuk menolak foto cetak, layar, dan deepfake.
- Cocokkan selfie dengan foto referensi Dukcapil — Anda menerima skor kemiripan, bukan gambar referensinya.
- Putuskan — setujui, tolak, atau arahkan ke tinjauan manual berdasarkan ambang batas Anda, lalu tulis catatan audit.
// POST /v1/identity/verify (via authorized e-KYC provider)
// Request — you only ever send data the user gave you
{
"nik": "3174xxxxxxxxxxxx",
"name": "BUDI SANTOSO",
"birth_date": "1994-03-12",
"selfie_image": "<base64 jpeg>",
"consent_id": "cns_01HXQ..." // proof of user consent, see UU PDP section
}
// Response — match-only, no raw Dukcapil record is returned
{
"nik_valid": true,
"name_match": true,
"birth_date_match": true,
"face_match_score": 0.972, // 0..1 similarity
"liveness_passed": true,
"decision": "approved",
"reference_id": "vrf_01HXQ...", // store THIS, not the biometrics
"verified_at": "2026-07-11T04:12:55Z"
}Face-match dan liveness: setel ambang batasnya
Skor face-match adalah probabilitas, bukan ya/tidak. Tetapkan dua ambang: batas bawah auto-approve dan pita tinjauan manual di bawahnya. Satu batas keras saja akan meloloskan penipuan atau menolak pengguna sah yang pencahayaan selfienya berbeda dari foto KTP bertahun-tahun lalu. Liveness adalah gerbang terpisah yang tidak bisa ditawar — face-match tinggi pada foto palsu tak berarti apa-apa, jadi liveness harus lolos sebelum skor kecocokan dipertimbangkan.
Mulailah konservatif: auto-approve hanya di atas skor kemiripan tinggi, kirim pita tengah ke tinjauan manual, dan tolak keras sisanya. Catat setiap keputusan beserta skornya agar Anda bisa menggeser ambang batas nanti berdasarkan data nyata, bukan tebakan. Pemeriksa OJK menyukai jejak audit itu.
Mengelola data sensitif menurut UU PDP
UU No. 27 Tahun 2022 (UU PDP) sudah berlaku penuh sejak Oktober 2024. Undang-undang ini mengklasifikasikan data biometrik sebagai data pribadi spesifik yang menuntut pelindungan lebih ketat dan, yang penting, persetujuan eksplisit dan terpisah — bukan checkbox yang terselip di syarat umum Anda. NIK juga merupakan data pribadi. Kewajiban praktis yang membentuk arsitektur Anda adalah:
- Persetujuan eksplisit — catat apa yang disetujui pengguna, kapan, dan untuk tujuan apa, sebelum Anda mengirim apa pun ke penyedia.
- Pembatasan tujuan — Anda hanya boleh memakai data untuk tujuan KYC yang disetujui pengguna, bukan untuk pemasaran atau dijual kembali.
- Minimalisasi data — simpan hasil verifikasi dan reference ID, bukan selfie mentah atau NIK dalam bentuk teks biasa jika bisa dihindari.
- Retensi dan penghapusan — tentukan berapa lama Anda menyimpan data identitas dan hormati hak subjek data untuk penghapusan.
- Penanganan kebocoran — Anda wajib memberi tahu subjek yang terdampak dan otoritas jika terjadi kebocoran data pribadi.
// Persist the CONSENT before the verify call, keep it immutable
CREATE TABLE kyc_consent (
id TEXT PRIMARY KEY, -- consent_id sent to provider
user_id TEXT NOT NULL,
purpose TEXT NOT NULL, -- 'identity_verification'
scope TEXT[] NOT NULL, -- ['nik','biometric_face']
policy_version TEXT NOT NULL,
granted_at TIMESTAMPTZ NOT NULL,
ip_address INET,
revoked_at TIMESTAMPTZ
);
// After verification: store the RESULT, discard the biometrics
CREATE TABLE kyc_result (
id TEXT PRIMARY KEY, -- your reference_id
user_id TEXT NOT NULL,
nik_hash TEXT NOT NULL, -- HMAC-SHA256(nik, pepper), never plaintext
decision TEXT NOT NULL, -- approved | review | declined
face_score NUMERIC(4,3),
liveness BOOLEAN,
provider_ref TEXT,
verified_at TIMESTAMPTZ NOT NULL
);
// selfie bytes: process in memory, do NOT write to disk / object storageDua aturan rekayasa muncul dari sini. Pertama, hash NIK dengan HMAC berkunci dan pepper di sisi server agar Anda tetap bisa mendeduplikasi pengguna tanpa menyimpan angka mentahnya. Kedua, perlakukan selfie mentah seperti bahan radioaktif: alirkan ke penyedia, tahan di memori, dan jangan pernah biarkan menyentuh log, object storage, atau trace APM Anda. Simpan hanya skor dan keputusannya.
Sanksinya nyata. UU PDP memungkinkan denda administratif hingga 2% dari pendapatan tahunan perusahaan. Ketentuan pidananya mencapai 4 tahun penjara dan denda Rp4 miliar karena secara melawan hukum mengungkapkan data pribadi milik orang lain, serta 5 tahun dan Rp5 miliar karena secara melawan hukum memperoleh, mengumpulkan, atau menggunakannya (Pasal 67), dan di situlah menjual data identitas secara ilegal berada; ancaman maksimal 6 tahun dan Rp6 miliar berlaku untuk membuat data pribadi palsu atau memalsukannya (Pasal 68). Korporasi dapat didenda hingga sepuluh kali ancaman maksimal itu (Pasal 70). Menyimpan biometrik mentah atau NIK di log teks biasa persis jenis paparan yang mengubah kebocoran menjadi denda.
Memilih penyedia
Anda sebenarnya memilih mitra kepatuhan, bukan sekadar API. Pertanyaan yang tepat menyangkut kedudukan hukum dan penanganan data, bukan hanya uptime. Bandingkan kandidat pada sumbu berikut:
| Yang diperiksa | Mengapa penting |
|---|---|
| Status kerja sama data Dukcapil | Memastikan penyedia resmi, bukan scraping. |
| Registrasi OJK / Bank Indonesia | Wajib untuk produk keuangan yang diatur. |
| Liveness + face-match tergabung | Menghindari menjahit dua vendor dan dua alur data. |
| Model harga per verifikasi | Biaya unit yang terprediksi saat onboarding tumbuh. |
| Ketentuan residensi dan retensi data | Menentukan paparan UU PDP Anda ke hilir. |
| Ekspor log audit | Diperlukan untuk memenuhi pemeriksaan OJK. |
Harga biasanya per verifikasi berhasil. Sebagai acuan, satu penyedia (Didit) mencantumkan sekitar USD 0,30 per verifikasi dengan kuota gratis bulanan; pemain lama bisa beberapa kali lipat. Anggap angka publik mana pun sebagai titik awal dan konfirmasikan tarif serta tier volume terkini secara langsung, karena harga dan regulasi fintech Indonesia sama-sama cepat berubah.

