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

概要

機能ごとのレポートはすべて、service-didit-verificationで定義されたV3シリアライザーの形式に従います。同じオブジェクトが3か所に現れるため、ここに示すスキーマがそれらすべてに共通する唯一の信頼できる情報源です。
  • GET /v3/session/{sessionId}/decision/:各機能は複数形の配列として返されます(id_verifications[]、nfc_verifications[]、liveness_checks[]、face_matches[]、poa_verifications[]、phone_verifications[]、email_verifications[]、aml_screenings[]、ip_analyses[]、database_validations[]、questionnaire_responses[]、signatures[]、bank_verifications[](銀行認証の方法を参照)、およびKYBの対応項目であるregistry_checks[]、document_verifications[]、key_people_checks[])。
  • Webhookペイロード(status.updated、data.updated):decisionエンベロープ内で同じ形式です。
  • スタンドアロンAPI:単一オブジェクトのレスポンス(顔検索、年齢推定、生体認証)も同じフィールドセットを使用します。
V3ではマルチインスタンスのワークフローが導入されました。すべての機能オブジェクトにはnode_idが含まれ、レポートを生成したワークフローグラフのノードにそのレポートを紐付けます。V2エンドポイント(単数形のkyc、face、amlなど)は後方互換性を維持していますが、最初のインスタンスのみを返します。

共通フィールド

すべてのレポートオブジェクトは次のフィールドを持ちます。 メディアフィールド(portrait_image、front_image、document_fileなど)は、有効期間が限られた事前署名付きURLです。URLを保存するのではなく、速やかにダウンロードしてください。例ではhttps://<media-host>/...と表記しています。

警告オブジェクト

すべてのwarnings[]配列で返されます。スキーマはlogs/serializers/log.py:8-65(LogV3Serializer)に基づきます。

レポートオブジェクト

残りのセクションでは、機能ごとのレポートオブジェクトをそれぞれ説明します。H3の見出しのテキストは、他のドキュメントから直接リンクできるよう、意図的に変更しない設計です。

本人確認

ユーザーが提出した各KYC/ID書類に対して返されます。GET /v3/session/{sessionId}/decision/ の id_verifications[] として、またV2レスポンスの kyc フィールド内に含まれます。出典: kyc/serializers/kyc.py:383-414(IDVerificationV3Serializer。kyc/serializers/kyc.py:320-380 の IDVerificationV2Serializer を拡張)。
書類以外の方法を使用した場合も同じオブジェクトです。変わるのは方法固有のキーのみです。書類の読み取りで入力される項目はすべて、代わりに登録簿のレコードまたはウォレットの属性から入力され、該当しないキーはnullになります。

NFC認証

各チップ読み取りに対して返されます。対象は、ICAO 9303準拠のePassportまたはeIDチップ、あるいはJPKI経由で読み取られたマイナンバーカード(chip_protocol: "jpki")です。GET /v3/session/{sessionId}/decision/のnfc_verifications[]として表示されます(親のKYCレコードごとに1件)。出典:kyc/serializers/epassport.py:121-139(NFCV3Serializer、kyc/serializers/epassport.py:83-118のNFCV2Serializerを拡張)。

ライブネスチェック

ライブネスセッションごとに返されます。GET /v3/session/{sessionId}/decision/ の liveness_checks[] として表示されます。ソース: face/serializers/face.py:301-320(LivenessV3Serializer。face/serializers/face.py:216-298 の LivenessV2Serializer を拡張)。
PASSIVE セッションでは、キャプチャで録画が保存された場合にこのフィールドが返され、セッションに録画が保存されなかった場合は null が返されます。上の例は、録画が保存されなかったセッションです。

顔照合

比較ごとに返されます(通常は、ユーザーのライブネス顔と書類の肖像写真の比較)。GET /v3/session/{sessionId}/decision/ の face_matches[] として表示されます。ソース: face/serializers/face.py:367-389(FaceMatchV3Serializer。face/serializers/face.py:323-364 の FaceMatchV2Serializer を拡張)。

顔検索

