メインコンテンツにスキップ
Diditが200万ドルを調達し、Y Combinator (W26)に参加
Didit
年齢確認

IDアップロードなしで年齢認証。セルフィーで検証します。必要な場合にのみフォールバックします。

受動的な自撮りから年齢を推定($0.10)。ドキュメントフォールバックは境界線上のケースのみ発動。英国オンライン安全法およびフランスSRENに対応。毎月500回の確認が無料。

支援元
Y Combinator
GBTC Finance
Bondex
Crnogorski Telekom
UCSF Neuroscape
Shiply
Adelantos

世界中の2,000以上の組織から信頼されています。

ダークシネマティックな年齢確認コンプライアンススタック — 純粋な黒の上に3Dパースペクティブで浮かぶ4枚の半透明ガラスパネル。光るDidit Blueの線が通り、輝くスキャナーブラケットで囲まれています。各パネルには、年齢曲線、カレンダー、英国Ofcomの盾、フランスの三色旗を表す小さな淡い白色のモチーフが描かれています。

英国Ofcom · フランスSREN · EU DSA

1秒で年齢を検証します。必要な場合にのみ書類を使用します。

すべての訪問者にドキュメントアップロードを強制すると、完了率が25〜40%低下します。 Diditの適応フローは、まず年齢推定を実行し、境界線上のテールのみを ドキュメントフォールバックにルーティングします。2秒未満の自撮り判定、1チェックあたり$0.10、 ユーザーあたりの混合コストは約$0.115。毎月500回の確認が無料です。

仕組み

サインアップから認証済みユーザーまで、4つのステップで。

  1. ステップ 01

    ワークフローを作成する

    ID、生体認証、顔照合、制裁、住所、年齢、電話、メール、カスタム質問など、必要なチェックを選択します。ダッシュボードでフローにドラッグするか、同じフローをAPIに投稿します。条件に基づいて分岐させたり、A/Bテストを実行したりできます。コードは不要です。

  2. ステップ 02

    統合する

    当社のWeb、iOS、Android、React Native、またはFlutter SDKを使用してネイティブに埋め込みます。ホストされたページにリダイレクトします。または、メール、SMS、WhatsAppなど、どこでもユーザーにリンクを送信するだけです。スタックに合ったものを選んでください。

  3. ステップ 03

    ユーザーがフローを通過する

    Diditは、カメラ、照明キュー、モバイルハンドオフ、アクセシビリティをホストします。ユーザーがフロー中に、200以上の不正信号をリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。2秒未満で結果が出ます。

  4. ステップ 04

    結果を受け取る

    リアルタイムの署名付きウェブフックにより、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングします。または、コンソールを開いてすべてのセッション、すべての信号を検査し、ケースを独自の方法で管理します。

年齢制限のために構築 · インフラストラクチャのような価格設定

6つの機能。ユーザーあたり$0.115の混合料金。

1つの適応型ワークフローが自撮り優先のカスケードを実行し、境界線上の少数派のみをエスカレートします。ワークフローごとに境界線帯域を調整し、国ごとの年齢ルールを重ねて、Diditにルーティングを任せます。
01 · 自撮りのみで初回パス

1枚のパッシブセルフィーで年齢を推定します。

1フレーム、モーションチャレンジなし、ドキュメントアップロードなし。エントリーレベルのAndroidで2秒未満の判定、1チェックあたり$0.10。英国オンライン安全法およびフランスSRENに対する最小データ回答。
年齢推定モジュール
02 · 境界線帯域ルーティング

バンドを調整します。残りはDiditがルーティングします。

ワークフローごとに境界線帯域を設定します。明確な合格と明確な不合格は自撮りで完了し、帯域はドキュメントフォールバックにエスカレートします。再デプロイせずに、ノーコードのワークフロービルダーでカットポイントを編集します。
ワークフローオーケストレーター
03 · ドキュメントフォールバック

14,000以上の書類。220以上の国。

境界線上のテールのみがドキュメントをアップロードします。パスポート、国民IDカード、運転免許証、滞在許可証は、完全な光学文字認識(OCR)と機械読取可能ゾーン(MRZ)解析に対応しています。通常のトラフィックの約10%がこのステップに触れます。
ID検証モジュール
04 · 国ごとの年齢ルール

米国では21歳で飲酒。EUでは18歳。韓国では19歳。

