> ## 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 Daftar Sesi: Filter Sesi Verifikasi KYC & KYB

> GET /v3/sessions/ untuk menampilkan sesi verifikasi dengan filter jenis, status, alur kerja, dan data vendor. API KYC + KYB terpadu, harga per penggunaan.



Prompt Daftar Sesi
        Salin prompt ke papan klip



      
      

\<pre>

\`List Didit verification sessions for your application with filters and pagination.

Endpoint:
GET https://verification.didit.me/v3/sessions

Authentication:
Use the x-api-key header with your Didit API key. The key must hold read:sessions.

Query parameters:
\- session_kind ("user" | "business" | "all", default "user") — chooses which kind to list. "user" returns only KYC sessions (backward-compatible default). "business" returns only KYB. "all" concatenates both (KYB rows are appended; not interleaved by timestamp).
\- vendor_data (string) — exact match on your stable identifier.
\- didit_internal_id (UUID) — matches vendor_user_id.
\- status (one or more, comma-separated) — Approved, Declined, In Review, In Progress, Not Started, Expired, Abandoned, Kyc Expired, Resubmitted, Awaiting User.
\- workflow_id (one or more UUIDs, comma-separated).
\- country (one or more ISO-3 codes, comma-separated) — issuing-state for KYC, country_code for KYB.
\- region (one or more, comma-separated).
\- document_type (one or more, comma-separated).
\- date_from, date_to (ISO 8601 date) — inclusive on created_at.
\- search (string) - a complete displayed reference such as S-0001 (user) or B-0001 (business) matches only that session number and kind, ignoring leading zeros and letter case.
Other input searches the existing name, contact, document, registration-number and vendor_data fields.
\- tags (comma-separated tag ids) — sessions that carry any of them.
\- decided_from, decided_to (ISO 8601 datetimes) — sessions whose status last changed at or after / before the value.
\- limit (int, default 50), offset (int, default 0) — limit/offset pagination. Both accept values up to 1000000; larger values return 400.

Per-kind filters (silently ignored on the other kind): is_kyc_to_be_reviewed, status_initialized_as_in_review, session_type, api_service, screened_full_name, document_name, warning.

curl example:
curl -G https://verification.didit.me/v3/sessions/ \
-H "x-api-key: <API_KEY>" \
\--data-urlencode "session_kind=all" \
\--data-urlencode "status=Approved,In Review" \
\--data-urlencode "date_from=2026-01-01" \
\--data-urlencode "limit=50"

Response envelope:
\{
"count": <int>,   // exact up to 100, capped at 100 beyond that: paginate with next
"next": "<url|null>",
"previous": "<url|null>",
"results": [ ...rows ]
}

Every row has:
\- session_id (UUID), session_kind ("user" | "business"), session_number, status, vendor_data, created_at.

KYC row extras: portrait_image, document_type, full_name, country (issuing state), phone_number, email_address, features, didit_internal_id, assignee, waiting_since, sla_due_at, top_warnings, warnings_count.

KYB row extras: workflow_type, workflow_label, company_name, registration_number, country (incorporation).

Each row is a LIGHT projection. For the full feature payload of a row, call GET /v3/session/{session_id}/decision/ — see /sessions-api/retrieve-session.

Failure modes:
\- 401 — invalid API key.
\- 403 — { "detail": "You do not have permission to perform this action." } when the key lacks read:sessions.
\- 400 — malformed UUIDs in filters are silently dropped (no error); malformed ISO dates return { "date_from": ["..."] }.

Common patterns:
\- Build a dashboard: paginate with limit + offset, sort newest-first (server orders by -session_number within each kind).
\- Find pending review queue: status=In Review.
\- Find a specific entity's sessions: vendor_data=<your-id>.
\- Refresh ongoing AML hits: filter by workflow_id of your AML workflow.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

Tempel ke

## Filter jenis sesiGunakan parameter query `session_kind` untuk memilih jenis sesi yang dikembalikan:| Nilai | Mengembalikan |
| - | - |
| `user` (bawaan) | Hanya sesi Verifikasi Pengguna (KYC). **Perilaku yang kompatibel dengan versi sebelumnya**. Hilangkan `session_kind` untuk mendapatkan perilaku ini. |
| `business` | Hanya sesi Verifikasi Bisnis (KYB). |
| `all` | Sesi Verifikasi Pengguna dan Verifikasi Bisnis, digabungkan. |Setiap baris dalam respons menyertakan `session_kind: "user" | "business"` agar klien Anda dapat menentukan bentuk data per baris.## Filter umumFilter ini berlaku untuk kedua jenis (filter khusus pengguna diabaikan saat `session_kind=business`, dan sebaliknya):| Parameter query | Deskripsi |
| - | - |
| `session_kind` | `user`, `business`, atau `all`. Bawaan `user`. |
| `vendor_data` | Pencocokan persis dengan pengidentifikasi Anda. |
| `status` | Satu atau beberapa status, dipisahkan koma, ditulis persis seperti yang dikembalikan API: `Approved`, `Declined`, `In Review`, dan seterusnya (lihat [Status verifikasi](https://docs.didit.me/id/integration/verification-statuses.md)). |
| `workflow_id` | Filter berdasarkan alur kerja yang digunakan. |
| `country` | Filter kode negara (pengguna: `issuing_states`, bisnis: `country_code`). |
| `date_from`, `date_to` | Rentang tanggal pembuatan (ISO 8601). |
| `tags` | ID tag, dipisahkan koma. Mengembalikan sesi yang memiliki salah satu tag tersebut. |
| `decided_from`, `decided_to` | Tanggal dan waktu ISO 8601. Mengembalikan sesi yang statusnya terakhir berubah dalam rentang tersebut (batas awal inklusif dan batas akhir eksklusif). Filter ini memakai waktu perubahan status terakhir, bukan waktu pembuatan. |
| `search` | Referensi lengkap yang ditampilkan, seperti `S-0001` atau `B-0001`, hanya cocok dengan nomor dan jenis sesi tersebut, dengan mengabaikan angka nol di depan dan perbedaan huruf besar atau kecil. Input lain mencari di kolom nama, kontak, dokumen, nomor registrasi, dan `vendor_data` yang sudah ada. |## Contoh> [tab] Daftar sesi Verifikasi Pengguna (KYC) (bawaan)
>
> ```bash theme={null}
> curl -G https://verification.didit.me/v3/sessions/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   --data-urlencode "vendor_data=user-42"
> ```
>
> **Respons (terpotong):**
>
> ```json theme={null}
> {
>   "count": 3,
>   "next": null,
>   "previous": null,
>   "results": [
>     {
>       "session_id": "...",
>       "session_kind": "user",
>       "session_number": 1024,
>       "session_url": "...",
>       "portrait_image": "...",
>       "document_type": "Passport",
>       "full_name": "John Doe",
>       "country": "GBR",
>       "status": "Approved",
>       "vendor_data": "user-42",
>       "didit_internal_id": "...",
>       "created_at": "2026-04-10T09:00:00Z",
>       "features": "ID_VERIFICATION,LIVENESS,FACE_MATCH,AML",
>       "phone_number": "+14155550123",
>       "email_address": "jane@example.com",
>       "additional_details": null
>     }
>   ]
> }
> ```> [tab] Daftar sesi Verifikasi Bisnis (KYB)
>
> ```bash theme={null}
> curl -G https://verification.didit.me/v3/sessions/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   --data-urlencode "session_kind=business" \
>   --data-urlencode "status=Approved"
> ```
>
> **Respons (terpotong):**
>
> ```json theme={null}
> {
>   "count": 1,
>   "next": null,
>   "previous": null,
>   "results": [
>     {
>       "session_id": "...",
>       "session_kind": "business",
>       "session_number": 89,
>       "status": "Approved",
>       "vendor_data": "biz-acme-001",
>       "created_at": "2026-04-01T09:00:00Z",
>       "workflow_id": "wf_kyb_standard",
>       "workflow_type": "business",
>       "workflow_label": "Standard KYB",
>       "company_name": "Acme Corporation Limited",
>       "registration_number": "12345678",
>       "country": "GBR"
>     }
>   ]
> }
> ```> [tab] Daftar kedua jenis
>
> ```bash theme={null}
> curl -G https://verification.didit.me/v3/sessions/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   --data-urlencode "session_kind=all" \
>   --data-urlencode "date_from=2026-04-01T00:00:00Z"
> ```
>
> Mengembalikan baris Verifikasi Pengguna dan Verifikasi Bisnis dalam satu array `results`. Konsumen harus menentukan bentuk data per baris berdasarkan `session_kind`.
>
> > [!NOTE]
> >
> > Mode `all` menggabungkan hasil, bukan menyisipkannya berdasarkan stempel waktu. Untuk penelusuran campuran dengan volume tinggi, panggil setiap jenis secara terpisah lalu gabungkan di sisi klien.## Bentuk baris berbeda menurut jenisBaris Verifikasi Pengguna (KYC) mencakup: `portrait_image`, `document_type`, `full_name`, `country` (negara penerbit), `phone_number`, `email_address`, dan beberapa kolom peninjauan: `assignee` (peninjau Console yang memegang sesi, atau `null`), `waiting_since` dan `sla_due_at` (hanya diisi saat sesi berstatus `In Review`), `top_warnings` (peringatan paling penting, masing-masing dengan `risk`, `feature`, `log_type`, dan `short_description`), serta `warnings_count`.Baris Verifikasi Bisnis (KYB) mencakup: `workflow_type`, `workflow_label`, `company_name`, `registration_number`, `country` (negara pendirian).Keduanya memuat: `session_id`, `session_kind`, `session_number`, `status`, `vendor_data`, `created_at`.Lihat [Ikhtisar sesi](https://docs.didit.me/id/sessions-api/overview.md) untuk matriks fitur lengkap.## PaginasiPaginasi menggunakan `limit` (bawaan `50`) dan `offset` (bawaan `0`), dengan URL absolut `next` dan `previous` dalam respons. Kedua parameter menerima nilai hingga `1000000`; nilai yang lebih besar mengembalikan `400`.`count` akurat hingga `100` dan tetap `100` di atas angka itu, sehingga jangan menggunakannya sebagai total. Terus minta URL `next` hingga bernilai `null`. Dengan `session_kind=all`, `count` adalah jumlah kedua jenis, masing-masing dibatasi `100`.## Terkait- [Ikhtisar sesi](https://docs.didit.me/id/sessions-api/overview.md)
- [Ambil sesi](https://docs.didit.me/id/sessions-api/retrieve-session.md): keputusan lengkap untuk satu baris
- [Ikhtisar bisnis](https://docs.didit.me/id/entities/businesses/overview.md): entitas Bisnis yang diagregasi dari seluruh sesi
- [Ikhtisar pengguna](https://docs.didit.me/id/entities/users/overview.md): entitas Pengguna yang diagregasi dari seluruh sesi


## OpenAPI

````yaml id/openapi-25.json GET /v3/sessions/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/sessions/:
    get:
      tags:
        - Sessions
      summary: Daftar sesi verifikasi (KYC dan/atau KYB) dengan filter dan paginasi
      description: >-
        Mengembalikan daftar sesi verifikasi yang dipaginasi untuk aplikasi yang
        diidentifikasi oleh kunci API Anda, yang terbaru terlebih dahulu
        (`session_number` menurun).


        **URL Kanonis:** rutenya adalah `/v3/sessions/` (garis miring penutup).
        Permintaan ke `/v3/sessions` tanpa garis miring akan menerima pengalihan
        `301` ke URL bergaris miring dengan query string yang tetap
        dipertahankan; sebagian besar klien HTTP mengikutinya secara transparan
        pada GET.


        **Kapan menggunakan endpoint ini vs webhook.** Gunakan endpoint ini
        untuk dasbor, pencarian back-office, rekonsiliasi, dan ekspor batch.
        Jangan melakukan polling untuk melacak progres verifikasi individual -
        sebagai gantinya, konfigurasikan [webhook](/id/integration/webhooks),
        yang mengirimkan event `status.updated` tepat saat sesi berubah. Untuk
        hasil lengkap satu sesi, panggil `GET
        /v3/session/{sessionId}/decision/`.


        **Sesi KYC dan KYB.** `session_kind` memilih jenis mana yang
        dicantumkan:

        - `user` (default) - Sesi Verifikasi Pengguna (KYC) saja. Perilaku yang
        kompatibel dengan versi sebelumnya.

        - `business` - Sesi Verifikasi Bisnis (KYB) saja. Baris memiliki bentuk
        yang berbeda dan lebih ringkas (lihat skema respons).

        - `all` - kedua jenis dalam satu respons: halaman KYC dan halaman KYB
        untuk `limit`/`offset` yang sama digabungkan dalam `results` (baris KYC
        terlebih dahulu), sehingga satu halaman dapat berisi hingga `2 x limit`
        baris. `count` adalah jumlah dari kedua jenis dan `next`/`previous`
        mencerminkan paginasi sisi KYC. Untuk paginasi data campuran yang ketat,
        panggil `user` dan `business` secara terpisah.


        Setiap baris membawa diskriminator `session_kind` (`"user"` atau
        `"business"`).


        **Paginasi.** Limit/offset standar: `limit` (default 50) dan `offset`
        (default 0), dengan URL halaman siap pakai `next`/`previous`. Untuk
        baris KYC, `count` bersifat tepat. Untuk baris KYB, `count` dihitung
        dengan pemindaian terbatas dan dibatasi maksimal 100 - ketika ada lebih
        dari 100 kecocokan, nilainya tetap 100, jadi lakukan iterasi menggunakan
        `next` (atau dengan memeriksa apakah halaman penuh dikembalikan)
        daripada menghitung total halaman dari `count`.


        **Semantik filter.** Semua filter digabungkan dengan AND dan berlaku
        untuk baris KYC. Saat `session_kind` bernilai `business` atau `all`,
        sisi KYB menerapkan parameter bersama `vendor_data`, `status`,
        `workflow_id`, `country` (kode negara registri perusahaan), `date_from`,
        `date_to`, `search` (nama perusahaan, nomor registrasi — ketik nomor
        registrasi tanpa pemisah, mis. `DPC001` bukan `DPC-001` — vendor_data,
        nomor sesi, atau UUID sesi), `warning`, dan `organization_name`; filter
        khusus KYC lainnya diabaikan untuk baris KYB. Parameter yang dipisahkan
        koma (`status`, `country`, `document_type`, `region`, `workflow_id`,
        `document_name`, `warning`, `organization_name`, `session_type`) cocok
        dengan salah satu nilai yang tercantum (OR dalam parameter).
        `vendor_data` adalah kecocokan persis - gunakan `search` untuk
        pencocokan parsial. Nilai yang tidak dikenal dalam filter daftar cukup
        menghasilkan respons tanpa baris (tidak ada error); nilai bertipe data
        tidak valid (`date_from`, `date_to`, `didit_internal_id`, `api_service`,
        `session_kind`) mengembalikan `400` dengan objek error per kolom.


        **Pencarian.** `search` menyesuaikan dengan input: UUID lengkap mencari
        `session_id`; digit (dengan opsional `+ - . space`) cocok dengan awalan
        nomor sesi, nomor dokumen/pribadi, awalan nomor telepon, atau
        `vendor_data`; nilai yang mengandung `@` cocok dengan awalan email; teks
        lainnya cocok dengan nama (tidak peka aksen) dan `vendor_data`.


        Tidak ada batas laju per-endpoint tetap yang diterapkan, tetapi jangan
        terlalu sering melakukan polling daftar dan andalkan webhook untuk
        pembaruan real-time.
      operationId: get_v3_sessions
      parameters:
        - name: session_kind
          in: query
          required: false
          description: >-
            Jenis sesi mana yang akan dicantumkan: `user` (khusus KYC, default),
            `business` (khusus KYB), atau `all` (keduanya, digabungkan - lihat
            deskripsi untuk semantik paginasi gabungan). Pencocokan bersifat
            tidak peka huruf besar/kecil (`BUSINESS` berfungsi); nilai apa pun
            selain variasi huruf dari `user`/`business`/`all` akan mengembalikan
            `400`.
          schema:
            type: string
            enum:
              - user
              - business
              - all
            default: user
          example: all
        - name: limit
          in: query
          required: false
          description: >-
            Jumlah baris maksimum per halaman (per jenis saat
            `session_kind=all`). Defaultnya 50.
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          example: 20
        - name: offset
          in: query
          required: false
          description: >-
            Jumlah baris yang dilewati sebelum baris pertama yang dikembalikan.
            Default-nya 0. Disarankan mengikuti URL `next`/`previous` dari
            respons.
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          example: 20
        - name: status
          in: query
          required: false
          description: >-
            Daftar status sesi yang dipisahkan dengan koma untuk disertakan,
            misalnya `Approved,In Review`. Nilai bersifat case-sensitive; lihat
            [Status Verifikasi](/id/integration/verification-statuses). Nilai
            yang tidak dikenal tidak akan cocok dengan apa pun.
          schema:
            type: string
          example: Approved,In Review
        - name: vendor_data
          in: query
          required: false
          description: >-
            Filter kecocokan persis pada `vendor_data` yang Anda kirim saat
            pembuatan sesi (pengenal pengguna/bisnis Anda sendiri). Untuk
            kecocokan sebagian, gunakan `search` sebagai gantinya.
          schema:
            type: string
          example: your-user-id-123
        - name: search
          in: query
          required: false
          description: >-
            Referensi lengkap yang ditampilkan seperti `S-0001` (pengguna) atau
            `B-0001` (bisnis) hanya cocok dengan nomor dan jenis sesi tersebut;
            angka nol di awal dan huruf besar/kecil tidak memengaruhi
            pencocokan. Pencarian teks bebas pintar. UUID lengkap cocok dengan
            `session_id`; input numerik cocok dengan awalan nomor sesi, nomor
            dokumen/identitas pribadi, awalan telepon, atau `vendor_data`; input
            yang memuat `@` cocok dengan awalan email; teks lainnya cocok dengan
            nama (tidak sensitif aksen) dan `vendor_data`. Teks bebas yang
            memuat digit juga cocok dengan kolom pencarian nomor
            dokumen/identitas pribadi dan awalan nomor sesi.
          schema:
            type: string
          example: jane doe
        - name: workflow_id
          in: query
          required: false
          description: >-
            UUID alur kerja yang dipisahkan koma (temukan di halaman Alur Kerja
            di Konsol). UUID yang salah format dalam daftar akan diabaikan; jika
            tidak ada yang valid, hasilnya kosong.
          schema:
            type: string
          example: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
        - name: date_from
          in: query
          required: false
          description: >-
            Hanya sesi yang dibuat pada atau setelah tanggal ini (UTC), format
            `YYYY-MM-DD`. Format tanggal yang salah akan mengembalikan `400`.
          schema:
            type: string
            format: date
          example: '2026-06-01'
        - name: date_to
          in: query
          required: false
          description: >-
            Hanya sesi yang dibuat hingga tanggal ini (UTC), format
            `YYYY-MM-DD`. Untuk baris KYC, seluruh hari disertakan; untuk baris
            KYB, perbandingannya adalah `created_at <= date_to` (tengah malam),
            jadi gunakan tanggal hari berikutnya untuk menyertakan sesi KYB satu
            hari penuh.
          schema:
            type: string
            format: date
          example: '2026-06-30'
        - name: tags
          in: query
          required: false
          schema:
            type: string
          description: >-
            ID tag yang dipisahkan dengan koma (`tags` dari aplikasi Anda).
            Mengembalikan sesi yang memuat salah satu di antaranya. ID yang
            bukan UUID valid akan diabaikan, dan jika tidak ada yang valid,
            daftarnya kosong.
        - name: decided_from
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: >-
            Tanggal dan waktu ISO 8601. Mengembalikan sesi yang statusnya
            terakhir berubah pada atau setelah waktu tersebut. Filter ini
            menyaring berdasarkan waktu perubahan status terakhir, bukan waktu
            pembuatan.
        - name: decided_to
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: >-
            Datetime ISO 8601. Mengembalikan sesi yang statusnya terakhir
            berubah sebelum waktu tersebut. Gabungkan dengan `decided_from`
            untuk jendela setengah terbuka.
        - name: country
          in: query
          required: false
          description: >-
            Filter negara yang dipisahkan koma. Untuk baris KYC: kode ISO 3166-1
            alpha-3 dari negara penerbit dokumen identitas (misalnya `ESP,USA`),
            yang mungkin berbeda dari kewarganegaraan. Untuk baris KYB: kode
            negara dari registri perusahaan.
          schema:
            type: string
          example: ESP,USA
        - name: document_type
          in: query
          required: false
          description: >-
            Kode jenis dokumen identitas yang dipisahkan koma yang diverifikasi
            dalam sesi (hanya baris KYC): `P` (Paspor), `ID` (Kartu Identitas),
            `DL` (Surat Izin Mengemudi), `RP` (Izin Tinggal), `SSC` (Kartu
            Jaminan Sosial), `HIC` (Kartu Asuransi Kesehatan), `WP` (Izin
            Kerja), `TC` (Kartu Pajak), `VISA`, `PSC` (Kartu Layanan Publik),
            `BC` (Akta Kelahiran), `OTHER`. Perhatikan bahwa kolom respons
            `document_type` berisi nama tampilan, bukan kodenya.
          schema:
            type: string
          example: P,ID
        - name: document_name
          in: query
          required: false
          description: >-
            Nama dokumen persis; beberapa nama dapat diteruskan dipisahkan
            dengan koma, tetapi nilainya hanya dipisahkan dengan koma jika
            berisi lebih dari satu pemisah ` - ` (nama tunggal dengan koma di
            dalamnya dicocokkan secara utuh). Nama sesuai dengan yang dikenali
            oleh verifikasi dokumen (sisi depan atau belakang), misalnya `Spain
            - Id Card (2021)`. Baris KYC saja.
          schema:
            type: string
          example: Spain - Id Card (2021)
        - name: region
          in: query
          required: false
          description: >-
            Nilai wilayah/negara bagian dokumen yang dipisahkan koma (untuk
            dokumen yang diterbitkan per wilayah, seperti surat izin mengemudi
            AS). Hanya baris KYC.
          schema:
            type: string
          example: CA,TX
        - name: didit_internal_id
          in: query
          required: false
          description: >-
            Filter berdasarkan pengidentifikasi pengguna internal Didit (kolom
            respons `didit_internal_id`) untuk mencantumkan semua sesi dari satu
            pengguna terverifikasi. Harus berupa UUID yang valid; nilai yang
            salah format mengembalikan `400`. Hanya baris KYC.
          schema:
            type: string
            format: uuid
          example: d9e78474-6c8d-4f2a-bb90-6f5c2f3a1147
        - name: session_type
          in: query
          required: false
          description: >-
            Saluran pembuatan sesi yang dipisahkan dengan koma: `API`, `HOSTED`,
            `MIGRATED`. Nilai khusus `ALL` (atau tidak menyertakan parameter)
            menonaktifkan filter. Hanya baris KYC.
          schema:
            type: string
          example: HOSTED
        - name: api_service
          in: query
          required: false
          description: >-
            Filter sesi API mandiri berdasarkan layanan. Nilai yang tidak valid
            mengembalikan `400`. Hanya baris KYC.
          schema:
            type: string
            enum:
              - ID_VERIFICATION
              - FACE_MATCH
              - AGE_ESTIMATION
              - FACE_SEARCH
              - POA
              - AML
              - KYB_REGISTRY
              - PASSIVE_LIVENESS
              - DATABASE_VALIDATION
              - PHONE_VERIFICATION
              - EMAIL_VERIFICATION
          example: AML
        - name: screened_full_name
          in: query
          required: false
          description: >-
            Pencarian nama tidak peka aksen di dalam data yang diskrining pada
            Skrining AML dan Validasi Database. Jika digabungkan dengan
            `api_service=AML` atau `api_service=DATABASE_VALIDATION`, pencarian
            dibatasi pada data yang diskrining fitur tersebut. Hanya baris KYC.
          schema:
            type: string
          example: Jane Doe
        - name: warning
          in: query
          required: false
          description: >-
            Kode risiko peringatan yang dipisahkan dengan koma; mengembalikan
            sesi yang memicu salah satu di antaranya (misalnya
            `POSSIBLE_FRAUD`). Kode risiko dicantumkan per fitur dalam
            [dokumentasi peringatan](/id/integration/webhooks). Berlaku untuk
            baris KYC dan, dengan kode peringatan bisnis, untuk baris KYB.
          schema:
            type: string
          example: POSSIBLE_FRAUD
        - name: status_initialized_as_in_review
          in: query
          required: false
          description: >-
            Jika `true`, hanya sesi yang keputusannya awalnya berstatus `In
            Review` (berguna untuk mengaudit volume peninjauan manual). Baris
            KYC saja.
          schema:
            type: boolean
          example: true
        - name: is_kyc_to_be_reviewed
          in: query
          required: false
          description: >-
            `true` mengembalikan sesi yang verifikasi dokumennya ditandai untuk
            peninjauan manual; `false` mengembalikan sesi dengan verifikasi
            dokumen yang secara eksplisit tidak ditandai. Jangan sertakan untuk
            menonaktifkan. Hanya baris KYC.
          schema:
            type: boolean
          example: true
        - name: euuid
          in: query
          required: false
          description: >-
            Filter berdasarkan euuid pengguna akhir (UUID yang ditetapkan untuk
            pengguna yang melakukan verifikasi, digunakan oleh deep link
            Console). Harus berupa UUID yang valid; nilai yang salah format
            mengembalikan kesalahan kolom 400. Hanya baris KYC.
          schema:
            type: string
            format: uuid
          example: 0f8fad5b-d9cb-469f-a165-70867728950e
        - name: organization_name
          in: query
          required: false
          description: >-
            Nama organisasi yang dipisahkan dengan koma. Berorientasi konsol;
            dengan kunci API (sudah dibatasi pada satu aplikasi), ini hanya
            cocok dengan nama organisasi Anda sendiri.
          schema:
            type: string
          example: Acme Inc
      responses:
        '200':
          description: >-
            Daftar sesi terpaginasi. Item `results` berupa baris KYC, baris KYB,
            atau keduanya tergantung pada `session_kind`; bedakan dengan kolom
            `session_kind` di setiap baris.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    description: >-
                      Jumlah sesi yang cocok dengan filter: tepat hingga 100 dan
                      dibatasi maksimal 100 setelahnya, sehingga jangan gunakan
                      sebagai total keseluruhan. Gunakan `next` untuk mengetahui
                      apakah halaman berikutnya masih ada. Untuk
                      `session_kind=all`, ini adalah jumlah kedua jenis,
                      masing-masing dibatasi maksimal 100.
                    example: 2
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL absolut halaman berikutnya, atau `null` di halaman
                      terakhir.
                    example: >-
                      https://verification.didit.me/v3/sessions/?limit=20&offset=20
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      URL absolut halaman sebelumnya, atau `null` di halaman
                      pertama.
                    example: null
                  results:
                    type: array
                    description: >-
                      Baris sesi, terbaru terlebih dahulu. Dengan
                      `session_kind=all`, baris KYC muncul lebih dulu, kemudian
                      baris KYB.
                    items:
                      oneOf:
                        - $ref: '#/components/schemas/UserSessionListItem'
                        - $ref: '#/components/schemas/BusinessSessionListItem'
                      discriminator:
                        propertyName: session_kind
                        mapping:
                          user: '#/components/schemas/UserSessionListItem'
                          business: '#/components/schemas/BusinessSessionListItem'
              examples:
                KYC sessions (default):
                  summary: session_kind=user - satu sesi selesai dan satu belum dimulai
                  value:
                    count: 2
                    next: null
                    previous: null
                    results:
                      - session_id: 5b3720ed-d429-42ef-b67f-37ea805f48ee
                        session_kind: user
                        session_number: 720
                        session_url: https://verify.didit.me/session/CuXoBYCYVO5Y
                        portrait_image: >-
                          https://<media-host>/portraits/5b3720ed.jpg?X-Amz-Expires=3600&X-Amz-Signature=...
                        document_type: Passport
                        full_name: Jane Marie Doe
                        country: ESP
                        status: Approved
                        vendor_data: your-user-id-123
                        didit_internal_id: d9e78474-6c8d-4f2a-bb90-6f5c2f3a1147
                        created_at: '2026-06-09T12:26:54.328364Z'
                        features:
                          - feature: ID_VERIFICATION
                            status: Approved
                          - feature: LIVENESS
                            status: Approved
                          - feature: FACE_MATCH
                            status: Approved
                          - feature: AML
                            status: Approved
                          - feature: IP_ANALYSIS
                            status: Approved
                        phone_number:
                          number: '+14155552671'
                          is_verified: true
                        email_address:
                          email: jane@example.com
                          is_verified: true
                        additional_details:
                          aml:
                            total_hits: 0
                            entity_type: person
                            is_adverse_media_fetched: false
                          liveness:
                            method: PASSIVE
                            score: 0.98
                          face_match:
                            score: 0.95
                      - session_id: 038ad62f-5ebd-46c2-afe9-4b2956bf687f
                        session_kind: user
                        session_number: 719
                        session_url: https://verify.didit.me/session/7RGKiO6ioGH6
                        portrait_image: null
                        document_type: null
                        full_name: null
                        country: null
                        status: Not Started
                        vendor_data: your-user-id-124
                        didit_internal_id: eb4e679d-ca4b-461f-9685-687bac29ebdb
                        created_at: '2026-06-09T08:02:23.343053Z'
                        features:
                          - feature: ID_VERIFICATION
                            status: Not Finished
                          - feature: LIVENESS
                            status: Not Finished
                          - feature: FACE_MATCH
                            status: Not Finished
                          - feature: AML
                            status: Not Finished
                          - feature: IP_ANALYSIS
                            status: Not Finished
                        phone_number: null
                        email_address: null
                        additional_details: null
                Mixed KYC + KYB (session_kind=all):
                  summary: session_kind=all - baris KYC diikuti oleh baris KYB
                  value:
                    count: 2
                    next: null
                    previous: null
                    results:
                      - session_id: 5b3720ed-d429-42ef-b67f-37ea805f48ee
                        session_kind: user
                        session_number: 720
                        session_url: https://verify.didit.me/session/CuXoBYCYVO5Y
                        portrait_image: null
                        document_type: Identity Card
                        full_name: Jane Marie Doe
                        country: ESP
                        status: In Review
                        vendor_data: your-user-id-123
                        didit_internal_id: d9e78474-6c8d-4f2a-bb90-6f5c2f3a1147
                        created_at: '2026-06-09T12:26:54.328364Z'
                        features:
                          - feature: ID_VERIFICATION
                            status: In Review
                          - feature: LIVENESS
                            status: Approved
                        phone_number: null
                        email_address: null
                        additional_details:
                          liveness:
                            method: PASSIVE
                            score: 0.98
                      - session_id: 8a1f63c2-1b9e-4f3a-9c41-2f6a1f0b7d52
                        session_kind: business
                        session_number: 42
                        status: Approved
                        vendor_data: your-company-id-77
                        created_at: '2026-06-08T09:14:02.118450Z'
                        workflow_id: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
                        workflow_type: kyb
                        workflow_label: Standard KYB
                        company_name: Acme Holdings S.L.
                        registration_number: B12345678
                        country: ES
        '301':
          description: >-
            Alihkan ke URL kanonis berakhiran garis miring. Dikembalikan saat
            jalur permintaan adalah `/v3/sessions` (tanpa garis miring akhir);
            header `Location` mengarah ke `/v3/sessions/` dengan query string
            tetap dipertahankan. Klien GET biasanya mengikutinya secara
            otomatis.
        '400':
          description: >-
            Parameter kueri tidak valid. Body berupa objek yang diberi kunci
            berdasarkan parameter yang bermasalah.
          content:
            application/json:
              examples:
                Invalid session_kind:
                  summary: session_kind bukan salah satu dari user/business/all
                  value:
                    session_kind: Must be "user", "business", or "all".
                Invalid date:
                  summary: date_from/date_to salah format
                  value:
                    date_from:
                      - Enter a valid date.
                Invalid didit_internal_id:
                  summary: didit_internal_id bukan sebuah UUID
                  value:
                    didit_internal_id:
                      - Enter a valid UUID.
                Invalid api_service:
                  summary: api_service tidak ada dalam pilihan yang diizinkan
                  value:
                    api_service:
                      - >-
                        Select a valid choice. FOO is not one of the available
                        choices.
        '403':
          description: >-
            Kunci API tidak ada, salah format, atau dicabut. Kunci yang tidak
            ada mengembalikan `403`; kunci yang salah, dicabut, atau kedaluwarsa
            mengembalikan `401`.


            **Aplikasi yang dihapus:** selama beberapa menit setelah aplikasi
            dihapus, permintaan yang dibuat dengan salah satu kunci API-nya
            dapat merespons `{"detail": "This application was deleted.", "code":
            "application_deleted"}`. Jangan coba lagi: aplikasi dan kunci
            API-nya sudah tidak ada. Setelah beberapa menit tersebut, kunci akan
            ditolak seperti kunci tidak valid lainnya.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: You do not have permission to perform this action.
                  code:
                    type: string
                    description: >-
                      Alasan yang dapat dibaca mesin, hanya ada pada beberapa
                      kegagalan. `application_deleted`: kunci API milik aplikasi
                      yang telah dihapus.
                    example: application_deleted
                required:
                  - detail
              examples:
                Forbidden:
                  summary: x-api-key tidak ada atau tidak valid
                  value:
                    detail: You do not have permission to perform this action.
                ApplicationDeleted:
                  summary: Kunci API dari aplikasi yang dihapus
                  value:
                    detail: This application was deleted.
                    code: application_deleted
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -s
            'https://verification.didit.me/v3/sessions/?status=Approved,In%20Review&date_from=2026-06-01&limit=20'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.sessions.list():
                print(item)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            for await (const item of didit.sessions.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Sessions.ListAutoPaging(ctx, didit.SessionsListParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            for (var item : client.sessions().list()) {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            foreach ($didit->sessions->list() as $item) {
                print_r($item);
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            didit.sessions.list.auto_paging_each do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY.
            using var client = new DiditClient();

            await foreach (var item in await client.Sessions.ListAsync())
            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    UserSessionListItem:
      title: 'KYC session row (session_kind: user)'
      type: object
      description: >-
        Baris ringkasan untuk sesi Verifikasi Pengguna (KYC). Kolom identitas
        (`full_name`, `country`, `document_type`, `portrait_image`, kolom
        kontak) diisi secara bertahap saat pengguna menyelesaikan langkah
        verifikasi, dan bernilai `null` hingga langkah terkait selesai. Kolom
        yang dibatasi oleh konfigurasi atribut respons alur kerja juga
        dikembalikan sebagai `null`.
      required:
        - session_id
        - session_kind
        - session_number
        - session_url
        - portrait_image
        - document_type
        - full_name
        - country
        - status
        - vendor_data
        - didit_internal_id
        - created_at
        - features
        - phone_number
        - email_address
        - additional_details
      properties:
        session_id:
          type: string
          format: uuid
          description: >-
            Pengenal unik sesi verifikasi. Gunakan dengan `GET
            /v3/session/{sessionId}/decision/` untuk mengambil seluruh payload
            keputusan.
          example: 5b3720ed-d429-42ef-b67f-37ea805f48ee
        session_kind:
          type: string
          enum:
            - user
          description: >-
            Diskriminator baris. Selalu `"user"` untuk baris KYC; baris
            Verifikasi Bisnis (KYB) memiliki `"business"` dan bentuk yang
            berbeda.
          example: user
        session_number:
          type: integer
          description: >-
            Nomor urut sesi yang mudah dibaca manusia di dalam aplikasi Anda.
            Juga dicocokkan oleh parameter `search`.
          example: 720
        session_url:
          type: string
          nullable: true
          description: >-
            URL verifikasi yang di-hosting yang dibuka pengguna akhir untuk
            menyelesaikan alur. `null` jika sesi tidak memiliki URL yang
            di-hosting.
          example: https://verify.didit.me/session/CuXoBYCYVO5Y
        portrait_image:
          type: string
          nullable: true
          description: >-
            URL presigned yang akan kedaluwarsa dari foto potret terbaik yang
            tersedia: foto chip NFC jika tersedia, jika tidak foto potret
            dokumen identitas, jika tidak gambar referensi liveness. `null`
            hingga salah satunya ada. Unduh dengan segera; tautan akan
            kedaluwarsa.
          example: >-
            https://<media-host>/portraits/5b3720ed.jpg?X-Amz-Expires=3600&X-Amz-Signature=...
        document_type:
          type: string
          nullable: true
          enum:
            - Passport
            - Identity Card
            - Driver's License
            - Residence Permit
            - Health Insurance Card
            - Tax Card
          description: >-
            Jenis dokumen identitas terverifikasi yang dapat dibaca manusia.
            `null` sebelum verifikasi dokumen selesai, dan juga `null` setelah
            selesai jika kode yang diverifikasi tidak memiliki pemetaan tampilan
            (`SSC`, `WP`, `VISA`, `PSC`, `BC`, `OTHER`). Catatan: parameter
            kueri `document_type` memfilter berdasarkan kode pendek (`P`, `ID`,
            `DL`, `RP`, ...), bukan berdasarkan nilai tampilan ini.
          example: Passport
        full_name:
          type: string
          nullable: true
          description: >-
            Nama lengkap terbaik yang tersedia untuk sesi tersebut, diselesaikan
            berdasarkan urutan: OCR dokumen identitas, data hasil skrining AML,
            data hasil skrining validasi database, dokumen bukti alamat,
            kemudian detail yang diharapkan yang diberikan saat pembuatan sesi.
            `null` jika belum ada yang tersedia.
          example: Jane Marie Doe
        country:
          type: string
          nullable: true
          description: >-
            Negara ISO 3166-1 alpha-3 yang terkait dengan sesi, diselesaikan
            secara berurutan: negara penerbit dokumen ID, negara penerbit
            validasi database, negara penerbit bukti alamat, detail yang
            diharapkan, kemudian negara telepon yang terverifikasi. Mungkin
            berbeda dari kewarganegaraan.
          example: ESP
        status:
          type: string
          enum:
            - Not Started
            - In Progress
            - Approved
            - Declined
            - In Review
            - Expired
            - Abandoned
            - Kyc Expired
            - Resubmitted
            - Awaiting User
          description: >-
            Status sesi keseluruhan. Lihat halaman [Status
            Verifikasi](/id/integration/verification-statuses) untuk mengetahui
            siklus hidupnya.
          example: Approved
        vendor_data:
          type: string
          nullable: true
          description: >-
            Pengenal Anda sendiri untuk pengguna akhir, dikembalikan persis
            seperti yang dikirimkan saat pembuatan sesi.
          example: your-user-id-123
        didit_internal_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            Pengidentifikasi internal Didit untuk profil pengguna terverifikasi
            di balik sesi ini. Stabil di berbagai sesi dari pengguna yang sama;
            dapat difilter melalui parameter kueri `didit_internal_id`.
          example: d9e78474-6c8d-4f2a-bb90-6f5c2f3a1147
        created_at:
          type: string
          format: date-time
          description: Stempel waktu UTC saat sesi dibuat.
          example: '2026-06-09T12:26:54.328364Z'
        features:
          type: array
          description: >-
            Status per fitur untuk setiap langkah verifikasi yang
            dikonfigurasikan dalam alur kerja sesi, sesuai urutan alur kerja.
          items:
            type: object
            required:
              - feature
              - status
            properties:
              feature:
                type: string
                enum:
                  - ID_VERIFICATION
                  - NFC
                  - LIVENESS
                  - FACE_MATCH
                  - POA
                  - QUESTIONNAIRE
                  - EMAIL_VERIFICATION
                  - PHONE
                  - AML
                  - IP_ANALYSIS
                  - AGE_ESTIMATION
                  - DATABASE_VALIDATION
                  - GEOLOCATION
                description: Pengenal fitur verifikasi.
                example: ID_VERIFICATION
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: >-
                  Status fitur ini. `Not Finished` hingga langkah tersebut
                  selesai.
                example: Approved
        phone_number:
          type: object
          nullable: true
          description: >-
            Telepon yang terkait dengan sesi: telepon terverifikasi saat
            verifikasi telepon dijalankan, jika tidak, telepon kontak yang
            diberikan saat pembuatan sesi. Bernilai `null` jika keduanya tidak
            ada.
          required:
            - number
            - is_verified
          properties:
            number:
              type: string
              description: Nomor telepon dalam format E.164.
              example: '+14155552671'
            is_verified:
              type: boolean
              description: '`true` hanya jika fitur verifikasi telepon menyetujui nomor ini.'
              example: true
        email_address:
          type: object
          nullable: true
          description: >-
            Email yang terkait dengan sesi: email yang diverifikasi saat
            verifikasi email dijalankan, atau email kontak yang diberikan saat
            pembuatan sesi. `null` jika keduanya tidak ada.
          required:
            - email
            - is_verified
          properties:
            email:
              type: string
              format: email
              example: jane@example.com
            is_verified:
              type: boolean
              description: '`true` hanya jika fitur verifikasi email menyetujui alamat ini.'
              example: true
        additional_details:
          type: object
          nullable: true
          description: >-
            Ekstra ringkas per fitur. Hanya fitur yang menghasilkan data yang
            muncul sebagai kunci; `null` jika tidak ada fitur yang menghasilkan
            ekstra. Kolom yang dikecualikan oleh konfigurasi atribut respons
            alur kerja akan dihilangkan.
          properties:
            aml:
              type: object
              description: Hadir ketika Skrining AML dijalankan.
              properties:
                total_hits:
                  type: integer
                  description: Jumlah kecocokan skrining AML.
                  example: 0
                entity_type:
                  type: string
                  description: Jenis entitas yang diskrining.
                  example: person
                is_adverse_media_fetched:
                  type: boolean
                  example: false
                screened_data:
                  type: object
                  description: >-
                    Subset dari data yang diskrining. Hanya kunci yang tidak
                    kosong yang disertakan.
                  properties:
                    nationality:
                      type: string
                      example: ESP
                    document_number:
                      type: string
                      example: XX1234567
                    date_of_birth:
                      type: string
                      example: '1990-05-21'
            database_validation:
              type: object
              description: Hadir ketika Validasi Database dijalankan.
              properties:
                validation_type:
                  type: string
                  example: DOCUMENT_VALIDATION
                match_type:
                  type: string
                  example: FULL_MATCH
                identification_number:
                  type: string
                  description: >-
                    Nomor pajak, pribadi, atau dokumen yang divalidasi (pertama
                    yang tersedia).
                  example: 12345678Z
            poa:
              type: object
              description: Hadir ketika Bukti Alamat dijalankan.
              properties:
                document_type:
                  type: string
                  example: UTILITY_BILL
                issuer:
                  type: string
                  example: Energy Co
                address:
                  type: string
                  example: Calle Mayor 1, 28013 Madrid
                name_on_document:
                  type: string
                  example: Jane Marie Doe
            liveness:
              type: object
              description: Hadir ketika Deteksi Liveness dijalankan.
              properties:
                method:
                  type: string
                  example: PASSIVE
                score:
                  type: number
                  description: Skor keyakinan liveness, dibulatkan menjadi 2 desimal.
                  example: 0.98
            face_match:
              type: object
              description: Hadir ketika Pencocokan Wajah dijalankan.
              properties:
                score:
                  type: number
                  description: >-
                    Skor kemiripan pencocokan wajah, dibulatkan menjadi 2
                    desimal.
                  example: 0.95
                source_image:
                  type: string
                  description: >-
                    URL yang memiliki masa kedaluwarsa (presigned) dari gambar
                    wajah sumber.
                  example: https://<media-host>/faces/source.jpg?X-Amz-Expires=3600&...
                target_image:
                  type: string
                  description: >-
                    URL yang memiliki masa kedaluwarsa (presigned) dari gambar
                    wajah target.
                  example: https://<media-host>/faces/target.jpg?X-Amz-Expires=3600&...
            phone_verification:
              type: object
              description: Hadir ketika Verifikasi Telepon dijalankan.
              properties:
                country_code:
                  type: string
                  description: Negara ISO 3166-1 alpha-2 dari nomor telepon.
                  example: US
                is_temporary:
                  type: boolean
                  example: false
                is_ported:
                  type: boolean
                  example: false
                is_blocked:
                  type: boolean
                  example: false
            email_verification:
              type: object
              description: Hadir saat Verifikasi Email dijalankan.
              properties:
                is_breached:
                  type: boolean
                  example: false
                is_disposable:
                  type: boolean
                  example: false
                is_undeliverable:
                  type: boolean
                  example: false
                is_blocklisted:
                  type: boolean
                  example: false
        assignee:
          type: object
          nullable: true
          description: >-
            Peninjau Console yang ditugaskan ke sesi, atau `null` jika tidak ada
            yang memegangnya.
          properties:
            email:
              type: string
              format: email
            assigned_at:
              type: string
              format: date-time
              nullable: true
        waiting_since:
          type: string
          format: date-time
          nullable: true
          description: >-
            Waktu sesi mulai menunggu peninjauan. `null` kecuali sesi berstatus
            `In Review`.
        sla_due_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Waktu jatuh tempo peninjauan, dari tenggat peninjauan yang
            ditetapkan untuk aplikasi Anda di Console. `null` kecuali sesi
            berstatus `In Review` dan tenggat telah ditetapkan.
        top_warnings:
          type: array
          description: >-
            Hingga beberapa peringatan terpenting dari sesi tersebut, untuk
            tampilan triase cepat. Daftar lengkap ada dalam keputusan.
          items:
            type: object
            properties:
              risk:
                type: string
                description: Kode peringatan, misalnya `FACE_MATCH_LOW_SIMILARITY`.
              feature:
                type: string
                description: Fitur yang memicunya.
              log_type:
                type: string
                nullable: true
                description: '`error` atau `warning`; `null` untuk entri lama.'
              short_description:
                type: string
        warnings_count:
          type: integer
          description: Jumlah peringatan pada sesi.
    BusinessSessionListItem:
      title: 'KYB session row (session_kind: business)'
      type: object
      description: >-
        Baris ringkasan untuk sesi Verifikasi Bisnis (KYB). Dikembalikan hanya
        jika `session_kind` bernilai `business` atau `all`.
      required:
        - session_id
        - session_kind
        - session_number
        - status
        - vendor_data
        - created_at
        - workflow_id
        - workflow_type
        - workflow_label
        - company_name
        - registration_number
        - country
      properties:
        session_id:
          type: string
          format: uuid
          description: Pengenal unik sesi verifikasi bisnis.
          example: 8a1f63c2-1b9e-4f3a-9c41-2f6a1f0b7d52
        session_kind:
          type: string
          enum:
            - business
          description: Diskriminator baris. Selalu `"business"` untuk baris KYB.
          example: business
        session_number:
          type: integer
          description: >-
            Nomor urut sesi bisnis yang mudah dibaca manusia di dalam aplikasi
            Anda. Diberi nomor secara terpisah dari sesi KYC.
          example: 42
        status:
          type: string
          enum:
            - Not Started
            - In Progress
            - Approved
            - Declined
            - In Review
            - Expired
            - Abandoned
            - Kyc Expired
            - Resubmitted
            - Awaiting User
          description: >-
            Status sesi keseluruhan. Lihat halaman [Status
            Verifikasi](/id/integration/verification-statuses).
          example: Approved
        vendor_data:
          type: string
          nullable: true
          description: >-
            Pengenal Anda sendiri untuk bisnis, dikembalikan persis seperti yang
            dikirimkan saat pembuatan sesi.
          example: your-company-id-77
        created_at:
          type: string
          format: date-time
          description: Stempel waktu UTC saat sesi dibuat.
          example: '2026-06-08T09:14:02.118450Z'
        workflow_id:
          type: string
          format: uuid
          nullable: true
          description: Pengenal alur kerja yang digunakan untuk membuat sesi ini.
          example: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
        workflow_type:
          type: string
          nullable: true
          description: Jenis alur kerja. `kyb` untuk alur kerja bisnis.
          example: kyb
        workflow_label:
          type: string
          nullable: true
          description: Nama tampilan alur kerja.
          example: Standard KYB
        company_name:
          type: string
          nullable: true
          description: >-
            Nama perusahaan yang sedang diverifikasi, dari perusahaan di
            registri yang ditautkan ke sesi. Bernilai `null` hingga perusahaan
            dipilih.
          example: Acme Holdings S.L.
        registration_number:
          type: string
          nullable: true
          description: >-
            Nomor registrasi perusahaan dari perusahaan di registri yang
            ditautkan ke sesi.
          example: B12345678
        country:
          type: string
          nullable: true
          description: Kode negara dari registri perusahaan yang ditautkan ke sesi.
          example: ES
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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