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

Integrando la Prueba de Domicilio de Didit con FastAPI y MongoDB (ES-1)

Aprende a construir 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 gestión de cargas de documentos y el.

Por DiditActualizado el
integrating-didits-proof-of-address-with-fastapi-and-mongodb.png

Integración PerfectaIntegre 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 verificación de autenticidad automáticas de documentos de dirección, 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 nombres o problemas de calidad de documentos, asegurando el cumplimiento de diversos requisitos regulatorios.

Escalable y RentableDidit ofrece un enfoque modular y centrado en el desarrollador con KYC Core Gratuito y precios de pago por verificación exitosa, 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 Reto 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 fraudes, cumplir con las regulaciones Anti-Lavado de Dinero (AML) y establecer confianza. Sin embargo, revisar manualmente facturas de servicios públicos, extractos bancarios y documentos emitidos por el gobierno consume mucho tiempo, es propenso 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 tradicionales de PoA a menudo implican integraciones complejas, altos costos de configuración y flujos de trabajo rígidos. Aquí es donde plataformas de identidad modernas y nativas de IA como Didit brillan, ofreciendo 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.

Configurando su Entorno FastAPI y MongoDB

Para empezar, necesitará una aplicación FastAPI y una instancia de MongoDB. FastAPI se elige 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 biblioteca motor permite la interacción asíncrona con MongoDB, crucial para aplicaciones 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 o PDFs de documentos para verificación, extrayendo y validando información de dirección, realizando verificaciones 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. Enviando Documentos a Didit

Necesitará un endpoint en su aplicación FastAPI para aceptar cargas de documentos y reenviarlos a Didit. La API de Didit admite 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 de archivos, construye la solicitud para la API de Didit y luego procesa la respuesta. Tenga en cuenta el uso de httpx.AsyncClient para solicitudes HTTP no bloqueantes, lo cual es crucial para el rendimiento de FastAPI.

2. Entendiendo 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 dirección 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.

Estas percepciones detalladas permiten una toma de decisiones sofisticada y un manejo automatizado de casos límite. 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.

Almacenando y Gestionando Datos de Verificación con MongoDB

MongoDB es una excelente opción para almacenar los resultados de verificación de PoA debido a su modelo de documento 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 los requisitos de verificación evolucionan o se disponen de nuevos puntos de datos.

1. Almacenando el 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. Consultando 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 integral al extraer y verificar información clave de varios documentos. Detecta automáticamente tipos de documentos, analiza direcciones en formatos estructurados y realiza verificaciones 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ínela 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 fraudes, minimizando falsos positivos y negativos.
  • Flujos de Trabajo Configurables: Defina reglas y acciones personalizadas para diferentes escenarios de riesgo, como discrepancias de nombres, problemas de calidad de documentos 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 sandbox instantáneo, documentación pública completa y APIs limpias, los desarrolladores pueden integrar Didit de manera rápida y eficiente.
  • Escalado Rentable: Didit ofrece KYC Core Gratuito y un modelo de pago por verificación exitosa, 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, optimizar el cumplimiento y ofrecer una experiencia superior de incorporación de usuarios sin la carga de una infraestructura compleja o una revisión manual.

¿Listo para Empezar?

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

Comience 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
Prueba de Domicilio de Didit con FastAPI y MongoDB.