国ごとに最低年齢を設定し、必要に応じて州レベルで上書きします(ミシシッピ州21歳、アラバマ州19歳、米国デフォルト18歳)。書類によるフォールバックは、発行国の規則に対して生年月日を自動的に検証します。
国別リファレンス
05 · 規制対応

英国Ofcom、フランスCNIL、EU DSA、ドイツJuSchG。

非常に効果的な年齢確認バーのために構築されています。スペインのTesoroとSEPBLACは、Diditのリモートフローが対面検証よりも安全であることを正式に証明しました。これは現在、EU加盟国政府によるこの種の唯一の証明です。監査パックには、iBeta Level 1 PAD、ISO/IEC 27001、SOC 2 Type 1が含まれます。
コンプライアンス文書
06 · 公開価格

$0.10 selfie. $0.15 document. Only when needed.

0.10ドルの年齢推定は、セルフィーでクリアする約90%をカバーします。0.15ドルの書類チェックは、境界線上の少数派である約10%に対してのみ実行されます。ブレンドされたコストは、ユーザーあたり約0.115ドルになります。毎月500回の検証が永久に無料です。
料金を見る
統合する

1つのワークフロー。1つのセッション。1つのウェブフック。

適応型ワークフローに対してセッションを開きます。Diditがカスケードを実行します。署名された判定はコールバックに届きます。
POST /v3/session/アダプティブ
$ curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_id": "wf_age_gate_uk_fr",
    "vendor_data": "user-42",
    "callback": "https://app/age-gate/cb"
  }'
201作成済み{ "session_url": "verify.didit.me/..." }
境界線上のケースでは、ワークフローがAGE_ESTIMATIONの後にID_VERIFICATIONを連鎖させます。ドキュメント →
GET /v3/session/{sessionId}/decision/判定
$ curl https://verification.didit.me/v3/session/<id>/decision/ \
  -H "x-api-key: $DIDIT_API_KEY"

# Returns the path taken
{
  "status": "承認済み",
  "liveness": { "age_estimation": 27.3 }
}
200OKステータス 承認済み · レビュー中 · 拒否済み · 未完了
署名されたWebhookと同じ形式。まずX-Signature-V2を検証してください。ドキュメント →
エージェント対応統合

1つのプロンプトで年齢確認を実装します。

Claude Code、Cursor、Codex、Devin、Aider、またはReplit Agentに貼り付けます。スタックを入力してください。エージェントが適応ワークフローを構築し、セッションを開き、Webhookを接続し、5分で出荷します。
didit-integration-prompt.md
You are integrating Didit's Age Verification recipe into <my_stack>. Selfie-first age estimation with an adaptive document fallback for the borderline tail. One Didit workflow. Two real endpoints.

  1. Verify age on a selfie. ONE call to the Sessions API runs Age Estimation + Passive Liveness on the same passive frame.
  2. Fall back to a document check ONLY when the estimate sits in the borderline band you define. Same Sessions API workflow handles the fallback automatically.

Bundle pricing (public):
  - Age Estimation: $0.10 per check (Sessions API or standalone)
  - ID Verification fallback: $0.15 per check, only when triggered
  - Typical blended cost lands near $0.115 per user (~90% finish on the selfie, ~10% touch the document fallback)
  - First 500 verifications free every month, forever

PRE-REQUISITES
  - Production API key from https://business.didit.me (sandbox key in 60s, no card).
  - Webhook endpoint with Hash-based Message Authentication Code (HMAC) SHA-256 verification using the X-Signature-V2 header and your webhook secret.
  - A workflow_id from the Workflow Builder. The workflow must contain the AGE_ESTIMATION feature, and (recommended) the ID_VERIFICATION feature with adaptive_id_verification enabled so the borderline tail routes through automatically.

STEP 1 — Build the adaptive workflow once

  POST https://verification.didit.me/v3/workflows/
  Headers:
    x-api-key: <your api key>
    Content-Type: application/json
  Body:
    {
      "workflow_label": "age_gate_uk_fr",
      "features": [
        { "feature": "AGE_ESTIMATION" },
        { "feature": "ID_VERIFICATION" }
      ],
      "age_estimation_decline_threshold": 18,
      "face_liveness_score_decline_threshold": 30,
      "adaptive_id_verification": true
    }

  Notes:
    - "AGE_ESTIMATION" and "ID_VERIFICATION" are exact, case-sensitive feature names.
    - age_estimation_decline_threshold defaults to 18; set 21 for US alcohol, 19 for South Korea, etc.
    - adaptive_id_verification = true tells Didit to invoke the document fallback automatically when the estimate sits inside the borderline band.

