If you've ever written a test for a banking or fintech app, you know the pain:
- Hardcoded IBANs that fail format validation
- Fake credit card numbers that get rejected by Luhn checks
- SSN/national ID values that don't match country-specific rules - Copy-pasted test data that leaks into logs I spent 12 years as a QA Manager in fintech dealing with this. So I built Mock Jutsu — an open-source synthetic test data generator with 395+ data types, zero external dependencies.
## What it generates
- Banking: IBAN (MOD-97 valid), BIC, SWIFT, routing numbers, sort codes
- Cards: Luhn-valid card numbers, CVV, expiry, masked PAN
- Identity: SSN (US), NIN (UK), SIN (CA), TCKN (TR), 45 countries total
- Capital markets: ISIN, CUSIP, SEDOL, LEI, FIGI, FIX messages
- Crypto: Bitcoin, Ethereum, USDT addresses
- Health, IoT, E-commerce and more
## Installation
pip install mock-jutsu
## CLI usage
mockjutsu generate iban --locale TR
mockjutsu generate cardnum --locale US
mockjutsu generate tckn
mockjutsu generate iban --locale TR --mask
mockjutsu bulk tckn --count 100
mockjutsu template iban fullname cardnum --count 50 --locale TR
## Python usage
from mockjutsu.core import jutsu
jutsu.generate("iban", locale="TR")
jutsu.generate("cardnum", locale="US")
jutsu.generate("tckn")
jutsu.generate("ssn")
jutsu.generate("cardnum", locale="US", mask=True)
## Compliance-safe masked output
For PCI DSS, GDPR, and KVKK scenarios, every sensitive type supports masking:
jutsu.generate("cardnum", mask=True) # ************3456
jutsu.generate("iban", mask=True) # TR33******786457841326
jutsu.generate("tckn", mask=True) # 348******54
## Export formats
mockjutsu bulk iban --count 1000
mockjutsu bulk cardnum --count 500
mockjutsu template iban fullname ssn --count 200 --format json
## Full docs
HOW-TO pages for all 395 types in 5 languages (EN, TR, DE, FR, RU):
👉 https://altansayan.github.io/mock-jutsu-api/
What test data types are you still generating manually? Happy to add them.
Top comments (0)