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

# KYB 実質的支配者（UBO）API：法人登記から最終受益者を特定

> DiditのPOST /v3/kyb/ubo/に登記検索で得たkyb_response_idを指定すると、企業プロフィール、株主、所有構造をたどって特定した実質的支配者（UBO）を取得できます。

`POST /v3/kyb/search/`が候補企業を返した後、**最終的な実質的支配者**が必要な場合にこのエンドポイントを使用します。これは株主に加え、所有構造の連鎖をたどって特定された自然人と親会社です(`registry_data.ubo_resolution`)。

料金は国ごとのUBO料金で請求されます([国別料金](https://docs.didit.me/ja/getting-started/kyb-registry-pricing.md))。提供されるレベルは、その国と登記機関が提供できる最も高いレベルで、`registry_tier_delivered`は請求対象を示します。レポートに実質的支配者として自然人が記載されていない場合は`shareholders`、所有構造の記録がまったくない場合は`basic`です。後者の場合、`registry_ownership_status`は`unavailable`になります。所有構造の情報源がこの企業の情報を保有していないと回答した場合は`not_held`になります([所有構造のステータス](https://docs.didit.me/ja/standalone-apis/kyb-registry.md#所有構造のステータス))。

レポートがまだ準備中の場合、または所有構造のセクションがまだ登記機関から取得されていない場合、エンドポイントは`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/`は、従来の仕様と料金のまま変わりません。


## OpenAPI

````yaml ja/openapi-25.json POST /v3/kyb/ubo/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 本人確認API。x-api-keyヘッダーで認証します。
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/kyb/ubo/:
    post:
      tags:
        - Standalone APIs
      summary: 最終的な実質的支配者情報付きのKYB法人登記企業（スタンドアロン）
      description: >-
        `POST
        /v3/kyb/search/`が返した候補1件について、Liteプロファイル、直接の株主、**および所有構造のチェーンをたどって特定した最終的な実質的支配者**（`registry_data.ubo_resolution`に親会社のチェーンが含まれます）を取得します。


        **検索との組み合わせ**：同じアプリケーションでの検索が返した候補の`kyb_response_id`を、返されたとおりに渡してください。検索は購入する予定のレベル（`POST
        /v3/kyb/search/`の`tier`）で行ってください。検索はそのレベルを提供する登記機関チェーンで実行されるため、Liteでの検索結果が空でも、その登記機関に企業の記録がないことの証明にはなりません。その国の所有構造データが別の登記機関にある場合、Diditは登記番号を使ってその登記機関で企業を再検索します。追加料金はかかりません。


        **請求**：その国のUBO料金で請求されます。[KYB登記機関の料金](/ja/getting-started/kyb-registry-pricing)を参照してください。提供されるレベルは、その国と登記機関が提供できる最も高いレベルです。特定されたレポートで実質的支配者として自然人が1人も挙げられていない場合はShareholders、所有構造の記録がまったくない場合はLiteになります。請求されたレベルは`registry_tier_delivered`に示されます。残高は、登記機関への呼び出しを行う前にUBO料金と照合されます（不足している場合は`403`）。


        **利用条件**：v3のみです。呼び出しごとに企業セッションが作成されます（そのIDが`request_id`です）。


        **保留中のレポート**：レポートがまだ準備中の場合、または所有構造セクションがまだ登記機関から取得されていない場合、エンドポイントは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が確定するまでGET
        /v3/session/{request_id}/decision/で取得してください。Diditはレポートを自動的に完成させ、準備が整った時点で提供したレベルの料金を請求します。保留中は購入を繰り返さないでください。新しいPOSTを送るたびに、別のリクエストが作成されます。
      operationId: post_v3_kyb_ubo
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KYBRegistryCandidateRequest'
            example:
              kyb_response_id: 69aeeb95febb0f1704042259
              vendor_data: company-1234
      responses:
        '200':
          description: >-
            企業レポートが返され、提供されたレベルで請求されました。準備中の所有構造レポートは202を返す場合があります。保存された判定を後から取得できるよう、request_idを保持してください。
          content:
            application/json:
              schema:
                type: object
                properties:
                  request_id:
                    type: string
                    format: uuid
                    description: >-
                      この取得のために作成された企業セッションのID。レスポンスの後に登記情報が確定した場合も、保存されたレコード（コンソールで確認可能）は更新され続けます。
                  registry_tier_requested:
                    type: string
                    enum:
                      - basic
                      - shareholders
                      - ubo
                    description: >-
                      このエンドポイントが提供するレベル:
                      `basic`（Lite、一部対象のみ）、`shareholders`、`ubo`。
                  registry_tier_delivered:
                    type: string
                    enum:
                      - basic
                      - shareholders
                      - ubo
                      - null
                    description: >-
                      実際に提供され、請求されたレベル。その国の登記機関が所有構造データを保持していない場合、登記機関にこの企業の所有構造の記録がない場合、または`ubo`リクエストで解決されたレポートが実質的支配者として自然人を1人も挙げていない場合は、リクエストしたレベルより低くなります。
                    nullable: true
                  kyb_registry:
                    type: object
                    description: 法人登記上の企業の完全なプロフィール。
                    properties:
                      uuid:
                        type: string
                        format: uuid
                        description: この企業レコードに対するDiditのIDです。
                      node_id:
                        type: string
                        example: feature_kyb_registry
                      status:
                        type: string
                        enum:
                          - Not Finished
                          - Approved
                          - Declined
                          - In Review
                        description: >-
                          登記チェックに対するDiditの評価です（例：企業が登記上アクティブでない場合、または所有構造データを導出できなかった場合は`In
                          Review`）。
                      registry_status:
                        type: string
                        nullable: true
                        enum:
                          - active
                          - dissolved
                          - deregistered
                          - see full details
                          - authorised
                          - appointed representative
                          - unauthorised
                          - inactive
                          - no longer authorised
                          - closed
                          - struck off
                          - null
                        description: 登記機関が報告した、正規化された企業ステータス。
                      data_resolved:
                        type: boolean
                        description: >-
                          法人登記から完全なプロファイルが返されると`true`になります。ポーリング後も法人登記側でまだ処理中だった場合は`false`です。法人登記側の処理が完了すると、保存されたレコードは自動的に補完されます。
                      company_name:
                        type: string
                        example: Tesco PLC
                      registration_number:
                        type: string
                        nullable: true
                        example: '00445790'
                      country_code:
                        type: string
                        description: ISO 3166-1 alpha-2。
                        example: GB
                      region:
                        type: string
                        nullable: true
                        description: '登記機関が地域単位の場合の地域区分コード（例: `US-CA`の場合は`CA`）。それ以外の場合は空です。'
                      company_type:
                        type: string
                        nullable: true
                        example: Public Limited Company
                      incorporation_date:
                        type: string
                        format: date
                        nullable: true
                        example: '1947-11-27'
                      registered_address:
                        type: string
                        nullable: true
                        example: >-
                          Tesco House, Shire Park, Kestrel Way, Welwyn Garden
                          City, United Kingdom, AL7 1GA
                      tax_number:
                        type: string
                        nullable: true
                        example: GB412 8925 93
                      risk_level:
                        type: string
                        nullable: true
                        description: 登記所が報告したリスクレベル（取得できる場合）。
                      verification_status:
                        type: string
                        nullable: true
                        description: 登記上の認証ステータス（取得できる場合）。
                      is_from_registry:
                        type: boolean
                        description: このエンドポイントでは常に`true`です。プロファイルは公式の登記簿から取得されています。
                      fetch_status:
                        type: string
                        enum:
                          - pending
                          - resolved
                        description: 登記取得のライフサイクル。`data_resolved`に反映されます。
                      alternative_names:
                        type: string
                        nullable: true
                        description: 報告されている場合の、別名、商号、旧社名、または原語表記の企業名（テキスト）です。
                      nature_of_business:
                        type: string
                        nullable: true
                        description: 報告されている場合、事業内容の説明または分類コード。
                      registered_capital:
                        type: string
                        nullable: true
                      registered_capital_amount:
                        type: string
                        nullable: true
                        description: 報告されている場合の、文字列形式の10進数の金額。
                      registered_capital_currency:
                        type: string
                        nullable: true
                        description: ISO 4217通貨コード（報告されている場合）。
                      website:
                        type: string
                        nullable: true
                        example: https://www.tesco.com/
                      email:
                        type: string
                        nullable: true
                        example: customer.service@tesco.co.uk
                      phone:
                        type: string
                        nullable: true
                        example: '03301231688'
                      legal_entity_identifier:
                        type: string
                        nullable: true
                        description: LEI（報告されている場合）。
                      location_of_registration:
                        type: string
                        nullable: true
                        description: 企業が登録されている登記所・法域（報告されている場合）。
                      vat_number:
                        type: string
                        nullable: true
                        description: >-
                          EUのVAT番号。ホスト型の登記ステップで収集された場合、またはその後に編集された場合に設定されます。選択時点では通常まだ設定されていません。VATおよび納税者番号の検証は、エンドユーザーがホスト型フローで登記ステップを送信した時点で実行されます。
                      vat_validation_status:
                        type: string
                        enum:
                          - valid
                          - invalid
                          - format_valid
                          - invalid_format
                          - could_not_validate
                          - not_applicable
                        description: >-
                          登記の送信時に、VAT番号（ない場合は`tax_number`）を検証した結果。`valid` /
                          `invalid`：その国の公式登記（EU
                          VIES、ノルウェー、スイス、ブラジル、コロンビア、コスタリカ、エクアドル、パラグアイ。ポーランドは国内のVAT登録簿でも判定）によって判定されます。`format_valid`
                          /
                          `invalid_format`：照会できる登記がない場合に、その国の形式およびチェックディジットのルールによって判定されます。`could_not_validate`：登記を利用できませんでした。`not_applicable`：番号がない、登記もルールもない国である、またはサンドボックスのセッションです。
                      vat_validated_number:
                        type: string
                        nullable: true
                        description: >-
                          確認された番号で、ソース側で認識されている形式のもの（例:
                          フランスのSIRENやオランダのRSINから導出されたVAT番号）。確認が実行されなかった場合は`null`です。
                      vat_validation_source:
                        type: string
                        nullable: true
                        enum:
                          - eu_vies
                          - pl_vat_white_list
                          - no_brreg
                          - ch_uid_register
                          - br_receita_federal
                          - co_rues
                          - cr_hacienda
                          - ec_sri
                          - py_dnit
                          - format_rules
                          - null
                        description: >-
                          `vat_validation_status`を決定したソース。公式の登記簿、または`format_rules`です。チェックが実行されなかった場合は`null`です。
                      vat_validated_name:
                        type: string
                        nullable: true
                        description: >-
                          番号を検証したソースに登録されている名義（ソースが開示している場合）。ステータスが`valid`の場合にのみ設定されます。
                      vat_validated_address:
                        type: string
                        nullable: true
                        description: >-
                          番号を検証した情報源に登録されている住所（情報源が開示している場合）。ステータスが`valid`の場合にのみ設定されます。
                      vat_checked_at:
                        type: string
                        format: date-time
                        nullable: true
                        description: チェックの日時。チェックが実行されなかった場合は`null`です。
                      financial_summary:
                        type: object
                        nullable: true
                        description: 登記所が報告した株式・資本の詳細（通貨、発行済株式総数、株式の種類）（取得できる場合）。
                      officers:
                        type: array
                        items:
                          type: object
                          properties:
                            uuid:
                              type: string
                              format: uuid
                            name:
                              type: string
                              example: MELISSA BETHELL
                            designation:
                              type: string
                              nullable: true
                              description: '登記上の生の役職名（例: `Director`、`Secretary`）。'
                            role:
                              type: string
                              description: >-
                                役職名から導出された正規化された役割。モデルは17種類の値をすべて持ちますが、このエンドポイントでの登記情報の解析では通常、director、non_executive_director、secretary、chairman、company_officerのいずれかが出力されます。
                              enum:
                                - director
                                - non_executive_director
                                - secretary
                                - chairman
                                - ubo
                                - shareholder
                                - representative
                                - founder
                                - legal_advisor
                                - authorized_signatory
                                - trustee
                                - beneficiary
                                - company_officer
                                - settlor
                                - protector
                                - investor
                                - other
                            nationality:
                              type: string
                              nullable: true
                            is_active:
                              type: boolean
                              description: 登記簿でその任命が辞任済みとされている場合は`false`。
                            kyc_status:
                              type: string
                              nullable: true
                              enum:
                                - Approved
                                - Declined
                                - Pending
                                - null
                              description: >-
                                この役員に対してKYCセッションが開始された場合、そのセッションのステータスです。それ以外の場合は`null`です。
                            kyc_session_url:
                              type: string
                              nullable: true
                              description: 関連するKYCセッションが存在する場合、その認証URL。
                            first_name:
                              type: string
                              nullable: true
                              description: 登記機関が明示的に報告した場合の名。氏名からは推測されません。
                            last_name:
                              type: string
                              nullable: true
                              description: 登記簿で明示的に報告されている場合の姓。
                            address:
                              type: string
                              nullable: true
                              description: 登記簿に記載されている役員の住所。
                            appointment_date:
                              type: string
                              nullable: true
                              description: 役員の就任日。
                              format: date
                            termination_date:
                              type: string
                              nullable: true
                              description: 役職の終了日（報告されている場合）。
                              format: date
                            date_of_birth:
                              type: string
                              nullable: true
                              description: 登記で報告された完全な生年月日。生年または生年月のみが判明している場合はnullです。
                              format: date
                            date_of_birth_year:
                              type: integer
                              nullable: true
                              minimum: 1
                              maximum: 9999
                              description: 登記所が報告した生まれ年。完全な日付が取得できない場合も含みます。
                            date_of_birth_month:
                              type: integer
                              nullable: true
                              minimum: 1
                              maximum: 12
                              description: 登記所が報告した生まれ月。年のみ判明している場合はnullです。
                        description: 登記から抽出された取締役、秘書役、その他の役員です。
                      beneficial_owners:
                        type: array
                        items:
                          type: object
                          properties:
                            uuid:
                              type: string
                              format: uuid
                            name:
                              type: string
                            first_name:
                              type: string
                              nullable: true
                            last_name:
                              type: string
                              nullable: true
                            entity_type:
                              type: string
                              enum:
                                - person
                                - company
                              description: 所有者が自然人か法人か。
                            roles:
                              type: array
                              items:
                                type: string
                              description: '正規化された役割（例: `ubo`、`shareholder`）。'
                            ownership_min_shares:
                              type: string
                              nullable: true
                              description: '登記簿が報告する所有比率帯の下限（例: `25%`）。'
                            ownership_max_shares:
                              type: string
                              nullable: true
                              description: 法人登記が報告した所有構造における比率範囲の上限値。
                            is_active:
                              type: boolean
                            kyc_status:
                              type: string
                              nullable: true
                              enum:
                                - Approved
                                - Declined
                                - Pending
                                - null
                            kyc_session_url:
                              type: string
                              nullable: true
                            effective_ownership_percent:
                              type: number
                              nullable: true
                              description: 解析済みの所有割合(上限値、ない場合は下限値)。
                            company_name:
                              type: string
                              nullable: true
                            registration_number:
                              type: string
                              nullable: true
                            country_of_birth:
                              type: string
                              nullable: true
                            email:
                              type: string
                              nullable: true
                            nationality:
                              type: string
                              nullable: true
                            designation:
                              type: string
                              nullable: true
                            voting_min_shares:
                              type: string
                              nullable: true
                            voting_max_shares:
                              type: string
                              nullable: true
                            date_of_birth:
                              type: string
                              nullable: true
                              description: 報告されている場合の完全な生年月日。
                              format: date
                            appointment_date:
                              type: string
                              nullable: true
                              description: 報告されている場合の任命日。
                              format: date
                            shareholding:
                              $ref: '#/components/schemas/KYBRegistryShareholding'
                        description: >-
                          登記簿から抽出された実質的支配者または重要な支配権を有する者です。登記簿が所有構造を公開していない場合は空になることがあります。
                      addresses:
                        type: array
                        nullable: true
                        description: 登記簿に記載されているすべての住所を、1つの標準形式で示します。記載がない場合はnullです。
                        items:
                          $ref: '#/components/schemas/KYBRegistryAddress'
                      industries:
                        type: array
                        nullable: true
                        description: 登記上で会社が分類されている事業活動。単一の正規化された形式です。登記に記載がない場合はnullです。
                        items:
                          $ref: '#/components/schemas/KYBRegistryIndustry'
                      accounts:
                        type: object
                        nullable: true
                        additionalProperties: true
                        description: >-
                          登記申告の日付（取得できる場合）。年次報告書と株主総会にはlast_annual_return_dateとlast_agm_dateを使用し、これらは財務諸表とは区別されます。
                      registry_data:
                        $ref: '#/components/schemas/KYBRegistryData'
                      user_provided_data:
                        type: object
                        nullable: true
                        description: >-
                          このエンドポイントでは常に`null`です（エンドユーザーが登記データを編集する際に、ホスト型のKYBフローで使用されます）。
                      confirmed_by_user_at:
                        type: string
                        format: date-time
                        nullable: true
                        description: このエンドポイントでは常に`null`です。
                      last_console_edit_at:
                        type: string
                        format: date-time
                        nullable: true
                        description: 後でコンソールのレビュアーがレコードを編集したときに設定されます。
                      is_editable:
                        type: boolean
                        description: 登記情報から取得したデータをホスト型フローやコンソールで引き続き編集できるかどうか。
                      registry_tier_delivered:
                        type: string
                        enum:
                          - basic
                          - shareholders
                          - ubo
                          - null
                        description: トップレベルの`registry_tier_delivered`と同じ。
                        nullable: true
                      registry_ownership_status:
                        type: string
                        nullable: true
                        enum:
                          - not_requested
                          - delivered
                          - not_held
                          - unavailable
                          - pending
                          - null
                        description: >-
                          所有構造データが返された場合は`delivered`、所有構造の登記簿が応答したもののこの企業が掲載されていない場合は`not_held`（`registry_data.ownership_error`を参照）、所有構造のレベルがリクエストされたものの登記簿にこの企業のデータがなかったか照会できなかった場合は`unavailable`（`registry_data.ownership_error`を参照）、所有構造セクションがまだ登記簿から取得されておらずDiditが取得を完了させている途中の場合は`pending`、Liteレベルでは`not_requested`です。
                      ownership:
                        $ref: '#/components/schemas/KYBRegistryOwnership'
                      registry_tier:
                        type: string
                        nullable: true
                        description: >-
                          ワークフローが指定した登記のレベル:
                          `basic`、`shareholders`または`ubo`。`ownership.tier_requested`にも含まれます。
                      registry_monitoring:
                        type: object
                        nullable: true
                        description: その企業の最新の登記モニターです。存在しない場合は`null`です。
                        properties:
                          uuid:
                            type: string
                            format: uuid
                          status:
                            type: string
                          unavailable_reason:
                            type: string
                            nullable: true
                          enrolled_at:
                            type: string
                            format: date-time
                            nullable: true
                          cancelled_at:
                            type: string
                            format: date-time
                            nullable: true
                          last_bill_date:
                            type: string
                            format: date
                            nullable: true
                          next_bill_date:
                            type: string
                            format: date
                            nullable: true
                          last_event_at:
                            type: string
                            format: date-time
                            nullable: true
                          events_count:
                            type: integer
                          watched_fields:
                            description: モニターが監視する企業フィールド。
                  vendor_data:
                    type: string
                    nullable: true
                    description: 送信した`vendor_data`をそのまま返します。
                  metadata:
                    type: object
                    nullable: true
                    description: 送信した`metadata`のエコー。
                  created_at:
                    type: string
                    format: date-time
              examples:
                Resolved company:
                  summary: 登記上の完全なプロフィール（役員リストは簡潔にするため省略）
                  value:
                    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:
                        ubo_resolution:
                          parent_chain: []
                          subsidiaries: []
                          unresolved: []
                      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'
        '202':
          description: >-
            レポートは受け付けられ、まだ処理中です。レポートの準備中は、エンドポイントは202
            Accepted、kyb_registry.fetch_status=pending、registry_tier_delivered=nullを返します。request_idを保持し、registry_checks[0].company.fetch_statusが解決されるまでGET
            /v3/session/{request_id}/decision/を取得してください。Diditはレポートを自動的に完成させ、準備ができた時点で提供されたレベルの料金を請求します。保留中に購入を繰り返さないでください。新しいPOSTごとに別のリクエストが作成されます。
          content:
            application/json:
              schema:
                $ref: d9a475d5-ba66-4e42-b54d-b1ec7fd149ec
              examples:
                Pending (registry still resolving):
                  summary: 所有構造レポートはまだ処理中です。保存済みの判定を取得してください
                  value:
                    request_id: 9d4f2c7a-1b3e-4a5c-8d6f-0e9a8b7c6d5e
                    kyb_registry:
                      uuid: 7c0a4f7e-2b1d-4f6a-9c3e-8d5b2a1f0e9d
                      node_id: feature_kyb_registry
                      status: Not Finished
                      registry_status: null
                      data_resolved: false
                      company_name: Example Holdings Limited
                      registration_number: '12345678'
                      country_code: HK
                      region: null
                      company_type: null
                      incorporation_date: null
                      registered_address: null
                      tax_number: null
                      risk_level: null
                      verification_status: null
                      is_from_registry: true
                      fetch_status: pending
                      alternative_names: null
                      nature_of_business: null
                      registered_capital: null
                      registered_capital_amount: null
                      registered_capital_currency: null
                      website: null
                      email: null
                      phone: null
                      legal_entity_identifier: null
                      location_of_registration: null
                      financial_summary: {}
                      officers: []
                      beneficial_owners: []
                      addresses: null
                      industries: null
                      accounts: null
                      registry_data: {}
                      user_provided_data: null
                      confirmed_by_user_at: null
                      last_console_edit_at: null
                      is_editable: true
                      registry_tier_delivered: null
                      registry_ownership_status: pending
                    vendor_data: company-1234
                    metadata: null
                    created_at: '2026-06-11T10:45:00.000000+00:00'
                    registry_tier_delivered: null
                    registry_tier_requested: ubo
        '400':
          description: バリデーションエラー。フィールド単位の問題はDRFの標準エンベロープを使用します。
          content:
            application/json:
              examples:
                Missing kyb_response_id:
                  summary: '`kyb_response_id`は必須です'
                  value:
                    kyb_response_id:
                      - This field is required.
                save_api_request=false rejected:
                  summary: セレクトは常に保存されます
                  value:
                    save_api_request:
                      - >-
                        KYB registry select must be saved so billing and
                        retrieval can be tracked.
        '403':
          description: >-
            権限がありません。`x-api-key`ヘッダーがない場合に加え、呼び出し元の組織の残高が呼び出しを賄えない場合にも返されます。誤った、取り消された、または期限切れのキーの場合は`401`が返されます。キーがない場合は`{"detail":
            ...}`とともに`403`が返され、誤った、取り消された、または期限切れのキーの場合は`401`が返されます。クレジット不足の場合は、スクリーニングやプロバイダーの呼び出しが行われる前に`{"error":
            ...}`とともに`403`が返されます。
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  summary: '`x-api-key`ヘッダーがないか、キーが無効または失効しています'
                  value:
                    detail: You do not have permission to perform this action.
                Not enough credits:
                  summary: 組織の残高でこの呼び出しの料金を賄えません
                  value:
                    error: >-
                      You don't have enough credits to perform this request.
                      Please top up at https://business.didit.me
        '429':
          description: >-
            レート制限を超過しました。すべてのPOST/PATCH/DELETEエンドポイントは、APIキーごとに1分あたり300件の書き込みリクエストという共通の上限を共有します。レスポンスには`X-RateLimit-Limit`、`X-RateLimit-Remaining`、`X-RateLimit-Reset`、`Retry-After`ヘッダーが含まれます。
          content:
            application/json:
              examples:
                Write rate limit exceeded:
                  summary: 現在の1分間に300件を超える書き込みリクエスト
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
              schema:
                type: object
                properties:
                  detail:
                    type: string
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST https://verification.didit.me/v3/kyb/ubo/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "kyb_response_id": "69aeeb95febb0f1704042259",
                "vendor_data": "company-1234"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.kyb.list_ubos(
                kyb_response_id="69aeeb95febb0f1704042259",
                vendor_data="company-1234",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

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

            const result = await didit.kyb.listUbos({
              kyb_response_id: "69aeeb95febb0f1704042259",
              vendor_data: "company-1234",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.KYB.ListUBOs(ctx, didit.KYBRegistryCandidateRequest{\n\tKYBResponseID: \"69aeeb95febb0f1704042259\",\n\tVendorData:    didit.String(\"company-1234\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.KYBRegistryCandidateRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.kyb().listUbos(KYBRegistryCandidateRequest.builder()
                    .kybResponseId("69aeeb95febb0f1704042259")
                    .vendorData("company-1234")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

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

            $result = $didit->kyb->listUbos([
                'kyb_response_id' => '69aeeb95febb0f1704042259',
                'vendor_data' => 'company-1234',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.kyb.list_ubos(
              kyb_response_id: "69aeeb95febb0f1704042259",
              vendor_data: "company-1234"
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.Kyb.ListUbosAsync(new
            KYBRegistryCandidateRequest

            {
                KybResponseId = "69aeeb95febb0f1704042259",
                VendorData = "company-1234",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    KYBRegistryCandidateRequest:
      type: object
      required:
        - kyb_response_id
      properties:
        kyb_response_id:
          type: string
          maxLength: 1024
          description: >-
            `POST
            /v3/kyb/search/`で得られる候補ハンドル(`kyb_registry.companies[].kyb_response_id`)。一時的なものなので、生成元の検索の直後に使用してください。ハンドルは長くなる場合があるため、切り詰めたり長さを想定したりせず、返された値をそのまま保存して送信してください。
          example: 69aeeb95febb0f1704042259
        vendor_data:
          type: string
          description: この企業に対するお客様側の識別子です。そのまま返され、企業セッションとともに保存されます。
        metadata:
          type: object
          nullable: true
          description: 企業セッションとともに保存され、そのまま返される自由形式のJSON。
        save_api_request:
          type: boolean
          default: true
          description: >-
            `true`（デフォルト）である必要があります。KYBの法人登記の選択は、請求と取得を追跡できるよう常に保存されます。`false`を指定すると`400`が返されます。
    KYBRegistryShareholding:
      type: object
      nullable: true
      description: >-
        所有者が保有するもの。すべての国と登記情報ソースで同じ形式です。登記に保有の記載がない場合はnullです。範囲（例:
        英国PSCの25-50%）は持分ではありません。`percentage`はnullとなり、範囲は`ownership_min_shares` /
        `ownership_max_shares`に保持されます。
      properties:
        share_class:
          type: string
          nullable: true
          description: 登記簿上の名称どおりの株式のクラスまたは種類。
        number_of_shares:
          type: number
          nullable: true
          description: 保有株式数です。
        currency:
          type: string
          nullable: true
          description: 以下の値のISO 4217通貨。
        nominal_value:
          type: number
          nullable: true
          description: 1株あたりの額面金額。
        total_value:
          type: number
          nullable: true
          description: 保有資産の合計額。
        percentage:
          type: number
          nullable: true
          description: パーセント単位の正確な出資比率で、小数点以下4桁までです。
      required:
        - share_class
        - number_of_shares
        - currency
        - nominal_value
        - total_value
        - percentage
    KYBRegistryAddress:
      type: object
      description: 登記に記載された住所。国や登記ソースを問わず同じ形式です。すべてのキーが常に存在し、登記で公開されていない部分はnullになります。
      properties:
        type:
          type: string
          nullable: true
          description: >-
            小文字の住所種別です。登記上の本店所在地は`registered`、その他の種別は登記機関での名称のとおりです（例:`postal`、`office`）。登記機関が住所の種別を示していない場合は`null`です。
        address:
          type: string
          description: 1行で表した住所全体です。すべての住所に必ず含まれます。
        street:
          type: string
          nullable: true
          description: 通り名と番地。
        city:
          type: string
          nullable: true
          description: 都市または地域。
        postal_code:
          type: string
          nullable: true
          description: 郵便番号。
        region:
          type: string
          nullable: true
          description: 地域、州、または県。
        country_code:
          type: string
          nullable: true
          description: ISO 3166-1 alpha-2国コード。
        description:
          type: string
          nullable: true
          description: 登記上の住所のラベル（登記側が提供する場合）。
      required:
        - type
        - address
        - street
        - city
        - postal_code
        - region
        - country_code
        - description
    KYBRegistryIndustry:
      type: object
      description: 登記上で企業が分類されている事業活動。国や登記ソースを問わず同じ形式です。
      properties:
        code:
          type: string
          nullable: true
          description: '登記簿に記載されているとおりの事業コード（例: `73110`）。'
        description:
          type: string
          nullable: true
          description: 登記機関が公開している場合、事業のラベル。
        scheme:
          type: string
          nullable: true
          description: >-
            分類体系。どのソースが報告したかにかかわらず、体系ごとに1つの名前を使用します: `UK SIC 2007`、`US
            SIC`、`NACE Rev. 2`、`NACE Rev. 2.1`、`NAF Rev. 2`、`CNAE`、`SBI`、`NOGA
            2008`、`CAE Rev. 4`、`Canada SIC
            1977`。その他の国の体系は登記機関独自の名称のままです。登記機関が体系を示していない場合はnullです。
        is_primary:
          type: boolean
          description: 企業の主要事業の場合はtrue。リストが空でない場合、primaryとなるエントリは必ず1つだけです。
      required:
        - code
        - description
        - scheme
        - is_primary
    KYBRegistryData:
      type: object
      nullable: true
      description: >-
        Diditが正規化した企業の登記詳細です。所有構造の結果（`ownership_error`、`section_errors`、`ubo_resolution`、`lite_enrichment`）、update-dataで行われた修正、および専用のフィールドを持たない登記上の事実が含まれます。登記情報源自体のレコードが含まれることはありません。すべてのキーは任意で、企業にその値がある場合にのみ存在します。新しいキーが追加される場合があります。正規フィールド（`addresses`、`industries`、`ownership`、`beneficial_owners[].shareholding`）が扱う内容については、それらのフィールドを参照してください。
      properties:
        company_name:
          type: string
          description: コンソールで修正された会社名。
        registration_number:
          type: string
          description: 登記所またはコンソールでの修正に記載されている登記番号。
        country_code:
          type: string
          description: 登記機関またはコンソールでの修正内容に記載された登録国。
        region:
          type: string
          description: 登記の地域または州。
        incorporation_date:
          type: string
          description: 設立日（ISO 8601）。
        registration_date:
          type: string
          description: 登記所が設立日とは別に登録日を記載している場合の登録日（ISO 8601）。
        dissolution_date:
          type: string
          description: 登記に記載がある場合の解散日(ISO 8601)。
        tax_number:
          type: string
          description: 納税者番号。
        vat_number:
          type: string
          description: VAT番号。
        legal_address:
          type: string
          description: コンソールで修正された法定住所。
        registered_address:
          type: string
          description: 登記所に記載されているとおりの登記住所。
        company_type:
          type: string
          description: 法人形態。
        registry_status:
          type: string
          description: 登記上の企業ステータス。
        verification_status:
          type: string
          description: 認証ステータス。
        alternative_names:
          type: string
          description: 企業が現在または過去に使用している商号です。
        nature_of_business:
          type: string
          description: 事業内容の説明。
        registered_capital:
          type: string
          description: 記載どおりの資本金。
        registered_capital_amount:
          type: string
          description: 資本金の額（10進数の文字列）。
        registered_capital_currency:
          type: string
          description: 資本金の通貨（ISO 4217）。
        website:
          type: string
          description: Webサイト。
        email:
          type: string
          description: 連絡先メールアドレス。
        phone:
          type: string
          description: 連絡先電話番号。
        legal_entity_identifier:
          type: string
          description: 取引主体識別子(LEI)。
        location_of_registration:
          type: string
          description: 登録地。
        control_scheme:
          type: string
          description: 登記機関が公開している場合のガバナンス体制。
        ownership_error:
          type: string
          enum:
            - no_owners_on_record
            - no_natural_person_owner
            - ownership_section_unavailable
            - company_not_found
            - ambiguous_company_match
            - missing_registration_number
            - entity_type_not_covered
            - provider_unavailable
            - other
          description: >-
            要求された所有構造のレベルが提供されなかった理由で、`ownership.unavailable_reason`と同じコードを使用します。`no_owners_on_record`（登記機関は応答したが所有者が記載されていない）と`ownership_section_unavailable`（登記機関が所有構造のセクションを返さなかった）は異なる結果です。
        section_errors:
          type: object
          description: >-
            登記所が返さなかったセクションで、セクション(`officers`、`shareholders`、`group_structure`)をキーとします。ここに記載されたセクションは一度も配信されていません。そのセクションの空のリストは、企業について何も示すものではありません。
          additionalProperties:
            $ref: '#/components/schemas/KYBRegistrySectionError'
        ubo_resolution:
          $ref: '#/components/schemas/KYBRegistryUboResolution'
        lite_enrichment:
          $ref: '#/components/schemas/KYBRegistryLiteEnrichment'
        registry_metadata:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: number
              - type: boolean
          description: >-
            登記簿上の企業のフィールド。登記簿での名称をキーとし、プレーンな値で示されます（レガシーレコード）。登記上の事実としてレビューされたフィールドのみが含まれます。
        registry_sources:
          type: array
          description: レコードの読み取り元となった公式登記簿（従来のレコード）。その他のソースは明示されません。
          items:
            $ref: '#/components/schemas/KYBRegistrySource'
        previous_names:
          type: array
          items:
            type: string
          description: 会社が以前に登録されていた名称（過去の記録）。
        parent_companies:
          type: array
          items:
            type: string
          description: 登記に記載されている親会社(旧形式のレコード)。
        documents_available:
          type: integer
          description: 登記機関がこの企業について提供している提出書類の数（過去の記録）。
    KYBRegistryOwnership:
      type: object
      description: 所有構造（株主／UBO）レベルの結果。国や登記ソースにかかわらず同じ形式です。
      properties:
        status:
          type: string
          nullable: true
          enum:
            - not_requested
            - pending
            - delivered
            - not_held
            - unavailable
            - null
          description: >-
            登記簿が所有構造を公開した場合は`delivered`、所有構造の登記簿が応答したもののこの企業がまったく掲載されていない場合は`not_held`（`unavailable_reason`を参照）、その他の理由で所有構造データが提供されなかった場合は`unavailable`（`unavailable_reason`を参照）、登記簿がまだ取得中の場合は`pending`、Basicレベルでは`not_requested`です。
        tier_requested:
          type: string
          nullable: true
          enum:
            - basic
            - shareholders
            - ubo
            - null
          description: ワークフローが注文したレベル。
        tier_delivered:
          type: string
          nullable: true
          enum:
            - basic
            - shareholders
            - ubo
            - null
          description: 登記機関が提供したレベル（請求対象となるレベル）。直接の株主のみで回答されたUBOリクエストは`shareholders`になります。
        unavailable_reason:
          type: string
          nullable: true
          enum:
            - no_owners_on_record
            - no_natural_person_owner
            - ownership_section_unavailable
            - company_not_found
            - ambiguous_company_match
            - missing_registration_number
            - entity_type_not_covered
            - provider_unavailable
            - other
            - null
          description: >-
            要求された所有構造のレベルが提供されなかった理由です。`status`が`unavailable`または`pending`でない限りnullです。
        direct_ownership_complete:
          type: boolean
          nullable: true
          description: >-
            直接株主の記載された持分の合計が100%になる場合（端数処理による1パーセントポイント以内の差を含む）はtrue、ならない場合はfalse、所有構造が提供されていないか、記載されていない持分がある場合はnull。
        unresolved:
          type: array
          description: 法人登記で解決できなかった所有構造チェーンの部分。たとえば、直接の所有者より上位のグループ構造が記録されていない場合です。
          items:
            type: object
            properties:
              reason:
                type: string
              section:
                type: string
                nullable: true
      required:
        - status
        - tier_requested
        - tier_delivered
        - unavailable_reason
        - direct_ownership_complete
        - unresolved
    KYBRegistrySectionError:
      type: object
      description: 登記機関から返されなかったセクション。
      properties:
        status_code:
          type: integer
          nullable: true
          description: レジストリがそのセクションについて回答したステータス。
      required:
        - status_code
    KYBRegistryUboResolution:
      type: object
      description: UBOレベルが企業の上位にある所有構造の連鎖をどのようにたどったか。
      properties:
        parent_chain:
          type: array
          description: 最終親会社から当該企業までの親会社。
          items:
            $ref: '#/components/schemas/KYBRegistryGroupCompany'
        subsidiaries:
          type: array
          description: 企業グループ内で、その企業の直下にある企業。
          items:
            $ref: '#/components/schemas/KYBRegistryGroupCompany'
        unresolved:
          type: array
          description: 法人登記で解決できなかったチェーンの部分（`ownership.unresolved`と同じエントリ）。
          items:
            type: object
            properties:
              reason:
                type: string
                description: >-
                  理由。例：`no_group_structure_on_record`、`selected_company_not_in_group_structure`、`section_error`。
              section:
                type: string
                nullable: true
                description: '対象のセクションです（例: `group_structure`）。'
            required:
              - reason
              - section
      required:
        - parent_chain
        - subsidiaries
        - unresolved
    KYBRegistryLiteEnrichment:
      type: object
      description: その国の別の登記ソースが補完した、Liteプロファイルの空欄フィールド。ソース名は示されません。
      properties:
        fields:
          type: array
          items:
            type: string
          description: 入力された企業フィールド。
        people_added:
          type: integer
          description: 追加された役員または所有者の数。
      required:
        - fields
        - people_added
    KYBRegistrySource:
      type: object
      description: 記録の読み取り元である公式登記簿。名前が示されるのは政府の公式登記簿、規制当局、公式の識別子システムのみで、それ以外の情報源は省略されます。
      properties:
        name:
          type: string
          description: '登記所の名称。例: `UK Companies House`。'
        source_type:
          type: string
          enum:
            - official
          description: 常に`official`です。
      required:
        - name
        - source_type
    KYBRegistryGroupCompany:
      type: object
      description: 企業グループに属する会社。法人登記上の識別情報で示されます。
      properties:
        name:
          type: string
          nullable: true
          description: 会社名。
        country_code:
          type: string
          nullable: true
          description: 登録国。
        registration_number:
          type: string
          nullable: true
          description: 登記番号。
      required:
        - name
        - country_code
        - registration_number
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API
        keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権（なし、読み取り、書き込み）、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください:
        https://docs.didit.me/console/api-keys

````

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