{{ f.title }}
{{ f.body }}
Synthetic fraud simulation CLI
fintech-fraud-sim is a TypeScript command-line tool that generates realistic synthetic fintech users, accounts, devices, beneficiaries, merchants, transactions, events, risk scores, fraud patterns, reports, and exports — for QA, fraud operations, AML demos, dashboards, and model prototypes.
Run locally
{{ heroCommand }}
{{ f.body }}
All generated data is synthetic. It contains no real names, phone numbers, emails, BVNs, NINs, bank account numbers, or any real personal data. Identifiers are fabricated and labels like bvn_like_id or synthetic_bvn_check are intentionally fictional. Use it for testing, education, and fraud-model prototyping only — never as a stand-in for production data or a real watchlist.
Quick start
Requires Node.js 22 or newer. No build step or database is needed — everything runs locally.
{{ step.desc }}
{{ step.code }}
Clone the repo and build from source if you want to extend it.
{{ localDev }}
Command reference
From generation to validation, model export, evaluation, dashboards, and a local API — every step has a dedicated command.
| Command | What it does |
|---|---|
| {{ c.cmd }} | {{ c.desc }} |
generate options| Option | Default | Description |
|---|---|---|
| {{ o.opt }} | {{ o.def }} | {{ o.desc }} |
{{ r.title }}
{{ r.code }}
Fraud patterns
Each pattern injects characteristic signals and reason codes so detection systems have something realistic to catch. Combine them with --patterns and tune the mix with --pattern-weights.
{{ p.name }}
{{ p.desc }}
Every user and transaction carries a risk_score from 0–100 mapped to a recommended action, so you can test allow / review / block flows end to end.
{{ band.desc }}
Use-case presets
Pass --use-case <name> to apply realistic defaults for a product domain. Explicit flags always override the preset.
| Use case | Built for | Default signals |
|---|---|---|
| {{ u.name }} | {{ u.builtFor }} | {{ u.signals }} |
{{ team.desc }}
Outputs & data model
Datasets are relational: users own accounts and devices, add beneficiaries, and transact with merchants. Shared network_id, device_id, and beneficiary_id values let graph systems reconstruct fraud rings.
Use --format both for CSV + JSON, or --format all to write every format at once. A summary.json with dataset totals and fraud breakdowns is always included.
Note: Parquet uses a dependency-free fallback writer — .parquet files contain columnar JSON plus a manifest. Swap in a binary Parquet integration before loading into strict Parquet-only tools.
{{ sampleRecord }}
Programmatic API
Generate and validate datasets in code — fully typed, deterministic with a seed, and ready to wire into test suites or pipelines.
{{ apiSnippet }}
Library users can also register custom country profiles and platform presets via defineGenerationPlugin and registerGenerationPlugin.
FAQ
Ready to explore?