> ## 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.

# Kode Hasil Validasi Database: Referensi

> Semua kode hasil Validasi Database Didit: match, no match, deceased, minor, document not found, mismatch biometrik. Mulai $0.05/check.

API [Validasi Database](https://docs.didit.me/id/core-technology/database-validation/overview.md) Didit melakukan kueri terhadap registri sipil resmi untuk setiap negara — RENAPER (Argentina, \$0.20/pemeriksaan dengan pencocokan wajah biometrik), Receita Federal (Brasil, \$0.20), Tribunal Electoral SIB (Panama, \$0.75 biometrik), Junta Central Electoral (Republik Dominika, \$0.05), dan 14 lainnya — ditagihkan per kueri yang berhasil, tanpa minimum bulanan.

Saat Anda menjalankan Validasi Database, Anda mendapatkan dua lapisan hasil:

1. **Kode hasil standar** yang berfungsi dengan cara yang sama di setiap negara yang didukung, sehingga Anda dapat menulis satu logika penanganan yang mencakup semuanya.
2. **Kode detail khusus negara** opsional yang memberi tahu Anda secara tepat kondisi mana yang dikembalikan oleh registri pemerintah — berguna untuk dukungan, analitik, dan memutuskan apakah perlu meminta pengguna untuk mencoba lagi.

Halaman ini mencantumkan setiap nilai yang dapat Anda lihat dan memberi tahu cara merespons masing-masing nilai tersebut.

## Kode hasil standar

Kode-kode ini identik di setiap negara. Bangun logika peninjauan, penolakan, dan percobaan ulang Anda berdasarkan kode-kode ini — bukan berdasarkan kode detail per negara.

| Kode hasil | Arti | Dapat dicoba lagi? | Penanganan yang disarankan |
| :- | :- | :-: | :- |
| `MATCH` | Registri mengonfirmasi identitas dan setiap kolom yang diperiksa cocok. | — | Setujui. |
| `PARTIAL_MATCH` | Registri menemukan catatan, tetapi satu atau beberapa kolom yang dibandingkan oleh layanan tidak sepenuhnya cocok (biasanya nama atau tanggal lahir). Kolom mana yang menentukan hasilnya bervariasi menurut layanan — lihat [Metode pencocokan](https://docs.didit.me/id/core-technology/database-validation/database-validation-matching-methods.md). | — | Kirim ke peninjauan atau konfigurasikan [Partial Match Action](https://docs.didit.me/id/core-technology/database-validation/database-validation-warnings.md) untuk menolak otomatis. |
| `NO_MATCH` | Registri tidak mengembalikan kecocokan untuk data yang dikirimkan. | Tidak | Tolak, atau kirim ke peninjauan tergantung pada kebijakan Anda. |
| `DOCUMENT_SUPERSEDED` | Registri mengonfirmasi identitas orang tersebut, tetapi **edisi dokumen** yang diberikan bukanlah edisi yang tersimpan dalam arsip — edisi yang lebih baru telah diterbitkan sejak saat itu, sehingga kredensial yang dimiliki sudah usang. Huruf *ejemplar* pada DNI Argentina adalah contoh kanonisnya. Berbeda dari `NO_MATCH` (orang tersebut tidak cocok) dan `DOCUMENT_NOT_FOUND` (tidak ada catatan sama sekali): hanya kredensial fisik yang sudah usang. | Tidak | Kirim ke peninjauan dan minta edisi dokumen saat ini. Ini mengikuti **No Match Action** Anda dan memunculkan [`DATABASE_VALIDATION_DOCUMENT_SUPERSEDED`](https://docs.didit.me/id/core-technology/database-validation/database-validation-warnings). |
| `DOCUMENT_NOT_FOUND` | Nomor identifikasi valid secara sintaksis tetapi tidak ada dalam registri pemerintah. | Tidak | Tolak. |
| `INVALID_DOCUMENT_FORMAT` | Nomor identifikasi yang dikirimkan salah format (panjang salah, non-numerik, checksum salah). | Tidak | Minta pengguna untuk memasukkan kembali nomor dokumen mereka. |
| `INVALID_INPUT` | Kolom input yang wajib diisi (swafoto, jenis kelamin, tanggal lahir, dll.) tidak ada atau salah format. | Tidak | Minta pengguna untuk mengirimkan kembali kolom yang hilang. Sesi akan diproses ulang secara otomatis setelah data diberikan — lihat [`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/id/core-technology/database-validation/database-validation-warnings). |
| `MINOR_BLOCKED` | Registri menahan catatan karena subjeknya masih di bawah umur. Berlaku di yurisdiksi dengan undang-undang perlindungan data untuk anak di bawah umur (LGPD Brasil, Argentina). | Tidak | Tolak. Hormati kerangka hukum setempat — jangan coba lagi. |
| `DECEASED` | Registri melaporkan bahwa subjek telah meninggal dunia. | Tidak | Tolak. |
| `BIOMETRIC_NO_MATCH` | Untuk validasi biometrik (Argentina, Panama), skor pencocokan wajah berada di bawah ambang batas penerimaan. | Tidak | Tolak, atau kirim ke peninjauan. |
| `BIOMETRIC_IMAGE_UNUSABLE` | Swafoto tidak dapat diproses — gambar kosong, tidak ada wajah, berkualitas rendah, atau registri tidak dapat membacanya. | Ya | Minta pengguna untuk mengambil ulang swafoto. |
| `INCONCLUSIVE` | Registri tidak dapat menentukan apakah orang tersebut cocok — hasilnya benar-benar tidak pasti (mereka mungkin ada atau tidak ada dalam registri). Berbeda dari `NO_MATCH` (pasti tidak ada) dan dari `BIOMETRIC_IMAGE_UNUSABLE` (masalah teknis gambar): tidak ada yang terkonfirmasi ke salah satu arah, sehingga `match_type` bernilai `null`. | Mungkin | Kirim ke peninjauan. Percobaan ulang dengan swafoto yang lebih jelas atau data tambahan dapat menyelesaikannya. |
| `REGISTRY_UNAVAILABLE` | Registri pemerintah sementara tidak dapat dijangkau (timeout, kesalahan konektivitas, 5xx upstream). | Ya | Coba lagi setelah jeda singkat. Didit sudah mencoba ulang kesalahan sementara secara otomatis, sehingga melihat hal ini di laporan akhir berarti semua percobaan ulang telah habis. Saat registri terus mengalami kegagalan, organisasi Anda akan menerima email setelah gangguan berlangsung terus-menerus dan sekali lagi saat akses dipulihkan — lihat [Pemberitahuan ketersediaan](https://docs.didit.me/id/core-technology/database-validation/overview.md#notifikasi-ketersediaan). |
| `REGISTRY_ERROR` | Registri mengembalikan kegagalan tak terduga yang tidak cocok dengan kategori mana pun di atas. | Mungkin | Eskalasikan ke tim dukungan beserta kode detailnya. |

> [!NOTE]
>
> `outcome_code` berada di dalam setiap entri dari larik `validations` pada laporan validasi. Lihat [Laporan Validasi Database](https://docs.didit.me/id/core-technology/database-validation/database-validation-report.md) untuk mengetahui posisinya di dalam respons.

> [!NOTE]
>
> `REGISTRY_UNAVAILABLE` dan `REGISTRY_ERROR` berarti registri sumber tidak pernah menjawab kueri, sehingga kedua hasil tersebut **tidak ditagih** - lihat [harga](https://docs.didit.me/id/core-technology/database-validation/overview.md). Setiap kode hasil lainnya adalah respons nyata dari registri yang dikenai biaya, bahkan yang tidak mengonfirmasi apa pun (`INCONCLUSIVE`, `BIOMETRIC_IMAGE_UNUSABLE`) dan bahkan yang menolak apa yang Anda kirimkan (`INVALID_DOCUMENT_FORMAT`, `INVALID_INPUT` — sebagai kode hasil, ini berarti registri itu sendiri yang menolak data tersebut, setelah kueri dikirimkan).
>
> Input yang tidak pernah mencapai registri tidak menghasilkan kode hasil sama sekali: `POST /v3/database-validation/` merespons `400` saat suatu nilai tidak memenuhi aturan format negara, dan layanan alur kerja dengan kolom yang hilang atau salah format akan dilewati dengan [`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/id/core-technology/database-validation/database-validation-warnings). Keduanya tidak ditagih. Rincian lengkap ada di [halaman harga Validasi Database](https://docs.didit.me/id/getting-started/database-validation-pricing.md).

## Kode detail khusus negara

Kode detail dikembalikan sebagai `outcome_detail` bersama dengan `outcome_code`. Hanya negara-negara yang tercantum di bawah ini yang menghasilkan kode detail di luar hasil standar — setiap negara lain yang didukung hanya mengembalikan kode standar.

### Argentina (RENAPER)

Argentina menggunakan validasi biometrik 1×1 terhadap registri identitas nasional RENAPER, menggabungkan DNI, swafoto, dan jenis kelamin yang dinyatakan.

| Kode detail | Hasil standar | Arti |
| :- | :- | :- |
| `300` | `INVALID_DOCUMENT_FORMAT` | Kolom DNI harus berupa angka 7–8 digit. |
| `301` | `DOCUMENT_NOT_FOUND` | DNI yang dikirimkan tidak cocok dengan catatan yang valid. |
| `303` | `INVALID_INPUT` | Kolom swafoto kosong. |
| `304` | `INVALID_INPUT` | Kolom jenis kelamin kosong atau bukan salah satu dari `M`, `F`, `X`. |
| `305` | `NO_MATCH` | Kombinasi DNI dan jenis kelamin tidak ditemukan. |
| `306` | `REGISTRY_UNAVAILABLE` | Kueri tidak dapat dilakukan saat ini. |
| `307` | `REGISTRY_UNAVAILABLE` | Kesalahan saat menyambungkan ke sistem validasi identitas publik. |
| `311` | `REGISTRY_ERROR` | Integrasi tidak memiliki akses ke produk ini. |
| `313` | `MINOR_BLOCKED` | Catatan milik orang di bawah umur. |
| `400` | `REGISTRY_UNAVAILABLE` | Kesalahan koneksi. |
| `401` | `NO_MATCH` | Tidak ada hasil yang ditemukan untuk data yang diberikan. |
| `405` | `BIOMETRIC_IMAGE_UNUSABLE` | Konflik dengan gambar; gambar tidak dapat diproses. |
| `406` | `BIOMETRIC_IMAGE_UNUSABLE` | Kesalahan dalam pemrosesan gambar. |
| `NO.HIT` | `BIOMETRIC_NO_MATCH` | Skor kecocokan wajah berada di bawah ambang batas penerimaan (\< 50). |
| `INTERNAL_ERROR` | `REGISTRY_UNAVAILABLE` | Batas waktu (timeout) terlampaui. |

### Brasil (Receita Federal — Consulta CPF)

Brasil memvalidasi CPF terhadap layanan CPF resmi Receita Federal, dengan penanganan eksplisit untuk anak di bawah umur sesuai LGPD (Lei Geral de Proteção de Dados) dan Children's and Adolescents' Digital Statute.

| Kode detail | Hasil standar | Arti |
| :- | :- | :- |
| `200` | `MATCH` | CPF ditemukan dan data berhasil dikembalikan. |
| `206` | `MATCH` | CPF ditemukan, tetapi beberapa kolom yang tidak esensial tidak dikembalikan. |
| `400` | `INVALID_DOCUMENT_FORMAT` | Nomor CPF tidak valid. |
| `404` | `DOCUMENT_NOT_FOUND` | Tidak ada CPF dengan nomor yang dikirimkan. |
| `422` | `MINOR_BLOCKED` | Data untuk anak di bawah umur 18 tahun ditahan sesuai LGPD (Undang-Undang 13.709/2018). Respons mencakup `minor_under_18: true`. |
| `451` | `MINOR_BLOCKED` | Data untuk anak di bawah umur 16 tahun ditahan sesuai LGPD dan Children's and Adolescents' Digital Statute (Undang-Undang 15.211/2025). Respons mencakup `minor_under_18: true` dan `minor_under_16: true`. |
| `500` | `REGISTRY_UNAVAILABLE` | Kesalahan server hulu (upstream). |
| `504` | `REGISTRY_UNAVAILABLE` | Gateway timeout — permintaan tidak mencapai API Consulta CPF. |

> [!NOTE]
>
> Untuk hasil `MINOR_BLOCKED` di Brasil, `source_data` tetap mengembalikan flag `lgpd_minor`, `minor_under_18`, dan `minor_under_16` sehingga Anda dapat menerapkan alur yang sesuai dengan usia tanpa mencoba lagi.

### Panama (SIB — Tribunal Electoral)

Panama menggunakan validasi biometrik terhadap registri SIB (Servicio de Identificación Biométrica) yang dioperasikan oleh Tribunal Electoral. Jika terjadi kesalahan teknis SIB, sesi secara otomatis dialihkan kembali ke pencarian 1×1.

| Kode detail | Hasil standar | Arti |
| :- | :- | :- |
| `601` | `REGISTRY_UNAVAILABLE` | Operator tidak ada di database. |
| `602` | `MINOR_BLOCKED` | Warga negara berusia di bawah 12 tahun. |
| `603` | `DECEASED` | Warga negara telah meninggal dunia. |
| `604` | `NO_MATCH` | Warga negara memiliki pendaftaran yang tidak valid. |
| `605` | `NO_MATCH` | Warga negara tidak dikenali. |
| `606` | `INVALID_INPUT` | Kolom cédula kosong. |
| `607` | `DOCUMENT_NOT_FOUND` | Warga negara tidak ditemukan. |
| `608` | `REGISTRY_ERROR` | Tidak ada akses SIB untuk klien ini. |
| `610` | `BIOMETRIC_IMAGE_UNUSABLE` | Kesalahan validasi wajah umum. |
| `611` | `BIOMETRIC_IMAGE_UNUSABLE` | Gambar untuk perbandingan tidak dikirimkan. |
| `612` | `BIOMETRIC_IMAGE_UNUSABLE` | Gambar tidak memiliki konten. |
| `613` | `BIOMETRIC_IMAGE_UNUSABLE` | Format gambar tidak valid. |
| `614` | `BIOMETRIC_IMAGE_UNUSABLE` | Tidak ada wajah yang terdeteksi pada gambar. |
| `615` | `BIOMETRIC_NO_MATCH` | Ambang batas kemiripan tidak tercapai. |

### Negara lain yang didukung

Negara-negara di bawah ini hanya mengembalikan kode hasil standar — tidak ada kode detail khusus negara yang perlu ditangani.

* **Bolivia, Kolombia, Kosta Rika, El Salvador, Guatemala, Honduras, Paraguay, Spanyol, Uruguay, Venezuela** — Pencarian 1×1 terhadap registri sipil terkait. Hasil langsung dipetakan ke `MATCH`, `NO_MATCH`, `DOCUMENT_NOT_FOUND`, `INVALID_DOCUMENT_FORMAT`, atau `REGISTRY_UNAVAILABLE`.
* **Cile (Registro Civil)** — Pencarian RUT. Dipetakan ke hasil standar ditambah `MINOR_BLOCKED` saat registri menandai catatan di bawah umur.
* **Republik Dominika (JCE)** — Pencarian Cédula yang mengembalikan validitas boolean; dipetakan ke `MATCH` atau `NO_MATCH`.
* **Ekuador (Registro Civil)** — Pencarian Cédula.
* **Meksiko (RENAPO, ditambah INE untuk 2×2)** — Pencarian CURP melalui RENAPO. Ketika `validation_type` adalah `two_by_two`, pemeriksaan silang INE tambahan akan dijalankan; keduanya bermuara pada kode hasil standar yang sama.
* **Peru (RENIEC)** — Pencarian DNI.

## Panduan penanganan

Handler yang paling sederhana dan andal terlihat seperti ini:

```typescript theme={null}
switch (result.outcome_code) {
  case "MATCH":
    return approve();
  case "PARTIAL_MATCH":
    return review();
  case "NO_MATCH":
  case "DOCUMENT_NOT_FOUND":
  case "DECEASED":
  case "MINOR_BLOCKED":
  case "BIOMETRIC_NO_MATCH":
    return decline();
  case "INVALID_DOCUMENT_FORMAT":
  case "INVALID_INPUT":
    return askUserToFixInput(result.outcome_detail);
  case "BIOMETRIC_IMAGE_UNUSABLE":
    return askUserToRetakeSelfie();
  case "REGISTRY_UNAVAILABLE":
  case "REGISTRY_ERROR":
    return review();  // Didit already retried; a human can decide.
  default:
    return review();
}
```

> [!NOTE]
>
> Anda tidak perlu membuat percabangan logika bisnis berdasarkan `outcome_detail` — gunakan untuk analitik, penelusuran kesalahan (debugging), dan tiket dukungan. Nilai standar `outcome_code` dijamin tetap stabil di seluruh negara dan dari waktu ke waktu.

## Lihat juga

* [Peringatan Validasi Database](https://docs.didit.me/id/core-technology/database-validation/database-validation-warnings.md) — tag peringatan tingkat sesi (`COULD_NOT_PERFORM_DATABASE_VALIDATION`, `DATABASE_VALIDATION_PARTIAL_MATCH`, `DATABASE_VALIDATION_NO_MATCH`) dan cara mengonfigurasi tindakan peninjauan/penolakan pada aplikasi Anda.
* [Laporan Validasi Database](https://docs.didit.me/id/core-technology/database-validation/database-validation-report.md) — struktur respons lengkap dan lokasi munculnya `outcome_code` / `outcome_detail`.
* [Negara yang Didukung Validasi Database](https://docs.didit.me/id/core-technology/database-validation/database-validation-supported-countries.md) — daftar lengkap negara dan metode pencocokan.


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