تجاوز إلى المحتوى الرئيسي
Didit تجمع 7.5 مليون دولار لبناء البنية التحتية للهوية والاحتيال
Didit
العودة إلى المدونة
المدونة · 6 مارس 2026

دمج التحقق من إثبات العنوان من Didit مع FastAPI و MongoDB (AR)

تعلم كيفية بناء نظام KYC قابل للتطوير من خلال دمج التحقق من إثبات العنوان من Didit مع واجهة FastAPI الخلفية و MongoDB. يغطي هذا الدليل إعداد بيئتك، والتعامل مع تحميل المستندات، ومعالجة التحقق.

بواسطة Diditتحديث
integrating-didits-proof-of-address-with-fastapi-and-mongodb.png

تكامل سلس ادمج واجهة برمجة تطبيقات إثبات العنوان (Proof of Address) من Didit مع FastAPI و MongoDB لإنشاء واجهة خلفية قوية وقابلة للتطوير لعملية KYC، مما يبسط سير عمل التحقق لديك.

تحقق آلي استفد من قدرات Didit الأصلية للذكاء الاصطناعي لاستخراج وتوثيق والتحقق من صحة وثائق العنوان تلقائيًا، مما يقلل من المراجعة اليدوية ويحسن الدقة.

سير عمل قابل للتكوين استخدم إعدادات Didit المرنة لتحديد إجراءات مخصصة لنتائج التحقق المختلفة، مثل عدم تطابق الأسماء أو مشكلات جودة المستندات، مما يضمن الامتثال للمتطلبات التنظيمية المتنوعة.

قابل للتطوير وفعال من حيث التكلفة يقدم Didit نهجًا معياريًا، موجهًا للمطورين أولاً، مع Free Core KYC وتسعير الدفع مقابل كل فحص ناجح، مما يجعله خيارًا مثاليًا للشركات من جميع الأحجام التي تبحث عن التحقق من الهوية القابل للتطوير.

تحدي التحقق من إثبات العنوان في KYC

يعد التحقق من إثبات العنوان (PoA) مكونًا حاسمًا في عمليات اعرف عميلك (KYC) عبر مختلف الصناعات، من الخدمات المالية إلى الأسواق عبر الإنترنت. إنه ضروري لتأكيد الإقامة الفعلية للمستخدم، مما يساعد على منع الاحتيال، والامتثال للوائح مكافحة غسيل الأموال (AML)، وبناء الثقة. ومع ذلك، فإن المراجعة اليدوية لفواتير الخدمات وكشوف الحسابات المصرفية والمستندات الصادرة عن الحكومة تستغرق وقتًا طويلاً، وعرضة للخطأ البشري، ولا تتوسع. تحتاج الشركات إلى حل قوي وآلي وآمن للتعامل مع تعقيدات التحقق من PoA مع الحفاظ على تجربة مستخدم سلسة.

غالبًا ما تتضمن حلول PoA التقليدية عمليات دمج معقدة وتكاليف إعداد عالية وسير عمل جامد. هذا هو المكان الذي تتألق فيه منصات الهوية الحديثة المعتمدة على الذكاء الاصطناعي مثل Didit، حيث تقدم نهجًا موجهًا للمطورين أولاً يبسط عملية الدمج ويوفر قدرات تحقق قوية وآلية. من خلال الجمع بين واجهة برمجة تطبيقات إثبات العنوان من Didit مع واجهة خلفية قابلة للتطوير مثل FastAPI وقاعدة بيانات NoSQL مرنة مثل MongoDB، يمكن للشركات بناء أنظمة KYC عالية الكفاءة والمتوافقة.

إعداد بيئة FastAPI و MongoDB الخاصة بك

للبدء، ستحتاج إلى تطبيق FastAPI ومثيل MongoDB. تم اختيار FastAPI لأدائه العالي وسهولة استخدامه، بينما توفر MongoDB المرونة لتخزين أنواع المستندات المتنوعة وتقارير التحقق. إليك إعداد أساسي:

1. إعداد تطبيق FastAPI

أولاً، قم بتثبيت FastAPI و Uvicorn:

pip install fastapi uvicorn python-multipart motor

أنشئ ملف main.py:

from fastapi import FastAPI, UploadFile, File, Form, HTTPException
from motor.motor_asyncio import AsyncIOMotorClient
from typing import Optional
import httpx
import os

app = FastAPI()

# MongoDB setup
MONGO_DETAILS = os.getenv("MONGO_DETAILS", "mongodb://localhost:27017")
client = AsyncIOMotorClient(MONGO_DETAILS)
database = client.didit_kyc

# Didit API Key
DIDIT_API_KEY = os.getenv("DIDIT_API_KEY")
if not DIDIT_API_KEY:
    raise ValueError("DIDIT_API_KEY environment variable not set")

@app.on_event("startup")
async def startup_db_client():
    app.mongodb_client = client
    app.mongodb = database

@app.on_event("shutdown")
async def shutdown_db_client():
    app.mongodb_client.close()

@app.get("/health")
async def health_check():
    return {"status": "ok", "message": "FastAPI is running"}