STEP 2 — Open an age-verification session per user

  POST https://verification.didit.me/v3/session/
  Headers:
    x-api-key: <your api key>
    Content-Type: application/json
  Body:
    {
      "workflow_id": "<the workflow_id from step 1>",
      "vendor_data": "<your internal user id>",
      "callback": "https://<your-app>/age-gate/callback",
      "metadata": {
        "purpose": "age_gate",
        "surface": "<the page or feature being gated>"
      }
    }

  Response: 201 Created with the hosted session_url. Redirect the user to it. The hosted flow opens the front camera, captures one passive frame, runs Age Estimation + Passive Liveness in sub-2-seconds, and either returns a verdict or routes the user into the document fallback automatically.

STEP 3 — Read the signed webhook on session completion

  Didit POSTs to your callback. Session statuses are exact Title Case With Spaces.

  Body (excerpted for an Age Estimation only finish):
    {
      "session_id": "<uuid>",
      "vendor_data": "<your user id>",
      "status": "Approved",
      "liveness": {
        "status": "Approved",
        "method": "PASSIVE",
        "score": 92,
        "age_estimation": 27.3,
        "warnings": []
      }
    }

  Body (excerpted when the document fallback fired):
    {
      "session_id": "<uuid>",
      "vendor_data": "<your user id>",
      "status": "Approved",
      "liveness": { "status": "Approved", "age_estimation": 17.9, "warnings": [{ "code": "AGE_NOT_DETECTED" }] },
      "id_verification": {
        "status": "Approved",
        "date_of_birth": "1998-03-21",
        "age": 27,
        "document_type": "Passport",
        "issuing_state": "GBR"
      }
    }

  Verify X-Signature-V2 BEFORE trusting the body — HMAC SHA-256 of the raw bytes with your webhook secret.

  Session status enum (exact case): Approved | Declined | In Review | Resubmitted | Expired | Not Finished | Kyc Expired | Abandoned.

  Warning catalog:
    - AGE_BELOW_MINIMUM        estimated or computed age below the threshold
    - AGE_NOT_DETECTED         unable to estimate age (lighting / quality)
    - LOW_LIVENESS_SCORE       passive-liveness score below threshold
    - NO_FACE_DETECTED         no face in the capture
    - LIVENESS_FACE_ATTACK     presentation attack suspected
    - POSSIBLE_DUPLICATED_FACE same face previously verified

STEP 4 — Branch your surface on the final verdict

  Approved      → grant access to the gated surface.
  Declined      → render the regulator-required age-gate notice.
  In Review     → hold; an analyst case is open in the Business Console.
  Not Finished  → user abandoned; safe to re-prompt.

STEP 5 — Alternate path (server-to-server, when you already have the selfie)

  POST https://verification.didit.me/v3/age-estimation/
  Headers:
    x-api-key: <your api key>
  Body (multipart/form-data):
    user_image                              <single passive selfie>
    age_estimation_decline_threshold        18    (optional, integer)
    face_liveness_score_decline_threshold   30    (optional, integer)

  Branch on the borderline band yourself, then optionally call:

  POST https://verification.didit.me/v3/id-verification/
  Body (multipart/form-data):
    front_image  <required>
    back_image   <optional>
    vendor_data  <optional, your user id>

  This path is useful for native onboarding apps that capture the selfie locally.

CONSTRAINTS
  - Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
  - Feature enum is UPPERCASE: AGE_ESTIMATION, ID_VERIFICATION, LIVENESS, FACE_MATCH, AML, IP_ANALYSIS.
  - Method enum is UPPERCASE: PASSIVE, FLASHING, ACTIVE_3D.
  - Auth header is x-api-key (lowercase, hyphenated).
  - Webhook signature header is X-Signature-V2 (NOT X-Signature).
  - Status casing matches exactly: Approved, Declined, In Review, Expired, Not Finished, Resubmitted, Kyc Expired, Abandoned.
  - Reference image URLs are signed and expire in 60 minutes. Store only the verdict + score; never the biometric media unless retention is explicitly enabled for fraud defence.
  - 200+ fraud signals are evaluated on every session at no extra cost — surface the score via the session decision payload, do not re-query.

