Saltar al contenido principal
Didit recauda 7,5M $ para construir la infraestructura para identidad y fraude
Didit
Volver al blog
Blog · 6 de marzo de 2026

Integración de la Prueba de Domicilio de Didit con FastAPI y MongoDB

Aprende a crear un sistema KYC escalable integrando la verificación de Prueba de Domicilio de Didit con un backend FastAPI y MongoDB. Esta guía cubre la configuración del entorno, la carga de documentos y el procesamiento de la.

Por DiditActualizado el
Un escudo de seguridad con una marca de verificación y una flecha apuntando hacia arriba, junto a un icono de llave, sobre un fondo degradado de blanco, azul y rosa.

Integración sin fisurasIntegre la API de Prueba de Domicilio de Didit con FastAPI y MongoDB para crear un backend KYC robusto y escalable, optimizando sus flujos de trabajo de verificación.

Verificación automatizadaAproveche las capacidades nativas de IA de Didit para la extracción, validación y comprobación de autenticidad automáticas de documentos de domicilio, reduciendo la revisión manual y mejorando la precisión.

Flujos de trabajo configurablesUtilice la configuración flexible de Didit para definir acciones personalizadas para diversos resultados de verificación, como discrepancias de nombre o problemas de calidad del documento, garantizando el cumplimiento de diversos requisitos reglamentarios.

Escalable y rentableDidit ofrece un enfoque modular y centrado en el desarrollador con KYC Core Gratuito y precios de pago por verificación, lo que lo convierte en una opción ideal para empresas de todos los tamaños que buscan una verificación de identidad escalable.

El Desafío de la Verificación de Prueba de Domicilio en KYC

La verificación de Prueba de Domicilio (PoA) es un componente crítico de los procesos Conozca a su Cliente (KYC) en diversas industrias, desde servicios financieros hasta mercados en línea. Es esencial para confirmar la residencia física de un usuario, ayudando a prevenir el fraude, cumplir con las regulaciones Anti-Lavado de Dinero (AML) y establecer confianza. Sin embargo, la revisión manual de facturas de servicios, extractos bancarios y documentos emitidos por el gobierno es lenta, propensa a errores humanos y no es escalable. Las empresas necesitan una solución robusta, automatizada y segura para manejar las complejidades de la verificación de PoA mientras mantienen una experiencia de usuario fluida.

Las soluciones de PoA tradicionales a menudo implican integraciones complejas, altos costos de configuración y flujos de trabajo rígidos. Aquí es donde brillan las plataformas de identidad modernas y nativas de IA como Didit, que ofrecen un enfoque centrado en el desarrollador que simplifica la integración y proporciona capacidades de verificación potentes y automatizadas. Al combinar la API de Prueba de Domicilio de Didit con un backend escalable como FastAPI y una base de datos NoSQL flexible como MongoDB, las empresas pueden construir sistemas KYC altamente eficientes y conformes.

Configuración de su Entorno FastAPI y MongoDB

Para empezar, necesitará una aplicación FastAPI y una instancia de MongoDB. FastAPI es elegido por su alto rendimiento y facilidad de uso, mientras que MongoDB ofrece la flexibilidad para almacenar diversos tipos de documentos e informes de verificación. Aquí hay una configuración básica:

1. Configuración de la Aplicación FastAPI

Primero, instale FastAPI y Uvicorn:

pip install fastapi uvicorn python-multipart motor

Cree un archivo 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. Conexión a MongoDB

Asegúrese de que MongoDB esté funcionando, ya sea localmente o a través de un servicio en la nube. La librería motor permite la interacción asíncrona con MongoDB, crucial para las aplicaciones de FastAPI de alto rendimiento.

Integrando la API de Prueba de Domicilio de Didit

La API de Prueba de Domicilio de Didit le permite enviar imágenes de documentos o PDFs para verificación, extrayendo y validando información de domicilio, realizando comprobaciones de autenticidad y devolviendo datos estructurados. Este proceso está diseñado para ser altamente automatizado y preciso, gracias a la arquitectura nativa de IA de Didit.

1. Envío de Documentos a Didit

Necesitará un endpoint en su aplicación FastAPI para aceptar cargas de documentos y reenviarlos a Didit. La API de Didit soporta varios tipos de documentos (PDF, JPEG, PNG, WebP, TIFF) y ofrece parámetros configurables para una validación mejorada.

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

Este endpoint maneja la carga del archivo, construye la solicitud para la API de Didit y luego procesa la respuesta. Nótese el uso de httpx.AsyncClient para solicitudes HTTP no bloqueantes, lo cual es crucial para el rendimiento de FastAPI.

