Passer au contenu principal
Didit lève 7,5 M$ pour bâtir l'infrastructure pour l'identité et la fraude
Didit
Retour au blog
Blog · 6 mars 2026

Intégration de la preuve d'adresse Didit avec FastAPI et MongoDB (FR)

Découvrez comment construire un système KYC évolutif en intégrant la vérification de preuve d'adresse de Didit avec un backend FastAPI et MongoDB.

Par DiditMis à jour le
integrating-didits-proof-of-address-with-fastapi-and-mongodb.png

Intégration TransparenteIntégrez l'API de preuve d'adresse de Didit avec FastAPI et MongoDB pour créer un backend KYC robuste et évolutif, rationalisant vos flux de travail de vérification.

Vérification AutomatiséeTirez parti des capacités natives de l'IA de Didit pour l'extraction, la validation et les contrôles d'authenticité automatiques des documents d'adresse, réduisant ainsi l'examen manuel et améliorant la précision.

Flux de Travail ConfigurablesUtilisez les paramètres flexibles de Didit pour définir des actions personnalisées pour divers résultats de vérification, tels que des incohérences de nom ou des problèmes de qualité de document, garantissant la conformité aux diverses exigences réglementaires.

Évolutif & ÉconomiqueDidit offre une approche modulaire, axée sur les développeurs, avec un noyau KYC gratuit et une tarification au "contrôle réussi", ce qui en fait un choix idéal pour les entreprises de toutes tailles à la recherche d'une vérification d'identité évolutive.

Le Défi de la Vérification de Preuve d'Adresse en KYC

La vérification de la preuve d'adresse (PoA) est un élément essentiel des processus "Know Your Customer" (KYC) dans diverses industries, des services financiers aux marchés en ligne. Elle est essentielle pour confirmer la résidence physique d'un utilisateur, aidant à prévenir la fraude, à se conformer aux réglementations anti-blanchiment d'argent (AML) et à établir la confiance. Cependant, l'examen manuel des factures de services publics, des relevés bancaires et des documents émis par le gouvernement prend du temps, est sujet aux erreurs humaines et n'est pas évolutif. Les entreprises ont besoin d'une solution robuste, automatisée et sécurisée pour gérer les complexités de la vérification PoA tout en maintenant une expérience utilisateur fluide.

Les solutions PoA traditionnelles impliquent souvent des intégrations complexes, des coûts de configuration élevés et des flux de travail rigides. C'est là que les plateformes d'identité modernes, natives de l'IA, comme Didit, excellent, offrant une approche axée sur les développeurs qui simplifie l'intégration et fournit de puissantes capacités de vérification automatisées. En combinant l'API de preuve d'adresse de Didit avec un backend évolutif comme FastAPI et une base de données NoSQL flexible comme MongoDB, les entreprises peuvent construire des systèmes KYC très efficaces et conformes.

Configuration de votre Environnement FastAPI et MongoDB

Pour commencer, vous aurez besoin d'une application FastAPI et d'une instance MongoDB. FastAPI est choisi pour ses hautes performances et sa facilité d'utilisation, tandis que MongoDB offre la flexibilité de stocker divers types de documents et rapports de vérification. Voici une configuration de base :

1. Configuration de l'Application FastAPI

Tout d'abord, installez FastAPI et Uvicorn :

pip install fastapi uvicorn python-multipart motor

Créez un fichier 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()

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

# Clé API Didit
DIDIT_API_KEY = os.getenv("DIDIT_API_KEY")
if not DIDIT_API_KEY:
    raise ValueError("La variable d'environnement DIDIT_API_KEY n'est pas définie")

@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 fonctionne"}

2. Connexion MongoDB

Assurez-vous que MongoDB est en cours d'exécution, soit localement, soit via un service cloud. La bibliothèque motor permet une interaction asynchrone avec MongoDB, cruciale pour les applications FastAPI hautes performances.

Intégration de l'API de Preuve d'Adresse de Didit

L'API de preuve d'adresse de Didit vous permet de soumettre des images de documents ou des PDF pour vérification, d'extraire et de valider les informations d'adresse, d'effectuer des contrôles d'authenticité et de renvoyer des données structurées. Ce processus est conçu pour être hautement automatisé et précis, grâce à l'architecture native de l'IA de Didit.

1. Envoi de Documents à Didit

Vous aurez besoin d'un point d'accès dans votre application FastAPI pour accepter les téléchargements de documents et les transmettre à Didit. L'API de Didit prend en charge divers types de documents (PDF, JPEG, PNG, WebP, TIFF) et offre des paramètres configurables pour une validation améliorée.

@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="Format de document invalide. Seules les images et les PDF sont autorisés.")

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

    # Préparer les données de formulaire pour l'API Didit
    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()

            # Stocker le résultat dans MongoDB
            verification_record = {
                "filename": document.filename,
                "user_id": "some_user_id", # Remplacer par l'ID utilisateur réel de votre système
                "timestamp": datetime.utcnow(),
                "didit_response": poa_result,
                "status": poa_result['poa']['status']
            }
            await app.mongodb["poa_verifications"].insert_one(verification_record)

            return {"message": "Vérification PoA initiée et résultat stocké.", "result": poa_result}
        except httpx.HTTPStatusError as e:
            raise HTTPException(status_code=e.response.status_code, detail=f"Erreur API Didit : {e.response.text}")
        except Exception as e:
            raise HTTPException(status_code=500, detail=f"Une erreur inattendue est survenue : {str(e)}")

