قدّر عمر المستخدم من صورة سيلفي, بلا رفع هوية، بلا تعقيدات. في أقل من ثانيتين، دقة ±3.5 سنة، كشف حيوية معتمد من iBeta على نفس الالتقاط. 0.10 دولار لكل فحص، 500 فحص مجاني/شهريًا.
تحليل الوجه على الجهاز يعطي تقديرًا للعمر في أقل من ثانيتين, بلا صورة هوية، وبأقل قدر من البيانات الشخصية. مبني على نفس المحرك المعتمد من iBeta المستوى 1 للكشف عن هجمات التقديم.
كيف يعمل
من التسجيل إلى مستخدم موثوق في أربع خطوات.
الخطوة 01
أنشئ سير العمل
اختر الفحوصات التي تريدها, الهوية، الحيوية، مطابقة الوجه، العقوبات، العنوان، العمر، الهاتف، البريد الإلكتروني، الأسئلة المخصصة. اسحبها إلى سير عمل في لوحة التحكم، أو انشر نفس سير العمل إلى واجهة برمجة التطبيقات (API) الخاصة بنا. قم بالتفرع بناءً على الشروط، وقم بإجراء اختبارات A/B، لا يتطلب أي كود.
الخطوة 02
ادمج
ادمج بشكل أصلي مع حزم SDK الخاصة بنا للويب، iOS، Android، React Native، أو Flutter. أعد التوجيه إلى صفحة مستضافة. أو ببساطة أرسل لمستخدمك رابطًا, عبر البريد الإلكتروني، الرسائل القصيرة، واتساب، أي مكان. اختر ما يناسب نظامك.
الخطوة 03
يمر المستخدم عبر سير العمل
تستضيف Didit الكاميرا، إشارات الإضاءة، التسليم عبر الهاتف المحمول، وإمكانية الوصول. بينما يكون المستخدم في سير العمل، نقوم بتقييم أكثر من 200 إشارة احتيال في الوقت الفعلي ونتحقق من كل حقل مقابل مصادر البيانات الموثوقة. النتائج في أقل من ثانيتين.
الخطوة 04
تتلقى النتائج
تُبقي الـ webhooks الموقعة في الوقت الفعلي قاعدة بياناتك متزامنة لحظة الموافقة على المستخدم، أو رفضه، أو إرساله للمراجعة. استعلم من الـ API عند الطلب. أو افتح وحدة التحكم لفحص كل جلسة، كل إشارة، وإدارة الحالات بطريقتك.
كل إمكانية أدناه هي مفتاح تشغيل في نفس الوحدة. لا توجد مستويات بيع إضافية، ولا وحدات SKU منفصلة، ولا مكالمات إضافية. قم بتشغيلها لكل سير عمل أو مررها مباشرةً في استدعاء الـ API.
حل يعتمد على الحد الأدنى من البيانات للتجارة المقيدة بالعمر, المحتوى المخصص للبالغين، توصيل الكحول، القمار عبر الإنترنت. صورة سيلفي سلبية واحدة تغطي غالبية الحالات التي تمر بوضوح أو تفشل بوضوح، مما يقلل من معدل التخلي عن العملية مقارنةً بالتحميل الكامل للهوية بمقدار كبير. يتوافق مع قانون السلامة عبر الإنترنت في المملكة المتحدة وقانون كاليفورنيا المناسب للعمر.
التحقق من العمر
إطار سلبي واحد · لا يوجد تحميل هوية
صورة سيلفي فقط
إطار واحد · سلبي
age_estimation
24 سنة
النطاق 18 – 29
verdict
اجتياز واضح
العتبة 18+
document
لا يلزم أي شيء
لا يتطلب رفع هوية
cost
$0.10
لكل صورة سيلفي
جاهز · قانون السلامة على الإنترنت في المملكة المتحدة · CCPA مناسب للعمر
02 · الدقة
±3.5 سنوات عبر كل الفئات العمرية.
متوسط الخطأ 3.5 سنوات بشكل عام, 89% من التقديرات تقع ضمن ±5 سنوات، و 76% ضمن ±3 سنوات. يتم نشر الأداء لكل فئة, 1.5 سنة لمن هم دون 18، 2.8 سنة لمن تتراوح أعمارهم بين 18-25، 3.9 سنة لمن تتراوح أعمارهم بين 41-60, حتى تتمكن من تحديد عتبتك بناءً على أرقام حقيقية، وليس مجرد صفات من البائع.
الدقة
متوسط الخطأ المطلق · لكل فئة
±3.5 سنة MAE
±3.5y
متوسط الخطأ المطلق الكلي
89%
ضمن ±5 سنوات
76%
ضمن ±3 سنوات
قوسالتوزيعMAE
<18
1.5y
18 – 25
2.8y
26 – 40
3.4y
41 – 60
3.9y
03 · العدالة الديموغرافية
مدرب على ملايين الوجوه. عبر كل التركيبات السكانية.
التحيز هو أكبر سبب لفشل نماذج تقدير العمر، وهو ما يبحث عنه المنظمون. نماذجنا تتدرب على مجموعة بيانات متوازنة عبر العمر، العرق، الجنس، وظروف الإضاءة، مع نشر الخطأ لكل فئة بدلاً من متوسطه. يتم إعادة تدريبها باستمرار للبقاء في طليعة التغيرات الديموغرافية.
الإنصاف الديموغرافي
MAE لكل محور · إعادة تدريب مستمرة
متوازن
العمر±3.5y
العرق±3.7y
الجنس±3.4y
الإضاءة±3.6y
مجموعة التدريب
12.4 مليون وجه
إعادة التدريب
ربع سنوي
آخر تحديث
أبريل 2026
04 · عتبات قابلة للتكوين
اضبط السياسة لكل سير عمل ولكل بلد.
عتبة الرفض (الافتراضية 18) والحد الأدنى لحيوية الوجه لكل سير عمل. أضف قواعد خاصة بكل بلد, الحد الأدنى/الأقصى للعمر لكل بلد مع تجاوزات على مستوى الولاية حيثما يكون ذلك مهمًا (ميسيسيبي 21، ألاباما 19، الافتراضي في الولايات المتحدة 18). نقرة واحدة تطبق السن القانوني العالمي للرشد كخط أساس؛ قم بضبط الاستثناءات.
سياسة العتبة
لكل سير عمل · لكل بلد
3 نطاقات
نطاق التقديرإجراء
تقدير < 15
رفض
تقدير 15 – 25
مراجعة
تقدير > 25
موافقة
تجاوزات لكل بلد · الحد الأدنى للعمر
🇺🇸الافتراضي الأمريكي18+
🇺🇸ميسيسيبي21+
🇺🇸ألاباما19+
🇬🇧المملكة المتحدة18+
05 · حل Adaptive ID البديل
الحالات الحدودية توجه تلقائيًا إلى فحص المستندات.
الحالات التي تمر بوضوح وتفشل بوضوح تكتمل بصورة السيلفي وحدها. التقديرات الحدودية, الأقلية غير المؤكدة بالقرب من عتبتك, تؤدي تلقائيًا إلى تشغيل تدفق التحقق التكيفي من العمر (Adaptive Age Verification)، والذي تحكمه القواعد الخاصة بكل بلد في خطوة الهوية. يكمل معظم المستخدمين العملية بصورة سيلفي؛ ولا يتم تفعيل فحص المستندات إلا عندما تتطلب الحسابات ذلك. يتم الفوترة بمبلغ $0.15 لكل حل بديل للتحقق من الهوية.
التوجيه التكيفي
صورة شخصية · حالة حرجة · بديل الهوية
مباشر
1,284
اجتياز واضح
47
حدي
9
فشل واضح
تم تفعيل الحل البديل · تم توجيه usr_9f01a3c إلى التحقق من الهوية$0.15
Ausr_a8c4f0232 سنة · الفئة 26 – 40اجتياز واضح
Musr_9f01a3c17 سنة · الفئة 15 – 19الهوية مطلوبة
Lusr_4d2b6e113 سنة · الفئة 11 – 15فشل واضح
06 · أساس التحقق من الحيوية
التقاط واحد. إشارتان. نفس محرك التحقق من الحيوية.
يعمل تقدير العمر فوق خط أنابيب اكتشاف هجوم العرض (PAD) من iBeta المستوى 1, نفس صورة السيلفي تعطي حكمًا بأن الشخص حقيقي ونطاقًا عمريًا. يهزم التزييف العميق، الصور المطبوعة، إعادة تشغيل الشاشات، والأقنعة المصنوعة من السيليكون قبل أن يبدأ نموذج العمر بالعمل. قم بتشغيله في سير عمل التحقق من الحيوية (Liveness) وستضيء عملية التقاط واحدة كلا الحقلين.
التقاط واحد · إشارتان
iBeta L1 PAD · ISO/IEC 30107-3
التحقق من الحيوية + العمر
تمت الموافقة · 98العمر 24 · الفئة 18 – 29
صورة مطبوعةمحظور
إعادة عرض الشاشةمحظور
قناع سيليكونمحظور
تزييف عميق بالذكاء الاصطناعيمحظور
نفس المحرك · معتمد من iBeta L1 PAD · يعاد اختباره سنويًا
ادمج
نقطتا نهاية. نفس الـ JSON. نفس السعر.
أنشئ جلسة عندما تريد أن تتعامل واجهة المستخدم المستضافة لدينا مع صورة السيلفي (والحل البديل Adaptive ID للحالات الحدودية). استدعِ نقطة النهاية المستقلة عندما تكون لديك صورة السيلفي بالفعل. نفس حظر العمر في كلتا الحالتين.
الصق الكتلة أدناه في Claude Code أو Cursor أو Codex أو Devin أو Aider أو Replit Agent. املأ العنصر النائب `my_stack` بإطار العمل واللغة وحالة الاستخدام الخاصة بك. يقوم الوكيل بتوفير Didit، وإنشاء سير العمل، وربط الويب هوك، ثم الإطلاق.
didit-integration-prompt.md
# Didit Age Estimation — integrate in 5 minutes
You are integrating Didit's Age Estimation module into <my_stack>. Follow
these steps exactly. Every URL, header, and enum value below is canonical
— do not paraphrase or "improve" them.
## 1. Provision an account
- Sign up: https://business.didit.me (no credit card required).
- Or provision programmatically: POST https://apx.didit.me/auth/v2/programmatic/register/
(returns an API key bound to the workspace + application).
## 2. Two integration paths — pick one
### Path A — Workflow Builder (hosted UI)
Best when you want Didit to handle the camera, framing, low-light
fallback, mobile handoff, and accessibility for you. Required if you want
Adaptive Age Verification (auto-fall-back to ID for borderline cases).
1. Create a workflow that contains the AGE_ESTIMATION feature:
POST https://verification.didit.me/v3/workflows/
Authorization header: x-api-key: <your-api-key>
Body: workflow_label, features array with the single entry
{ feature: "AGE_ESTIMATION" } (UPPERCASE — strict enum)
Optional config:
- age_estimation_decline_threshold (default 18)
- face_liveness_score_decline_threshold (default 30)
- adaptive_id_verification (when true, borderline cases trigger ID
verification fallback governed by per-country age restrictions on
the ID Verification step)
- per_country_age_restrictions (map of country -> min / max age,
with optional state-level overrides)
2. Create a verification session for an end user:
POST https://verification.didit.me/v3/session/
Body: workflow_id (from step 1), vendor_data (your own user id).
Response: session_url — redirect the user to it.
3. Listen for webhook callbacks (see "Webhooks" below).
### Path B — Standalone server-to-server API
Best when you already have a selfie image (mobile SDK capture, native
onboarding app, reseller pipeline) and only need a numeric age estimate
plus passive-liveness verdict on it. No adaptive ID fallback on this
path — wire that yourself if you need it.
POST https://verification.didit.me/v3/age-estimation/
Content-Type: multipart/form-data
Body fields:
- user_image (required, file — single selfie)
- age_estimation_decline_threshold (optional integer 0-100, default 18)
- face_liveness_score_decline_threshold (optional integer 0-100, default 30)
- rotate_image (optional boolean, default false)
- save_api_request (optional boolean, default true)
- vendor_data (optional string, your user id)
Response: JSON with request_id, age_estimation block, created_at.
## 3. Webhooks (Path A only — Path B returns synchronously)
- Register a webhook destination once via
POST https://verification.didit.me/v3/webhook/destinations/
Body: url, subscribed_events: ["session.verified", "session.review_started",
"session.declined"]
- Response includes secret_shared_key — store it.
- Every webhook delivery carries an X-Signature-V2 header you MUST verify
before trusting the payload. HMAC-SHA256 verification MUST run against the raw body bytes (the raw payload as Didit sent it) BEFORE any JSON parsing — re-serialising the parsed body changes whitespace and key order, which invalidates the signature.Algorithm:
1. sortKeys(payload) recursively
2. shortenFloats (truncate trailing zeros after the decimal point)
3. JSON.stringify the result
4. HMAC-SHA256 with the secret_shared_key
5. Hex-encode, compare to the X-Signature-V2 header.
## 4. Reading the report
### Path A (session) — age_estimation lives on the liveness object
The liveness object on the session report includes age_estimation as a
number-of-years field on the same selfie capture:
- liveness.status "Approved" | "Declined" | "In Review" | "Not Finished"
- liveness.method "PASSIVE" | "FLASHING" | "ACTIVE_3D"
- liveness.score number 0-100 (normalized liveness score)
- liveness.reference_image signed URL to the captured selfie (60-minute TTL)
- liveness.age_estimation estimated age in years (e.g. 24.3)
- liveness.warnings Array of risk objects (see below)
### Path B (standalone) — top-level age_estimation block
- request_id uuid
- age_estimation.status "Approved" | "Declined" | "In Review"
- age_estimation.method "PASSIVE"
- age_estimation.score number 0-100 (passive-liveness score)
- age_estimation.age_estimation estimated age in years (e.g. 27.33)
- age_estimation.user_image.entities array of detected faces, each with
age, bbox, confidence, gender
- age_estimation.user_image.best_angle integer
- age_estimation.face_quality 0-100 face image quality score
- age_estimation.face_luminance 0-100 face luminance score
- age_estimation.warnings Array of risk objects (see below)
- created_at ISO8601
### Warning catalog (both paths)
- AGE_BELOW_MINIMUM estimated age below the configured threshold
- AGE_NOT_DETECTED unable to estimate age (quality / lighting)
- LOW_LIVENESS_SCORE passive-liveness score below threshold
- NO_FACE_DETECTED no face in the capture
- LIVENESS_FACE_ATTACK presentation attack suspected
- FACE_IN_BLOCKLIST face matches an entry in your blocklist
- POSSIBLE_DUPLICATED_FACE face matches a previously verified face
## 5. Hard rules — do not change
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: AGE_ESTIMATION, LIVENESS, ID_VERIFICATION,
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).
- Always verify webhook signatures before trusting payload data.
- Status casing matches exactly: "Approved", "Declined", "In Review",
"Not Finished" (title-cased, space-separated).
- Reference image / video URLs are signed and expire in 60 minutes —
store only the verdict + score, never the biometric media.
## 6. Pricing reference (public)
- AGE_ESTIMATION standalone or bundled inside a workflow: $0.10 per check
- Adaptive fallback to ID Verification (when triggered): $0.15 per check
- Bundled in a full KYC workflow alongside Liveness + ID + IP: $0.33 per session
- 500 free verifications every month, forever, on every account.
## 7. Verify your integration
- Sandbox starts on signup at https://business.didit.me — no separate flag.
- Test images: deterministic synthetic faces returned in sandbox
(predictable estimated age band; trigger AGE_BELOW_MINIMUM by sending
the canonical "minor" test image).
- Switch to live: flip the application environment toggle in console.
When in doubt: https://docs.didit.me/core-technology/age-estimation/overview
متوافق حسب التصميم
افتح دولة جديدة بنقرة واحدة. نحن نقوم بالعمل الشاق.
نحن نفتح الشركات التابعة المحلية، ونؤمن التراخيص، ونجري اختبارات الاختراق، ونحصل على الشهادات، ونتوافق مع كل لائحة جديدة. لنشر عمليات التحقق في بلد جديد، ما عليك سوى تفعيل مفتاح. أكثر من 220 دولة تعمل، يتم تدقيقها واختبار اختراقها كل ربع سنة, المزود الوحيد للهوية الذي وصفته حكومة دولة عضو في الاتحاد الأوروبي رسميًا بأنه أكثر أمانًا من التحقق الشخصي.