Langsung ke konten utama
POST
curl

Ikhtisar

Membuat entitas Pengguna secara eksplisit sebelum sesi apa pun dijalankan. Entitas yang dikembalikan berada dalam status ACTIVE kecuali Anda menentukan lain. Secara opsional, panggilan yang sama juga mengirim email berisi tautan verifikasi kepada orang tersebut (lihat Kirim tautan verifikasi).

Kapan digunakan

  • Isi metadata awal (tingkat, sumber pendaftaran, tag internal) sebelum pelanggan melakukan verifikasi.
  • Migrasi dari vendor lain: buat ulang daftar pengguna yang sudah ada di Didit agar riwayat dan analitik dimulai dari titik awal yang diketahui.
  • Impor wajah profil tepercaya: buat Pengguna terlebih dahulu, lalu panggil Unggah Wajah Pengguna dengan didit_internal_id yang dikembalikan.
  • Kasus penggunaan khusus transaksi: daftarkan Pengguna dengan vendor_data agar Anda dapat mengirim transaksi tanpa pernah menjalankan sesi Verifikasi Pengguna (KYC).
  • Undang seseorang untuk memverifikasi: buat orang tersebut dan kirim tautan verifikasi melalui email dalam satu panggilan.

Detail kontak

Anda dapat mengirim detail kontak orang tersebut bersama kolom profil. first_name dan last_name digabungkan dengan spasi menjadi full_name jika Anda tidak mengirim full_name. email dan phone_number disimpan di metadata.contact, dan country disimpan di metadata.address. country menerima kode ISO 3166, alpha-2 atau alpha-3 (ES atau ESP), dan disimpan dalam huruf kapital. Jika metadata yang Anda kirim sudah memiliki nilai contact atau address yang bukan objek JSON, Didit tidak menimpanya: panggilan mengembalikan 400 pada kolom kontak atau alamat yang memerlukannya.

Kirim tautan verifikasi

Atur send_verification_link ke true untuk mengundang orang tersebut memverifikasi dalam panggilan yang sama. Didit membuat sesi verifikasi untuk orang tersebut pada alur kerja di workflow_id dan mengirimkan tautannya ke email mereka. Gunakan language untuk memilih bahasa email; jika Anda tidak mengisinya, bahasanya adalah bahasa Inggris.
  • email dan workflow_id wajib diisi jika menyertakan tautan, dan alur kerja harus memverifikasi orang: alur kerja Verifikasi Bisnis (KYB) mengembalikan 400.
  • Sesi melewati pemeriksaan yang sama dengan Buat Sesi. vendor_data yang masuk daftar blokir atau kredit yang tidak cukup mengembalikan 400.
  • Orang dan sesi dibuat bersamaan atau tidak sama sekali. Jika salah satu pemeriksaan gagal, tidak ada yang ditulis dan tidak ada email yang dikirim.
  • Respons memuat verification_link dengan session_id, session_number, status, url, workflow_id dari sesi, serta email tempat tautan dikirim. Tanpa tautan, verification_link bernilai null.

Catatan

  • vendor_data wajib diisi dan harus unik per aplikasi. Mencoba membuat duplikat akan mengembalikan error konflik. Gunakan PATCH /v3/users/{vendor_data}/ untuk memperbarui pengguna yang sudah ada.
  • vendor_data memiliki batas keras 2000 byte (dienkode UTF-8). Nilai yang melebihi batas itu mengembalikan error validasi 400, alih-alih diterima.
  • Kolom yang biasanya diturunkan dari sesi terverifikasi (full_name, date_of_birth) dapat diisi di sini, tetapi dapat ditimpa oleh sesi Verifikasi Pengguna (KYC) pertama yang disetujui.
  • Endpoint ini tidak menerima gambar wajah. Untuk melampirkan wajah impor yang tepercaya, gunakan POST /v3/organization/{organization_id}/application/{application_id}/vendor-users/by-id/{didit_internal_id}/faces/upload/ setelah endpoint ini mengembalikan didit_internal_id.
  • Pembuatan itu sendiri tidak mengirim webhook. Perubahan berikutnya pada pengguna mengirim user.data.updated atau user.status.updated.
  • Dengan send_verification_link, sesi baru memperbarui pengguna dalam panggilan yang sama, yang mengirim user.data.updated.

