Skip to main content

Bank8:Compliance — Business Requirements & Functionality

Audience: product owners, business analysts, and anyone evaluating what Bank8:Compliance does for the business. For architecture read README.md; for wire-level detail read DESIGN.md.

1. Business Purpose​

  • Financial-crime detection in real time — sanctions screening and AML/CTF transaction monitoring run the moment a transaction or customer event happens, not in a nightly batch.
  • A complete KYC/CDD record — customer due diligence, beneficial ownership, PEP determination, and risk rating live together and drive monitoring intensity.
  • Detection that becomes a filing — suspicious activity is handed to Bank8:Reporting as the single filing executor, so an STR/SAR/CTR is filed exactly once, on time.

2. Business Scope (What the Service Provides)​

#Capability areaWhat the business gets
1Customer risk ratingLow/medium/high AML rating with rationale
2KYC/CDDCustomer due-diligence records and status
3Beneficial ownershipOwnership-structure disclosure
4PEP determinationPolitically-exposed-person classification
5Sanctions screeningWatchlist screening of customers and transactions
6Transaction monitoringReal-time AML rules with thresholds and windows
7Alert/case managementDetection-to-investigation lifecycle with actor claims
8Suspicious-activity handoffSTR/SAR/CTR/EFTR/LCTR detection → Reporting files
9Domain eventsbank8:compliance:* family
10Health & opsHealth endpoint, metrics, audit journal

What the service does NOT own (business boundary):

Out of scopeOwned by
Filing to regulatorsBank8:Reporting
Money movementBank8:Ledger / Bank8:Payments
Tenant-authored hook executionSentin8:Func
Watchlist source curationPlatform (snapshot ingestion)

3. Business Capabilities​

CapabilityBusiness rule
ScreeningEvery transaction/customer is screened against the current watchlist snapshot.
MonitoringRules fire per jurisdiction thresholds (LCTR/EFTR, CTR, AMLD/EBA, MLR).
AlertsAn alert is raised at most once per (subject, rule, window).
CasesA case escalates with an audited actor claim; evidence (alert + subject screens) is read-only input to the decision.
KYCBeneficial owners are held as secret references only — plaintext identity data is rejected at the API.
PEPOne live determination per KYC record; a PEP determination forces the risk rating to at least high.
Risk ratingEvery rating carries a recorded rationale — an unexplained rating is unauditable and rejected.
DismissalA dismissed case records its reason and is terminal; nothing is filed for it.
Filing handoffsuspicious:detected is emitted once per case; Reporting files it.

4. Business Events (Outbound)​

EventFires when
bank8:compliance:kyc:createdA KYC record is opened for a customer
bank8:compliance:kyc:beneficial_owner:disclosedA beneficial owner is disclosed (secret-reference identity only)
bank8:compliance:kyc:pep:determinedA PEP determination is recorded/updated
bank8:compliance:kyc:risk_profile:upsertedThe customer's AML rating changes (rationale recorded)
bank8:compliance:alert:createdA screen or rule produces a detection
bank8:compliance:alert:updatedA queue operation transitions an alert
bank8:compliance:case:openedAn alert escalates to a case
bank8:compliance:case:dismissedA case is dismissed with a recorded reason (no filing)
bank8:compliance:suspicious:detectedA case concludes as reportable

5. Business Rules & Invariants​

  1. An alert is raised at most once per (subject, rule, window).
  2. A suspicious activity is emitted once per case; Reporting owns filing.
  3. No watchlist secret or identity reference is stored as plaintext.

6. Target-User Roles & Use Cases​

RoleUse case
Compliance officerReviews alerts, opens cases, records decisions
AML analystInvestigates cases, escalates suspicious activity
Regulator/FIUReceives STR/SAR/CTR via Reporting

7. KPIs / Success Criteria​

  • Screening latency ≤ seconds from the triggering event.
  • Zero duplicate alerts.
  • 100% of concluded suspicious cases reach Reporting.

8. Dependencies & Reliance on Other Services​

  • Bank8:Ledger, Bank8:Payments (events), Sentin8:Bus, Sentin8:Func, Bank8:Reporting (downstream filing).

9. Acceptance Criteria​

  1. A transaction event is screened and monitored in real time.
  2. A rule breach raises exactly one alert.
  3. A concluded suspicious case files through Reporting, not Compliance.

10. Open Business Questions​

  • Watchlist snapshot cadence.
  • Alert deduplication windows.

Design attribution: bank8:compliance and its underlying concepts were designed by Hamid Jahanzad Hamid@Jahanzad.com.