from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.create_kyb_party_draft(
"33333333-4444-5555-6666-777777777777",
entity_type="person",
first_name="Ana",
last_name="Lopez",
roles=["ubo", "director"],
date_of_birth="1984-06-12",
email="ana.lopez@example.com",
ownership_percent=60.0,
nationality="MEX",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.createKybPartyDraft("33333333-4444-5555-6666-777777777777", {
entity_type: "person",
first_name: "Ana",
last_name: "Lopez",
roles: ["ubo", "director"],
date_of_birth: "1984-06-12",
email: "ana.lopez@example.com",
ownership_percent: 60.0,
nationality: "MEX",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.CreateKYBPartyDraft(ctx, "33333333-4444-5555-6666-777777777777", didit.SessionsCreateKYBPartyDraftParams{
EntityType: "person",
FirstName: didit.String("Ana"),
LastName: didit.String("Lopez"),
Roles: didit.Some([]didit.SessionsCreateKYBPartyDraftParamsRoles{"ubo", "director"}),
DateOfBirth: didit.String("1984-06-12"),
Email: didit.String("ana.lopez@example.com"),
OwnershipPercent: didit.Float(60.0),
Nationality: "MEX",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.time.LocalDate;
import java.util.List;
import me.didit.Didit;
import me.didit.types.SessionsCreateKybPartyDraftParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().createKybPartyDraft("33333333-4444-5555-6666-777777777777", SessionsCreateKybPartyDraftParams.builder()
.entityType(SessionsCreateKybPartyDraftParams.EntityType.of("person"))
.firstName("Ana")
.lastName("Lopez")
.roles(List.of(SessionsCreateKybPartyDraftParams.Roles.of("ubo"), SessionsCreateKybPartyDraftParams.Roles.of("director")))
.dateOfBirth(LocalDate.parse("1984-06-12"))
.email("ana.lopez@example.com")
.ownershipPercent(60.0)
.nationality("MEX")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->createKybPartyDraft('33333333-4444-5555-6666-777777777777', [
'entity_type' => 'person',
'first_name' => 'Ana',
'last_name' => 'Lopez',
'roles' => ['ubo', 'director'],
'date_of_birth' => '1984-06-12',
'email' => 'ana.lopez@example.com',
'ownership_percent' => 60.0,
'nationality' => 'MEX',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.create_kyb_party_draft(
"33333333-4444-5555-6666-777777777777",
entity_type: "person",
first_name: "Ana",
last_name: "Lopez",
roles: ["ubo", "director"],
date_of_birth: "1984-06-12",
email: "ana.lopez@example.com",
ownership_percent: 60.0,
nationality: "MEX"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.CreateKybPartyDraftAsync("33333333-4444-5555-6666-777777777777", new SessionsCreateKybPartyDraftParams
{
EntityType = "person",
FirstName = "Ana",
LastName = "Lopez",
Roles = new SessionsCreateKybPartyDraftParamsRoles[] { "ubo", "director" },
DateOfBirth = "1984-06-12",
Email = "ana.lopez@example.com",
OwnershipPercent = 60.0,
Nationality = "MEX",
});
Console.WriteLine(JsonSerializer.Serialize(result));curl --request POST \
--url https://verification.didit.me/v3/session/{sessionId}/kyb/parties/drafts/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"entity_type": "person",
"first_name": "Ana",
"last_name": "Lopez",
"roles": [
"ubo",
"director"
],
"ownership_percent": 60,
"nationality": "MEX",
"email": "ana.lopez@example.com",
"date_of_birth": "1984-06-12"
}
'{
"draft_id": "5b0d7a52-9d3e-4f0c-8c6a-0e5f3a1b2c4d",
"created_at": "2026-10-31T10:00:00Z",
"updated_at": "2026-10-31T10:00:00Z",
"party": {
"entity_type": "person",
"first_name": "Ana",
"last_name": "Lopez",
"roles": [
"ubo",
"director"
],
"ownership_percent": 60,
"nationality": "MEX",
"email": "ana.lopez@example.com",
"date_of_birth": "1984-06-12"
}
}API Buat Draf Pihak Kunci KYB
Tambahkan orang atau perusahaan ke daftar pihak kunci sesi Verifikasi Bisnis (KYB) di Didit tanpa langsung mendeklarasikannya.
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.create_kyb_party_draft(
"33333333-4444-5555-6666-777777777777",
entity_type="person",
first_name="Ana",
last_name="Lopez",
roles=["ubo", "director"],
date_of_birth="1984-06-12",
email="ana.lopez@example.com",
ownership_percent=60.0,
nationality="MEX",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.createKybPartyDraft("33333333-4444-5555-6666-777777777777", {
entity_type: "person",
first_name: "Ana",
last_name: "Lopez",
roles: ["ubo", "director"],
date_of_birth: "1984-06-12",
email: "ana.lopez@example.com",
ownership_percent: 60.0,
nationality: "MEX",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.CreateKYBPartyDraft(ctx, "33333333-4444-5555-6666-777777777777", didit.SessionsCreateKYBPartyDraftParams{
EntityType: "person",
FirstName: didit.String("Ana"),
LastName: didit.String("Lopez"),
Roles: didit.Some([]didit.SessionsCreateKYBPartyDraftParamsRoles{"ubo", "director"}),
DateOfBirth: didit.String("1984-06-12"),
Email: didit.String("ana.lopez@example.com"),
OwnershipPercent: didit.Float(60.0),
Nationality: "MEX",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.time.LocalDate;
import java.util.List;
import me.didit.Didit;
import me.didit.types.SessionsCreateKybPartyDraftParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().createKybPartyDraft("33333333-4444-5555-6666-777777777777", SessionsCreateKybPartyDraftParams.builder()
.entityType(SessionsCreateKybPartyDraftParams.EntityType.of("person"))
.firstName("Ana")
.lastName("Lopez")
.roles(List.of(SessionsCreateKybPartyDraftParams.Roles.of("ubo"), SessionsCreateKybPartyDraftParams.Roles.of("director")))
.dateOfBirth(LocalDate.parse("1984-06-12"))
.email("ana.lopez@example.com")
.ownershipPercent(60.0)
.nationality("MEX")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->createKybPartyDraft('33333333-4444-5555-6666-777777777777', [
'entity_type' => 'person',
'first_name' => 'Ana',
'last_name' => 'Lopez',
'roles' => ['ubo', 'director'],
'date_of_birth' => '1984-06-12',
'email' => 'ana.lopez@example.com',
'ownership_percent' => 60.0,
'nationality' => 'MEX',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.create_kyb_party_draft(
"33333333-4444-5555-6666-777777777777",
entity_type: "person",
first_name: "Ana",
last_name: "Lopez",
roles: ["ubo", "director"],
date_of_birth: "1984-06-12",
email: "ana.lopez@example.com",
ownership_percent: 60.0,
nationality: "MEX"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.CreateKybPartyDraftAsync("33333333-4444-5555-6666-777777777777", new SessionsCreateKybPartyDraftParams
{
EntityType = "person",
FirstName = "Ana",
LastName = "Lopez",
Roles = new SessionsCreateKybPartyDraftParamsRoles[] { "ubo", "director" },
DateOfBirth = "1984-06-12",
Email = "ana.lopez@example.com",
OwnershipPercent = 60.0,
Nationality = "MEX",
});
Console.WriteLine(JsonSerializer.Serialize(result));curl --request POST \
--url https://verification.didit.me/v3/session/{sessionId}/kyb/parties/drafts/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"entity_type": "person",
"first_name": "Ana",
"last_name": "Lopez",
"roles": [
"ubo",
"director"
],
"ownership_percent": 60,
"nationality": "MEX",
"email": "ana.lopez@example.com",
"date_of_birth": "1984-06-12"
}
'{
"draft_id": "5b0d7a52-9d3e-4f0c-8c6a-0e5f3a1b2c4d",
"created_at": "2026-10-31T10:00:00Z",
"updated_at": "2026-10-31T10:00:00Z",
"party": {
"entity_type": "person",
"first_name": "Ana",
"last_name": "Lopez",
"roles": [
"ubo",
"director"
],
"ownership_percent": 60,
"nationality": "MEX",
"email": "ana.lopez@example.com",
"date_of_birth": "1984-06-12"
}
}Otorisasi
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.
Parameter Path
UUID dari sesi Verifikasi Bisnis (KYB). UUID ini harus dimiliki oleh aplikasi yang terkait dengan kunci API.
"33333333-4444-5555-6666-777777777777"
Parameter Query
Node alur kerja dari langkah KYB. Hanya diperlukan jika alur kerja memiliki lebih dari satu node KYB; secara default Didit menggunakan node milik sesi itu sendiri.
Body
Apakah pihak tersebut adalah individu atau perusahaan.
person, company Kewarganegaraan seseorang, atau negara pendirian perusahaan. Wajib untuk setiap pihak.
100Nama lengkap seseorang. Kirimkan ini, atau first_name dan last_name.
255128128Peran yang dipegang oleh pihak terkait. Dapat dipertukarkan dengan roles; saat keduanya dikirim, keduanya digabungkan.
director, non_executive_director, secretary, chairman, ubo, shareholder, representative, founder, legal_advisor, authorized_signatory, trustee, beneficiary, settlor, protector, company_officer, investor, other Setiap peran yang dipegang pihak tersebut. Seseorang memerlukan setidaknya satu peran (di sini atau di role).
director, non_executive_director, secretary, chairman, ubo, shareholder, representative, founder, legal_advisor, authorized_signatory, trustee, beneficiary, settlor, protector, company_officer, investor, other Jabatan seseorang.
128Nama pihak perusahaan. Wajib jika entity_type bernilai company.
255Nomor registrasi dari pihak perusahaan.
100Tujuan pengiriman tautan verifikasi. Wajib diisi jika pihak tersebut harus menyelesaikan verifikasi, yang bergantung pada pengaturan peran dan ambang batas kepemilikan alur kerja.
Porsi kepemilikan pihak tersebut di dalam perusahaan.
32Kolom tambahan yang ditentukan alur kerja.
Minta untuk melewati verifikasi pihak ini. Hanya dipenuhi jika peran pihak tersebut mengizinkan pelewatan dalam pengaturan Pihak Kunci alur kerja.