2. اتصال MongoDB

تأكد من أن MongoDB قيد التشغيل، إما محليًا أو عبر خدمة سحابية. تتيح مكتبة motor التفاعل غير المتزامن مع MongoDB، وهو أمر بالغ الأهمية لتطبيقات FastAPI عالية الأداء.

دمج واجهة برمجة تطبيقات إثبات العنوان من Didit

تتيح لك واجهة برمجة تطبيقات إثبات العنوان من Didit إرسال صور المستندات أو ملفات PDF للتحقق، واستخراج وتوثيق معلومات العنوان، وإجراء فحوصات الأصالة، وإرجاع بيانات منظمة. تم تصميم هذه العملية لتكون آلية ودقيقة للغاية، بفضل بنية Didit المعتمدة على الذكاء الاصطناعي.

1. إرسال المستندات إلى Didit

ستحتاج إلى نقطة نهاية في تطبيق FastAPI الخاص بك لقبول تحميل المستندات وإعادة توجيهها إلى Didit. تدعم واجهة برمجة تطبيقات Didit أنواعًا مختلفة من المستندات (PDF، JPEG، PNG، WebP، TIFF) وتوفر معلمات قابلة للتكوين للتحقق المحسن.

@app.post("/verify-poa/")
async def verify_proof_of_address(
    document: UploadFile = File(...),
    expected_first_name: Optional[str] = Form(None),
    expected_last_name: Optional[str] = Form(None),
    expected_address: Optional[str] = Form(None),
    expected_country: Optional[str] = Form(None),
    poa_name_mismatch_action: str = Form("DECLINE"),
    poa_document_issues_action: str = Form("DECLINE"),
    poa_document_authenticity_action: str = Form("DECLINE"),
):
    if not document.content_type.startswith(('image/', 'application/pdf')):
        raise HTTPException(status_code=400, detail="Invalid document format. Only images and PDFs are allowed.")

    DIDIT_POA_ENDPOINT = "https://verification.didit.me/v3/poa/"
    headers = {"x-api-key": DIDIT_API_KEY}

    # Prepare form data for Didit API
    files = {'document': (document.filename, document.file.read(), document.content_type)}
    data = {
        "poa_name_mismatch_action": poa_name_mismatch_action,
        "poa_document_issues_action": poa_document_issues_action,
        "poa_document_authenticity_action": poa_document_authenticity_action,
    }
    if expected_first_name: data["expected_first_name"] = expected_first_name
    if expected_last_name: data["expected_last_name"] = expected_last_name
    if expected_address: data["expected_address"] = expected_address
    if expected_country: data["expected_country"] = expected_country

    async with httpx.AsyncClient() as client:
        try:
            didit_response = await client.post(DIDIT_POA_ENDPOINT, headers=headers, files=files, data=data, timeout=30.0)
            didit_response.raise_for_status()
            poa_result = didit_response.json()

            # Store the result in MongoDB
            verification_record = {
                "filename": document.filename,
                "user_id": "some_user_id", # Replace with actual user ID from your system
                "timestamp": datetime.utcnow(),
                "didit_response": poa_result,
                "status": poa_result['poa']['status']
            }
            await app.mongodb["poa_verifications"].insert_one(verification_record)

            return {"message": "POA verification initiated and result stored.", "result": poa_result}
        except httpx.HTTPStatusError as e:
            raise HTTPException(status_code=e.response.status_code, detail=f"Didit API error: {e.response.text}")
        except Exception as e:
            raise HTTPException(status_code=500, detail=f"An unexpected error occurred: {str(e)}")

تتعامل نقطة النهاية هذه مع تحميل الملف، وتقوم ببناء الطلب لواجهة برمجة تطبيقات Didit، ثم تعالج الاستجابة. لاحظ استخدام httpx.AsyncClient لطلبات HTTP غير المحظورة، وهو أمر بالغ الأهمية لأداء FastAPI.

2. فهم تقرير إثبات العنوان من Didit

توفر Didit تقرير JSON شاملاً لكل عملية تحقق من PoA. يتضمن هذا التقرير ما يلي:

  • poa.status: حالة التحقق الكلية (موافق عليه، مرفوض، قيد المراجعة).
  • poa.document_type: نوع المستند المكتشف تلقائيًا (على سبيل المثال، UTILITY_BILL، BANK_STATEMENT).
  • poa.issuer، poa.issue_date، poa.expiration_date: تفاصيل المستند الرئيسية.
  • poa.name_on_document، poa.poa_address، poa.poa_formatted_address، poa.poa_parsed_address: معلومات العنوان المستخرجة والمنظمة.
  • poa.warnings: قائمة بأي تحذيرات أو مشكلات تم اكتشافها، مثل POOR_DOCUMENT_QUALITY، NAME_MISMATCH_WITH_PROVIDED، أو SUSPECTED_DOCUMENT_MANIPULATION.

تتيح هذه الرؤى التفصيلية اتخاذ قرارات متطورة ومعالجة آلية للحالات الشاذة. تسمح إعدادات التحقق القابلة للتكوين في Didit، مثل poa_name_mismatch_action أو poa_document_issues_action، بتحديد كيفية تفاعل نظامك مع مخاطر محددة، مما يضمن الامتثال ويقلل من التدخل اليدوي.

