Mengintegrasikan Verifikasi Alamat Didit dengan FastAPI dan MongoDB (ID)
Pelajari cara membangun sistem KYC yang skalabel dengan mengintegrasikan verifikasi Bukti Alamat Didit dengan backend FastAPI dan MongoDB. Panduan ini mencakup pengaturan lingkungan Anda, penanganan unggahan dokumen, hingga.

Integrasi Tanpa HambatanIntegrasikan API Bukti Alamat Didit dengan FastAPI dan MongoDB untuk menciptakan backend KYC yang tangguh dan skalabel, menyederhanakan alur kerja verifikasi Anda.
Verifikasi OtomatisManfaatkan kemampuan AI-native Didit untuk ekstraksi, validasi, dan pemeriksaan keaslian dokumen alamat secara otomatis, mengurangi peninjauan manual dan meningkatkan akurasi.
Alur Kerja yang Dapat DikonfigurasiGunakan pengaturan fleksibel Didit untuk menentukan tindakan khusus untuk berbagai hasil verifikasi, seperti ketidaksesuaian nama atau masalah kualitas dokumen, memastikan kepatuhan terhadap beragam persyaratan peraturan.
Skalabel & Hemat BiayaDidit menawarkan pendekatan modular, berorientasi pengembang dengan KYC Inti Gratis dan harga bayar-per-pemeriksaan-berhasil, menjadikannya pilihan ideal untuk bisnis dari semua ukuran yang mencari verifikasi identitas yang skalabel.
Tantangan Verifikasi Bukti Alamat dalam KYC
Verifikasi Bukti Alamat (PoA) adalah komponen penting dari proses Kenali Pelanggan Anda (KYC) di berbagai industri, mulai dari layanan keuangan hingga pasar online. Ini penting untuk mengonfirmasi tempat tinggal fisik pengguna, membantu mencegah penipuan, mematuhi peraturan Anti-Pencucian Uang (AML), dan membangun kepercayaan. Namun, meninjau tagihan utilitas, laporan bank, dan dokumen yang dikeluarkan pemerintah secara manual memakan waktu, rentan terhadap kesalahan manusia, dan tidak skalabel. Bisnis membutuhkan solusi yang kuat, otomatis, dan aman untuk menangani kompleksitas verifikasi PoA sambil mempertahankan pengalaman pengguna yang lancar.
Solusi PoA tradisional sering kali melibatkan integrasi yang kompleks, biaya pengaturan yang tinggi, dan alur kerja yang kaku. Di sinilah platform identitas modern berbasis AI seperti Didit bersinar, menawarkan pendekatan yang mengutamakan pengembang yang menyederhanakan integrasi dan menyediakan kemampuan verifikasi otomatis yang canggih. Dengan menggabungkan API Bukti Alamat Didit dengan backend yang skalabel seperti FastAPI dan database NoSQL yang fleksibel seperti MongoDB, bisnis dapat membangun sistem KYC yang sangat efisien dan patuh.
Menyiapkan Lingkungan FastAPI dan MongoDB Anda
Untuk memulai, Anda memerlukan aplikasi FastAPI dan instans MongoDB. FastAPI dipilih karena kinerjanya yang tinggi dan kemudahan penggunaannya, sementara MongoDB menawarkan fleksibilitas untuk menyimpan berbagai jenis dokumen dan laporan verifikasi. Berikut adalah pengaturan dasar:
1. Pengaturan Aplikasi FastAPI
Pertama, instal FastAPI dan Uvicorn:
pip install fastapi uvicorn python-multipart motor
Buat file 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. Koneksi MongoDB
Pastikan MongoDB berjalan, baik secara lokal maupun melalui layanan cloud. Pustaka motor memungkinkan interaksi asinkron dengan MongoDB, yang penting untuk aplikasi FastAPI berkinerja tinggi.
Mengintegrasikan API Bukti Alamat Didit
API Bukti Alamat Didit memungkinkan Anda mengirimkan gambar dokumen atau PDF untuk verifikasi, mengekstrak dan memvalidasi informasi alamat, melakukan pemeriksaan keaslian, dan mengembalikan data terstruktur. Proses ini dirancang agar sangat otomatis dan akurat, berkat arsitektur AI-native Didit.
1. Mengirim Dokumen ke Didit
Anda memerlukan titik akhir di aplikasi FastAPI Anda untuk menerima unggahan dokumen dan meneruskannya ke Didit. API Didit mendukung berbagai jenis dokumen (PDF, JPEG, PNG, WebP, TIFF) dan menawarkan parameter yang dapat dikonfigurasi untuk validasi yang ditingkatkan.
@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)}")
Titik akhir ini menangani unggahan file, membuat permintaan untuk API Didit, dan kemudian memproses respons. Perhatikan penggunaan httpx.AsyncClient untuk permintaan HTTP non-pemblokiran, yang sangat penting untuk kinerja FastAPI.
2. Memahami Laporan Bukti Alamat Didit
Didit menyediakan laporan JSON yang komprehensif untuk setiap verifikasi PoA. Laporan ini mencakup:
poa.status: Status verifikasi keseluruhan (Disetujui, Ditolak, Dalam Peninjauan).poa.document_type: Jenis dokumen yang terdeteksi secara otomatis (misalnya, UTILITY_BILL, BANK_STATEMENT).poa.issuer,poa.issue_date,poa.expiration_date: Detail dokumen utama.poa.name_on_document,poa.poa_address,poa.poa_formatted_address,poa.poa_parsed_address: Informasi alamat yang diekstrak dan terstruktur.poa.warnings: Daftar peringatan atau masalah yang terdeteksi, sepertiPOOR_DOCUMENT_QUALITY,NAME_MISMATCH_WITH_PROVIDED, atauSUSPECTED_DOCUMENT_MANIPULATION.
Wawasan terperinci ini memungkinkan pengambilan keputusan yang canggih dan penanganan otomatis kasus-kasus khusus. Pengaturan verifikasi Didit yang dapat dikonfigurasi, seperti poa_name_mismatch_action atau poa_document_issues_action, memungkinkan Anda menentukan bagaimana sistem Anda bereaksi terhadap risiko tertentu, memastikan kepatuhan dan mengurangi intervensi manual.
Menyimpan dan Mengelola Data Verifikasi dengan MongoDB
MongoDB adalah pilihan yang sangat baik untuk menyimpan hasil verifikasi PoA karena model dokumennya yang fleksibel. Anda dapat menyimpan seluruh respons JSON dari Didit secara langsung, memungkinkan kueri dan analisis yang mudah tanpa skema yang telah ditentukan. Fleksibilitas ini sangat penting karena persyaratan verifikasi berkembang atau titik data baru tersedia.
1. Menyimpan Catatan Verifikasi
Seperti yang ditunjukkan dalam contoh FastAPI, didit_response disimpan langsung dalam koleksi poa_verifications. Pendekatan ini menangkap semua data kaya yang disediakan oleh Didit.
2. Mengkueri Catatan Verifikasi
Anda dapat dengan mudah mengkueri koleksi MongoDB Anda untuk mengambil status verifikasi, dokumen yang perlu ditinjau, atau data pengguna tertentu:
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
Titik akhir ini memungkinkan Anda mengambil riwayat PoA pengguna atau mengambil semua verifikasi yang memerlukan peninjauan manual, menunjukkan kekuatan MongoDB dalam mengelola data kepatuhan yang kompleks.
Bagaimana Didit Membantu
Didit menyediakan platform identitas berbasis AI dan mengutamakan pengembang yang menyederhanakan proses verifikasi identitas yang kompleks seperti Bukti Alamat. Produk Bukti Alamat kami menawarkan validasi komprehensif dengan mengekstrak dan memverifikasi informasi kunci dari berbagai dokumen. Ini secara otomatis mendeteksi jenis dokumen, mengurai alamat ke dalam format terstruktur, dan melakukan pemeriksaan keaslian untuk mengidentifikasi potensi manipulasi. Dengan Didit, Anda mendapatkan manfaat dari:
- Arsitektur Modular: Mudah mengintegrasikan verifikasi PoA sebagai layanan mandiri atau menggabungkannya dengan produk Didit lainnya seperti Verifikasi ID dan Penyaringan & Pemantauan AML untuk membangun alur kerja KYC yang lengkap.
- Akurasi AI-Native: Algoritma AI dan pembelajaran mesin canggih kami memastikan akurasi tinggi dalam ekstraksi data dan deteksi penipuan, meminimalkan positif dan negatif palsu.
- Alur Kerja yang Dapat Dikonfigurasi: Tentukan aturan dan tindakan khusus untuk skenario risiko yang berbeda, seperti ketidaksesuaian nama, masalah kualitas dokumen, atau dugaan manipulasi, langsung melalui API kami atau Konsol Bisnis tanpa kode.
- Pengalaman yang Mengutamakan Pengembang: Dengan kotak pasir instan, dokumentasi publik yang komprehensif, dan API yang bersih, pengembang dapat mengintegrasikan Didit dengan cepat dan efisien.
- Penskalaan yang Hemat Biaya: Didit menawarkan KYC Inti Gratis dan model bayar-per-pemeriksaan-berhasil, menghilangkan biaya pengaturan dan memastikan Anda hanya membayar untuk apa yang Anda gunakan, menjadikannya ideal untuk operasi yang skalabel.
Dengan memanfaatkan Didit, bisnis dapat mengotomatiskan kepercayaan, menyederhanakan kepatuhan, dan memberikan pengalaman orientasi pengguna yang unggul tanpa beban infrastruktur yang kompleks atau peninjauan manual.
Siap untuk Memulai?
Siap melihat Didit beraksi? Dapatkan demo gratis hari ini.
Mulai verifikasi identitas secara gratis dengan tingkat gratis Didit.