メインコンテンツへスキップ
POST
curl

KYCとKYBへの対応

Diditは共有トークンをデコードし、埋め込まれたsession_kindを読み取って、対応する種類のセッションを複製します。
  • session_kind: "user":ユーザーセッションと、それに関連する本人情報、顔、ライブネス、顔照合、AML、位置情報、POA、電話番号、メールアドレス、データベース検証、ログの各行を複製します。
  • session_kind: "business":企業セッションと、それに関連する法人登記チェック、主要人物の記録、書類、AMLスクリーニング、電話番号、メールアドレス、位置情報、アンケート、ログの各行を複製します。
トークンが統合共有機能の提供開始より前に発行されたものでsession_kindフィールドを持たない場合、Diditは後方互換性のためにデフォルトで"user"として扱います。

作成されるもの

  • お使いのアプリケーション内に、同じ種類の新しいセッションが、新しいsession_id、session_number、session_urlとともに作成されます。
  • 新しいセッションのshared_from_sessionフィールドは、共有元アプリケーションの元のセッションを指します。
  • 新しいセッションのステータスは、元のステータス(trust_review: true)またはIN_REVIEW(trust_review: false)のいずれかになります。
  • vendor_dataに対応するエンティティ(UserまたはBusiness)が存在しない場合は、新しいエンティティが自動的に作成されます。

例

レスポンス(201 Created):

trust_reviewパラメーター

エラー

冪等性

同じshare_tokenを同じアプリケーションに2回インポートすると、ユーザーセッションと企業セッションのどちらの場合も403で拒否されます。

関連情報

承認

x-api-key
string
header
必須

お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys

ボディ

application/json
share_token
string
必須

POST /v3/session/{sessionId}/share/で発行されたJWT共有トークン。

例:

"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

trust_review
boolean
必須

trueの場合、複製されたセッションは元のセッションの最終的なstatusを維持します。falseの場合は強制的にIn Reviewになります。

例:

false

workflow_id
string<uuid>
必須

呼び出し元アプリケーション内のワークフローのUUIDです。別のアプリケーションのIDは404で拒否されます。

例:

"9f9b1234-aaaa-bbbb-cccc-1234567890ab"

vendor_data
string | null

複製されたセッションのvendor_dataを任意で上書きします。

例:

"user-1"

レスポンス

セッションが複製されました。ボディはどちらの種類でもV3の判定ペイロードで、session_kindで区別されます。"user"(KYC)にはid_verifications、liveness_checks、aml_screeningsなどのリスト形式の機能ブロックが含まれ、"business"(KYB)にはregistry_checksやkey_people_checksなどのブロックが含まれます。どちらにもshared_from_session(ソースアプリケーションにおける元のセッションのsession_id)が含まれます。trust_review: falseの場合、複製されたセッションのstatusは強制的にIn Reviewになります。

session_id
string<uuid>

セッションの一意の識別子。

session_kind
enum<string>

このセッションがユーザー認証(KYC)か法人確認(KYB)かを示す識別子です。userの場合、KYC機能の配列(id_verifications、nfc_verifications、liveness_checks、face_matches、poa_verifications、document_ai_documents、database_validationsなど)が適用され、企業向けの配列は含まれません。businessの場合、ペイロードには代わりにregistry_checks、document_verifications、key_people_checksと共有の配列(aml_screenings、phone_verifications、email_verifications、ip_analyses、questionnaire_responses)が含まれます。include=eventsを渡した場合は省略されます。eventsの形式はユーザーセッションにのみ存在するため、そのバリアントではこの識別子が除外されます。

利用可能なオプション:
user,
business
shared_from_session
string<uuid> | null

POST /v3/session/import-shared/で複製されたセッションの場合:ソースアプリケーションにある元のセッションのsession_id。その他のセッションではすべてnullです。include=eventsを渡した場合は省略されます。

shared_from_session_number
integer | null

