> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API التحقق من البريد الإلكتروني: رمز OTP وتقييم المخاطر

> تحقق من البريد الإلكتروني مع Didit عبر رمز OTP وتقييم المخاطر وكشف العناوين المؤقتة والمخترقة مقابل $0.02 لكل استدعاء دون حد أدنى شهري.

يوفر التحقق من البريد الإلكتروني من Didit طريقة موثوقة للتحقق من عناوين البريد الإلكتروني للمستخدمين عبر رموز لمرة واحدة (OTP) وتقييم متقدم للمخاطر. وتساعد هذه الميزة في ضمان الحصول على معلومات اتصال صالحة ويمكن الوصول إليها مع الحماية من رسائل البريد الإلكتروني عالية المخاطر والمخترقة.

تعليمات تكامل التحقق من البريد الإلكتروني
        نسخ الموجّه إلى الحافظة



      
      

\<pre>

\````# Goal
Integrate Didit Email Verification (OTP send + check + deliverability / breach / disposable lookup) into your app. Pick ONE mode.

\# Mode A — Session-based
Use this when the user completes verification through a hosted Didit flow.

1\. Add the EMAIL feature to the workflow (Business Console or POST /v3/workflows/). Configure risk actions: duplicated_email_action, breached_email_action, disposable_email_action.
2\. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
3\. Open session.url for the user (or mount the Web/Mobile SDK).
4\. Fetch the decision — GET /v3/session/{sessionId}/decision/ or subscribe to session.status.updated.

Decision surface: `email_verifications[]` array on the decision payload.

\# Mode B — Standalone API (server-to-server, OTP pair)
Two endpoints paired by email address.