تخزين وإدارة بيانات التحقق باستخدام MongoDB

يعد MongoDB خيارًا ممتازًا لتخزين نتائج التحقق من PoA نظرًا لنموذج المستند المرن الخاص به. يمكنك تخزين استجابة JSON الكاملة من Didit مباشرةً، مما يتيح الاستعلام والتحليل بسهولة دون مخططات محددة مسبقًا. هذه المرونة حيوية مع تطور متطلبات التحقق أو توفر نقاط بيانات جديدة.

1. تخزين سجل التحقق

كما هو موضح في مثال FastAPI، يتم تخزين didit_response مباشرة في مجموعة poa_verifications. يلتقط هذا النهج جميع البيانات الغنية التي توفرها Didit.

2. الاستعلام عن سجلات التحقق

يمكنك بسهولة الاستعلام عن مجموعة MongoDB الخاصة بك لاسترداد حالات التحقق أو المستندات التي تحتاج إلى مراجعة أو بيانات مستخدم محددة:

from datetime import datetime

@app.get("/poa-verifications/{user_id}")
async def get_poa_history(user_id: str):
    records = await app.mongodb["poa_verifications"].find({"user_id": user_id}).to_list(100)
    if not records:
        raise HTTPException(status_code=404, detail="No POA records found for this user.")
    # MongoDB _id is an ObjectId, convert to string for JSON serialization
    for record in records:
        record["_id"] = str(record["_id"])
    return records

@app.get("/poa-needs-review/")
async def get_poa_needs_review():
    records = await app.mongodb["poa_verifications"].find({"status": "In Review"}).to_list(100)
    for record in records:
        record["_id"] = str(record["_id"])
    return records

تتيح لك نقاط النهاية هذه استرداد سجل PoA للمستخدم أو استرداد جميع عمليات التحقق التي تتطلب مراجعة يدوية، مما يوضح قوة MongoDB في إدارة بيانات الامتثال المعقدة.

كيف تساعد Didit

توفر Didit منصة هوية تعتمد على الذكاء الاصطناعي وموجهة للمطورين أولاً تبسط عمليات التحقق من الهوية المعقدة مثل إثبات العنوان. يقدم منتجنا إثبات العنوان تحققًا شاملاً عن طريق استخراج معلومات رئيسية من مستندات مختلفة والتحقق منها. يكتشف تلقائيًا أنواع المستندات، ويحلل العناوين إلى تنسيقات منظمة، ويجري فحوصات الأصالة لتحديد التلاعب المحتمل. مع Didit، تستفيد من:

  • بنية معيارية: يمكنك دمج التحقق من PoA بسهولة كخدمة مستقلة أو دمجها مع منتجات Didit الأخرى مثل التحقق من الهوية و فحص ومراقبة مكافحة غسيل الأموال (AML) لبناء سير عمل كامل لـ KYC.
  • دقة الذكاء الاصطناعي الأصلي: تضمن خوارزميات الذكاء الاصطناعي والتعلم الآلي المتقدمة لدينا دقة عالية في استخراج البيانات واكتشاف الاحتيال، مما يقلل من الإيجابيات والسوالب الكاذبة.
  • سير عمل قابل للتكوين: حدد قواعد وإجراءات مخصصة لسيناريوهات المخاطر المختلفة، مثل عدم تطابق الأسماء، أو مشكلات جودة المستندات، أو التلاعب المشتبه به، مباشرةً من خلال واجهات برمجة التطبيقات الخاصة بنا أو وحدة التحكم التجارية بدون برمجة.
  • تجربة موجهة للمطورين أولاً: مع بيئة تجريبية فورية، ووثائق عامة شاملة، وواجهات برمجة تطبيقات نظيفة، يمكن للمطورين دمج Didit بسرعة وكفاءة.
  • توسيع فعال من حيث التكلفة: تقدم Didit Free Core KYC ونموذج الدفع مقابل كل فحص ناجح، مما يلغي رسوم الإعداد ويضمن أنك تدفع فقط مقابل ما تستخدمه، مما يجعله مثاليًا للعمليات القابلة للتطوير.

من خلال الاستفادة من Didit، يمكن للشركات أتمتة الثقة، وتبسيط الامتثال، وتقديم تجربة رائعة للمستخدمين الجدد دون عبء البنية التحتية المعقدة أو المراجعة اليدوية.

هل أنت مستعد للبدء؟

هل أنت مستعد لرؤية Didit في العمل؟ احصل على عرض توضيحي مجاني اليوم.

ابدأ في التحقق من الهويات مجانًا باستخدام الطبقة المجانية من Didit.

بنية تحتية للهوية والاحتيال.

واجهة برمجية واحدة لـ KYC و KYB ومراقبة المعاملات وفحص المحافظ. ادمجها في 5 دقائق.

اطلب من الذكاء الاصطناعي تلخيص هذه الصفحة
دمج Didit PoA مع FastAPI و MongoDB.