> ## Documentation Index
> Fetch the complete documentation index at: https://docs.verifow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Screening Pipeline

Every transaction flows through these stages sequentially:

| Stage | Category                  | Latency | Description                                                           |
| ----- | ------------------------- | ------- | --------------------------------------------------------------------- |
| 1     | **Validation**            | \~5ms   | Idempotency check, schema validation, store in database               |
| 2     | **Context Enrichment**    | \~15ms  | Fetch sender's last 50 transactions, account dormancy, KYC/KYB status |
| 3     | **Sanctions & PEP**       | \~25ms  | Screen sender + receiver names against global watchlist entities      |
| 4     | **Regulatory Compliance** | \~2ms   | Execute 9 mandatory CBN rules (PEP status from Stage 3 feeds in)      |
| 5     | **KYC Verification**      | \~0ms   | Evaluate sender's KYC status (REJECTED / EXPIRED / NONE / VERIFIED)   |
| 6     | **KYB Verification**      | \~0ms   | For business transactions: evaluate corporate KYB status              |
| 7     | **Custom Rules**          | \~10ms  | Execute configurable detection rules                                  |
| 8     | **External Engines**      | \~50ms  | Decision engine scoring + behavioral analysis (parallel)              |
| 9     | **Aggregation**           | \~1ms   | Weighted scoring, outcome selection, action dispatch                  |

**Total latency: 80–200ms** (p95)

**After aggregation** (async, non-blocking):

* Auto-create compliance case
* Generate SAR / CTR / FTR reports
* Email alert to all compliance officers
* Immutable audit log entry

***

## KYB Verification Layer

The KYB layer is inserted immediately after KYC Verification and only activates for business transactions. Individual transactions (`entityType: "INDIVIDUAL"` or absent) skip this stage with zero score.

### Trigger Conditions

KYB screening runs when either of these is present in the transaction metadata:

```json theme={null}
{
  "metadata": {
    "entityType": "BUSINESS",
    "senderRcNumber": "RC123456"
  }
}
```

### KYB Risk Scoring

| KYB Status                       | Score | Outcome   | Description                                              |
| -------------------------------- | ----- | --------- | -------------------------------------------------------- |
| **APPROVED**                     | 0     | `APPROVE` | Fully verified corporate entity                          |
| **APPROVED**                     | 0     | `APPROVE` | Fully verified corporate entity                          |
| **BENEFICIAL\_OWNERS\_VERIFIED** | 100   | `BLOCK`   | BOs screened, awaiting final approval                    |
| **DIRECTORS\_VERIFIED**          | 100   | `BLOCK`   | Directors verified, awaiting final approval              |
| **CAC\_VERIFIED**                | 100   | `BLOCK`   | Company confirmed, awaiting director verification        |
| **DOCUMENT\_UPLOADED**           | 100   | `BLOCK`   | Supporting documents uploaded, awaiting review           |
| **SCREENING\_PASSED**            | 100   | `BLOCK`   | All compliance checks passed, awaiting final approval    |
| **PENDING**                      | 100   | `BLOCK`   | Application submitted, CAC lookup pending                |
| **NONE** (no record)             | 100   | `BLOCK`   | No KYB application found for this business               |
| **REJECTED**                     | 100   | `BLOCK`   | Failed verification or sanctions hit on beneficial owner |

***