Izin

Rahasia utama dan kunci API dengan akses penuh selalu dapat memanggil endpoint ini. Kunci dengan akses kustom memerlukan izin tulis Orang (users). Dengan send_verification_link: true, kunci juga memerlukan izin tulis Sesi, karena panggilan membuat sesi dan memberikan tautannya. Tanpa izin tersebut, panggilan mengembalikan 403 dengan This API key has no write access to sessions. dan tidak ada yang ditulis. Kunci yang dibatasi pada alur kerja tertentu atau pada sesi yang disetujui tidak dapat mengakses endpoint ini. Peran dan izin di Konsol menentukan apa yang dapat dilakukan anggota tim di Konsol. Keduanya tidak dievaluasi untuk permintaan kunci API.

Terkait

Otorisasi

x-api-key
string
header
wajib

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.

Body

application/json
vendor_data
string
wajib

Pengidentifikasi unik Anda untuk pengguna ini (string bentuk bebas, BUKAN UUID). Harus unik di antara pengguna aplikasi; dicocokkan persis seperti yang dikirim.

full_name
string | null

Nama lengkap resmi pengguna.

Maximum string length: 512
display_name
string | null

Nama tampilan yang mudah dipahami yang ditampilkan di konsol (lebih diutamakan daripada full_name untuk tampilan UI).

Maximum string length: 255
date_of_birth
string<date> | null

Tanggal lahir dalam format YYYY-MM-DD.

status
enum<string>
default:ACTIVE

Status siklus hidup awal. Default-nya adalah ACTIVE.

Opsi yang tersedia:
ACTIVE,
FLAGGED,
BLOCKED
metadata
object | null

Objek JSON arbitrer yang Anda lampirkan ke pengguna. Defaultnya adalah {}.

approved_emails
string[]

Alamat email yang dipercaya sebelumnya untuk pengguna ini, mis. ["john@example.com"].

approved_phones
string[]

Nomor telepon yang dipercaya sebelumnya untuk pengguna ini, mis. ["+14155551234"].

issuing_states
string[]

Negara penerbit yang direkam sebelumnya (ISO 3166-1 alpha-3), mis. ["USA"].

first_name
string

Nama depan. Ketika full_name tidak dikirimkan, Didit menggabungkan first_name dan last_name dengan spasi menjadi full_name. Tidak dikembalikan sebagai kolom terpisah.

Maximum string length: 255
last_name
string

Nama keluarga. Digabungkan dengan first_name menjadi full_name ketika full_name tidak dikirimkan. Tidak dikembalikan sebagai kolom terpisah.

Maximum string length: 255
email
string<email>

Email kontak, disimpan di metadata.contact.email (ini menggantikan email yang Anda kirimkan di dalam metadata.contact). Wajib diisi jika send_verification_link bernilai true: tautan akan dikirim ke alamat ini. Jika metadata.contact bukan objek JSON, panggilan akan menghasilkan respons 400 pada kolom ini.

phone_number
string

Nomor telepon kontak, disimpan di metadata.contact.phone_number. Jika metadata.contact bukan objek JSON, permintaan akan mengembalikan respons 400 untuk kolom ini.

Maximum string length: 32
country
string

Negara sebagai kode ISO 3166, alpha-2 atau alpha-3 (ES atau ESP). Disimpan dalam huruf besar di metadata.address.country. Jika metadata.address bukan objek JSON, panggilan akan merespons 400 pada kolom ini.

Maximum string length: 3

Jika true, Didit membuat sesi verifikasi untuk orang tersebut pada workflow_id dan mengirimkan tautan melalui email ke email. Memerlukan email dan workflow_id. Kunci API dengan cakupan juga memerlukan izin tulis sessions.

workflow_id
string<uuid>

Alur kerja sesi verifikasi. Wajib diisi ketika send_verification_link bernilai true. Alur kerja ini harus memverifikasi perorangan: alur kerja Verifikasi Bisnis (KYB) akan ditolak. Jika tidak, parameter ini diabaikan.

