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

# Document AI: Ekstraksi Data Dokumen Kustom

> Didit mengumpulkan hingga 3 dokumen kustom dan mengekstrak kolom pilihan dengan AI, lalu mencocokkannya dengan langkah lain dan aturan Anda.

Document AI memungkinkan Anda mengumpulkan dokumen yang tidak cocok dengan templat tetap — bukti dana, slip gaji, surat sumber kekayaan, laporan pajak, dan apa pun lainnya — serta mengekstrak kolom persis yang **Anda** tentukan. Anda mengonfigurasi judul dan deskripsi di layar untuk setiap dokumen (diterjemahkan secara otomatis ke dalam setiap bahasa verifikasi) dan daftar poin data yang akan dibaca. AI Didit mengekstrak kolom-kolom tersebut, secara opsional melakukan referensi silang terhadap langkah verifikasi lainnya, dan menerapkan aturan Anda untuk menghasilkan status.

Prompt Integrasi Document AI
        Salin prompt ke papan klip



      
      

\<pre>

\`# Goal
Integrate Didit Document AI (configurable multi-document upload + AI field extraction + cross-checks) into your app.

\# Setup (Business Console or POST /v3/workflows/)
Add the DOCUMENT_AI feature to your workflow and configure:
\- document_ai_documents: up to 3 documents. Each has { document_key, title, description, fields[] }.
Each field is { key, name, instruction, type: "text" | "number" | "date", required, is_full_name }.
title and description are auto-translated into every verification language on save.
\- is_full_name: optional boolean on a field. Marks the field whose value is compared automatically against the
verified subject: on a person (KYC) workflow the document holder's full name (the ID-verification name, or the
session's expected details), and on a business (KYB) workflow the verified company name (the registry-matched
company, or the session's expected company name). A low match below document_ai_name_match_score_threshold
triggers document_ai_name_mismatch_action. At most one field per document may set it, and it is optional — a
document may mark none (no name check runs).
\- Basic rules (per-risk action DECLINE | REVIEW | NO_ACTION): document_ai_unreadable_document_action,
document_ai_missing_required_fields_action, document_ai_document_tampering_action,
document_ai_name_mismatch_action, document_ai_unsupported_file_action, document_ai_max_attempts_exceeded_action.
\- document_ai_name_match_score_threshold (0-100), document_ai_max_retry_attempts (2-5).
\- status_rules[]: custom rules on any extracted field. Reference an extracted field as document_ai.<field_key>
and cross-reference other steps with value_type:"field" (e.g. document_ai.account_holder equals kyc.full_name).

\# Flow
1\. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
2\. Open session.url for the user (or mount the Web/Mobile SDK). The user uploads each configured document.
3\. The user uploads documents to POST /v3/document-ai/documents/ (handled by the hosted flow/SDK):
multipart/form-data with { document_key, document, locale? }, Session-Token auth.
Response: { valid?, next_step, document_ai_status, uploaded_document_keys[], required_document_keys[] }.
The step completes once every configured document_key is uploaded.
4\. Fetch the decision — GET /v3/session/{sessionId}/decision/ or subscribe to session.status.updated.

\# Decision surface
DOCUMENT_AI appears in the decision features[] array as { feature: "DOCUMENT_AI", node_id }.
Per-document statuses combine via precedence Declined > In Review > Approved.

\# See also
\- Report: /core-technology/document-ai/report-document-ai
\- Rules & warnings: /core-technology/document-ai/warnings-document-ai
\- Configure in the console: /console/workflows
\- Standalone API (server-to-server, no hosted UI): POST /v3/document-ai/ — /standalone-apis/document-ai`

\</pre>



      
      

Tempel ke

