Screening & Risk
Sanctions screening, PEP detection, adverse media monitoring, and dynamic CDD risk scoring for comprehensive counterparty due diligence.
Overview
The Overvoid compliance engine performs multi-layered screening on every entity. Sanctions and PEP screening runs automatically during onboarding and on a recurring schedule. Adverse media checks are powered by Parallel.ai for real-time news and media analysis. All screening signals feed into a dynamic CDD risk score that adapts as new information becomes available.
Sanctions & PEP Screening
How It Works
Sanctions and PEP screening is powered by OpenSanctions via the Yente matching API. Screening runs automatically at three points:
| Trigger | Description |
|---|---|
onboarding | Automatic screening when an entity is created |
periodic | Recurring re-screening based on risk tier (daily for high, weekly for medium, monthly for low) |
list_update | Triggered when the underlying sanctions lists are updated |
Screening checks the entity against global sanctions lists (OFAC SDN, EU Consolidated, UN Security Council, UK HMT, and others) and political exposure datasets. Results are stored on the entity record:
| Field | Type | Description |
|---|---|---|
sanctions_status | string | clear, potential_match, or confirmed_match |
is_pep | boolean | Whether any UBO or associated person is a Politically Exposed Person |
screening_date | ISO 8601 | Timestamp of the most recent screening |
screening_expiry | ISO 8601 | When the current screening result expires and re-screening is required |
Screening results are visible on the entity detail endpoint:
curl https://api.overvoid.io/v1/onboarding/entities/{entity_id} \-H "Authorization: Bearer cusd_test_YOUR_KEY"
The response includes a screening object:
{"entity_id": "ent_01HXYZ...","legal_name": "Acme Corp","status": "active","screening": {"sanctions_status": "clear","is_pep": false,"adverse_media_flag": false,"screening_date": "2026-03-20T08:00:00Z","screening_expiry": "2026-04-20T08:00:00Z","lists_checked": ["OFAC_SDN", "EU_CONSOLIDATED", "UN_SC", "UK_HMT", "OPENSANCTIONS_PEP"]}}
Adverse Media
Get Adverse Media Results
Returns adverse media screening results powered by Parallel.ai. The system scans news sources, regulatory actions, court filings, and other public records for negative coverage related to the entity.
curl https://api.overvoid.io/v1/onboarding/entities/{entity_id}/adverse-media \-H "Authorization: Bearer cusd_test_YOUR_KEY"
{"entity_id": "ent_01HXYZ...","has_adverse": false,"severity": null,"articles": [],"last_checked": "2026-03-20T08:00:00Z","next_check": "2026-03-27T08:00:00Z"}
When adverse media is found, the response includes article details:
{"entity_id": "ent_01HABC...","has_adverse": true,"severity": "medium","articles": [{"title": "Acme Corp Fined by SEC for Disclosure Violations","source": "Reuters","url": "https://reuters.com/article/...","published_at": "2026-02-15T14:00:00Z","category": "regulatory_action","relevance_score": 0.92,"summary": "SEC imposed $2.5M fine on Acme Corp for failure to disclose material financial information in quarterly filings."}],"last_checked": "2026-03-20T08:00:00Z","next_check": "2026-03-23T08:00:00Z"}
Response fields:
| Field | Description |
|---|---|
has_adverse | Whether any adverse media was found |
severity | low, medium, or high (null if no adverse media) |
articles[] | Array of adverse articles with title, source, URL, category, and relevance score |
Refresh Adverse Media
Trigger an on-demand adverse media re-check. Useful when you receive new information about a counterparty and want immediate results rather than waiting for the next scheduled scan.
curl -X POST https://api.overvoid.io/v1/onboarding/entities/{entity_id}/adverse-media/refresh \-H "Authorization: Bearer cusd_test_YOUR_KEY"
{"entity_id": "ent_01HXYZ...","status": "scanning","estimated_completion": "2026-03-24T10:02:00Z","message": "Adverse media scan initiated. Results typically available within 2 minutes."}
CDD Dynamic Risk Scoring
How Risk Scores Work
Every entity has a dynamic risk score from 0 to 100, recalculated whenever new signals arrive (screening results, alerts, transaction patterns). The score determines the entity's risk tier and drives screening frequency, alert thresholds, and enhanced due diligence requirements.
| Tier | Score Range | Screening Frequency | Implications |
|---|---|---|---|
low | 0 - 30 | Monthly | Standard due diligence, normal monitoring |
medium | 31 - 60 | Weekly | Enhanced monitoring, lower alert thresholds |
high | 61 - 100 | Daily | Enhanced due diligence, manual review required for large transfers |
Risk score factors:
| Factor | Weight | Description |
|---|---|---|
jurisdiction | High | FATF grey/blacklist, CPI score, secrecy index |
alert_history | High | Number and severity of true positive alerts |
pep_status | Medium | Whether any UBO is a Politically Exposed Person |
adverse_media | Medium | Severity of adverse media findings |
volume_anomaly | Medium | Transaction volume deviations from established baseline |
screening_staleness | Low | Time since last sanctions/PEP screening relative to schedule |
Risk Score History
Returns the risk score trend over time for an entity. Each data point includes the score, tier, and the event that triggered the recalculation.
curl "https://api.overvoid.io/v1/onboarding/entities/{entity_id}/risk-history?from_date=2026-01-01T00:00:00Z&limit=50" \-H "Authorization: Bearer cusd_test_YOUR_KEY"
Query parameters:
| Param | Type | Description |
|---|---|---|
from_date | ISO 8601 | Start of date range |
to_date | ISO 8601 | End of date range |
limit | int | Max results (default 20, max 100) |
{"entity_id": "ent_01HXYZ...","current_score": 25,"current_tier": "low","history": [{"score": 15,"tier": "low","trigger": "onboarding_screening","timestamp": "2026-01-15T10:00:00Z","factors": {"jurisdiction": 5,"alert_history": 0,"pep_status": 0,"adverse_media": 0,"volume_anomaly": 10,"screening_staleness": 0}},{"score": 25,"tier": "low","trigger": "alert_resolved_true_positive","timestamp": "2026-03-21T09:15:00Z","factors": {"jurisdiction": 5,"alert_history": 10,"pep_status": 0,"adverse_media": 0,"volume_anomaly": 10,"screening_staleness": 0}}],"total": 2}
Entity Network Analysis
Transaction Network Graph
Build a transaction network graph for an entity. Returns nodes (entities and external addresses) and edges (aggregated transfer flows). Use this for link analysis, identifying hidden relationships, and visualizing fund movement patterns.
curl "https://api.overvoid.io/v1/graph/entity/{entity_id}/network?depth=2&min_amount=0" \-H "Authorization: Bearer cusd_test_YOUR_KEY"
Query parameters:
| Param | Type | Description |
|---|---|---|
depth | int | Hops from entity: 1-3 (default 2) |
min_amount | string | Minimum total transfer amount in wei (default 0) |
Response:
{"nodes": [{"id": "ent_01HXYZ...","type": "entity","label": "Apex Digital Treasury","risk_tier": "low","risk_score": 12,"jurisdiction": "US"},{"id": "0x8626...1199","type": "external","label": "0x8626...1199"}],"edges": [{"source_id": "ent_01HXYZ...","target_id": "0x8626...1199","tx_count": 3,"total_amount": "15000000000","first_seen": "2026-01-15T10:00:00Z","last_seen": "2026-03-20T14:30:00Z"}],"metadata": {"entity_count": 6,"external_count": 3,"edge_count": 12,"depth": 2}}
Node types:
| Type | Description |
|---|---|
entity | A KYC/KYB-verified entity in the system, includes risk tier, score, and jurisdiction |
external | An address not associated with any entity, labeled by its truncated address |
Fund Flow
Returns temporal fund flow data with resolved entity names. Each entry represents a single transfer ordered by timestamp, making it easy to reconstruct the movement of funds over time.
curl "https://api.overvoid.io/v1/graph/entity/{entity_id}/fund-flow?limit=50" \-H "Authorization: Bearer cusd_test_YOUR_KEY"
Related Entities
Find entities related to the target through shared transactions and jurisdiction. Returns a ranked list of related entities with relationship strength indicators.
curl https://api.overvoid.io/v1/graph/entity/{entity_id}/related \-H "Authorization: Bearer cusd_test_YOUR_KEY"
Transaction Clusters
Identify transaction clusters across your entity portfolio. Returns groups of entities and addresses that transact heavily with each other, which can reveal coordinated activity or hidden networks.
curl https://api.overvoid.io/v1/graph/clusters \-H "Authorization: Bearer cusd_test_YOUR_KEY"