Verifikasi usia sudah bukan lagi sekadar kotak centang, melainkan pekerjaan rekayasa. Di Inggris, Online Safety Act mewajibkan sebagian layanan memakai pemeriksaan usia yang "sangat efektif". Di Uni Eropa, Komisi Eropa telah menerbitkan cetak biru untuk membuktikan bahwa seseorang berusia di atas 18 tahun tanpa menyerahkan data lain. Keduanya menyebut dokumen identitas sebagai salah satu jalannya.
Tulisan ini untuk developer yang diminta "menambahkan verifikasi usia" dan ingin tahu di mana pemindaian dokumen identitas berperan. Isinya: metode apa saja yang dicantumkan otoritas Inggris dan UE, apa yang dibuktikan dan tidak dibuktikan oleh pemindaian paspor atau kartu identitas, cara mengubah tanggal lahir menjadi jawaban di atas atau di bawah batas usia, dan apa yang perlu disimpan sesudahnya. Setiap kutipan di bawah berasal dari halaman otoritas itu sendiri, dengan tautan di tempat kutipan muncul; aslinya berbahasa Inggris dan terjemahannya dari kami.
Ini adalah blog doc.cheap, sebuah API OCR untuk paspor dan kartu identitas. Baca bagian tentang produk dengan mengingat hal itu.
Inggris: standarnya adalah "sangat efektif"
Kewajibannya ada di pasal 12 Online Safety Act 2023. Untuk jenis konten yang paling berbahaya, penyedia layanan harus "menggunakan verifikasi usia atau estimasi usia (atau keduanya) untuk mencegah anak-anak dari segala usia menjumpai konten prioritas utama yang berbahaya bagi anak-anak". Dan pemeriksaannya harus "dari jenis tertentu, dan digunakan dengan cara tertentu, sehingga sangat efektif dalam menentukan dengan benar apakah seorang pengguna tertentu adalah anak-anak atau bukan".
Pasal 230 mendefinisikan kedua istilah itu. Verifikasi usia "berarti setiap tindakan yang dirancang untuk memverifikasi usia pasti pengguna" dari layanan yang tercakup. Estimasi usia "berarti setiap tindakan yang dirancang untuk memperkirakan usia atau rentang usia pengguna". Pasal ini juga menutup jalan pintas termudah: "Tindakan yang mengharuskan pengguna menyatakan sendiri usianya (tanpa hal lain) tidak dianggap sebagai verifikasi usia atau estimasi usia."
Ofcom, lembaga pengawas komunikasi Inggris, menjelaskan standar itu dalam panduannya tentang jaminan usia yang sangat efektif untuk layanan Bagian 3 (versi terbarunya bertanggal 24 April 2025). Bagian 3 panduan itu memuat "daftar yang tidak lengkap" berisi metode yang dianggapnya mampu menjadi sangat efektif:
| Metode dalam daftar Ofcom | Di mana dokumen identitas berperan |
|---|---|
| Open banking | Tidak |
| Pencocokan dokumen identitas berfoto | Ya, dokumen adalah buktinya |
| Estimasi usia dari wajah | Tidak |
| Pemeriksaan usia oleh operator seluler | Tidak |
| Pemeriksaan kartu kredit | Tidak |
| Estimasi usia berbasis email | Tidak |
| Layanan identitas digital | Sering, pada saat identitas pertama kali diverifikasi |
Ofcom menggambarkan pencocokan dokumen berfoto seperti ini: metode ini "bekerja dengan mengambil informasi yang relevan dari dokumen identitas berfoto yang diunggah dan membandingkannya dengan gambar pengguna pada saat dokumen diunggah, untuk memverifikasi bahwa keduanya adalah orang yang sama".
Bagian yang sama mencantumkan apa yang tidak memenuhi syarat, termasuk "meminta pengguna memasukkan tanggal lahirnya tanpa bukti lebih lanjut untuk mengonfirmasi informasi tersebut". Tanggal lahir yang diketik adalah pernyataan diri. Tanggal lahir yang dibaca dari dokumen adalah bukti, dan sisa panduan Ofcom membahas seberapa baik bukti itu harus ada.
Uni Eropa: cetak biru berbasis bukti usia
Di sisi UE, Komisi merilis versi pertama cetak biru verifikasi usia pada 14 Juli 2025. Menurut Komisi, cetak biru ini "menyediakan metode yang memungkinkan pengguna membuktikan bahwa mereka berusia di atas 18 tahun saat mengakses konten dewasa yang dibatasi, seperti pornografi daring, tanpa mengungkapkan informasi pribadi lainnya".
Rancangannya memisahkan pemeriksaan dari penggunaan. "Usia pengguna akan diverifikasi oleh penerbit dengan menggunakan data pribadi yang terperinci, seperti tanggal lahir. Namun, layanan daring hanya akan menerima bukti bahwa pengguna berusia di atas 18 tahun, tanpa data pribadi lainnya."
Dokumen identitas masuk pada langkah pertama. Halaman fakta Komisi tentang cetak biru ini menyebut sumber bukti usia sebagai "eID nasional, paspor dan kartu identitas, aplikasi bawaan yang memuat informasi usia, seperti aplikasi perbankan, atau aktivasi luring oleh pihak ketiga, seperti kantor pos". Halaman itu menambahkan bahwa "pada Oktober 2025, versi kedua cetak biru dirilis dengan metode paspor dan kartu identitas untuk menghasilkan bukti usia".
Jadi di kedua tempat, dokumen adalah masukan yang diterima. Di keduanya pula, foto dokumen saja bukanlah keseluruhan pemeriksaan.
Apa yang dibuktikan pemindaian, dan apa yang tidak
Pemindaian dokumen menjawab satu pertanyaan dengan baik: apa isi dokumen ini? Pemindaian membaca tanggal lahir, tanggal kedaluwarsa, jenis dokumen, dan zona baca mesin (MRZ), lalu bisa memberi tahu apakah digit pemeriksa di zona itu cocok. Itulah bagian "mengambil informasi yang relevan" dalam uraian Ofcom.
Pemindaian tidak menjawab pertanyaan lain yang harus dicakup pemeriksaan usia:
- Apakah orang ini pemegang dokumennya? Bagian Ofcom tentang ketangguhan menyebut celah yang jelas: "pengguna anak mengunggah gambar dokumen identitas yang bukan miliknya". Jawabannya: "Mewajibkan foto pengguna pada saat dokumen diunggah dalam pencocokan dokumen berfoto membantu memverifikasi bahwa dokumen berfoto itu milik pengguna tersebut."
- Apakah orangnya benar-benar hadir? "Deteksi keaktifan (liveness) memberi keyakinan lebih bahwa pengguna anak tidak mengunggah foto orang dewasa, dengan memastikan bahwa pengguna yang menjalani proses jaminan usia hadir pada saat pemeriksaan dilakukan."
- Apakah dokumennya asli? "Pemeriksaan dokumen berfoto yang tangguh tidak boleh mudah diakali, sehingga metode dokumen berfoto harus mampu mendeteksi dokumen palsu atau manipulasi yang dapat dibuat atau diperoleh seorang anak."
Tidak satu pun dari ini adalah OCR. Membaca dokumen dan memverifikasinya adalah dua pekerjaan berbeda, dikerjakan alat yang berbeda, dan pemeriksaan usia berbasis dokumen membutuhkan keduanya. Langkah pembacaan memberi Anda data yang dapat dipercaya tentang dokumen; pencocokan wajah, pemeriksaan keaktifan, dan pemeriksaan keaslian memberi tahu apakah dokumen dan orangnya dapat dipercaya.
Dari tanggal lahir ke di atas atau di bawah batas usia
Setelah tanggal lahir terbaca, hitungan usianya sederhana tetapi mudah keliru. Mengurangkan tahun saja tidak cukup: orang yang lahir pada 20 November 2008 berusia 17 tahun pada 10 November 2026, bukan 18. Bandingkan juga bulan dan tanggalnya.
from datetime import date
def age_on(birth_iso: str, on: date) -> int:
"""Whole years completed on the day `on`, from a YYYY-MM-DD date of birth."""
born = date.fromisoformat(birth_iso)
years = on.year - born.year
if (on.month, on.day) < (born.month, born.day):
years -= 1 # ulang tahun tahun ini belum tiba
return years
def is_over(birth_iso: str, threshold: int, on: date) -> bool:
return age_on(birth_iso, on) >= threshold
print(age_on("2008-11-20", date(2026, 11, 10))) # 17
print(is_over("2008-11-20", 18, date(2026, 11, 20))) # True
Beberapa detail penting dalam praktik:
- Gunakan tanggal pemeriksaan, dalam satu zona waktu. "Hari ini" di server dan "hari ini" bagi pengguna bisa berbeda menjelang tengah malam. Pilih satu aturan dan catat tanggal yang Anda pakai.
- 29 Februari. Dengan perbandingan di atas, orang yang lahir pada 29 Februari bertambah usia pada 1 Maret di tahun yang bukan tahun kabisat. Jika yurisdiksi Anda menetapkannya lain, ubah satu cabang itu saja.
- Tanggal yang tidak ada bukanlah jawaban. Jika pemindaian tidak mengembalikan tanggal lahir, hasilnya "tidak dapat diperiksa", tidak pernah "di atas 18".
- Masa berlaku adalah pertanyaan terpisah. Apakah dokumen yang kedaluwarsa dapat diterima sebagai bukti adalah kebijakan Anda, jadi baca tanggal kedaluwarsanya dan putuskan secara eksplisit.
Simpan jawabannya, bukan dokumennya
Rancangan Komisi hanya mengirim ke layanan "bukti bahwa pengguna berusia di atas 18 tahun". Gagasan yang sama berlaku di sistem Anda sendiri: setelah pemeriksaan selesai, hasil yang Anda butuhkan adalah sebuah boolean dan sebuah tanggal, bukan gambar paspor.
Bagian privasi dalam panduan Ofcom menunjuk ke arah yang sama. Panduan itu mengingatkan penyedia bahwa "semua metode jaminan usia melibatkan pemrosesan data pribadi dan harus mengikuti pendekatan perlindungan data sejak perancangan", serta mencantumkan minimalisasi data dan pembatasan penyimpanan di antara prinsip yang harus diikuti.
Catatan minimal terlihat seperti ini:
{
"user_id": "u_3f9c",
"check": "age_over_18",
"result": true,
"checked_on": "2026-11-10",
"method": "photo_id_matching"
}
Tanpa gambar, tanpa nomor dokumen, tanpa tanggal lahir. Jika hukum mewajibkan Anda menyimpan lebih banyak, simpan tepat yang diwajibkan, di satu tempat penyimpanan dengan tanggal penghapusannya sendiri.
Di mana doc.cheap berperan
doc.cheap membaca paspor, kartu identitas, dan SIM, lalu mengembalikan isi cetakannya dalam JSON. Untuk pemeriksaan usia, kolom yang berguna adalah holder.birth_date, berupa tanggal ISO YYYY-MM-DD atau null, ditambah document.expiry_date, document.is_expired, dan mrz.status, sehingga tanggal yang Anda masukkan ke age_on berasal dari pembacaan yang bisa Anda periksa kewajarannya.
Ini layanan pembacaan, bukan layanan verifikasi. Dalam skenario khusus pengenalan, authenticity.overall pada respons bernilai not_checked, dan langkah pencocokan wajah serta pemeriksaan keaktifan tetap menjadi tugas alat yang dibuat untuk itu. Layanan ini juga tidak menyimpan apa pun yang tidak Anda minta: retain_hours: 0 pada kunci live tidak menulis baris apa pun, seperti dijelaskan dalam panduan retensi riwayat. Gambarnya sendiri tidak pernah disimpan.
Untuk mencoba langkah pembacaan sebelum merancang sisanya, mulailah dengan API OCR paspor gratis. Jika Anda sedang memilih penyedia, perbandingan API OCR paspor menyandingkan harga yang dipublikasikan.
Ini adalah ringkasan teknis, bukan nasihat hukum.
Pertanyaan untuk Anda: bagian mana dari pemeriksaan usia Anda yang paling lama dibenahi – pembacaan, pencocokan wajah, atau catatan yang Anda simpan? Ceritakan di kolom komentar di bawah.