このセッションが組織内の別のアプリケーションからインポートされた場合は、インポート元セッションのsession_numberです。それ以外の場合はnullです。

session_number
integer | null

セッションの番号。

session_url
string<uri> | null

セッションのURLです。

status
enum<string>

セッション全体のライフサイクルステータス。ワークフローの結果を集約したものです。終了状態の値はApproved、Declined、In Review、Expired、Kyc Expired、Abandonedです。Not Started、In Progress、Awaiting User、Resubmittedは、セッションがまだワークフローを進行中であることを示します。

利用可能なオプション:
Not Started,
In Progress,
Awaiting User,
In Review,
Approved,
Declined,
Resubmitted,
Expired,
Kyc Expired,
Abandoned
status_override
object | null

レビュアーがstatusを手動で設定した場合に含まれます。ステータスが自動で設定されたものである場合はnullです。手動承認と自動承認を区別するために使用します。

decision_trace
object

ステータスがどのように決まったかを示します。誰が設定したか、どの警告によって設定されたかがわかります。

linked_records
object | null

セッションに関連付けられたその他のレコードの概要。表示するものがない場合、および年齢保証基準を宣言しているワークフローではnullです。

workflow_id
string<uuid> | null

このセッションを生成したワークフローグループの不変の識別子。ワークフローはバージョン管理されており、この値は特定のバージョンではなくワークフロー自体を識別します。

features
string[]

このセッションに設定された認証機能のリストで、表示名で示されます。ID_VERIFICATION、NFC、LIVENESS、FACE_MATCH、POA、PHONE、EMAIL_VERIFICATION、AML、IP_ANALYSIS、DATABASE_VALIDATION、QUESTIONNAIRE、AGE_ESTIMATION、FACE_SEARCH、GEOLOCATION(位置情報認証)があります(法人確認 (KYB)のセッションではKYBの機能セットであるKYB_REGISTRY、KYB_DOCUMENTS、KYB_KEY_PEOPLE、AML、PHONE、EMAIL_VERIFICATION、IP_ANALYSIS、QUESTIONNAIREを使用します)。include=eventsを指定すると、各エントリはプレーンな文字列ではなくオブジェクト{feature, node_id}になり、メール機能の名前が変わります。イベントモードでは、ここで使用されるEMAIL_VERIFICATIONではなくEMAILとして表示されます。

セッションの機能です。

vendor_data
string | null

セッションのベンダーデータ。

metadata
object | null

セッションのメタデータです。

expected_details
object | null

セッション作成時に指定された想定情報です。抽出データとの照合(KYC)や、法人登記検索の事前入力(KYB)に使用されます。指定されたキーのみをそのまま返し、何も指定されなかった場合はnullになります。KYCセッションには個人のフィールドが含まれ、法人確認 (KYB)セッションにはcompany_name、registry_country、registration_numberが含まれます。

contact_details
object | null

セッション作成時に提供された連絡先情報(通知メール、電話番号・メールアドレス検証の事前入力、コミュニケーション言語に使用)。メールアドレスと電話番号のどちらも提供されなかった場合はnullです。

callback
string<uri> | null

セッションのコールバックURL。

id_verifications
object[] | null

本人確認(OCR)レポートの配列。ワークフローグラフ内の本人確認書類ステップによって生成されます。常にJSON配列です。id_verifications[0]を読み取り、ワークフローで複数の本人確認を実行できる場合(たとえば一次確認に加えて追加確認を行う場合)は反復処理してください。少なくとも1つの本人確認ステップがデータを生成するまではnullです。各要素は完全なレポートで、node_id、機能レベルのstatus、抽出された書類フィールド、画像URL、品質スコア、MRZ、住所の解析結果、セッション間の一致、warnings[]を含みます。

nfc_skip_reason
enum<string> | null

