年齢確認 (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)
成功したリクエストは次の構造を返します。
| プロパティ | 説明 |
|---|---|
| id | Age Verification サービスが生成した一意の検証 ID |
| url | ユーザーが自己確認を行うために表示すべき年齢確認 URL |
例:
{
"id": "7854909b-9124-4bed-9282-24b44c4a3c97",
"url": "https://family.k-id.com/verify?token=eyJhbGciOi..."
}
Verification Result
ユーザーが年齢確認を正常に完了した場合、または最大再試行回数に達しても成功しなかった場合、結果は 2 つの方法で配信されます。
- 登録済みの Webhook に
Verification.Resultイベントを送信 - 上記の 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 |