DevLearn
Back to Payments & Banking
payments

AML / KYC

Customer due diligence, sanctions screening, and SAR filing

AML / KYC — Overview

Customer due diligence, sanctions screening, and SAR filing

KYC verifies customer identity at onboarding (ID docs, liveness, address). AML monitors ongoing transactions for suspicious patterns: structuring, round-tripping, high-risk jurisdictions. Sanctions screening against OFAC, UN, EU lists is mandatory before payment release.

// KYC onboarding pipeline
@PostMapping("/kyc/verify")
public KycResult verify(@RequestBody KycRequest req) {
  DocumentCheck doc = ocrService.verifyId(req.getIdDocument());
  LivenessCheck live = livenessService.verify(req.getSelfie());
  PepCheck pep = sanctionsService.screenPep(req.getName(), req.getDob());
  SanctionsCheck sanctions = sanctionsService.screen(req.getName());

  return KycResult.builder()
    .documentValid(doc.isValid())
    .livenessScore(live.getScore())
    .pepMatch(pep.isMatch())
    .sanctionsHit(sanctions.isHit())
    .build();
}

// AML — structuring detection (Kafka Streams)
// Multiple deposits just under $10K reporting threshold
Tip: False positive rate drives ops cost — tune screening fuzzy matching to reduce manual review queue.