Step 1 — send the code:
\```bash
curl -X POST 'https://verification.didit.me/v3/email/send/' \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "alice@example.com",
"options": { "code_size": 6, "locale": "en", "use_white_label_customization": false },
"vendor_data": "user-1234"
}'
\```
Default: 6 numeric digits and Didit-branded delivery. Set `options.alphanumeric_code: true` for letters+digits (check is case-insensitive). Set `options.use_white_label_customization: true` to use your application's configured white-label sender and branding for this standalone OTP email; the default is `false`. `options.code_size` 4–8. Codes expire in **5 minutes**; one free retry per email within the window.

Step 2 — check the code (user types it into your UI):
\```bash
curl -X POST 'https://verification.didit.me/v3/email/check/' \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "alice@example.com",
"code": "123456",
"disposable_email_action": "DECLINE"
}'
\```
Each session accepts **up to 3** code-entry attempts. The check response always includes the full email metadata (breaches[], disposable flag, deliverable flag).

\# Status enum (per email_verifications[].status / email.status)
"Not Started" | "In Progress" | "Approved" | "Declined" | "Failed" | "Undeliverable" | "Expired or Not Found" | "Abandoned" | "Kyc Expired"

\# Warnings (LogWarningChoices.EMAIL)
warnings[] risk codes include:
DUPLICATED_EMAIL, BREACHED_EMAIL, DISPOSABLE_EMAIL, UNDELIVERABLE_EMAIL, INVALID_EMAIL, OTP_MAX_ATTEMPTS_REACHED, OTP_EXPIRED.
Full catalogue: /core-technology/email-verification/warnings-email-verification.

\# Failure modes to handle
\- send response status="Undeliverable" — bounce/invalid domain; no charge, surface to the user.
\- check response status="Failed" — wrong code, attempts remaining; re-prompt.
\- check response status="Declined" — third failed attempt; restart with /v3/email/send/.
\- check response status="Expired or Not Found" — outside the 5-minute window; restart.
\- BREACHED_EMAIL warning — the address appears in known breaches; route to review per policy.

\# See also
\- Canonical schema: /reference/data-models#email-verification
\- Per-feature report: /core-technology/email-verification/report-email-verification
\- Risk catalogue: /core-technology/email-verification/warnings-email-verification
\- Full integration playbook: /integration/integration-prompt````

\</pre>



      
      

الصق في

يصل درس الأكاديمية حول قراءة نتيجة التحقق إلى فحص التحقق من البريد الإلكتروني عند الدقيقة 8:34.[التحقق من البريد الإلكتروني — Didit Academy](https://www.youtube.com/embed/7htTWCWsl60?start=514\&rel=0\&playsinline=1)![مخطط انسياب التحقق من البريد الإلكتروني](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/email-verification-flow.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=23d035a261faa2063d6d941290ecf752)## كيف يعمليجمع حل التحقق من البريد الإلكتروني لدينا بين التحقق عبر OTP وإشارات تحليلية مثل التعرض للتسريبات، وقابلية التسليم، وسمعة المزود.**1. جمع البريد الإلكتروني**يقوم النظام بجمع ما يلي بأمان:| المدخلات | الوصف |
| - | - |
| **عنوان البريد الإلكتروني** | إذا لم يُقدَّم أثناء إنشاء الجلسة، يدخل المستخدم عنوان بريده الإلكتروني. وإذا قُدِّم أثناء إنشاء الجلسة، يجب على المستخدم التحقق من البريد الإلكتروني المعبأ مسبقاً. |
| **اللغة المفضلة** | تُستخدم للمراسلات المكيّفة حسب اللغة عند الاقتضاء. |**2. توليد رمز OTP وتسليمه**يقوم نظام التحقق لدينا بما يلي:- توليد رمز آمن لمرة واحدة ومحدد بوقت
- تسليم الرمز عبر البريد الإلكتروني إلى العنوان المقدَّم
- تطبيق أفضل ممارسات قابلية التسليم لزيادة وصول الرسائل إلى صندوق الوارد
- توفير مسارات لإعادة الإرسال مع ضوابط حماية لمنع إساءة الاستخدام**3. التحقق من صحة الرمز**يكمل المستخدم عملية التحقق من خلال:- إدخال الرمز المستلَم في واجهة التحقق
- الإرسال خلال الإطار الزمني المحدَّد (5 دقائق)
- طلب رمز جديد إذا لزم الأمر (مع تطبيق حد المعدل المناسب)**4. تقييم المخاطر**ينفذ نظامنا فحوصات متقدمة:| الفحص | الوصف |
| - | - |
| **التعرض للتسريبات** | البحث عن البريد الإلكتروني في خروقات البيانات المعروفة وإدراج الخدمات المكشوفة. |
| **اكتشاف المزودات المؤقتة** | تمييز رسائل البريد الإلكتروني الواردة من مزودين مؤقتين أو للاستخدام لمرة واحدة بعلامة. |
| **فحوصات قابلية التسليم** | اكتشاف العناوين غير القابلة للتسليم أو غير الصالحة من حيث البنية. |
| **إشارات السمعة** | تحديد أنماط البريد الإلكتروني التي قد تنطوي على مخاطر عالية. |
| **الاستخدام المكرر** | مقارنة البيانات ببيانات التحقق السابقة. |**5. تسليم النتائج**يمكنك الوصول إلى نتائج التحقق عبر قنوات متعددة:| القناة | الوصف |
| - | - |
| **لوحة التحكم** | تحديثات في الوقت الفعلي على لوحة التحكم. |
| **webhook** | إشعارات webhook. |
| **API** | استجابات RESTful API. |
| **التقارير** | تقارير شاملة تتضمن معلومات تحقق تفصيلية. |## ميزات التحققتوفر خدمة التحقق من البريد الإلكتروني لدينا العديد من الميزات الرئيسية لتحسين عملية التحقق الخاصة بك:#### التحقق عبر OTP- **توليد رموز آمنة**: رموز عشوائية لمرة واحدة ومحددة بوقت
- **تسليم البريد الإلكتروني**: إرسال موثوق للبريد الإلكتروني مع مراعاة اللغة
- **مهل زمنية قابلة للتهيئة**: تعيين أوقات انتهاء الصلاحية بناءً على متطلبات الأمان الخاصة بك
- **خيارات إعادة المحاولة**: السماح للمستخدمين بطلب رموز جديدة ضمن حدود مناسبة#### تحليل البريد الإلكتروني- **التحقق من البنية**: التأكد من توافق عنوان البريد الإلكتروني مع معايير RFC
- **فحوصات المزود**: التعرف على المزودين المؤقتين أو المخصصين للاستخدام لمرة واحدة
- **رؤى قابلية التسليم**: اكتشاف العناوين غير القابلة للتسليم
- **استخبارات الاختراقات**: إظهار سجلات الخروقات المعروفة مع تفاصيلها#### تقييم المخاطر- **اكتشاف التعرض للتسريب**: تحديد ما إذا كان البريد الإلكتروني يظهر في خروقات معروفة
- **اكتشاف البريد المؤقت**: تمييز رسائل البريد الإلكتروني المؤقتة أو المخصصة للاستخدام لمرة واحدة
- **مراقبة النشاط**: تتبع الأنماط المشبوهة عبر المحاولات المختلفة
- **فحص قائمة الحظر**: التحقق مقابل القوائم الداخلية لرسائل البريد الإلكتروني التي أُسيء استخدامها سابقاً


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.