إعادة مصادقة بيومترية بدون كلمة مرور للمستخدمين العائدين. لا فواتير SMS، لا مخاطر تبديل الشريحة (SIM-swap)، ولا انتظار استجابة شركات الاتصالات. نفس محرك iBeta Level 1 PAD (كشف هجمات العرض) المستخدم في التسجيل. $0.10 لكل مصادقة، 500 مجانًا شهريًا.
أعد استخدام الهوية التي تم التحقق منها عند التسجيل لمصادقة المستخدمين العائدين.
مقاومة لتبديل شرائح SIM، ومقاومة للتصيد الاحتيالي، بتكلفة 0.10 دولار لكل مكالمة, أرخص من رسالة SMS
ذهابًا وإيابًا في كل سوق.
كيف يعمل
من التسجيل إلى مستخدم موثوق به في أربع خطوات.
الخطوة 01
أنشئ سير العمل
اختر الفحوصات التي تريدها, الهوية، التحقق من الوجود، مطابقة الوجه، العقوبات، العنوان، العمر، الهاتف، البريد الإلكتروني، الأسئلة المخصصة. اسحبها إلى سير عمل في لوحة التحكم، أو انشر نفس سير العمل على واجهة برمجة التطبيقات (API) الخاصة بنا. قم بالتفرع بناءً على الشروط، وقم بإجراء اختبارات A/B، لا يلزم وجود كود.
الخطوة 02
ادمج
ادمج بشكل أصلي باستخدام SDK الخاص بنا للويب، iOS، Android، React Native، أو Flutter. أعد التوجيه إلى صفحة مستضافة. أو ببساطة أرسل لمستخدمك رابطًا, عبر البريد الإلكتروني، الرسائل القصيرة، واتساب، أي مكان. اختر ما يناسب نظامك.
الخطوة 03
يمر المستخدم عبر سير العمل
تستضيف Didit الكاميرا، إشارات الإضاءة، التسليم عبر الهاتف المحمول، وإمكانية الوصول. بينما يكون المستخدم في سير العمل، نقوم بتقييم أكثر من 200 إشارة احتيال في الوقت الفعلي ونتحقق من كل حقل مقابل مصادر البيانات الموثوقة. النتائج في أقل من ثانيتين.
الخطوة 04
تتلقى النتائج
تحافظ webhooks الموقعة في الوقت الفعلي على مزامنة قاعدة بياناتك لحظة الموافقة على المستخدم، أو رفضه، أو إرساله للمراجعة. استعلم من API عند الطلب. أو افتح وحدة التحكم لفحص كل جلسة، كل إشارة، وإدارة الحالات بطريقتك.
كل قدرة أدناه هي مفتاح تشغيل/إيقاف في نفس نوع سير العمل. لا توجد مستويات بيع إضافية، لا وحدات SKU منفصلة، لا مكالمات إضافية. قم بتشغيلها لكل سير عمل، ثم أنشئ جلسة بمكالمة واحدة.
بديل مباشر للمصادقة الثنائية القائمة على الرسائل القصيرة.
قم بتشغيل المصادقة البيومترية عند كل إجراء حساس, تحويل ذو قيمة عالية، إعادة تعيين كلمة المرور، سحب كبير، تسجيل دخول من جهاز جديد. لا فاتورة من شركة الاتصالات، لا تعرض لتبديل شرائح SIM، لا تصيد احتيالي لمرة واحدة (OTP). نفس واجهة المستخدم المستضافة مثل سير عمل التسجيل الخاص بك, لا يتعلم المستخدمون أي تحكم جديد. 0.10 دولار لكل مصادقة، أرخص من الرسائل القصيرة ومحصن ضد جميع نواقل هجمات الرسائل القصيرة.
مصادقة متقدمةPOST /v3/session/
المصادقة الثنائية عبر الرسائل النصية (SMS 2FA)
رمز مكون من 6 أرقام
تبديل SIM
فاتورة شركة الاتصالات
التصيد الاحتيالي
المصادقة البيومترية
فحص الوجه
لا يوجد تعرض لبطاقة SIM
$0.10 لكل مصادقة
مقاوم للتصيد الاحتيالي
بديل جاهز للاستخدام. نفس المحرك المعتمد من iBeta الذي استخدمته عند التسجيل.
02 · وضعان
التحقق من الوجود فقط أو التحقق من الوجود بالإضافة إلى مطابقة الوجه. اختر لكل سير عمل.
التحقق من الوجود فقط لفحص حضور منخفض الاحتكاك، أو التحقق من الوجود بالإضافة إلى مطابقة الوجه لربط الهوية الكاملة بالصورة الشخصية المخزنة عند التسجيل. كلاهما يعيد نفس JSON. قم بتبديل الأوضاع عن طريق تعديل سير العمل, لا تغيير في العميل، لا نقطة نهاية جديدة، نفس 0.10 دولار لكل مصادقة.
وضعان · سير عمل واحدbiometric_authentication
التحقق من الحيوية فقطفحص الوجود
الميزات: [LIVENESS]
يؤكد وجود إنسان حقيقي. أقل احتكاك.
التحقق من الحيوية + مطابقة الوجهربط الهوية
الميزات: [LIVENESS, FACE_MATCH]
يضيف ربط `portrait_image` إلى عملية التسجيل. أعلى مستوى أمان.
تبديل لكل سير عمل. نفس `workflow_id`. نفس $0.10 لكل مصادقة.
03 · حكم في أقل من ثانيتين
أقل من ثانية واحدة من زمن الاستجابة المتوقع عند تسجيل الدخول.
الاستدلال المقدم من الحافة, لا يوجد تنزيل للنموذج، لا افتراض لتسريع على الجهاز، لا تجربة متدهورة على أجهزة Android الرخيصة. التقاط ~0.3 ثانية، التحقق من الوجود في أقل من ثانية، مطابقة الوجه ~0.5 ثانية، webhook في أقل من ثانيتين من البداية إلى النهاية. أسرع من رمز SMS، ولا يغادر المستخدم تطبيقك أبدًا.
زمن استجابة تسجيل الدخولمن البداية إلى النهاية < 2 ثانية
Capture · auto-frame0.32 s
Liveness · passive0.81 s
Face match · 1:10.42 s
Approved · webhook out1.65 s
الاستدلال المقدم من الحافة. لا يوجد تنزيل للنموذج. لا يوجد ذهاب وعودة للناقل.
04 · حماية من الاستيلاء على الحساب
iBeta المستوى 1 ضد كتالوج الهجمات الكامل.
معتمد بشكل مستقل في PAD (الكشف عن هجمات العرض) المستوى 1 من قبل iBeta, المعيار الذي تستشهد به NIST و Open Identity Exchange. يهزم إعادة تشغيل صور السيلفي المسروقة، التزييف العميق (deepfakes)، الأقنعة الورقية، أقنعة السيليكون واللاتكس، هجمات التشويه. تبقى مشغلات الرفض الصارم (الوجه المدرج في القائمة السوداء، عدم اكتشاف وجه، توقيع هجوم، عدم وجود صورة مرجعية) سارية بغض النظر عن إعداداتك.
الدفاع ضد الاستيلاء على الحسابiBeta L1 PAD
تزييف عميق (Deepfake) لمالك الحسابتم الحظر
قناع سيليكون أو ورقيتم الحظر
صورة سيلفي مسروقة · هجوم إعادة التشغيلتم الحظر
وجه في القائمة السوداءرفض تلقائي
05 · إعادة استخدام الصورة الشخصية
أعد استخدام صورة التسجيل. لا شيء جديد للتخزين.
لديك بالفعل الصورة المرجعية للمستخدم من KYC عند التسجيل, مررها في كل جلسة مصادقة بيومترية ونحن نقوم بتقييم التشابه. نفس متجر القوالب، نفس البنية التحتية الافتراضية للاتحاد الأوروبي (إقامة إقليمية محددة على Enterprise)، نفس مسؤول حماية البيانات. لا إعادة إعداد، لا قرار تخزين إضافي.
إعادة استخدام صورة KYCportrait_image
sign-up
صورة KYC
→
كل عملية تسجيل دخول
مطابقة الوجه 1:1
درجة التشابه96.2
نفس مخزن القوالب المستخدم في KYCEU AWS
06 · عتبات قابلة للتعديل
عتبات تشابه وتحقق من الوجود قابلة للتكوين لكل سير عمل.
تحذيرات انخفاض التحقق من الوجود وانخفاض مطابقة الوجه تحمل كل منها عتبة مراجعة وعتبة رفض تقوم بضبطها لكل تطبيق. صارمة للتحويلات ذات القيمة العالية، متساهلة لتسجيلات الدخول من الأجهزة الجديدة, كل ذلك من نفس محرر سير العمل في وحدة التحكم. كتالوج التحذيرات الكامل موجود في الوثائق.
ادمج
تكوينان. نفس الجلسة. نفس السعر.
كلا التكوينين ينشئان جلسة على نفس سير عمل المصادقة البيومترية. التحقق من الوجود فقط هو للتحقق من الحضور فقط, بأقل احتكاك. التحقق من الوجود بالإضافة إلى مطابقة الوجه يربط المصادقة بصورة التسجيل المخزنة للمستخدم. قم بالتبديل عن طريق تعديل سير العمل, لا تغيير في العميل.
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_bio_auth",
"vendor_data": "user-42",
// base64-encoded reference selfie, ≤ 1MB// omit this field for liveness-only mode"portrait_image": "/9j/4AAQSkZJRgABAQE..."}'
الصق الكتلة أدناه في Claude Code، Cursor، Codex، Devin، Aider، أو Replit Agent. املأ العنصر النائب my_stack بإطار عملك، لغتك، وحالة الاستخدام الخاصة بك. يقوم الوكيل بتوفير Didit، وإنشاء سير العمل، وربط الجلسة وخطاف الويب (webhook)، ثم الإطلاق.
didit-integration-prompt.md
# Didit Biometric Authentication — integrate in 5 minutes
You are integrating Didit's Biometric Authentication module into <my_stack>.
This is a returning-user passwordless re-verification flow — a drop-in
replacement for SMS or email 2FA at high-value actions (large transfers,
password reset, large withdrawals, sensitive setting changes). It is NOT
the first-time KYC sign-up flow — for that, see Didit Liveness at
docs.didit.me/core-technology/liveness/overview.
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. Create the biometric_authentication workflow (one time)
Biometric Authentication is a workflow_type, not a feature flag. Create
the workflow once, reuse the workflow_id for every authentication.
POST https://verification.didit.me/v3/workflows/
Header: x-api-key: <your-api-key>
Body:
- workflow_label (your label, e.g. "step-up-2fa")
- workflow_type "biometric_authentication" (snake_case enum)
- features the array
[{ feature: "LIVENESS" }] (liveness-only mode)
OR
[{ feature: "LIVENESS" }, { feature: "FACE_MATCH" }] (face-match mode)
- liveness_method "PASSIVE" | "FLASHING" | "ACTIVE_3D" (PASSIVE recommended for low-friction step-up)
Store the returned workflow_id — you will reuse it on every auth.
## 3. Authenticate a returning user
POST https://verification.didit.me/v3/session/
Header: x-api-key: <your-api-key>
Header: Content-Type: application/json
Body:
- workflow_id (from step 2)
- vendor_data (your own user id, e.g. "user-42")
- callback (optional URL we redirect the user to after capture)
- metadata (optional JSON, surfaced back on the webhook)
- portrait_image (Base64 JPEG, REQUIRED when the workflow has FACE_MATCH;
OMIT for liveness-only mode)
The portrait_image is the stored reference photo from the user's original
KYC verification (you already have it as id_verification.portrait_image in
the original session response). Send it as a Base64-encoded JPEG, max 1 MB.
Response: session_url — redirect the user to it. Didit hosts the capture
(camera, motion prompts, low-light fallback, accessibility) and posts the
verdict back via webhook.
## 4. Webhooks
- Register a webhook destination once via
POST https://verification.didit.me/v3/webhook/destinations/
Body: url, subscribed_events: ["session.verified", "session.declined",
"session.review_started"]
- 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.
## 5. Reading the report
The webhook payload (and the GET /v3/session/{id}/decision/ response)
returns the combined biometric_authentication shape:
status "Approved" | "Declined" | "Not Finished"
workflow_id string
session_id uuid
session_number integer
vendor_data your user id
liveness:
status "Approved" | "Declined" | "Not Finished"
method "PASSIVE" | "FLASHING" | "ACTIVE_3D"
score number 0-100
reference_image signed URL to the captured selfie (expires in 1 hour)
video_url signed URL (FLASHING and ACTIVE_3D only, expires in 1 hour)
warnings array
face_match: (only present in face-match mode)
status "Approved" | "Declined" | "Not Finished"
score number 0-100 (similarity %)
source_image signed URL to the captured selfie
target_image signed URL to the supplied portrait_image
warnings array
Overall status is "Approved" only when liveness.status == "Approved" AND
(face_match is absent OR face_match.status == "Approved").
Auto-decline triggers (always enforced by Didit, not configurable):
FACE_IN_BLOCKLIST, NO_FACE_DETECTED, LIVENESS_FACE_ATTACK, NO_REFERENCE_IMAGE
Configurable risks (action per workflow — Decline, Review, or Approve):
LOW_LIVENESS_SCORE, LOW_FACE_MATCH_SIMILARITY
## 6. Hard rules — do not change
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- workflow_type is snake_case: biometric_authentication.
- Feature enums inside the workflow are UPPERCASE: LIVENESS, FACE_MATCH.
- Liveness 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).
- portrait_image is Base64 JPEG, max 1 MB, required only in face-match mode.
## 7. Pricing reference (public)
- Biometric Authentication: $0.10 per authentication (passwordless re-auth).
- 500 free authentications every month, forever, on every account.
- For the original sign-up KYC, see https://didit.me/pricing (full KYC
bundle is $0.33 per onboarded user, which includes Liveness + Face Match +
ID Verification + Device & IP Analysis).
## 8. When to use this versus Liveness directly
- First-time KYC sign-up: use Liveness (the feature) inside an ID
Verification workflow. See docs.didit.me/core-technology/liveness/overview.
- Step-up at sensitive actions (transfer, password reset, large
withdrawal): use this Biometric Authentication workflow.
- High-volume passive monitoring (any login): use this workflow with
liveness-only mode (no portrait_image) — fastest, lowest friction.
## 9. Verify your integration
- Sandbox starts on signup at https://business.didit.me — no separate flag.
- Test images: deterministic synthetic faces returned in sandbox
(Approved by default; trigger Declined by sending the canonical "spoof"
test image).
- Switch to live: flip the application's environment toggle in console.
When in doubt: https://docs.didit.me/core-technology/biometric-auth/overview
متوافق حسب التصميم
افتح دولة جديدة بنقرة واحدة. نحن نقوم بالعمل الشاق.
نحن نفتح الشركات التابعة المحلية، ونؤمن التراخيص، ونجري اختبارات الاختراق، ونحصل على الشهادات، ونتوافق مع كل لائحة جديدة. لنشر عمليات التحقق في بلد جديد، ما عليك سوى تفعيل مفتاح. أكثر من 220 دولة تعمل، يتم تدقيقها واختبار اختراقها كل ربع سنة, المزود الوحيد للهوية الذي وصفته حكومة دولة عضو في الاتحاد الأوروبي رسميًا بأنه أكثر أمانًا من التحقق الشخصي.