curl -X POST https://verification.didit.me/v3/kyb/shareholders/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"kyb_response_id": "69aeeb95febb0f1704042259",
"vendor_data": "company-1234"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.kyb.list_shareholders(
kyb_response_id="69aeeb95febb0f1704042259",
vendor_data="company-1234",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.kyb.listShareholders({
kyb_response_id: "69aeeb95febb0f1704042259",
vendor_data: "company-1234",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.KYB.ListShareholders(ctx, didit.KYBRegistryCandidateRequest{
KYBResponseID: "69aeeb95febb0f1704042259",
VendorData: didit.String("company-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.KYBRegistryCandidateRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.kyb().listShareholders(KYBRegistryCandidateRequest.builder()
.kybResponseId("69aeeb95febb0f1704042259")
.vendorData("company-1234")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->kyb->listShareholders([
'kyb_response_id' => '69aeeb95febb0f1704042259',
'vendor_data' => 'company-1234',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.kyb.list_shareholders(
kyb_response_id: "69aeeb95febb0f1704042259",
vendor_data: "company-1234"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Kyb.ListShareholdersAsync(new KYBRegistryCandidateRequest
{
KybResponseId = "69aeeb95febb0f1704042259",
VendorData = "company-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"request_id": "9d4f2c7a-1b3e-4a5c-8d6f-0e9a8b7c6d5e",
"kyb_registry": {
"uuid": "f1e2d3c4-b5a6-4789-9c0d-1e2f3a4b5c6d",
"node_id": "feature_kyb_registry",
"status": "In Review",
"registry_status": "active",
"data_resolved": true,
"company_name": "Tesco PLC",
"registration_number": "00445790",
"country_code": "GB",
"region": "",
"company_type": "Public Limited Company",
"incorporation_date": "1947-11-27",
"registered_address": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
"tax_number": "GB412 8925 93",
"risk_level": "low risk",
"verification_status": "verified",
"is_from_registry": true,
"fetch_status": "resolved",
"alternative_names": "TESCO STORES (HOLDINGS) PUBLIC LIMITED COMPANY",
"nature_of_business": null,
"registered_capital": null,
"registered_capital_amount": null,
"registered_capital_currency": null,
"website": "https://www.tesco.com/",
"email": "customer.service@tesco.co.uk",
"phone": "03301231688",
"legal_entity_identifier": null,
"location_of_registration": null,
"financial_summary": {
"currency": "Pound (£)",
"total_number_of_shares": "8174378721",
"meta_detail": {
"Class_Of_Share": "Ordinary"
}
},
"officers": [
{
"uuid": "a1b2c3d4-e5f6-4789-9a0b-1c2d3e4f5a6b",
"name": "CHRISTOPHER JON TAYLOR",
"designation": "Secretary",
"role": "secretary",
"nationality": null,
"is_active": true,
"kyc_status": null,
"kyc_session_url": null
},
{
"uuid": "b2c3d4e5-f6a7-4890-8b1c-2d3e4f5a6b7c",
"name": "MELISSA BETHELL",
"designation": "Director",
"role": "director",
"nationality": "British",
"is_active": true,
"kyc_status": null,
"kyc_session_url": null
}
],
"beneficial_owners": [],
"addresses": [
{
"address": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
"type": "legal_entity_registry_address",
"description": "registered office address"
}
],
"industries": null,
"accounts": {
"last_account": "26 February 2025",
"next_account": "26 February 2026",
"due_by_date": "26 August 2026"
},
"registry_data": {},
"user_provided_data": null,
"confirmed_by_user_at": null,
"last_console_edit_at": null,
"is_editable": true
},
"vendor_data": "company-1234",
"metadata": null,
"created_at": "2026-06-11T10:45:00.000000+00:00"
}KYB法人登記 株主情報API
DiditのPOST /v3/kyb/shareholders/に法人登記検索で得たkyb_response_idを送ると、企業プロフィール、役員、直接の株主を取得できます。
curl -X POST https://verification.didit.me/v3/kyb/shareholders/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"kyb_response_id": "69aeeb95febb0f1704042259",
"vendor_data": "company-1234"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.kyb.list_shareholders(
kyb_response_id="69aeeb95febb0f1704042259",
vendor_data="company-1234",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.kyb.listShareholders({
kyb_response_id: "69aeeb95febb0f1704042259",
vendor_data: "company-1234",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.KYB.ListShareholders(ctx, didit.KYBRegistryCandidateRequest{
KYBResponseID: "69aeeb95febb0f1704042259",
VendorData: didit.String("company-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.KYBRegistryCandidateRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.kyb().listShareholders(KYBRegistryCandidateRequest.builder()
.kybResponseId("69aeeb95febb0f1704042259")
.vendorData("company-1234")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->kyb->listShareholders([
'kyb_response_id' => '69aeeb95febb0f1704042259',
'vendor_data' => 'company-1234',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.kyb.list_shareholders(
kyb_response_id: "69aeeb95febb0f1704042259",
vendor_data: "company-1234"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Kyb.ListShareholdersAsync(new KYBRegistryCandidateRequest
{
KybResponseId = "69aeeb95febb0f1704042259",
VendorData = "company-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"request_id": "9d4f2c7a-1b3e-4a5c-8d6f-0e9a8b7c6d5e",
"kyb_registry": {
"uuid": "f1e2d3c4-b5a6-4789-9c0d-1e2f3a4b5c6d",
"node_id": "feature_kyb_registry",
"status": "In Review",
"registry_status": "active",
"data_resolved": true,
"company_name": "Tesco PLC",
"registration_number": "00445790",
"country_code": "GB",
"region": "",
"company_type": "Public Limited Company",
"incorporation_date": "1947-11-27",
"registered_address": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
"tax_number": "GB412 8925 93",
"risk_level": "low risk",
"verification_status": "verified",
"is_from_registry": true,
"fetch_status": "resolved",
"alternative_names": "TESCO STORES (HOLDINGS) PUBLIC LIMITED COMPANY",
"nature_of_business": null,
"registered_capital": null,
"registered_capital_amount": null,
"registered_capital_currency": null,
"website": "https://www.tesco.com/",
"email": "customer.service@tesco.co.uk",
"phone": "03301231688",
"legal_entity_identifier": null,
"location_of_registration": null,
"financial_summary": {
"currency": "Pound (£)",
"total_number_of_shares": "8174378721",
"meta_detail": {
"Class_Of_Share": "Ordinary"
}
},
"officers": [
{
"uuid": "a1b2c3d4-e5f6-4789-9a0b-1c2d3e4f5a6b",
"name": "CHRISTOPHER JON TAYLOR",
"designation": "Secretary",
"role": "secretary",
"nationality": null,
"is_active": true,
"kyc_status": null,
"kyc_session_url": null
},
{
"uuid": "b2c3d4e5-f6a7-4890-8b1c-2d3e4f5a6b7c",
"name": "MELISSA BETHELL",
"designation": "Director",
"role": "director",
"nationality": "British",
"is_active": true,
"kyc_status": null,
"kyc_session_url": null
}
],
"beneficial_owners": [],
"addresses": [
{
"address": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
"type": "legal_entity_registry_address",
"description": "registered office address"
}
],
"industries": null,
"accounts": {
"last_account": "26 February 2025",
"next_account": "26 February 2026",
"due_by_date": "26 August 2026"
},
"registry_data": {},
"user_provided_data": null,
"confirmed_by_user_at": null,
"last_console_edit_at": null,
"is_editable": true
},
"vendor_data": "company-1234",
"metadata": null,
"created_at": "2026-06-11T10:45:00.000000+00:00"
}POST /v3/kyb/search/が候補企業を返した後、Liteプロファイルに加えて直接株主が必要な場合にこのエンドポイントを使用します。
料金は、その国のShareholders料金で請求されます(国別料金)。登記機関がその企業の株主記録を保有していない場合、またはその国が所有構造データを一切提供していない場合は、代わりにLiteプロファイルが提供され、その料金で請求されます。このときregistry_tier_deliveredはbasic、registry_ownership_statusはunavailableとなり、所有構造の情報源がこの企業に関する情報を一切保有していないと回答した場合はnot_heldとなります(所有構造ステータス)。
レポートの準備がまだ完了していない場合、または所有構造セクションがまだ登記機関から取得されていない場合、エンドポイントは202 Accepted、kyb_registry.fetch_status: "pending"、kyb_registry.registry_ownership_status: "pending"、registry_tier_delivered: nullを返します。
返されたrequest_idを保持し、registry_checks[0].company.fetch_statusがresolvedになるまでGET /v3/session/{request_id}/decision/で取得してください。
Diditは保留中のレポートを自動的に完了させ、準備が整った時点で提供されたレベルの料金を請求します。
保留中は購入リクエストを繰り返さないでください。新しいPOSTを送信するたびに、別のリクエストが作成されます。
v3でのみ利用できます。POST /v2/kyb/select/とPOST /v3/kyb/select/の仕様と料金は変わりません。承認
お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys
ボディ
POST /v3/kyb/search/で得られる候補ハンドル(kyb_registry.companies[].kyb_response_id)。一時的なものなので、生成元の検索の直後に使用してください。ハンドルは長くなる場合があるため、切り詰めたり長さを想定したりせず、返された値をそのまま保存して送信してください。
1024"69aeeb95febb0f1704042259"
この企業に対するお客様側の識別子です。そのまま返され、企業セッションとともに保存されます。
企業セッションとともに保存され、そのまま返される自由形式のJSON。
true(デフォルト)である必要があります。KYBの法人登記の選択は、請求と取得を追跡できるよう常に保存されます。falseを指定すると400が返されます。
レスポンス
企業レポートが返され、提供されたレベルで請求されました。準備中の所有構造レポートは202を返す場合があります。保存された判定を後から取得できるよう、request_idを保持してください。
この取得のために作成された企業セッションのID。レスポンスの後に登記情報が確定した場合も、保存されたレコード(コンソールで確認可能)は更新され続けます。
このエンドポイントが提供するレベル: basic(Lite、一部対象のみ)、shareholders、ubo。
basic, shareholders, ubo 実際に提供され、請求されたレベル。その国の登記機関が所有構造データを保持していない場合、または登記機関にこの企業の所有構造の記録がない場合は、リクエストしたレベルより低くなります。
basic, shareholders, ubo, null 法人登記上の企業の完全なプロフィール。
Show child attributes
Show child attributes
送信したvendor_dataをそのまま返します。
送信したmetadataのエコー。