NFCチップ検証が実行されなかった理由です。ワークフローにNFCステップが含まれる場合は常に設定されます。NFCが保留中の間、またはチップが実際に読み取られた場合はnullです。値:USER_SKIPPED - NFC対応デバイスでユーザーがスキップを選択した(allow_nfc_skipで許可されている場合);DOCUMENT_WITHOUT_CHIP - 書類に読み取り可能なNFCチップがない(ICAO 9303の電子書類ではない);CHIP_CERTIFICATE_UNAVAILABLE - 書類の発行期間をカバーする発行国の署名証明書(CSCA)が利用できないため、チップの署名を検証できない;DEVICE_WITHOUT_NFC - デバイスがNFCリーダーを搭載していないと報告した;INTEGRATION_WITHOUT_NFC_ACCESS - ネイティブSDKを使わずに(例:Webブラウザで)認証が実行されたため、スマートフォンのNFCリーダーにアクセスできない;MRZ_KEY_UNAVAILABLE - 書類のMRZからチップのアクセスキーを導出できなかった;JPKI_UNAVAILABLE - 書類が日本のマイナンバーカードで、そのチップはJPKI経由で読み取られるが、この認証ではJPKIが利用できなかった(有効化されていない、またはアプリのネイティブSDKがマイナンバーカードを読み取れない)。

利用可能なオプション:
USER_SKIPPED,
DOCUMENT_WITHOUT_CHIP,
CHIP_CERTIFICATE_UNAVAILABLE,
DEVICE_WITHOUT_NFC,
INTEGRATION_WITHOUT_NFC_ACCESS,
MRZ_KEY_UNAVAILABLE,
JPKI_UNAVAILABLE
nfc_verifications
object[] | null

NFC / ePassportレポートの配列。ワークフローグラフ内のNFCステップによって生成されます。これは常にJSON配列であり、単一のnfcオブジェクトになることはありません。nfc_verifications[0]を読み取り、ワークフローでNFCを複数回実行できる場合は反復処理してください。少なくとも1つのNFCステップがデータを生成するまではnullです。各要素は完全なレポートで、node_id、機能レベルのstatus、chip_protocol、chip_data、authenticity(SOD + DGの完全性)、certificate_summary、warnings[]を含みます。日本のマイナンバーカードはICAO 9303ではなくJPKIを通じて読み取られます。その要素はchip_protocol: "jpki"を持ち、証跡をjpkiの下に格納し、ICAOのフィールドはnullのままです。NFCステップが提示される前にバイパスされた場合(チップのない書類、証明書の欠落、NFC機能の報告なし、読み取れないMRZキー、マイナンバーカードでJPKIが利用できない場合)、この値はnullのままで、nfc_skip_reasonがその理由を示します。ステップ自体でのスキップ(ユーザーがスキップをタップした場合、またはスキャン時にリーダーが利用できないと判明した場合)でも、is_nfc_skipped: trueを含むレポートが生成されます。

liveness_checks
object[] | null

ライブネスレポートの配列。ワークフローグラフ内のライブネスステップによって生成されます。常にJSON配列であり、単一のlivenessオブジェクトになることはありません。少なくとも1つのライブネスステップがデータを生成するまではnullです。各要素は完全なレポートで、node_id、機能レベルのstatus、method、score、reference_image、video_url、任意のage_estimation、セッション間のmatches[]、warnings[]を含みます。

face_matches
object[] | null

顔照合レポートの配列。ワークフローグラフ内の顔照合ステップによって生成されます。常にJSON配列であり、単一のface_matchオブジェクトになることはありません。少なくとも1つの顔照合ステップがデータを生成するまではnullです。各要素は完全なレポートで、node_id、機能レベルのstatus、類似度のscore、source_image、target_image、warnings[]を含みます。

phone_verifications
object[] | null

電話番号検証レポートの配列。常にJSON配列であり、単一のphoneオブジェクトになることはありません。少なくとも1つの電話番号ステップがデータを生成するまではnullです。各要素は完全なレポートで、node_id、機能レベルのstatus、電話番号と国のメタデータ、lifecycle[]、matches[]、warnings[]を含みます。