WEBHOOK EVENT NAMES
  - Sessions: status changes flow through the standard session webhook.
  - Verify X-Signature-V2 on every payload.

Read the docs:
  - https://docs.didit.me/core-technology/age-estimation/overview
  - https://docs.didit.me/sessions-api/create-session
  - https://docs.didit.me/integration/webhooks

Start free at https://business.didit.me — sandbox key in 60 seconds, 500 verifications free every month, no credit card.
さらに詳しい情報が必要ですか?モジュールの全ドキュメントをご覧ください。docs.didit.me →
設計によるコンプライアンス

ワンクリックで新しい国を開拓。 私たちは大変な作業を行います。

私たちは現地の子会社を開設し、ライセンスを確保し、侵入テストを実施し、認証を取得し、すべての新しい規制に準拠します。新しい国で検証を出荷するには、トグルを切り替えるだけです。220以上の国が稼働しており、四半期ごとに監査と侵入テストが行われています — EU加盟国の政府が対面検証よりも安全だと正式に認めた唯一のIDプロバイダーです。
セキュリティ&コンプライアンスの書類を読む
EU金融サンドボックス
Tesoro · SEPBLAC · BdE
ISO/IEC 27001
情報セキュリティ · 2026
SOC 2 · Type I
AICPA · 2026
iBeta Level 1 PAD
NIST / NIAP · 2026
GDPR
EU 2016/679
DORA
EU 2022/2554
MiCA
EU 2023/1114
AMLD6 · eIDAS 2.0
設計によりEUに準拠

証明数

証明数
  • $0.000
    ユーザーあたりの混合コスト — セルフィーと10%の境界線ドキュメントフォールバック。
  • ~90%
    ユーザーはパッシブセルフィーのみで完了します — ドキュメントのアップロードは不要です。
  • <0s
    エントリーレベルのAndroidでセッションごとに返される年齢帯。
  • 0
    毎月、永久に無料の検証。
3つのティア、1つの価格表

無料で開始。従量課金。エンタープライズへ拡張。

毎月500回の無料検証、永久に。本番環境では従量課金。エンタープライズではカスタム契約、データレジデンシー、SLA(サービスレベル契約)。
無料

無料

月額$0。クレジットカード不要。

  • 無料KYCバンドル(ID検証 + パッシブ生体検知 + 顔照合 + デバイス&IP分析) — 毎月500回
  • ブロックリスト登録ユーザー
  • 重複検出
  • すべてのセッションで200以上の不正信号
  • Diditネットワーク全体でのKYCの再利用
  • ケース管理プラットフォーム
  • ワークフロービルダー
  • 公開ドキュメント、サンドボックス、SDK、MCP(Model Context Protocol)サーバー
  • コミュニティサポート
最も人気
従量課金

従量課金制

使用した分だけお支払いください。25以上のモジュール。モジュールごとの公開価格、月額最低料金なし。

  • $0.33で完全なKYC(ID + 生体認証 + IP / デバイス)
  • 10,000以上のAMLデータセット — 制裁、PEPs、ネガティブメディア
  • データベース検証のための1,000以上の政府データソース
  • トランザクションあたり$0.02でトランザクション監視
  • 企業あたり$2.00でライブKYB
  • チェックあたり$0.15でウォレットスクリーニング
  • ホワイトラベル検証フロー — あなたのブランド、私たちのインフラ
エンタープライズ

エンタープライズ

カスタムMSA & SLA。大量の取引と規制プログラム向け。

  • 年間契約
  • カスタムMSA、DPA、SLA
  • 専用のSlackおよびWhatsAppチャネル
  • オンデマンドの手動レビュー担当者
  • 再販業者およびホワイトラベルの条件
  • 独占的な機能とパートナー統合
  • 指名されたCSM、セキュリティレビュー、コンプライアンスサポート

無料で開始 → チェック実行時のみ支払い → カスタム契約、SLA、またはデータレジデンシーのためにエンタープライズをアンロック。

FAQ

よくある質問

本人確認と不正対策のためのインフラ。

KYC、KYB、取引モニタリング、ウォレットスクリーニングのための単一API。5分で統合。

AIにこのページの要約を依頼する