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

# Verifikasi Identitas API Sessions: KYC & KYB Terpadu

> Sessions API terpadu dari Didit menangani KYC dan KYB lewat satu endpoint. Bayar sesuai penggunaan, inferensi di bawah 2s, 220+ negara, $10 kredit gratis/bulan.

**Sesi** adalah unit verifikasi di Didit. Saat Anda memulai verifikasi, **sesi** dibuat. Ketika verifikasi selesai, sesi berisi payload keputusan lengkap. API sesi yang sama menangani kedua jenis:

| Jenis | Yang diverifikasi | Payload keputusan mencakup |
| - | - | - |
| **Sesi Verifikasi Pengguna (KYC)** | Seorang individu | Verifikasi Identitas, Deteksi Liveness, Pencocokan Wajah, POA, NFC, Validasi Database, telepon, email, AML, kuesioner, Analisis Perangkat & IP |
| **Sesi Verifikasi Bisnis (KYB)** | Perusahaan / badan hukum | Pemeriksaan registri perusahaan, pihak kunci (pejabat/UBO), verifikasi dokumen, telepon, email, AML, kuesioner, Analisis Perangkat & IP |

Dalam pelajaran Academy tentang apa yang dilihat pengguna, bab 5:34 membahas trade-off antara alur yang di-hosting dan membangun layar Anda sendiri. Inilah trade-off yang ditentukan oleh API ini untuk Anda.