2. Comprendiendo el Informe de Prueba de Domicilio de Didit

Didit proporciona un informe JSON completo para cada verificación de PoA. Este informe incluye:

  • poa.status: El estado general de la verificación (Aprobado, Rechazado, En Revisión).
  • poa.document_type: Tipo de documento detectado automáticamente (ej. UTILITY_BILL, BANK_STATEMENT).
  • poa.issuer, poa.issue_date, poa.expiration_date: Detalles clave del documento.
  • poa.name_on_document, poa.poa_address, poa.poa_formatted_address, poa.poa_parsed_address: Información de domicilio extraída y estructurada.
  • poa.warnings: Una lista de cualquier advertencia o problema detectado, como POOR_DOCUMENT_QUALITY, NAME_MISMATCH_WITH_PROVIDED, o SUSPECTED_DOCUMENT_MANIPULATION.

Estos detalles permiten una toma de decisiones sofisticada y el manejo automatizado de casos extremos. La configuración de verificación configurable de Didit, como poa_name_mismatch_action o poa_document_issues_action, le permite definir cómo su sistema reacciona a riesgos específicos, asegurando el cumplimiento y reduciendo la intervención manual.

Almacenamiento y Gestión de Datos de Verificación con MongoDB

MongoDB es una excelente opción para almacenar los resultados de la verificación de PoA debido a su modelo de documentos flexible. Puede almacenar la respuesta JSON completa de Didit directamente, lo que permite una fácil consulta y análisis sin esquemas predefinidos. Esta flexibilidad es vital a medida que evolucionan los requisitos de verificación o se disponen de nuevos puntos de datos.

1. Almacenamiento del Registro de Verificación

Como se muestra en el ejemplo de FastAPI, la didit_response se almacena directamente en una colección poa_verifications. Este enfoque captura todos los datos enriquecidos proporcionados por Didit.

2. Consulta de Registros de Verificación

Puede consultar fácilmente su colección de MongoDB para recuperar estados de verificación, documentos que necesitan revisión o datos de usuario específicos:

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

Estos endpoints le permiten obtener el historial de PoA de un usuario o recuperar todas las verificaciones que requieren revisión manual, demostrando el poder de MongoDB en la gestión de datos de cumplimiento complejos.

Cómo Ayuda Didit

Didit ofrece una plataforma de identidad nativa de IA y centrada en el desarrollador que simplifica procesos complejos de verificación de identidad como la Prueba de Domicilio. Nuestro producto de Prueba de Domicilio ofrece una validación exhaustiva extrayendo y verificando información clave de varios documentos. Detecta automáticamente los tipos de documentos, analiza las direcciones en formatos estructurados y realiza comprobaciones de autenticidad para identificar posibles manipulaciones. Con Didit, usted se beneficia de:

  • Arquitectura Modular: Integre fácilmente la verificación de PoA como un servicio independiente o combínelo con otros productos de Didit como la Verificación de Identidad y el Monitoreo y Detección de AML para construir flujos de trabajo KYC completos.
  • Precisión Nativa de IA: Nuestros algoritmos avanzados de IA y aprendizaje automático garantizan una alta precisión en la extracción de datos y la detección de fraude, minimizando los falsos positivos y negativos.
  • Flujos de Trabajo Configurables: Defina reglas y acciones personalizadas para diferentes escenarios de riesgo, como discrepancias de nombre, problemas de calidad del documento o manipulación sospechosa, directamente a través de nuestras API o la Consola de Negocios sin código.
  • Experiencia Centrada en el Desarrollador: Con un entorno de pruebas instantáneo, documentación pública completa y API limpias, los desarrolladores pueden integrar Didit de forma rápida y eficiente.
  • Escalabilidad Rentable: Didit ofrece KYC Core Gratuito y un modelo de pago por verificación, eliminando las tarifas de configuración y asegurando que solo pague por lo que usa, lo que lo hace ideal para operaciones escalables.

Al aprovechar Didit, las empresas pueden automatizar la confianza, agilizar el cumplimiento y ofrecer una experiencia superior de incorporación de usuarios sin la carga de una infraestructura compleja o la revisión manual.

¿Listo para Empezar?

¿Listo para ver Didit en acción? Obtenga una demostración gratuita hoy.

Empiece a verificar identidades de forma gratuita con el nivel gratuito de Didit.

Infraestructura para identidad y fraude.

Una API para KYC, KYB, Monitoreo de Transacciones y Detección de Fraude en Wallets. Intégrala en 5 minutos.

Pide a una IA que resuma esta página
Integración de Prueba de Domicilio de Didit con FastAPI y.