email_verifications
object[] | null

メールアドレス認証レポートの配列。常にJSON配列であり、単一のemailオブジェクトになることはありません。少なくとも1つのメールステップがデータを生成するまではnullです。各要素は完全なレポートで、node_id、機能レベルのstatus、メールアドレス、漏洩データ、lifecycle[]、matches[]、warnings[]を含みます。

poa_verifications
object[] | null

住所証明(POA)レポートの配列。常にJSON配列であり、単一のpoaオブジェクトになることはありません。少なくとも1つのPOAステップがデータを生成するまではnullです。各要素は完全なレポートで、node_id、機能レベルのstatus、書類ファイルのURL、発行者、日付、解析済みの住所、warnings[]を含みます。

document_ai_documents
object[] | null

ワークフローノードごとにグループ化されたDocument AIレポート。常にJSON配列で、単一のオブジェクトになることはありません。少なくとも1つのDocument AIステップがデータを生成するまではnullです。session_kind = userの場合にのみ含まれます。各項目はノードグループで、集計されたstatus、node_id、書類ごとの結果(設定したフィールドキーをキーとする抽出データ)を格納するitems[]配列、およびwarningsを含みます。

questionnaire_responses
object[] | null

アンケート回答レポートの配列。常にJSON配列であり、単一のquestionnaireオブジェクトになることはありません。少なくとも1つのアンケートステップがデータを生成するまではnullです。各要素は完全なレポートで、node_id、アンケートのメタデータ、フォーム要素を含むセクション、ユーザーの回答を含みます。

bank_verifications
object[] | null

ユーザー認証および法人確認における銀行口座認証の結果で、銀行口座認証ステップごとに1項目です。ステップが結果を生成するまではnullです。各項目のmethodは口座の認証方法を示します。open_banking(銀行へのサインイン)またはaccount_lookup(口座照会)、フォールバックとしてのstatementまたはmicrodepositsのいずれかで、いずれの試行も評価される前に本人が銀行を使わずに続行した場合(continued_without_bank)はnoneです。詳細は銀行口座認証の方法を参照してください。銀行口座認証は本番環境ではまだ有効化されていないため、有効化されるまで本番環境のセッションではこの値はnullのままです。

signatures
object[]

ユーザー認証および法人確認における電子署名の結果で、署名者と署名ステップごとに1項目です。ワークフローに電子署名ステップがある場合にのみ存在し、署名者がそのステップに到達するまでは空の配列です。電子署名レポートを参照してください。

aml_screenings
object[] | null

AMLスクリーニングレポートの配列。常にJSON配列であり、単一のamlオブジェクトになることはありません。少なくとも1つのAMLステップがデータを生成するまではnullです。各項目は完全なレポートで、node_id、機能レベルのstatus、total_hits、entity_type、hits[]、score、screened_data、is_ongoing_monitoring_enabled、warnings[]を含みます。

ip_analyses
object[] | null

デバイス・IP分析レポートの配列。常にJSON配列であり、単一のip_analysisオブジェクトになることはありません。少なくとも1つのIP分析ステップがデータを生成するまではnullです。各要素は完全なレポートで、node_id、機能レベルのstatus、IPおよび位置情報データ、デバイスフィンガープリント、warnings[]を含みます。(node_id, ip_address, device_fingerprint)が重複するエントリは、サーバー側で重複排除されます。

geolocation_checks
object[] | null

位置情報検証結果の配列。位置情報検証ステップごとに1件で、そのステップで受理された試行が入ります。位置情報検証ステップがデータを生成するまではnullです。同じステップの以前の試行はgeolocation_attemptsにあります。

geolocation_attempts
object[] | null

このセッションのすべての位置情報検証ステップにおける全試行を古い順に示します。再提出によって置き換えられた試行は含まれません。レスポンス属性でgeolocation_checksを非表示にしているワークフローでは、このリストも非表示になります。

