> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API Estimasi Usia: Verifikasi Usia dengan Swafoto

> Verifikasi usia dari swafoto dengan analisis wajah AI Didit. $0.10/panggilan, MAE 1.1 tahun di usia 16-17, opsi fallback verifikasi ID.

Didit Estimasi Usia memprediksi usia seseorang dari swafoto, dilengkapi deteksi liveness pasif, sehingga Anda dapat membatasi layanan berdasarkan usia tanpa meminta dokumen identitas dari setiap pengguna. Model ini paling presisi pada rentang usia yang menjadi penentu akses: galat absolut rata-ratanya adalah 1.1 tahun untuk usia 16 dan 17 tahun dan 1.9 tahun untuk usia 18 hingga 20 tahun, serta mengklasifikasikan 96% swafoto secara tepat ke dalam kategori di bawah 18 tahun atau 18 tahun ke atas (lihat [Performa model](#performa-dan-statistik-model)).

Prompt Integrasi Estimasi Usia
        Salin prompt ke papan klip



      
      

\<pre>

\````# Goal
Integrate Didit Age Estimation (selfie-based age gating, includes passive liveness) into your app. Pick ONE mode.

\# Mode A — Session-based (embedded in Liveness)
In hosted Didit flows, age estimation is **embedded inside the Liveness step** — there is no separate "age_estimation" workflow feature. Enable age estimation on the Liveness node in the Business Console.

1\. Configure the workflow's LIVENESS feature with age estimation enabled and set age_estimation_decline_threshold (default 18).
2\. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
3\. Open session.url for the user (or mount the Web/Mobile SDK).
4\. Fetch the decision — GET /v3/session/{sessionId}/decision/.

Decision surface: the result lives at `liveness_checks[].age_estimation` on each Liveness entry (not in a top-level age_estimations[] array).

\# Mode B — Standalone API (server-to-server, age + liveness in one call)
Use when you already have a selfie and need a one-shot age gate.

POST https://verification.didit.me/v3/age-estimation/
multipart/form-data — x-api-key: YOUR_API_KEY

curl example:
\```bash
curl -X POST 'https://verification.didit.me/v3/age-estimation/' \
-H 'x-api-key: YOUR_API_KEY' \
-F 'user_image=@./selfie.jpg' \
-F 'age_estimation_decline_threshold=18' \
-F 'save_api_request=true' \
-F 'vendor_data=user-1234'
\```
Returns: { request_id, age_estimation: { status, method: "PASSIVE", age_estimation (float, years), score (passive-liveness 0-100), user_image: {entities}, warnings: [...] } }.

Required: `user_image` (jpg/jpeg/png/tiff/webp, max 5 MB; PDFs not accepted). The largest face wins when multiple are present.

\# Decision logic
status="Declined" when ANY of the following is true:
\- passive-liveness score ≤ face_liveness_score_decline_threshold (default 30)
\- predicted age < age_estimation_decline_threshold (default 18)
\- no face detected
\- liveness model flagged a presentation attack

\# Status enum
"Not Started" | "In Progress" | "Approved" | "In Review" | "Declined" | "Abandoned" | "Kyc Expired"

\# Warnings
warnings[] risk codes include:
AGE_BELOW_MINIMUM, AGE_NOT_DETECTED, LOW_LIVENESS_SCORE, NO_FACE_DETECTED, LIVENESS_FACE_ATTACK, MULTIPLE_FACES_DETECTED.
Full catalogue: /core-technology/age-estimation/warnings-age-estimation.

\# Failure modes to handle
\- HTTP 400 — missing or oversized user_image, unsupported extension.
\- HTTP 403 — out of credits.
\- status="Declined" with AGE_BELOW_MINIMUM — user is below the configured age; reject.
\- status="Declined" with LOW_LIVENESS_SCORE / LIVENESS_FACE_ATTACK — presentation attack suspected; reject.
\- AGE_NOT_DETECTED — the model could not extract age (poor image quality); request a retake.

\# See also
\- Canonical schema: /reference/data-models#age-estimation
\- Per-feature report: /core-technology/age-estimation/report-age-estimation
\- Risk catalogue: /core-technology/age-estimation/warnings-age-estimation
\- Full integration playbook: /integration/integration-prompt````

\</pre>



      
      

Tempel ke

## Metode Estimasi UsiaPlatform kami menerapkan estimasi usia bersamaan dengan berbagai teknologi Deteksi Liveness:<table>
  <thead>
    <tr>
      <th>Metode</th>
      <th>Deskripsi</th>
      <th>Tingkat Keamanan</th>
      <th>Terbaik Untuk</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>**`3D Action & Flash`**</td>

      <td>
        • Menggabungkan verifikasi biometrik multifaktor dengan **urutan tindakan acak** dan **analisis pola cahaya dinamis**.\

        • Pada awalnya, pengguna diminta untuk melakukan tindakan sederhana—seperti **berkedip** atau **mengangguk**—memastikan interaksi waktu nyata.\

        • Secara bersamaan, sistem memproyeksikan urutan pola cahaya ke wajah, menganalisis **pantulan** untuk mengonfirmasi struktur tiga dimensi wajah.\

        • **Algoritma pembelajaran mendalam** memeriksa ekspresi mikro dan respons pantulan cahaya untuk memverifikasi keberadaan orang yang hidup.\

        • Menawarkan **keamanan tertinggi** dengan mengintegrasikan petunjuk perilaku (tindakan) dan fisik (kedalaman berbasis cahaya), sehingga hampir mustahil untuk dipalsukan dengan gambar statis, video, atau bahkan topeng canggih.
      </td>

      <td>Tertinggi</td>
      <td>Perbankan, layanan kesehatan, aplikasi pemerintah</td>
    </tr>

    <tr>
      <td>**`3D Flash`**</td>

      <td>
        • Menggunakan **analisis pola cahaya dinamis** untuk memvalidasi topologi wajah tanpa memerlukan interaksi pengguna.\

        • Memproyeksikan serangkaian pola cahaya ke wajah dengan kecepatan lebih dari **30 bingkai per detik**, menganalisis pantulan untuk membuat **peta kedalaman**.\

        • Peta kedalaman ini mengonfirmasi struktur tiga dimensi wajah, membedakannya dari gambar datar atau spoof 2D.\

        • Memberikan **pengalaman yang mulus** sambil mempertahankan **keamanan tinggi** terhadap serangan presentasi seperti foto atau layar.\

      </td>

      <td>Tinggi</td>
      <td>Layanan keuangan, akses akun, verifikasi identitas</td>
    </tr>

    <tr>
      <td>**`Passive Liveness`**</td>

      <td>
        • Mengandalkan **analisis pembelajaran mendalam bingkai tunggal** untuk mendeteksi tanda-tanda kehidupan.\

        • Demi privasi, wajah pengguna tampak buram di antarmuka, meyakinkan mereka bahwa gambar mereka dianalisis hanya untuk estimasi usia, bukan untuk identifikasi.\

        • Memeriksa gambar untuk menemukan **artefak**, **pola tekstur**, dan indikator halus lainnya yang membedakan wajah asli dari pemalsuan.\

        • **Jaringan saraf konvolusional (CNN)** memvalidasi fitur wajah dan mengidentifikasi anomali, seperti yang berasal dari foto cetak atau layar digital.\

        • Menawarkan verifikasi yang **cepat dan praktis** namun memberikan **keamanan standar**, cocok untuk kasus penggunaan berisiko rendah.\

      </td>

      <td>Standar</td>
      <td>Skenario dengan friksi rendah, aplikasi konsumen</td>
    </tr>
  </tbody>
</table>Setiap metode menghasilkan estimasi usia yang akurat beserta skor keyakinan dan data estimasi jenis kelamin pelengkap.### Ambang Batas yang Dapat DikonfigurasiAnda dapat menyesuaikan tingkat keamanan dengan mengatur ambang batas yang berbeda untuk estimasi usia. Sebagai contoh:![Konfigurasi ambang batas estimasi usia Didit untuk kebijakan pembatasan usia](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/age-estimation-thresholds.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=11ffd7baa63b7193970c6b67386279f8)> [!NOTE]
>
> Ambang batas ini dapat disesuaikan berdasarkan toleransi risiko dan persyaratan keamanan Anda.### Pembatasan Usia Per NegaraPembatasan usia dapat dikonfigurasi berdasarkan **per negara**, mencerminkan fakta bahwa usia dewasa menurut hukum berbeda-beda di setiap yurisdiksi. Alih-alih menetapkan satu usia minimum atau maksimum global, Anda dapat menentukan batas usia khusus untuk setiap negara -- dan bahkan untuk masing-masing negara bagian atau wilayah di dalam suatu negara.#### Cara Kerjanya- **Konfigurasi tingkat negara**: Tetapkan usia minimum dan/atau maksimum untuk setiap negara (diidentifikasi berdasarkan wilayah penerbit dokumen). Misalnya, Anda mungkin mewajibkan usia minimum 18 tahun di Amerika Serikat, 19 tahun di Korea Selatan, dan 21 tahun di Uni Emirat Arab.
- **Pengesampingan untuk negara bagian/wilayah**: Untuk negara-negara dengan variasi subnasional (seperti Amerika Serikat atau Meksiko), Anda dapat mengonfigurasi pengesampingan untuk setiap negara bagian. Misalnya, Mississippi mungkin mewajibkan usia minimum 21 tahun sementara default AS adalah 18 tahun. Sistem mencocokkan negara bagian menggunakan wilayah yang diekstrak dari dokumen melalui OCR.
- **Default usia dewasa menurut hukum**: Konsol menyediakan tombol satu klik "Terapkan usia dewasa menurut hukum" yang secara otomatis mengisi usia minimum setiap negara berdasarkan usia dewasa menurut hukum yang berlaku di seluruh dunia. Anda kemudian dapat menyesuaikan masing-masing negara atau negara bagian sesuai kebutuhan.
- **Tindakan yang dapat dikonfigurasi**: Saat usia pengguna berada di bawah batas minimum atau melebihi batas maksimum untuk negara penerbit dokumen mereka, Anda dapat memilih tindakan yang akan diambil: **Tolak** atau **Tinjau**.#### Contoh Konfigurasi| Negara | Usia Min | Usia Maks | Pengesampingan Negara Bagian |
| - | - | - | - |
| USA | 18 | -- | Mississippi: 21, Alabama: 19 |
| KOR | 19 | -- | -- |
| GBR | 18 | 65 | -- |
| ARE | 21 | -- | -- |> [!NOTE]
>
> Pembatasan usia per negara tersedia di alur kerja KYC standar maupun alur kerja Adaptive Age Verification. Pada alur kerja adaptif, saat Verifikasi Identitas dipicu untuk kasus yang berada di ambang batas, pemeriksaan usia menggunakan pengaturan per negara yang dikonfigurasi pada langkah Verifikasi Identitas.## Cara kerja**1. Pengambilan Gambar atau Video**Pengguna memberikan gambar wajah yang jelas melalui unggahan API atau menyelesaikan proses verifikasi liveness.| Pemeriksaan | Deskripsi |
| - | - |
| **Kualitas gambar** | Memvalidasi pencahayaan, posisi, dan kejelasan |
| **Verifikasi liveness** | Memastikan subjek hadir secara langsung dan bukan spoofing |
| **Analisis multi-bingkai** | Memilih bingkai optimal untuk akurasi terbaik |
| **Pengambilan adaptif** | Menyesuaikan dengan berbagai kemampuan perangkat |**2. Analisis Fitur Wajah**Detektor menemukan setiap wajah dan setiap orang dalam gambar, dan wajah terbesar dianalisis.- **Potongan wajah**: wajah persis seperti yang terdeteksi, dianalisis untuk morfologi wajah, proporsi, dan tekstur kulit
- **Konteks tubuh**: sisa gambar, dengan wajah ditutupi, menyempurnakan estimasi
- Beberapa wajah dalam satu gambar dideteksi dan dilaporkan, sehingga sesi dapat ditangani sebagaimana mestinya**3. Pemrosesan Jaringan Neural**Dua jaringan neural dalam yang saling melengkapi mengestimasi usia secara independen, dan estimasi akhir adalah rata-ratanya.- Transformer membaca potongan wajah dan tubuh bersama-sama; jaringan konvolusional membaca wajah
- Setiap jaringan menjalankan lima model yang dilatih pada pembagian data yang berbeda dan merata-ratakan estimasinya, yang menstabilkan hasil
- Dilatih dengan usia yang dikonfirmasi oleh dokumen identitas, dengan representasi yang baik untuk remaja, dewasa muda, dan setiap kelompok warna kulit
- Dievaluasi hanya pada swafoto dan orang yang belum pernah dilihat model selama pelatihan**4. Keputusan & Analisis Tambahan**Sistem menghasilkan hasil yang komprehensif:| Output | Deskripsi |
| - | - |
| **Estimasi usia** | Estimasi utama dengan penilaian keyakinan |
| **Estimasi gender** | Konteks demografis tambahan (opsional) |
| **Metrik keyakinan** | Penilaian keandalan secara keseluruhan |
| **Faktor lingkungan** | Penilaian dampak terhadap kualitas estimasi |**5. Penerapan Aturan**Aturan bisnis yang Anda konfigurasikan diterapkan pada hasil estimasi.- Estimasi usia dibandingkan dengan **ambang batas yang dikonfigurasikan** (min/maks per negara)
- Skor keyakinan diperiksa terhadap persyaratan minimum Anda
- **Kasus yang berada di ambang batas** dapat memicu pengalihan ke Verifikasi Identitas (mode Adaptif)
- Hasil didokumentasikan dengan **log audit** terperinci untuk kepatuhan## Estimasi Usia AdaptifUntuk skenario di mana verifikasi usia yang presisi bersifat krusial, platform kami menawarkan estimasi usia adaptif dengan fallback verifikasi identitas. Pendekatan ini memberikan keseimbangan antara kenyamanan pengguna dan kepatuhan terhadap regulasi.### Cara Kerja Estimasi Usia Adaptif**1. Estimasi Usia Awal**Sistem pertama-tama mencoba memperkirakan usia pengguna menggunakan analisis wajah. Skor keyakinan dihasilkan bersamaan dengan estimasi usia.**2. Evaluasi Ambang Batas**Usia yang diperkirakan dibandingkan dengan ambang batas yang Anda konfigurasikan. Tiga kemungkinan hasil:| Hasil | Deskripsi |
| - | - |
| **Jelas Lolos** | Pengguna jelas berada di atas ambang batas usia yang Anda tetapkan |
| **Jelas Gagal** | Pengguna jelas berada di bawah ambang batas usia yang Anda tetapkan |
| **Mendekati Batas** | Usia yang diperkirakan berada dalam rentang yang tidak pasti atau memiliki keyakinan rendah |**3. Fallback Cerdas**- **Jelas lolos/gagal**: Verifikasi langsung selesai dengan hasil yang sesuai
- **Kasus mendekati batas**: Sistem secara otomatis memulai **alur Verifikasi Identitas**
- Ini memastikan kepatuhan regulasi sekaligus meminimalkan friksi bagi sebagian besar pengguna**4. Verifikasi Dokumen (saat dibutuhkan)**Untuk kasus yang mendekati batas, pengguna memberikan dokumen identitas resmi yang diterbitkan pemerintah:- Keaslian dokumen dan informasi usia diverifikasi
- **Batasan usia per negara** dari langkah Verifikasi Identitas diterapkan
- Sistem memeriksa tanggal lahir terhadap usia minimum/maksimum untuk negara dan wilayah penerbit dokumen
- Potret dokumen **dicocokkan 1:1 dengan swafoto yang sudah diambil untuk estimasi usia**, sehingga tanggal lahir pada dokumen terikat dengan orang yang berada di depan kamera### Yang dikembalikan oleh fallbackPencocokan wajah fallback berjalan tanpa node Pencocokan Wajah dalam alur kerja, sehingga muncul dalam keputusan sesi dengan cara yang mudah disalahartikan sebagai pemeriksaan yang tidak pernah Anda konfigurasikan:- `features` mencantumkan `FACE_MATCH` selain `AGE_ESTIMATION` dan `ID_VERIFICATION` setelah fallback dijalankan.
- `face_matches[]` memuat satu entri dengan `score`, `source_image` (potret dokumen), dan `target_image` (swafoto estimasi usia). `node_id`-nya adalah **node estimasi usia** (`feature_age_estimation` pada alur kerja bawaan) karena pencocokan tersebut termasuk dalam langkah tersebut, bukan langkah Pencocokan Wajah.
- Skor yang rendah memicu [peringatan pencocokan wajah](https://docs.didit.me/id/core-technology/face-match/warnings-face-match.md) seperti biasa dan dapat mengarahkan sesi ke peninjauan atau penolakan, persis seperti yang dilakukan oleh node Pencocokan Wajah yang dikonfigurasi.
- Ini **tidak ditagih** sebagai Pencocokan Wajah: sesi hanya dikenakan biaya untuk estimasi usia dan untuk Verifikasi Identitas.Sesi yang lolos atau gagal hanya berdasarkan swafoto tidak pernah menjalankan fallback, sehingga mengembalikan `face_matches: null`. Untuk mencegah gambar masuk ke payload keputusan, batasi kolom `face_matches` menggunakan [atribut respons](https://docs.didit.me/id/sessions-api/retrieve-session.md) alur kerja.> [!NOTE]
>
> Estimasi usia adaptif dapat dikonfigurasi menggunakan tipe alur kerja [Adaptive Age Verification](https://docs.didit.me/id/console/workflows.md). Anda dapat menentukan ambang batas usia untuk kategori mendekati batas yang menentukan kapan Verifikasi Identitas dipicu. Persetujuan atau penolakan akhir berdasarkan usia untuk kasus mendekati batas kemudian diatur oleh batasan usia per negara yang dikonfigurasi dalam langkah Verifikasi Identitas.### Manfaat Estimasi Usia Adaptif- **Friksi Berkurang**: Sebagian besar pengguna menyelesaikan verifikasi hanya dengan swafoto
- **Kepatuhan Ditingkatkan**: Kasus yang tidak pasti mendapatkan verifikasi dokumen menyeluruh dengan aturan usia spesifik per negara
- **Efisiensi Biaya**: Verifikasi Identitas hanya digunakan jika diperlukan
- **Toleransi Risiko yang Dapat Disesuaikan**: Sesuaikan ambang batas berdasarkan persyaratan regulasi Anda
- **Memperhatikan Yurisdiksi**: Menerapkan usia dewasa yang benar secara otomatis berdasarkan negara dan wilayah penerbit dokumen penggunaPendekatan ini sangat berharga untuk layanan dengan batasan usia seperti game online, pengiriman alkohol, dan platform konten dewasa, di mana menyeimbangkan pengalaman pengguna dengan kepatuhan regulasi sangatlah penting.## Jaminan usia (ISO/IEC 27566-1)Alur kerja dapat menyatakan bahwa alur kerja tersebut mengikuti standar jaminan usia ISO/IEC 27566-1.
Buat alur kerja dari templat konsol **Estimasi Usia (ISO/IEC 27566-1)** atau **Verifikasi Usia (ISO/IEC 27566-1)**.
Pernyataan ini dibuat saat alur kerja dibuat dan tidak dapat diubah setelahnya.Selama alur kerja menyatakan standar tersebut, Didit menguncinya pada jawaban ya atau tidak satu kali terkait usia.
Pengaturan yang terkunci berlaku untuk setiap penyimpanan, baik di konsol maupun melalui API:- **Anda menerima keputusan usia dan tidak ada hal lain.** Atribut respons dikunci, sehingga keputusan tidak membawa data pribadi.
- **13 adalah batas usia minimum terendah** di setiap negara, dalam setiap penimpaan regional, dan dalam ambang batas estimasi usia adaptif. Nilai yang lebih rendah akan ditolak.
- **Tidak ada pengenalan lintas sesi.** Pemeriksaan dokumen duplikat dan wajah duplikat dinonaktifkan, dan tidak ada templat biometrik yang disimpan.
- **Pengambilan terbatas.** Dokumen hanya diambil menggunakan kamera, tanpa pengunggahan berkas, tanpa pengambilan swafoto tersembunyi saat dokumen difoto, dan tanpa perekaman audio.
- **Tidak ada pemeriksaan data tambahan.** Perbandingan detail yang diharapkan dan langkah peninjauan data dinonaktifkan, dan Verifikasi Identitas hanya membaca dokumen, tanpa pencarian database atau dompet ID digital.
- **Ambang batas wajib diisi.** Alur kerja tanpa ambang batas usia ditolak saat disimpan, sehingga tidak akan pernah menyetujui semua orang secara default.## Performa dan Statistik ModelAngka-angka di bawah ini menjelaskan model usia di lingkungan produksi sejak 4 November 2026.
Angka-angka tersebut berasal dari set evaluasi terkunci miliknya: 2,399 swafoto dari orang-orang berusia 13 tahun ke atas, yang disisihkan sebelum pelatihan, dengan usia setiap orang diambil dari dokumen identitas terverifikasi mereka.
Tidak ada model yang dilatih menggunakan swafoto ini atau berdasarkan orang-orang ini.
Angka keseluruhan berlaku untuk campuran evaluasi sebesar 10% berusia di bawah 18 tahun, dengan distribusi usia orang dewasa yang sama seperti pada lalu lintas langsung; masing-masing rentang usia dilaporkan tersendiri di bawah ini.### Metrik Akurasi<table>
  <thead>
    <tr>
      <th>Metrik</th>
      <th>Nilai</th>
      <th>Deskripsi</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>**Kesalahan Absolut Rata-rata (MAE)**</td>
      <td>2.6 tahun</td>
      <td>Perbedaan rata-rata antara usia perkiraan dan usia yang tercantum pada dokumen</td>
    </tr>

    <tr>
      <td>**Standar Deviasi**</td>
      <td>2.3 tahun</td>
      <td>Seberapa besar variasi kesalahan dari satu estimasi ke estimasi lainnya</td>
    </tr>

    <tr>
      <td>**Benar pada ambang batas 18 tahun**</td>
      <td>96.0%</td>
      <td>Swafoto yang diklasifikasikan dengan benar sebagai di bawah 18 tahun atau 18 tahun ke atas, tanpa rentang cadangan; setidaknya 95.3% dengan tingkat keyakinan 95%</td>
    </tr>
  </tbody>
</table>### Performa di Berbagai Rentang UsiaKesalahan paling kecil terjadi di sekitar usia yang menjadi dasar keputusan pembatasan usia, dan meningkat seiring bertambahnya usia.<table>
  <thead>
    <tr>
      <th>Rentang usia</th>
      <th>MAE (tahun)</th>
      <th>Standar deviasi (tahun)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>13-15</td>
      <td>1.70</td>
      <td>1.17</td>
    </tr>

    <tr>
      <td>16-17</td>
      <td>1.14</td>
      <td>1.37</td>
    </tr>

    <tr>
      <td>18-20</td>
      <td>1.86</td>
      <td>1.74</td>
    </tr>

    <tr>
      <td>21-25</td>
      <td>2.21</td>
      <td>1.78</td>
    </tr>

    <tr>
      <td>26-40</td>
      <td>2.77</td>
      <td>2.20</td>
    </tr>

    <tr>
      <td>41-60</td>
      <td>3.03</td>
      <td>2.62</td>
    </tr>

    <tr>
      <td>Di atas 60</td>
      <td>4.33</td>
      <td>3.64</td>
    </tr>
  </tbody>
</table>> [!NOTE]
>
> Standar deviasi menggambarkan seberapa besar variasi kesalahan dari masing-masing perkiraan individu, bukan ketidakpastian nilai rata-rata.
> Perkiraan dalam rentang satu atau dua tahun dari usia minimum Anda dapat berada di salah satu sisi batas: ketika keputusan yang salah di dekat ambang batas sangat berpengaruh, kirim rentang yang berada di sekitar ambang batas tersebut ke [Verifikasi Identitas adaptif sebagai langkah cadangan](#estimasi-usia-adaptif).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.