スタンドアロンの顔検索API(POST /v3/face-search/)が返します。顔検索が /v3/session/{sessionId}/decision/ で複数要素の配列として表示されることはありません。save_api_request=true で保存された場合、セッションは features[] 内の FACE_SEARCH エントリーと、保存された matches を含む liveness_checks[] の項目として表示されます。参照元:apis/serializers/face_search.py:8-79(FaceSearchResponseSerializer が FaceSearchDetailsSerializer をラップします)。一致結果の辞書は face/utils/utils.py:869-884 で構築されます。 トップレベルのレスポンス: face_search オブジェクト:

顔検索の一致オブジェクト

AMLスクリーニング

スクリーニング対象のエンティティごとに返されます。KYCセッションとKYBセッションの両方について、GET /v3/session/{sessionId}/decision/ の aml_screenings[] として表示されます。参照元:aml/serializers/aml.py:63-85(AMLV3Serializer、aml/serializers/aml.py:28-60 の AMLV2Serializer を拡張しています)。

IP分析

取得されたネットワークの位置情報ごとに返されます。KYCセッションとKYBセッションの両方で、GET /v3/session/{sessionId}/decision/ の ip_analyses[] として表示されます。ソース:kyc/serializers/location.py:196-243(IPAnalysisSerializerV3)。

位置情報検証

位置情報検証 ステップごとに返されます。GET /v3/session/{sessionId}/decision/ の geolocation_checks[] として表示されます。ステップごとに1項目で、受理された試行の結果です。geolocation_attempts[] は、すべてのステップのすべての試行を古い順に並べたものです。ワークフローにそのステップがない場合は、どちらも null になります。ソース:GeolocationDecisionSerializer。 すべてのフィールドと例は位置情報検証レポートに記載されています。

住所証明

送信された住所証明書類ごとに返されます。GET /v3/session/{sessionId}/decision/のpoa_verifications[]として表示されます。ソース: poa/serializers/poa.py:212-227(POAV3Serializer。poa/serializers/poa.py:173-209のPOAV2Serializerを拡張)。

電話番号検証

電話番号検証の試行ごとに返されます。KYCセッションとKYBセッションの両方で、GET /v3/session/{sessionId}/decision/ の phone_verifications[] として表示されます。ソース: phone/serializers/phone.py:251-266(PhoneV3Serializer、phone/serializers/phone.py:103-248 の PhoneV2Serializer を拡張)。

メールアドレス認証

メールアドレス認証の試行ごとに返されます。KYCセッションとKYBセッションの両方で、GET /v3/session/{sessionId}/decision/ の email_verifications[] として表示されます。ソース: email_verification/serializers/email.py:149-164(EmailV3Serializer、email_verification/serializers/email.py:38-146 の EmailV2Serializer を拡張)。

データベース検証

ユーザーが送信したデータに対して実行されたデータベース照会ごとに返されます。GET /v3/session/{sessionId}/decision/ の database_validations[] として表示されます。ソース: database_validation/serializers/database_validation.py:21-142(DatabaseValidationV3Serializer、DatabaseValidationV2Serializer を拡張)。

アンケート回答

アンケートの送信ごとに返されます。KYCセッションとKYBセッションの両方について、GET /v3/session/{sessionId}/decision/ のレスポンスに questionnaire_responses[] として含まれます。ソース:questionnaires/serializers/questionnaire.py:591-597(questionnaires/serializers/questionnaire.py:520-588 の QuestionnaireResponseSerializer を拡張した QuestionnaireResponseV3Serializer)。

電子署名

電子署名ステップの署名者ごとに返されます。ワークフローにそのステップが含まれている場合に限り、KYCセッションとKYBセッションの両方について、GET /v3/session/{sessionId}/decision/ のレスポンスに signatures[] として含まれます。他のレポートオブジェクトと異なり、status は署名の段階を表し、結果は verdict に格納されます。また、warnings[] の項目は 警告オブジェクト ではなく、{ code, node_id } です。 電子署名レポートに、完全な例とすべてのネストされたフィールドが記載されています。

年齢推定

スタンドアロンの年齢推定API(POST /v3/age-estimation/)から返されます。このレスポンスは、Liveness checkの形式の一部をage_estimationエンベロープの下に含みます。含まれるのはstatus、method、score、age_estimation、warningsです。さらに、スタンドアロンのみのuser_image顔検出ブロックが加わります。reference_image、video_url、matches、face_quality、face_luminanceは含まれません。ワークフローのセッションには個別の配列はなく、推定年齢はGET /v3/session/{sessionId}/decision/のliveness_checks[].age_estimationとして表示されます。出典:apis/serializers/age_estimation.py:50-55(AgeEstimationResponseSerializer)。エンベロープはapis/views/age_estimation.py:138-174で組み立てられます。

