メインコンテンツに移動

年齢確認 (Age Verification)

k-ID は、以下のシナリオでユーザーの年齢を確認するための API セットを提供します。

APIシナリオ
/age-verification/perform-access-age-verification機能、成人向けコンテンツ、または製品自体へのアクセス前にユーザーの年齢を確認
/age-verification/perform-trusted-adult-verification検証可能な保護者同意(VPC)のための信頼できる成人(親/保護者)確認
/age-verification/perform-facial-age-estimation顔年齢推定のみで年齢確認を実施
/age-verification/perform-id-verification政府発行の身分証明書による年齢確認のみを実施
/age-verification/perform-age-appeal未成年の疑いがあるユーザーの製品アクセス復元前に年齢を確認

Age Verification API はリクエスト/レスポンス形式が標準化されています。

リクエストボディ (Request Body)

プロパティ説明必須
jurisdiction年齢確認を行う法域はい
criteria年齢確認の判定基準はい
subject.email他のコンテキストで k-ID にメールアドレスで年齢確認済みの場合、再度の推定/証明を要求せず既存の年齢を返すいいえ
subject.claimedAge年齢ゲートでユーザーが申告した年齢(年齢推定の参考として使用)いいえ
subject.id失敗試行の集計に使用する識別子(一時セッション ID やハッシュ化ユーザー ID など)いいえ

例:

{
"jurisdiction": "US-CA",
"subject": {
"email": "user@example.com",
"claimedAge": 23,
"id": "3854909b-8888-4bed-9282-24b74c4a3c97"
},
"criteria": {
"ageCategory": "DIGITAL_YOUTH_OR_ADULT"
}
}

レスポンスボディ (Response Body)

成功したリクエストは次の構造を返します。

プロパティ説明
idAge Verification サービスが生成した一意の検証 ID
urlユーザーが自己確認を行うために表示すべき年齢確認 URL

例:

{
"id": "7854909b-9124-4bed-9282-24b44c4a3c97",
"url": "https://family.k-id.com/verify?token=eyJhbGciOi..."
}

Verification Result

ユーザーが年齢確認を正常に完了した場合、または最大再試行回数に達しても成功しなかった場合、結果は 2 つの方法で配信されます。

  1. 登録済みの Webhook に Verification.Result イベントを送信
  2. 上記の URL を iFrame に含めた場合、親フレームに window メッセージ(MessageEvent)として送信

window メッセージの取得例:

const handleMessage = (event: MessageEvent) => {
const message = event.data;
if (message.eventType === "Verification.Result") {
// 結果処理ロジック
console.log("eventData", message);
}
};

window.addEventListener("message", handleMessage);

window イベントと Webhook の data 要素には次のプロパティが含まれます。

プロパティ説明
idこの結果が属する検証 ID
statusユーザーが年齢基準を満たしたかに応じて PASS または FAIL
ageCategoryリクエストで指定した法域におけるユーザーの年齢カテゴリ。adultdigital-youthdigital-minor をサポート
method使用された確認方法。id-documentage-estimationage-attestationcredit-cardsocial-security-number をサポート
failureReason失敗理由。age-criteria-not-metmax-attempts-exceededfraudulent-activity-detected をサポート(statusFAIL の場合のみ設定)
age推定または確認された年齢の下限/上限を low/high として返す

例:

{
"eventType": "Verification.Result",
"data": {
"id": "5a58e98a-e477-484b-b36a-3857ea9daaba",
"status": "PASS",
"ageCategory": "adult",
"method": "id-document",
"age": {
"low": 25,
"high": 25
}
}
}

window イベント処理例:

const handleMessage = (event: MessageEvent) => {
const message = event.data;
if (message.eventType === "Verification.Result" && ) {
if (message.data.status === "PASS") {
window.location.href = `https://www.example.com/success?verificationId=${message.data.id}`
}
if (message.data.status === "FAIL") {
window.location.href = `https://www.example.com/fail?verificationId=${message.data.id}`
}
}
};

window.addEventListener("message", handleMessage);

Verification Error

予期しないエラーが発生した場合、実装側で適切に処理できるよう Javascript イベントが発火します。

メッセージ例:

{
"eventType": "Verification.Error",
"method": "credit-card",
"status": "ERROR"
}

検証ステータスの確認 (Checking Verification Status)

Javascript のイベント送信および k-ID Webhook に加え、検証のステータスを照会することも可能です。これは、登録済みの Webhook が一時的に到達不能でステータスイベントを受信できなかったケースのハンドリングに有用です。ステータス照会には /age-verification/get-status API を使用します。返却データ構造は Webhook に送られる data 要素 と同一です。

サポートされる確認方法 (Supported Verification Methods)

製品・機能・コンテンツへのアクセス用であれば、k-ID はユーザーの年齢を確認するための複数手段を提供します。

方法説明
age-estimationプライバシー保護型の顔年齢推定。生体情報はユーザーのデバイス外に送信されない
id-verificationパスポートや運転免許証など政府発行の身分証明書を用いた年齢確認
age-attestation検証済みの保護者が子どもの年齢を証明

k-ID は信頼できる成人確認専用の年齢証明手段も提供します。加えて、age-estimation など一部の手段は、法域によっては信頼成人確認用途で許可されない場合があります。

方法説明
credit-card成人が有効なクレジットカードを提示して契約年齢であることを証明
social-security-number社会保障番号と一部個人情報の組み合わせで年齢を証明

Age Verification 連携テスト

k-ID API をコーディングする前に、API キーと API ドキュメント を使って、顔年齢推定を実際に試すことができます。

まずはシンプルな k-ID API 呼び出しの手順に従ってください。

同一ブラウザで /age-verification/perform-facial-age-estimation を呼び出します。リストから当該 API をクリックします。 Sample Age Verification API Request

続いて「Try it out」ボタンを押し、「Execute」ボタンを押します。

Sample Age Verification API Response

アプリ(または別ウィンドウ)で用いる iFrame の URL はレスポンスの url に含まれます。ブラウザに貼り付けてアクセスしてください。例:

https://family.k-id.com/verify?token=...

その後、案内ページが表示されます: Sample Age Verification Instructions

「Start」ボタンを押して顔年齢推定を試してください。セキュリティのためのライヴネスチェックに注意してください。本デモでは結果は画面に直接表示されず、Javascript イベントと Webhook の呼び出しで送信されます。カメラ情報がデバイス外に送信されることはありません。