database_validations
object[] | null

データベース検証レポートの配列:常にJSON配列であり、単一のdatabase_validationオブジェクトになることはありません。少なくとも1つのDB検証ステップがデータを生成するまではnullです。各要素は完全なレポートで、node_id、機能レベルのstatus、screened_data、サービスごとのvalidations[](それぞれに登録機関のsource_dataを含む)、warnings[]を含みます。screened_dataとsource_dataのフィールドは国によって異なります。

ARG(アルゼンチン):screened_data: {document_number, selfie, gender, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name, date_of_birth, date_of_death, tax_id, tax_id_type, face_match_score, sit_1_since, banks, last_position, highest_position, rejected_checks}。RENAPERの生体顔照合による検証を使用します。書類に性別が記載されていない場合(運転免許証など)、性別は顔分析または名から自動的に推定されます。

BOL(ボリビア):screened_data: {document_number, date_of_birth, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender}

BRA(ブラジル):screened_data: {tax_number, first_name, last_name, date_of_birth}。CPFの照合に成功した場合、source_dataには常に{identification_number, first_name, last_name, date_of_birth, lgpd_minor, minor_under_18, minor_under_16}が含まれます。成人の照会に成功した場合、これらのフラグはfalseに設定されます。Receita FederalのConsulta CPFサービスは、LGPDにより開示が保留されたデータとともにHTTP 422(18歳未満の未成年者)または451(16歳未満)を返す場合があります。その場合、source_dataでは該当する未成年者フラグがtrueに設定され、上流のHTTPステータスが含まれ、フィールドレベルの検証はno_matchになります。コードの全一覧は、Database Validation Outcome Codesリファレンスのブラジルのセクションを参照してください。

CHL(チリ):screened_data: {personal_number, first_name, last_name, date_of_birth}。source_data: {identification_number, first_name, last_name, date_of_birth, gender}

COL(コロンビア):screened_data: {document_number, document_type, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name, date_of_birth, document_type}

CRI(コスタリカ):screened_data: {personal_number, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name}

DOM(ドミニカ共和国):screened_data: {personal_number}。source_data: {identification_number}(有効/無効のみを返します)

ECU(エクアドル):screened_data: {personal_number, first_name, last_name}。source_data: {identification_number, first_name, last_name, street, formatted_address, gender, nationality, education, marital_status, spouse, mother_name, father_name, profession}

ESP(スペイン):screened_data: {personal_number, document_type, expiration_date, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name, document_type, expiration_date}

GTM(グアテマラ):screened_data: {document_number, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name}

HND(ホンジュラス):screened_data: {document_number, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name}

MEX(メキシコ):screened_data: {personal_number (CURP), first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender, nationality, curp_status, state_of_birth, doc_probatorio, registration_year, registration_state, registration_municipality, num_acta, crip, issuing_state_code, foreign_registry_number, folio_carta, folio_certificado}。RENAPOの住民登録を使用します。MEXでは、追加の個別検証として、別途INEの有効性確認サービスも利用できます。

PAN(パナマ):screened_data: {personal_number, selfie}。source_data: {identification_number}。SIBの生体認証による検証を使用します。

PER(ペルー):screened_data: {personal_number (DNI), first_name, last_name}。source_data: {identification_number, first_name, last_name, paternal_name, maternal_name, verification_number, verification_letter}

PRY(パラグアイ):screened_data: {document_number, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name}

SLV(エルサルバドル):screened_data: {document_number, date_of_birth, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name}

URY(ウルグアイ):screened_data: {personal_number, date_of_birth, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name}

VEN(ベネズエラ):screened_data: {document_number, first_name, last_name}。source_data: {identification_number, first_name, last_name, full_name, gender, date_of_birth, document_type}

database_validation_not_performed_reason
object | null