生体認証

生体認証は、標準のKYCで使われるのと同じライブネス + 顔照合のパイプラインを実行します。ただし、OCRで読み取った書類の顔写真の代わりに、既存ユーザーの参照画像と撮影された顔を比較するように設定されています。専用のシリアライザーはありません。GET /v3/session/{sessionId}/decision/は、標準のライブネスチェックと顔照合のオブジェクトをliveness_checks[]とface_matches[]の下に返します。セッションのワークフローはworkflow_type = "biometric_authentication"(WorkflowTypeChoices、common/config/choices.py:636)として設定されます。

KYB法人登記情報

KYBワークフローで登記簿により確認された企業ごとに返されます。企業セッションのGET /v3/session/{sessionId}/decision/のレスポンスにregistry_checks[]として含まれます。出典:kyb/serializers/kyb.py:939-964(RegistryCheckV3Serializer)。

企業オブジェクト

出典:kyb/serializers/kyb.py:220-321(KYBCompanyResponseSerializer)。

KYB書類

KYB補足書類を収集するノードごとに返されます。ビジネスセッションではGET /v3/session/{sessionId}/decision/のdocument_verifications[]として表示され、node_idごとに1件のエントリがあります。items[]には、アップロードされた各書類が一覧表示されます。ソース:kyb/serializers/kyb.py:1053-1068(DocumentVerificationV3Serializer)。各アイテムはkyb/serializers/kyb.py:811-851(KYBDocumentResponseSerializer)に従います。

KYB書類アイテムオブジェクト

KYB主要人物

主要人物ノードごとに返されます。ビジネスセッションではGET /v3/session/{sessionId}/decision/のkey_people_checks[]として表示されます。ソース:kyb/serializers/kyb.py:967-1050(KeyPeopleCheckV3Serializer)。

判定レベルのフィールド

これらのキーは、GET /v3/session/{sessionId}/decision/では機能の配列と同じ階層に、Webhookではdecisionの中に含まれます。 読み取り方法についてはセッションの取得を参照してください。

生体情報の利用同意

ユーザー認証のすべての判定とセッションのWebhookには、単一のbiometric_consentオブジェクト(配列ではありません)が含まれます。このオブジェクトは、セッションで生体情報の明示的な同意が必要だったかどうか、その理由、および回答の証跡を示します。セッションが一度も評価されなかった場合(顔撮影を含まないワークフローなど)はnullになります。ソース: BiometricConsentDecisionSerializer(sessions/serializers/biometric_consent.py)。このステップが表示される条件と各ケースの意味については、生体情報の利用同意で説明しています。 値が記録されていないフィールドはnullになり、空文字列になることはありません。 イリノイ州のセッションで、4.10.0未満のネイティブSDKがステップを経ずにセルフィーを撮影した例:
米国外に出口があるVPNを使用している本人が、ホスト型フローで同意した例:

ステータス列挙値リファレンス

statusというフィールド名は、関連する2種類の値で共通して使用されます。このページの機能ごとのレポートオブジェクトはすべて機能レベルの列挙値を使用し、親セッションのトップレベルのstatusはより範囲の広いセッション列挙値を使用します。

機能レベルのステータス

すべてのレポートオブジェクトのstatusフィールドで使用されます。ソース: common/config/choices.py:343-348(FeatureStatusChoices)。 電話番号検証、メールアドレス認証、本人確認では、ステップがタイムアウトした場合にExpiredが返されることもあります(PhoneStatusChoicesはcommon/config/choices.py:377-382、EmailStatusChoicesはcommon/config/choices.py:434-439)。

セッションレベルのステータス

親セッションのトップレベルのstatusで使用されます。ソース: common/config/choices.py:106-117(StatusChoices)。
セッションの終端ステータスはApproved、Declined、In Review、Expired、Kyc Expired、Abandonedです。個々の機能がIn Reviewのままでも、セッション全体の判定が確定することがあります。
最終更新日 2026年11月14日