Ce point d'accès gère le téléchargement de fichiers, construit la requête pour l'API de Didit, puis traite la réponse. Notez l'utilisation de httpx.AsyncClient pour les requêtes HTTP non bloquantes, ce qui est crucial pour les performances de FastAPI.

2. Comprendre le Rapport de Preuve d'Adresse de Didit

Didit fournit un rapport JSON complet pour chaque vérification PoA. Ce rapport comprend :

  • poa.status : Le statut global de la vérification (Approuvé, Refusé, En Révision).
  • poa.document_type : Type de document détecté automatiquement (par exemple, UTILITY_BILL, BANK_STATEMENT).
  • poa.issuer, poa.issue_date, poa.expiration_date : Détails clés du document.
  • poa.name_on_document, poa.poa_address, poa.poa_formatted_address, poa.poa_parsed_address : Informations d'adresse extraites et structurées.
  • poa.warnings : Une liste de tous les avertissements ou problèmes détectés, tels que POOR_DOCUMENT_QUALITY, NAME_MISMATCH_WITH_PROVIDED, ou SUSPECTED_DOCUMENT_MANIPULATION.

Ces informations détaillées permettent une prise de décision sophistiquée et une gestion automatisée des cas limites. Les paramètres de vérification configurables de Didit, tels que poa_name_mismatch_action ou poa_document_issues_action, vous permettent de définir la manière dont votre système réagit à des risques spécifiques, garantissant la conformité et réduisant l'intervention manuelle.

Stockage et Gestion des Données de Vérification avec MongoDB

MongoDB est un excellent choix pour stocker les résultats de vérification PoA en raison de son modèle de document flexible. Vous pouvez stocker l'intégralité de la réponse JSON de Didit directement, permettant une interrogation et une analyse faciles sans schémas prédéfinis. Cette flexibilité est essentielle à mesure que les exigences de vérification évoluent ou que de nouvelles données deviennent disponibles.

1. Stockage de l'Enregistrement de Vérification

Comme montré dans l'exemple FastAPI, la didit_response est stockée directement dans une collection poa_verifications. Cette approche capture toutes les données riches fournies par Didit.

2. Interrogation des Enregistrements de Vérification

Vous pouvez facilement interroger votre collection MongoDB pour récupérer les statuts de vérification, les documents nécessitant un examen, ou des données utilisateur spécifiques :

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="Aucun enregistrement PoA trouvé pour cet utilisateur.")
    # L'_id de MongoDB est un ObjectId, convertir en chaîne pour la sérialisation JSON
    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

Ces points d'accès vous permettent de récupérer l'historique PoA d'un utilisateur ou de récupérer toutes les vérifications qui nécessitent un examen manuel, démontrant la puissance de MongoDB dans la gestion de données de conformité complexes.

Comment Didit Peut Aider

Didit fournit une plateforme d'identité native de l'IA, axée sur les développeurs, qui simplifie les processus complexes de vérification d'identité comme la preuve d'adresse. Notre produit de preuve d'adresse offre une validation complète en extrayant et en vérifiant les informations clés de divers documents. Il détecte automatiquement les types de documents, analyse les adresses en formats structurés et effectue des contrôles d'authenticité pour identifier les manipulations potentielles. Avec Didit, vous bénéficiez de :

  • Architecture Modulaire : Intégrez facilement la vérification PoA comme un service autonome ou combinez-la avec d'autres produits Didit comme la vérification d'identité et le filtrage et la surveillance AML pour construire des flux de travail KYC complets.
  • Précision Native de l'IA : Nos algorithmes avancés d'IA et d'apprentissage automatique garantissent une grande précision dans l'extraction des données et la détection des fraudes, minimisant les faux positifs et négatifs.
  • Flux de Travail Configurables : Définissez des règles et des actions personnalisées pour différents scénarios de risque, tels que les incohérences de nom, les problèmes de qualité des documents ou les manipulations suspectées, directement via nos API ou notre console métier sans code.
  • Expérience axée sur les Développeurs : Avec un environnement de test instantané, une documentation publique complète et des API claires, les développeurs peuvent intégrer Didit rapidement et efficacement.
  • Évolutivité Économique : Didit offre un noyau KYC gratuit et un modèle de paiement au "contrôle réussi", éliminant les frais de configuration et garantissant que vous ne payez que ce que vous utilisez, ce qui le rend idéal pour les opérations évolutives.

En tirant parti de Didit, les entreprises peuvent automatiser la confiance, rationaliser la conformité et offrir une expérience d'intégration utilisateur supérieure sans le fardeau d'une infrastructure complexe ou d'un examen manuel.

Prêt à Commencer ?

Prêt à voir Didit en action ? Obtenez une démo gratuite dès aujourd'hui.

Commencez à vérifier les identités gratuitement avec le niveau gratuit de Didit.

Infrastructure pour l'identité et la fraude.

Une seule API pour le KYC, le KYB, la surveillance des transactions et le screening de portefeuilles. Intégration en 5 minutes.

Demande à une IA de résumer cette page
Intégration Preuve d'Adresse Didit, FastAPI et MongoDB.