Fraud systems are hard to test well.
Not because engineers cannot write tests, but because the data needs to tell a story. A suspicious transaction is rarely suspicious because of one field. It is usually suspicious because of patterns:
a new account with too many beneficiaries
many transactions in a short window
failed logins followed by a device change
KYC failures mixed with country mismatches
transaction amounts far above normal behavior
Using production customer data for this is risky and often unacceptable. Basic mock data is usually too flat.
So I built fintech-fraud-sim , a TypeScript CLI that generates synthetic fintech users and transactions with configurable fraud patterns.
NPM package: https://www.npmjs.com/package/fintech-fraud-sim
Quick Start
npx fintech-fraud-sim generate --users 1000 --fraud-rate 0.08
Enter fullscreen mode
Exit fullscreen mode
That command generates:
users.csv transactions.csv users.json transactions.json summary.json
Enter fullscreen mode
Exit fullscreen…