> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.withverifa.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.withverifa.com/_mcp/server.

# Screening & Reports

> AML screening, watchlist matching, continuous monitoring, and standalone checks.

Verifa provides screening capabilities for sanctions, PEP (Politically Exposed
Persons), adverse media, and other watchlist checks. Screening can run as part
of a verification workflow or as standalone API calls against existing
identities.

## Screening tiers

### Basic watchlist screening

Included in all plans. Screens against built-in sanctions lists:

* **OFAC SDN** — U.S. Office of Foreign Assets Control
* **EU Sanctions** — European Union consolidated list
* **UN Sanctions** — United Nations Security Council
* **UK Sanctions** — HM Treasury

Basic screening is auto-injected into every workflow and cannot be disabled.
Uses trigram similarity matching with a default threshold of 0.6.

### Enhanced AML screening

Available on Professional and Enterprise plans. Screens against 6,000+ global
watchlists including:

* Government sanctions lists (200+ countries)
* PEP databases (current and former)
* Adverse media sources
* Law enforcement watchlists
* Regulatory enforcement actions

Enhanced screening supports **continuous monitoring** — Verifa automatically
re-screens identities when watchlists are updated and on a regular schedule.
New matches trigger a `screening.monitoring.new_hits` webhook.

## Running standalone checks

Screen a person independently of a verification session:

### Single check

```bash
curl -X POST https://api.withverifa.com/api/v1/checks \
  -H "X-API-Key: vk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "check_type": "sanction",
    "external_ref": "user_abc123",
    "name_first": "Jane",
    "name_last": "Doe",
    "birthdate": "1997-06-15"
  }'
```

### Multiple checks at once

```bash
curl -X POST https://api.withverifa.com/api/v1/checks/full \
  -H "X-API-Key: vk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "check_types": ["sanction", "pep", "adverse_media"],
    "external_ref": "user_abc123",
    "name_first": "Jane",
    "name_last": "Doe",
    "birthdate": "1997-06-15",
    "email": "jane@example.com",
    "phone": "+15551234567"
  }'
```

### Available standalone check types

| Type                  | Description                                         |
| --------------------- | --------------------------------------------------- |
| `sanction`            | Sanctions list screening                            |
| `pep`                 | Politically Exposed Persons                         |
| `adverse_media`       | Adverse media mentions                              |
| `warning`             | Warning list screening                              |
| `email_risk`          | Basic email risk analysis                           |
| `email_risk_enhanced` | Email deliverability, breach history, fraud scoring |
| `phone_risk_enhanced` | SIM swap, porting, VoIP detection                   |
| `address_validation`  | Address standardization and deliverability          |
| `ip_risk`             | IP address risk analysis                            |

## Check results

```bash
curl https://api.withverifa.com/api/v1/checks/schk_abc123 \
  -H "X-API-Key: vk_live_your_key_here"
```

```json
{
  "id": "schk_abc123",
  "check_type": "aml_screening",
  "status": "completed",
  "has_match": true,
  "hit_count": 2,
  "match_summary": {
    "sanctions": 0,
    "pep": 1,
    "adverse_media": 1
  },
  "monitoring_enabled": true,
  "hits": [
    {
      "id": "screenhit_abc123",
      "hit_type": "pep",
      "name_similarity": 0.92,
      "dob_match": true,
      "combined_score": 0.89,
      "is_false_positive": false
    }
  ]
}
```

> **Note**
>
> The `providers` field on screening responses (and inside
> `verification_check.details.providers`) uses Verifa's sanitized labels —
> e.g. `"aml_screening"`, `"address_verification"`, `"email_risk"`. Verifa
> never returns raw upstream vendor names in API responses.

## Managing hits

### Dismiss as false positive

```bash
curl -X POST https://api.withverifa.com/api/v1/checks/schk_abc123/dismiss-matches \
  -H "X-API-Key: vk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "hit_ids": ["screenhit_abc123"],
    "reason": "Different person — confirmed by date of birth mismatch."
  }'
```

Dismissed hits are excluded from future monitoring alerts.

### Re-run a check

Force re-screening (bypasses cache):

```bash
curl -X POST https://api.withverifa.com/api/v1/checks/schk_abc123/re-run \
  -H "X-API-Key: vk_live_your_key_here"
```

## Continuous monitoring

Enable ongoing monitoring for an identity's screening check:

```bash
# Monitoring is enabled by default for enhanced AML checks.
# To pause:
curl -X POST https://api.withverifa.com/api/v1/checks/schk_abc123/pause-monitoring \
  -H "X-API-Key: vk_live_your_key_here"

# To resume:
curl -X POST https://api.withverifa.com/api/v1/checks/schk_abc123/resume-monitoring \
  -H "X-API-Key: vk_live_your_key_here"
```

### Monitoring history

View the audit trail of monitoring runs:

```bash
curl https://api.withverifa.com/api/v1/checks/schk_abc123/history \
  -H "X-API-Key: vk_live_your_key_here"
```

```json
{
  "data": [
    {
      "id": "monrun_abc123",
      "trigger": "scheduled",
      "status": "completed",
      "previous_hit_count": 1,
      "new_hit_count": 0,
      "total_hit_count": 1,
      "started_at": "2026-03-01T00:00:00Z",
      "completed_at": "2026-03-01T00:00:12Z"
    }
  ]
}
```

### Monitoring triggers

| Trigger            | Description                                         |
| ------------------ | --------------------------------------------------- |
| `scheduled`        | Regular periodic re-screening.                      |
| `watchlist_change` | A monitored watchlist was updated with new entries. |
| `on_demand`        | Manual re-run via API.                              |
| `ca_webhook`       | Provider webhook notification of new data.          |

## PDF reports

Generate a PDF report for a screening check:

```bash
curl https://api.withverifa.com/api/v1/checks/schk_abc123/report.pdf \
  -H "X-API-Key: vk_live_your_key_here" \
  -o screening_report.pdf
```

## GDPR redaction

Redact PII from a screening check:

```bash
curl -X POST https://api.withverifa.com/api/v1/checks/schk_abc123/redact \
  -H "X-API-Key: vk_live_your_key_here"
```

## Webhooks

| Event                           | When                                                  |
| ------------------------------- | ----------------------------------------------------- |
| `screening.completed`           | A screening check finished processing.                |
| `screening.monitoring.new_hits` | Continuous monitoring found new matches.              |
| `screening.monitoring.clear`    | Continuous monitoring run completed with no new hits. |
| `check.completed`               | Any standalone check completed.                       |
| `check.matched`                 | A standalone check found matches.                     |

## Checks for a session or identity

```bash
# All checks for a session
curl https://api.withverifa.com/api/v1/sessions/session_abc123/checks \
  -H "X-API-Key: vk_live_your_key_here"

# All checks for an identity
curl https://api.withverifa.com/api/v1/identities/identity_abc123/checks \
  -H "X-API-Key: vk_live_your_key_here"
```

## Related

* [Verifications & Checks](/core-concepts/verifications-checks) — All check types
  including screening
* [Lists](/core-concepts/lists) — Custom allow/block/flag lists for matching
* [Identities](/core-concepts/identities) — How screening links to identity records