設定済みのデータベース検証で結果が得られなかった理由で、{code, message}とコンテキストフィールドで表されます。ステップを含むワークフローでdatabase_validationsがnullの場合にのみ存在するため、「登記機関の情報と一致した」場合と「何も実行されなかった」場合を区別できます。それ以外の場合はnullです。

reviews
object[]
assignee
object | null

セッションが割り当てられているConsoleのレビュアー。誰も担当していない場合はnullです。

waiting_since
string<date-time> | null

セッションがレビュー待ちになった日時。セッションがIn Reviewで、かつアプリケーションにレビュー期限が設定されている場合を除きnullです。

sla_due_at
string<date-time> | null

レビューの期限。セッションがIn Reviewで、かつアプリケーションにレビュー期限が設定されている場合を除きnullです。

created_at
string<date-time>

セッションが作成された日時(ISO 8601、UTC)。

expires_at
string<date-time> | null

このセッションの有効期限が切れる予定の日時です。作成時に有効期限が設定された場合(またはApprovedステータスによってKYCの有効期限の計算がトリガーされた時点で)、ユーザー認証 (KYC)セッションに設定されます。有効期限が設定されていないセッション、および有効期限を使用しない種類(例:expires_atを一度も受け取っていない法人確認 (KYB)セッション)ではnullです。

registry_checks
object[] | null

法人登記チェック。session_kind = businessの場合にのみ含まれます。各項目は法人登記のペイロード全体をラップします。

key_people_checks
object[] | null

主要人物チェックの集約。session_kind = businessの場合にのみ含まれます。各項目は2つのバケットからなる形式(registry、submitted、ubo_kyc_summary)を使用します。

document_verifications
object[] | null

ワークフローノードごとにグループ化された書類検証チェックです。session_kind = businessの場合にのみ含まれます。

environment
enum<string>

セッションが本番アプリケーション(live)とサンドボックスアプリケーション(sandbox)のどちらで作成されたか。サンドボックスのセッションは無料で、完全にシミュレートされ、クレジットが課金されることはありません。

利用可能なオプション:
live,
sandbox
sandbox_scenario
string | null

セッション作成時に指定されたサンドボックスシナリオです。本番環境のセッション、およびシナリオを指定せずに作成されたサンドボックスセッションではnullになります。

resubmissions
object[]

include=resubmissionsを指定した場合にのみ、ユーザーセッションと企業セッションで返されます。再提出リクエストごとに1件のエントリーがあり、古い順に並びます。各エントリーには、リクエスト前に再提出対象のステップが返した結果が含まれるため、以前の提出内容も引き続き参照できます。セッションを削除すると、すべての提出内容が削除されます。

顔撮影の前にセッションで明示的な生体認証の同意が必要だったかどうか、その理由、および回答の証跡。ユーザー認証(KYC)セッションのみが対象で、同じオブジェクトがセッションWebhookのdecisionにも含まれます。顔撮影のないワークフローなど、セッションが一度も評価されなかった場合はnullです。値が記録されていないフィールドはnullです。4.10.0未満のネイティブSDK、またはバージョンを報告しないSDKは同意ステップを表示できません。その場合、顔撮影は従来どおり実行され、同意が必要だったセッションはstatus: "pending"とreason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"を報告します。生体認証の同意を参照してください。

investigator
object | null

項目の最新のInvestigatorレビューです。レビューが一度もない場合はnullです。V3のセッションおよび企業セッションの判定に含まれます(したがってstatus.updatedのWebhookにも含まれます)。

biometric_retention
object

このセッションのライブ生体データが削除される日時。

fraud_check
object | null

Fraud Check API呼び出しの結果です。それ以外のすべてのセッションではnullです。

full_session_video
string<uri> | null

セッション全体の録画の有効期限付きURLです。組織がセッション全体の動画を録画している場合にのみ返されます。

full_session_video_recorded_at
string<date-time> | null

セッション全体の録画が行われた日時。組織がセッション全体の動画を録画している場合にのみ返されます。

最終更新日 2026年11月1日