Skip to main content

Dimension E: Network-Level Fraud Detection

(Full specification in 04_dimension_c_resident_advocate.md — Dimension E section)

Key additions specific to implementation:

BullMQ Job: CHECK_FRAUD

Triggered after every payment confirmation. Runs in background.
// fraud.processor.ts
@Processor('fraud-check')
export class FraudProcessor {
  @Process('CHECK_FRAUD')
  async checkFraud(job: Job<{ paymentId: string }>): Promise<void> {
    const payment = await prisma.payment.findUnique({
      where: { id: job.data.paymentId },
      include: { rentCharge: true, tenant: true },
    });
    
    // Check 1: Duplicate reference number
    if (payment.reference) {
      const duplicate = await prisma.payment.findFirst({
        where: {
          reference: payment.reference,
          id: { not: payment.id },
          organisationId: payment.organisationId,
        },
      });
      
      if (duplicate) {
        await createFraudFlag({
          organisationId: payment.organisationId,
          paymentId: payment.id,
          flagType: FraudFlagType.DUPLICATE_REFERENCE,
          severity: FraudSeverity.TIER1,
          description: `Reference ${payment.reference} was also submitted on ${duplicate.createdAt}`,
          evidence: { duplicatePaymentId: duplicate.id },
        });
        return;
      }
    }
    
    // Check 2: Evidence similarity (if external payment evidence was attached)
    if (payment.aiEvidenceSummary) {
      await this.checkEvidenceSimilarity(payment);
    }
    
    // Check 3: Network-level velocity anomalies
    await this.checkVelocityAnomalies(payment);
  }
}

Dimension F: Federated Computation Engine

(Full specification in 04_dimension_c_resident_advocate.md — Dimension F section)

Maturity label: Milestone Wave 4.

Security audit required before any code is written.

Endpoint design waits for the milestone loop that activates network fraud work.


Dimension G: Service Participation Trust Matcher

(Full specification in 04_dimension_c_resident_advocate.md — Dimension G section)

Maturity label: Milestone Wave 3.

See 07_System_Architecture/03_resident_backend.md for findCompatibleProviders() implementation.