> [!NOTE]
>
> Sudah memiliki dokumen di server Anda? Panggil [Document AI API](https://docs.didit.me/id/standalone-apis/document-ai.md) secara langsung: kirim berkas beserta definisi kolom Anda dalam satu permintaan `POST /v3/document-ai/` dan dapatkan kolom yang diekstraksi, pencocokan nama, serta status secara sinkron, tanpa alur yang di-hosting. \$0.20 per dokumen.## Cara kerja**1. Konfigurasikan dokumen dan kolom**Di pembuat alur kerja Anda menentukan hingga **3 dokumen**. Untuk setiap dokumen, Anda mengatur:| Pengaturan | Deskripsi |
| - | - |
| **Judul & deskripsi** | Ditampilkan kepada pengguna di layar pengunggahan. Dimasukkan sekali dan **diterjemahkan secara otomatis** ke dalam setiap bahasa verifikasi. |
| **Kolom yang akan diekstrak** | Daftar kolom bertipe — masing-masing dengan nama, instruksi ekstraksi untuk AI, tipe (`text`, `number`, `date`), penanda wajib, dan penanda **nama lengkap** opsional. |
| **Kolom nama** | Secara opsional tandai satu kolom teks per dokumen sebagai nama yang akan dicocokkan. Pada alur kerja perorangan (KYC), ini adalah **nama lengkap**, yang dibandingkan dengan identitas terverifikasi; pada alur kerja bisnis (KYB), ini adalah **nama perusahaan**, yang dibandingkan dengan perusahaan terverifikasi. `document_ai_name_mismatch_action` menentukan apa yang terjadi jika terjadi ketidakcocokan. Opsional — biarkan tidak diatur untuk melewati pemeriksaan nama untuk dokumen tersebut. |Mulai dari sebuah [templat](#templat-awal) atau buat dari awal.**2. Pengguna mengunggah dokumen**Pengguna mengunggah satu berkas per dokumen yang dikonfigurasi (PDF atau gambar). Setiap pengunggahan diproses secara independen; langkah ini selesai setelah setiap dokumen yang diperlukan telah diunggah.**3. Ekstraksi AI**Didit me-render setiap dokumen dan menjalankan model visi-bahasa dengan skema yang dibangun dari definisi kolom Anda. Nilai yang diekstrak dikembalikan dengan tipe data yang sesuai (angka sebagai angka, tanggal sebagai `YYYY-MM-DD`) dan disimpan per dokumen. Forensik PDF/EXIF dilakukan untuk mendeteksi manipulasi.**4. Referensi silang & aturan**Kolom yang diekstrak dapat diperiksa silang terhadap langkah lain — misalnya, nama pemegang dokumen terhadap ID terverifikasi, atau kolom apa pun terhadap jawaban kuesioner — dan terhadap **aturan dasar** serta **aturan status kustom** Anda. Status per dokumen yang dihasilkan digabungkan menjadi status fitur.## Templat awalSaat Anda menambahkan node Document AI, Anda dapat memulai dari templat siap pakai dengan judul, deskripsi, dan kolom bertipe yang telah diisi sebelumnya. Sesuaikan apa pun setelahnya.| Templat | Kolom tipikal |
| - | - |
| **Bukti Dana** | Pemegang akun, saldo, mata uang, tanggal laporan |
| **Bukti Penghasilan (slip gaji)** | Pemberi kerja, nama karyawan, gaji kotor/bersih, periode pembayaran |
| **Sumber Kekayaan** | Tipe sumber, jumlah, tanggal, institusi |
| **Dokumen Pajak** | Nama wajib pajak, tahun pajak, penghasilan yang dilaporkan, ID pajak |## Referensi silang dengan langkah lainKolom Document AI dapat dirujuk menggunakan `document_ai.<field_key>` dan dapat dibandingkan dengan kolom dari langkah lain yang telah selesai menggunakan aturan status kustom dengan `value_type: "field"`. Sebagai contoh:- `document_ai.account_holder` **sama dengan** `kyc.full_name` — pemegang dokumen cocok dengan identitas terverifikasi.
- `document_ai.balance` **greater\_than** `50000` — tandai saldo tinggi untuk ditinjau.Aturan pencocokan digabungkan ke dalam keputusan menggunakan urutan prioritas platform **Ditolak > Dalam Peninjauan > Disetujui**, sehingga sebuah aturan dapat meningkatkan tingkat keparahan namun tidak pernah menimpa status berbasis risiko yang lebih ketat. Lihat [Aturan & peringatan](https://docs.didit.me/id/core-technology/document-ai/warnings-document-ai.md).## Persyaratan dokumen| Persyaratan | Detail |
| - | - |
| **Dokumen per langkah** | Hingga 3, masing-masing dikonfigurasi secara independen |
| **Format yang didukung** | PDF, JPG, JPEG, PNG, TIFF, WebP |
| **Halaman** | PDF multi-halaman didukung |
| **Kualitas** | Dokumen asli atau pemindaian berkualitas tinggi; tidak ada pengeditan atau manipulasi digital |> [!NOTE]
>
> Document AI melakukan pembacaan teks tidak terstruktur, yang menyebabkan latensi beberapa detik per dokumen. Webhook hanya terpicu saat seluruh langkah alur kerja selesai — jangan melakukan polling pada endpoint keputusan lebih sering daripada setiap 5 detik selama jangka waktu ini.


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