[Alur yang di-hosting vs membangun layar sendiri - Didit Academy](https://www.youtube.com/embed/LzGe-dMWjUw?start=334\&rel=0\&playsinline=1)

## Jenis ditentukan oleh alur kerja

Saat Anda [membuat sesi](https://docs.didit.me/id/sessions-api/create-session.md), Anda mengirim `workflow_id`. Jenis alur kerja menentukan apakah sesi tersebut Verifikasi Pengguna atau Verifikasi Bisnis. Pemanggil tidak memilih jenisnya secara terpisah. Alur kerja KYB membuat sesi Verifikasi Bisnis, dan alur kerja KYC membuat sesi Verifikasi Pengguna.

## Diskriminator `session_kind`

Setiap respons sesi, baik saat membuat, mengambil, mencantumkan, memperbarui status, membagikan, maupun mengimpor, menyertakan kolom tingkat atas berikut:

```json theme={null}
{
  "session_id": "...",
  "session_kind": "user",
  ...
}
```

* `"user"`: sesi tersebut adalah **Sesi Verifikasi Pengguna (KYC)**. Respons berisi array fitur khusus pengguna.
* `"business"`: sesi tersebut adalah **Sesi Verifikasi Bisnis (KYB)**. Respons berisi array fitur khusus bisnis.

Gunakan kolom ini untuk menentukan struktur respons di sisi Anda.

> [!NOTE]
>
> Nilai enum berupa identifier pendek `"user"` dan `"business"`. Kami membuatnya pendek agar API lebih mudah digunakan. Nama lengkap **Verifikasi Pengguna (KYC)** dan **Verifikasi Bisnis (KYB)** dipakai di seluruh dokumentasi agar lebih jelas.

## Array fitur berdasarkan jenis

Array fitur yang ada dalam sebuah keputusan bergantung pada jenisnya. Kolom yang tidak berlaku untuk satu jenis tidak muncul dalam respons tersebut (tanpa null, tanpa placeholder):

| Array fitur | Verifikasi Pengguna (KYC) | Verifikasi Bisnis (KYB) |
| - | :-: | :-: |
| `id_verifications` | ✅ | — |
| `liveness_checks` | ✅ | — |
| `face_matches` | ✅ | — |
| `nfc_verifications` | ✅ | — |
| `poa_verifications` | ✅ | — |
| `database_validations` | ✅ | — |
| `registry_checks` | — | ✅ |
| `document_verifications` | — | ✅ |
| `key_people_checks` | — | ✅ |
| `aml_screenings` | ✅ | ✅ |
| `phone_verifications` | ✅ | ✅ |
| `email_verifications` | ✅ | ✅ |
| `questionnaire_responses` | ✅ | ✅ |
| `ip_analyses` | ✅ | ✅ |
| `reviews` | ✅ | ✅ |
| `contact_details` | ✅ | ✅ |

## Kolom tingkat atas bersama

Setiap sesi (kedua jenis) memuat kolom berikut:

| Kolom | Deskripsi |
| - | - |
| `session_id` | UUID dari sesi |
| `session_kind` | `"user"` (Verifikasi Pengguna / KYC) atau `"business"` (Verifikasi Bisnis / KYB) |
| `session_number` | Nomor berurutan dalam aplikasi |
| `session_url` | URL verifikasi yang di-hosting |
| `status` | Status sesi keseluruhan: `APPROVED`, `DECLINED`, `IN_REVIEW`, `IN_PROGRESS`, dan lainnya |
| `workflow_id` | UUID dari alur kerja yang digunakan |
| `vendor_data` | Identifier Anda untuk entitas tersebut. [Pelajari selengkapnya](https://docs.didit.me/id/entities/vendor-data-linking.md) |
| `metadata` | JSON bebas yang Anda lampirkan saat pembuatan |
| `callback` | URL callback opsional |
| `features` | Daftar fitur yang dijalankan alur kerja, dipisahkan koma |
| `expected_details` | Payload data yang diharapkan, opsional, untuk validasi silang |
| `created_at`, `expires_at` | Stempel waktu |

## Endpoint yang tercakup

Endpoint berikut menerima kedua jenis. Tidak ada jalur `/v3/business-session/*` yang terpisah.

| Endpoint | Berlaku untuk |
| - | - |
| [`POST /v3/session/`](https://docs.didit.me/id/sessions-api/create-session) | Membuat sesi Verifikasi Pengguna atau Verifikasi Bisnis berdasarkan jenis alur kerja |
| [`GET /v3/session/{id}/decision/`](https://docs.didit.me/id/sessions-api/retrieve-session) | Mengambil kedua jenis. Penentuan dilakukan berdasarkan `session_id` |
| [`GET /v3/sessions/`](https://docs.didit.me/id/sessions-api/list-sessions) | Mencantumkan kedua jenis. Gunakan parameter kueri `session_kind` untuk memfilter |
| [`PATCH /v3/session/{id}/update-status/`](https://docs.didit.me/id/sessions-api/update-status) | Memperbarui kedua jenis |
| [`DELETE /v3/session/{id}/delete/`](https://docs.didit.me/id/sessions-api/delete-session) | Menghapus kedua jenis |
| [`GET /v3/session/{id}/generate-pdf/`](https://docs.didit.me/id/sessions-api/generate-pdf) | Membuat PDF untuk kedua jenis. Diarahkan ke templat Verifikasi Pengguna atau Verifikasi Bisnis |
| [`POST /v3/session/{id}/share/`](https://docs.didit.me/id/sessions-api/share-session/share) | Token berbagi menyertakan `session_kind` |
| [`POST /v3/session/import-shared/`](https://docs.didit.me/id/sessions-api/share-session/import) | Mengimpor kedua jenis. Mempertahankan `session_kind` dari token |

## Cara kerja pencarian

Sesi Verifikasi Pengguna dan sesi Verifikasi Bisnis adalah dua jenis yang berbeda. ID menggunakan UUID sehingga tabrakan tidak mungkin terjadi. Saat Anda memanggil endpoint dengan `session_id`, Didit akan:

1. Mencari ID di tabel Verifikasi Pengguna terlebih dahulu (mencakup sebagian besar trafik).
2. Jika tidak ditemukan, mencarinya di tabel Verifikasi Bisnis.
3. Mengembalikan 404 jika tidak ada tabel yang memiliki kecocokan.

Anda tidak perlu memberi tahu API jenis apa yang Anda cari.

## Status identik untuk kedua jenis

Nilai status sama untuk kedua jenis, dan API mengembalikannya persis seperti yang tertulis di sini: `"Not Started"`, `"In Progress"`, `"Approved"`, `"Declined"`, `"In Review"`, `"Abandoned"`, `"Expired"`, `"Kyc Expired"`, `"Resubmitted"`, `"Awaiting User"`. Pencocokan bersifat tepat dan sensitif terhadap huruf besar-kecil. Lihat [status verifikasi](https://docs.didit.me/id/integration/verification-statuses.md) untuk referensi lengkap.

## Webhook

Event webhook sudah membawa kolom `session_kind` agar handler webhook Anda dapat mendistribusikan event per jenis:

| Event | Jenis | Terpicu saat |
| - | - | - |
| `status.updated` | Keduanya | Status sesi berubah. Payload memuat `session_kind: "user"` atau `"business"`. |
| `data.updated` | Keduanya | Data sesi berubah (hasil fitur, penyegaran registri, pemantauan AML berkelanjutan). Payload memuat `session_kind`. |
| `business.status.updated` / `business.data.updated` | Entitas bisnis | Entitas bisnis yang tertaut berubah. |
| `user.status.updated` / `user.data.updated` | Entitas pengguna | Entitas pengguna yang tertaut berubah. |

Lihat [webhook](https://docs.didit.me/id/integration/webhooks.md) untuk verifikasi tanda tangan dan semantik percobaan ulang, serta [webhook KYB](https://docs.didit.me/id/business-verification/webhooks.md) untuk katalog event webhook Verifikasi Bisnis (KYB).

## Langkah selanjutnya

> [card] [Buat sesi](https://docs.didit.me/id/sessions-api/create-session.md)
>
> Mulai verifikasi untuk Verifikasi Pengguna atau Verifikasi Bisnis (KYB).

> [card] [Ambil sesi](https://docs.didit.me/id/sessions-api/retrieve-session.md)
>
> Ambil keputusannya. Berlaku untuk kedua jenis.

> [card] [Daftar sesi](https://docs.didit.me/id/sessions-api/list-sessions.md)
>
> Filter berdasarkan `session_kind`.

> [card] [Perbarui status](https://docs.didit.me/id/sessions-api/update-status.md)
>
> Setujui, tolak, tinjau, ajukan ulang.

> [card] [Hasilkan PDF](https://docs.didit.me/id/sessions-api/generate-pdf.md)
>
> Laporan PDF per jenis.

> [card] [Bagikan + impor](https://docs.didit.me/id/sessions-api/share-session/overview.md)
>
> Pindahkan sesi antar aplikasi.


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