PEP Screening System Development (Politically Exposed Persons)

A financial regulator fined a crypto exchange $3 million for lacking EDD on a PEP client. Such cases are not rare: FATF R12 requires mandatory identification of politically exposed persons. If your AML system cannot distinguish between PEP and RCA (relatives and close associates), you risk missing h

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1301
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1267
  • image_logo-advance_0.webp
    B2B Advance company logo design
    713
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1003
  • image_logo-aider_0.webp
    AIDER company logo development
    943
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1056

A financial regulator fined a crypto exchange $3 million for lacking EDD on a PEP client. Such cases are not rare: FATF R12 requires mandatory identification of politically exposed persons. If your AML system cannot distinguish between PEP and RCA (relatives and close associates), you risk missing high-risk clients. We build turnkey PEP screening: from provider selection to EDD workflow and continuous monitoring. We assess your project in 2 days, deployment in 2–4 weeks.

Without automation, the compliance team spends hours manually checking each client. Our system reduces this to seconds, processing requests in real time via the ComplyAdvantage or World-Check API. Screening accuracy exceeds 95% after filter tuning. In this article, we'll cover how to avoid typical pitfalls and build a reliable PEP system.

Problems we solve

False positives. ComplyAdvantage's database yields 30% matches, but most are false positives. We configure fuzziness and filters by DOB for 95% accuracy.

Missing RCA. PEP relatives are equally risky. We integrate APIs with relative coverage.

Regular rescreening. PEP status changes over time. We set up a weekly cron with compliance officer notification.

How we do it

We use ComplyAdvantage as the primary source. Example TypeScript integration:

class PEPScreeningService { async screenPerson(params: { firstName: string; lastName: string; dateOfBirth?: string; nationality?: string; }): Promise<PEPScreenResult> { const response = await this.complyAdvantage.search({ search_term: `${params.firstName} ${params.lastName}`, fuzziness: 0.7, filters: { types: ["pep", "pep-class-1", "pep-class-2", "pep-class-3", "pep-class-4"], }, }); const matches = response.content.data.hits; if (matches.length === 0) return { isPEP: false, isRCA: false }; // Filter by DOB if available const strongMatches = params.dateOfBirth ? matches.filter(m => this.dobMatches(m, params.dateOfBirth!)) : matches; if (strongMatches.length === 0) { return { isPEP: false, possibleMatches: matches.slice(0, 3) }; } const match = strongMatches[0]; return { isPEP: match.doc.types.some(t => t.startsWith("pep")), isRCA: match.doc.types.includes("relative-close-associate"), pepClass: this.extractPEPClass(match.doc.types), positions: match.doc.fields?.filter(f => f.tag === "position") ?? [], country: match.doc.fields?.find(f => f.tag === "country_names")?.value, matchScore: match.score, entity: match.doc, }; } private extractPEPClass(types: string[]): number { if (types.includes("pep-class-1")) return 1; // Head of state, government ministers if (types.includes("pep-class-2")) return 2; // Parliament members, senior judiciary if (types.includes("pep-class-3")) return 3; // Senior military, state-owned enterprise heads if (types.includes("pep-class-4")) return 4; // Local government, lower-risk positions return 0; } } 

After determining status, we launch an EDD workflow for PEP classes 1–2 — requires senior management approval.

async function handlePEPResult(userId: string, result: PEPScreenResult): Promise<void> { if (!result.isPEP && !result.isRCA) { await db.setUserRiskFactor(userId, "pep", false); return; } // PEP requires Enhanced Due Diligence await db.setUserRiskFactor(userId, "pep", true); await db.updateUserRiskLevel(userId, RiskLevel.HIGH); const eddRequired: EDDRequirement = { sourceOfFunds: true, sourceOfWealth: true, seniorManagementApproval: result.pepClass <= 2, enhancedOngoingMonitoring: true, annualReview: true, }; await requestEDD(userId, eddRequired); await notifyComplianceOfficer(userId, result); } 

For continuous monitoring, we set up weekly rescreening of all active customers.

@Cron("0 2 * * 0") // every Sunday at 2:00 AM async weeklyPEPRescreening() { const activeCustomers = await db.getActiveCustomers(); for (const customer of activeCustomers) { const result = await this.pepService.screenPerson(customer); const previousStatus = customer.pepStatus; if (result.isPEP && !previousStatus) { // New PEP — immediate notification await this.handleNewPEPDetection(customer.id, result); } } } 

Why PEP classification by risk level matters?

PEP class 1 (heads of state, prime ministers) requires senior management approval and extended source-of-funds checks. Class 4 (local-level officials) only needs light EDD. Misclassification leads to fines or compliance overload. Our API returns pepClass, enabling automation.

How to set up automatic PEP status updates?

We use a regular cron script: every Sunday at 2:00 AM. The ComplyAdvantage API returns updated statuses. When a new PEP is detected, the system immediately notifies the compliance officer and triggers the EDD workflow. This eliminates human error and ensures compliance with FATF Recommendation 12.

PEP data provider comparison

Provider Records API RCA coverage Recommended for
ComplyAdvantage 10M+ REST Yes, 2M+ Startups, crypto exchanges
World-Check (Refinitiv) 20M+ REST/SOAP Yes, 5M+ Banks, large fintech
Dow Jones Risk & Compliance 30M+ Enterprise Full Corporations, government
Acuris Risk Intelligence 5M+ REST Limited Budget solutions

ComplyAdvantage is best for startups due to simple integration, while World-Check suits banks with deeper data. We help you choose the provider based on your budget and regulatory requirements.

Stages and timelines

Stage Duration Result
Requirements analysis 1-2 days Requirements document
Provider selection 1 day Provider choice and integration plan
API integration 3-5 days Working screening endpoint
EDD workflow development 2-4 days Approval chain and notifications
Testing 2-3 days Accuracy report >95%
Deployment and documentation 2 days Production and instructions

What's included

  • API and workflow documentation (OpenAPI, diagrams)
  • TypeScript source code (migration scripts, tests)
  • Monitoring dashboard with false positive graphs
  • 2-hour compliance team training
  • 1 month of post-launch support

Typical mistakes in PEP screening integration

  • Ignoring RCA — check not only the PEP but also their close associates. Data is available from all providers.
  • Too high fuzziness threshold (>0.9) — you'll miss real matches due to name typos. Optimal is 0.7.
  • No rescreening — PEP status can appear after account opening. Set up automatic recalculations.

Estimated timelines

From 2 to 4 weeks depending on the number of providers and EDD logic complexity. Basic integration with one provider and basic screening takes 2 weeks. Full cycle with RCA, rescreening, and dashboard — 4 weeks.

Contact us for a project assessment — we'll calculate timelines and costs in 2 days. Order a turnkey PEP screening system development now. We have 7+ years of AML system experience, 30+ integrations with PEP providers, and guarantee AML audit pass. Learn more about the ComplyAdvantage API.