Verificação de Comprovante de Endereço Didit com FastAPI e MongoDB (PT-BR)
Aprenda a construir um sistema KYC escalável integrando a verificação de comprovante de endereço da Didit com um backend FastAPI e MongoDB. Este guia abrange a configuração do ambiente, upload de documentos e processamento de.

Integração Sem ComplicaçõesIntegre a API de Comprovante de Endereço da Didit com FastAPI e MongoDB para criar um backend KYC robusto e escalável, otimizando seus fluxos de trabalho de verificação.
Verificação AutomatizadaAproveite os recursos nativos de IA da Didit para extração, validação e verificação de autenticidade automática de documentos de endereço, reduzindo a revisão manual e melhorando a precisão.
Fluxos de Trabalho ConfiguráveisUtilize as configurações flexíveis da Didit para definir ações personalizadas para vários resultados de verificação, como nomes que não combinam ou problemas de qualidade de documentos, garantindo a conformidade com diversos requisitos regulatórios.
Escalável e Custo-EfetivoA Didit oferece uma abordagem modular e focada no desenvolvedor com KYC Essencial Gratuito e precificação por verificação bem-sucedida, tornando-a uma escolha ideal para empresas de todos os tamanhos que buscam verificação de identidade escalável.
O Desafio da Verificação de Comprovante de Endereço no KYC
A verificação de Comprovante de Endereço (PoA) é um componente crítico dos processos Know Your Customer (KYC) em vários setores, desde serviços financeiros até mercados online. É essencial para confirmar a residência física de um usuário, ajudando a prevenir fraudes, cumprir as regulamentações Anti-Lavagem de Dinheiro (AML) e estabelecer confiança. No entanto, a revisão manual de contas de serviços públicos, extratos bancários e documentos emitidos pelo governo é demorada, propensa a erros humanos e não escalável. As empresas precisam de uma solução robusta, automatizada e segura para lidar com as complexidades da verificação de PoA, mantendo uma experiência de usuário tranquila.
As soluções tradicionais de PoA geralmente envolvem integrações complexas, altos custos de configuração e fluxos de trabalho rígidos. É aqui que plataformas de identidade modernas e nativas de IA, como a Didit, se destacam, oferecendo uma abordagem focada no desenvolvedor que simplifica a integração e fornece recursos de verificação automatizados e poderosos. Ao combinar a API de Comprovante de Endereço da Didit com um backend escalável como FastAPI e um banco de dados NoSQL flexível como MongoDB, as empresas podem construir sistemas KYC altamente eficientes e compatíveis.
Configurando Seu Ambiente FastAPI e MongoDB
Para começar, você precisará de um aplicativo FastAPI e uma instância MongoDB. O FastAPI é escolhido por seu alto desempenho e facilidade de uso, enquanto o MongoDB oferece a flexibilidade para armazenar diversos tipos de documentos e relatórios de verificação. Aqui está uma configuração básica:
1. Configuração do Aplicativo FastAPI
Primeiro, instale FastAPI e Uvicorn:
pip install fastapi uvicorn python-multipart motor
Crie um arquivo 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. Conexão MongoDB
Certifique-se de que o MongoDB esteja em execução, seja localmente ou por meio de um serviço em nuvem. A biblioteca motor permite a interação assíncrona com o MongoDB, crucial para aplicativos FastAPI de alto desempenho.
Integrando a API de Comprovante de Endereço da Didit
A API de Comprovante de Endereço da Didit permite que você envie imagens de documentos ou PDFs para verificação, extraindo e validando informações de endereço, realizando verificações de autenticidade e retornando dados estruturados. Este processo é projetado para ser altamente automatizado e preciso, graças à arquitetura nativa de IA da Didit.
1. Enviando Documentos para a Didit
Você precisará de um endpoint em seu aplicativo FastAPI para aceitar uploads de documentos e encaminhá-los para a Didit. A API da Didit suporta vários tipos de documentos (PDF, JPEG, PNG, WebP, TIFF) e oferece parâmetros configuráveis para validação aprimorada.
@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 lida com o upload do arquivo, constrói a requisição para a API da Didit e processa a resposta. Observe o uso de httpx.AsyncClient para requisições HTTP não bloqueantes, o que é crucial para o desempenho do FastAPI.
2. Entendendo o Relatório de Comprovante de Endereço da Didit
A Didit fornece um relatório JSON abrangente para cada verificação de PoA. Este relatório inclui:
poa.status: O status geral da verificação (Aprovado, Recusado, Em Revisão).poa.document_type: Tipo de documento detectado automaticamente (por exemplo, UTILITY_BILL, BANK_STATEMENT).poa.issuer,poa.issue_date,poa.expiration_date: Detalhes chave do documento.poa.name_on_document,poa.poa_address,poa.poa_formatted_address,poa.poa_parsed_address: Informações de endereço extraídas e estruturadas.poa.warnings: Uma lista de quaisquer avisos ou problemas detectados, comoPOOR_DOCUMENT_QUALITY,NAME_MISMATCH_WITH_PROVIDEDouSUSPECTED_DOCUMENT_MANIPULATION.
Essas informações detalhadas permitem uma tomada de decisão sofisticada e o tratamento automatizado de casos extremos. As configurações de verificação configuráveis da Didit, como poa_name_mismatch_action ou poa_document_issues_action, permitem que você defina como seu sistema reage a riscos específicos, garantindo a conformidade e reduzindo a intervenção manual.
Armazenando e Gerenciando Dados de Verificação com MongoDB
O MongoDB é uma excelente escolha para armazenar resultados de verificação de PoA devido ao seu modelo de documento flexível. Você pode armazenar toda a resposta JSON da Didit diretamente, permitindo fácil consulta e análise sem esquemas predefinidos. Essa flexibilidade é vital à medida que os requisitos de verificação evoluem ou novos pontos de dados se tornam disponíveis.
1. Armazenando o Registro de Verificação
Como mostrado no exemplo do FastAPI, a didit_response é armazenada diretamente em uma coleção poa_verifications. Essa abordagem captura todos os dados ricos fornecidos pela Didit.
2. Consultando Registros de Verificação
Você pode facilmente consultar sua coleção MongoDB para recuperar status de verificação, documentos que precisam de revisão ou dados de usuário 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
Esses endpoints permitem que você busque o histórico de PoA de um usuário ou recupere todas as verificações que exigem revisão manual, demonstrando o poder do MongoDB no gerenciamento de dados de conformidade complexos.
Como a Didit Ajuda
A Didit oferece uma plataforma de identidade nativa de IA e focada no desenvolvedor que simplifica processos complexos de verificação de identidade, como o Comprovante de Endereço. Nosso produto de Comprovante de Endereço oferece validação abrangente extraindo e verificando informações-chave de vários documentos. Ele detecta automaticamente tipos de documentos, analisa endereços em formatos estruturados e realiza verificações de autenticidade para identificar possíveis manipulações. Com a Didit, você se beneficia de:
- Arquitetura Modular: Integre facilmente a verificação de PoA como um serviço autônomo ou combine-o com outros produtos Didit, como Verificação de Identidade e Triagem e Monitoramento AML para construir fluxos de trabalho KYC completos.
- Precisão Nativa de IA: Nossos algoritmos avançados de IA e aprendizado de máquina garantem alta precisão na extração de dados e detecção de fraudes, minimizando falsos positivos e negativos.
- Fluxos de Trabalho Configuráveis: Defina regras e ações personalizadas para diferentes cenários de risco, como nomes que não combinam, problemas de qualidade de documentos ou manipulação suspeita, diretamente por meio de nossas APIs ou do Console de Negócios sem código.
- Experiência Focada no Desenvolvedor: Com um sandbox instantâneo, documentação pública abrangente e APIs claras, os desenvolvedores podem integrar a Didit de forma rápida e eficiente.
- Escalabilidade Custo-Efetiva: A Didit oferece KYC Essencial Gratuito e um modelo de pagamento por verificação bem-sucedida, eliminando taxas de configuração e garantindo que você pague apenas pelo que usa, tornando-a ideal para operações escaláveis.
Ao aproveitar a Didit, as empresas podem automatizar a confiança, otimizar a conformidade e oferecer uma experiência superior de integração de usuários sem o ônus de infraestrutura complexa ou revisão manual.
Pronto para Começar?
Pronto para ver a Didit em ação? Obtenha uma demonstração gratuita hoje.
Comece a verificar identidades gratuitamente com o tier gratuito da Didit.