language
string

Bahasa email verifikasi, sebagai kode bahasa yang didukung. Bahasa Inggris jika diabaikan. Diabaikan jika send_verification_link bukan true.

Maximum string length: 10

Respons

Pengguna dibuat. Data pengguna lengkap (bentuk yang sama seperti Dapatkan Pengguna), ditambah verification_link: sesi verifikasi yang dikirim melalui email oleh Didit saat send_verification_link bernilai true, jika tidak null.

Detail pengguna lengkap. Memperluas UserListItem dengan metadata, komentar, dan updated_at.

Sesi verifikasi yang dibuat dan dikirimkan Didit melalui email kepada orang tersebut. Selalu ada: null jika send_verification_link tidak bernilai true.

didit_internal_id
string<uuid>

UUID internal yang stabil dari Didit untuk pengguna ini.

vendor_data
string | null

Pengidentifikasi unik Anda untuk pengguna ini (diteruskan saat membuat sesi). Nilai ini dapat berupa null jika tidak ada pengidentifikasi vendor yang diberikan.

display_name
string | null

Nama tampilan kustom yang Anda tetapkan

full_name
string | null

Nama lengkap yang diekstrak dari dokumen yang diverifikasi

date_of_birth
string<date> | null
effective_name
string | null

Nama terbaik yang tersedia: display_name jika disetel, selain itu full_name

status
enum<string>

Status siklus hidup rekaman pengguna (BUKAN status sesi). ACTIVE adalah default, FLAGGED menandai pengguna untuk perhatian manual, BLOCKED mencegah sesi baru untuk vendor_data ini.

Opsi yang tersedia:
ACTIVE,
FLAGGED,
BLOCKED
portrait_image_url
string | null

URL presigned untuk foto potret pengguna (kedaluwarsa setelah beberapa jam)

session_count
integer

Jumlah total sesi verifikasi untuk pengguna ini

approved_count
integer

Jumlah sesi yang disetujui

declined_count
integer

Jumlah sesi yang ditolak

in_review_count
integer

Jumlah sesi dalam peninjauan

issuing_states
string[]

Kode ISO 3166-1 alpha-3 dari negara penerbit yang terlihat pada dokumen ID pengguna yang disetujui ini, misalnya ["USA", "ESP"]. Berupa array kosong jika tidak ada.

approved_emails
string[]

Alamat email terverifikasi yang dikumpulkan dari sesi pengguna ini yang disetujui, contoh ["john@example.com"].

approved_phones
string[]

Nomor telepon terverifikasi yang dikumpulkan dari sesi pengguna ini yang disetujui, contoh ["+14155551234"].

features
object

Status per-fitur agregat di semua sesi pengguna ini. Kunci yang memungkinkan: ID_VERIFICATION, NFC, LIVENESS, FACE_MATCH, POA, QUESTIONNAIRE, EMAIL_VERIFICATION, PHONE, AML, IP_ANALYSIS, AGE_ESTIMATION, DATABASE_VALIDATION. Nilai yang memungkinkan: Approved, Declined, In Review, Not Finished, Resub Requested.

features_list
object[]

Data yang sama dengan features, sebagai array berurutan dari objek {feature, status}.

last_session_at
string<date-time> | null

Cap waktu sesi terbaru

first_session_at
string<date-time> | null

Cap waktu sesi pertama

last_activity_at
string<date-time> | null

Cap waktu aktivitas terbaru pada pengguna ini (sesi, transaksi, perubahan status, pengeditan data, dll.).

tags
object[]

Penetapan tag. CATATAN: pada respons detail, setiap entri berupa objek tautan tag ({uuid, tag: {...}, added_by_email, added_by_name, created_at}), berbeda dengan format datar {uuid, name, color} yang digunakan pada respons daftar.

created_at
string<date-time>
metadata
object

JSON metadata kustom yang Anda lampirkan ke pengguna ini. Default adalah {}.

comments
object[]

Log aktivitas dan komentar untuk pengguna ini (perubahan status, pengeditan profil, catatan manual).

updated_at
string<date-time>
Terakhir diubah pada 7 November 2026