ID-Based Fraud Detection
Search the fraud bank by ID numbers (BVN, NIN, Passport, Driver's License, Voter's Card, etc.)
Features
- Multiple ID Types: BVN, NIN, Passport, Driver's License, Voter's Card
- Search Modes: Exact match or partial match
- Optional Face Verification: Include face image for combined ID + face matching
- Backward Compatible: Image field is optional - works with or without face image
- Filters: Date range, fraud category, verified reports only
- Risk Assessment: Automatic risk scoring (LOW/MEDIUM/HIGH/CRITICAL)
- Recommendations: Context-aware fraud prevention recommendations
Use Cases
- Customer onboarding verification
- Transaction monitoring
- Account recovery verification
- Fraud investigation
- KYC compliance checks
- Combined ID + face verification for higher confidence
Risk Levels
- LOW (0-29): No or minimal fraud history
- MEDIUM (30-59): Some concerns, additional verification recommended
- HIGH (60-79): Significant risk, manual review required
- CRITICAL (80-100): Block transaction, report to authorities
Authentication: Requires X-API-Key header. Used by external integrations and API clients.
Authorization
ApiKeyAuth In: header
TypeScript Definitions
Use the request body type in TypeScript.
Serializer for ID-based fraud scan request. Supports optional face image for combined ID + face verification. Backward compatible - image field is optional.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/fraud/id-scan/" \ -H "Content-Type: application/json" \ -d '{ "id_type": "bvn", "id_number": "22334", "search_mode": "partial", "date_from": "2023-01-01", "date_to": "2024-01-31", "fraud_category": "bank", "verified_only": true }'{ "status": "success", "message": "ID scan completed successfully", "response_code": "00", "detail": "Scan completed successfully", "meta": {}, "billing_info": { "was_charged": true, "amount": "50.00", "currency": "NGN", "note": "Wallet charged 50.00 NGN", "source": "wallet" }, "verification": { "status": "VERIFIED", "reference": "4ebda4e1-48e8-43b1-8f3e-7549388c6458", "verification_id": "e142197c-4cda-4f81-8ed5-7e6dcfbf2cf3" }, "reference_id": "FS-0A1B2C3D4E5F", "transaction_id": "11730c7e-9e86-45ba-ab25-b0b09ecff700", "verification_status": "verified", "data": { "scan_id": "ID-8F3A2B4C9D1E", "timestamp": "2024-01-15T10:30:00Z", "id_type": "bvn", "id_number": "22334455667", "search_mode": "exact", "is_in_fraud_bank": false, "total_reports": 0, "verified_reports": 0, "unverified_reports": 0, "matched_reports": [], "risk_level": "LOW", "risk_score": 0, "fraud_categories": [], "total_fraud_amount": null, "currency": "NGN", "first_reported_date": null, "last_reported_date": null, "recommendations": [ " No fraud reports found in database", "🟢 ID appears clean - proceed with standard verification", "📊 Continue standard monitoring" ], "processing_time_ms": 45 }}response_code values (e.g., 00 Success, 01 Not Found, 02 Unavailable).Join our developer Slack channel for real-time integration support, engineering updates, and direct Q&A with the Prembly team.
Join Slack ChannelScan a face for fraud POST
Perform comprehensive fraud detection analysis on a face image. This endpoint performs multi-layered fraud detection: **1. Multiple ID Detection (Nigerian Fraud Pattern)** - Checks if the same face appears in multiple national IDs (BVN, NIN, Passport) - Common fraud pattern in Nigeria where identity thieves create multiple IDs with same face - Returns all matched identities with confidence scores **2. Fraud Bank Database Matching** - Matches face against verified fraud reports in the fraud bank - Returns fraud history including categories, amounts, and report details - Shows verified fraud cases and unverified reports **3. General Identity Analysis** - Provides overall identity confidence score - Checks consistency of identity information across sources - Generates security flags and actionable recommendations **Risk Scoring:** - Overall risk score (0-100) calculated from multiple factors - Risk level: LOW, MEDIUM, HIGH, CRITICAL - Fraud detection flag based on thresholds and patterns **Use Cases:** - Customer onboarding KYC verification - Transaction approval fraud checks - Account takeover prevention - Identity theft detection - Compliance and regulatory reporting **Note:** Image search functionality uses placeholder data for testing. Production integration with biometric matching service required. **Authentication:** Requires X-API-Key header with valid API key (sandbox or live).
Screen a transaction POST
Scores a transaction against your configured rules and returns a risk assessment. This is the entry point to transaction screening — everything else in this section reads results it produced. The response carries the score (`risk_score`, `risk_level`, `fraud_probability`), the outcome (`status`), and which of your rules fired (`rules_triggered`, `rules_triggered_count`). Keep `internal_reference` — it is how you fetch the transaction again later. Returns `201`: screening creates a stored transaction record, it does not merely evaluate one. Send a sandbox key (`test_sk_` / `test_pk_`) to screen without affecting your production data; sandbox results are filtered out of the live transaction list by the `mode` parameter.