README
ΒΆ
FinWipe β DIY Financial Data Deletion for India
"Your financial data. Your rules."
FinWipe is an open-source CLI tool that helps Indian citizens exercise their right to erasure under Section 8(6) of the Digital Personal Data Protection Act, 2023 (DPDP Act) and Rule 8 of the DPDP Rules, 2025.
Every request gets a unique DPR-ID (e.g., DPR-2026-000001) for full auditability. All data stays on YOUR machine.
π Install
Option 1 β npm (recommended, cross-platform):
npm install -g finwipe
Option 2 β Homebrew (macOS/Linux):
brew tap das-rebel/finwipe
brew install finwipe
Option 3 β Direct binary (no package manager):
# macOS (Apple Silicon / M1-M3)
curl -fsSL https://github.com/Das-rebel/finwipe/releases/latest/download/finwipe-darwin-arm64 -o finwipe
# macOS (Intel)
curl -fsSL https://github.com/Das-rebel/finwipe/releases/latest/download/finwipe-darwin-amd64 -o finwipe
# Linux (AMD64)
curl -fsSL https://github.com/Das-rebel/finwipe/releases/latest/download/finwipe-linux-amd64 -o finwipe
# Linux (ARM64 / Raspberry Pi)
curl -fsSL https://github.com/Das-rebel/finwipe/releases/latest/download/finwipe-linux-arm64 -o finwipe
# Windows
curl -fsSL https://github.com/Das-rebel/finwipe/releases/latest/download/finwipe-windows-amd64.exe -o finwipe.exe
chmod +x finwipe && sudo mv finwipe /usr/local/bin/
# Windows: save as finwipe.exe and run from Command Prompt or PowerShell
Option 4 β Build from source:
git clone https://github.com/das-rebel/finwipe
cd finwipe && go build -o finwipe ./cmd/finwipe
Verify it works:
finwipe --help
β‘ Quick Start (5 Steps)
# 1. Set up your profile (name, email, SMTP)
finwipe init
# 2. Browse the 91-entity registry
finwipe list --category fintech
# 3. Create a deletion request
finwipe new --nbfc-id bajaj-finserv
# 4. Preview, then send
finwipe send --dry-run # preview first
finwipe send # actually send emails
# 5. Track responses
finwipe track --all
π Core Commands
finwipe init
One-time setup. Saves to ~/.finwipe/config.yaml.
finwipe init
# Interactive prompts for:
# Full name, email, phone, address
# SMTP host (e.g. smtp.gmail.com), port (587), username, app password
finwipe list
Browse 91 registered entities.
finwipe list # all 91
finwipe list --category fintech # 59 fintechs
finwipe list --category bank # 12 banks
finwipe list --category nbfc # 18 NBFCs
finwipe list --search HDFC # search by name
finwipe list --json # JSON output
finwipe new
Create a deletion request β returns a DPR-ID.
finwipe new --nbfc-id bajaj-finserv
finwipe new --nbfc-id tata-capital --categories marketing,third_party
Deletion categories: marketing Β· third_party Β· behavioral Β· app_usage Β· call_records Β· loan_profile Β· all_non_essential
finwipe send
Dispatch requests via email or registered post.
finwipe send --dry-run # preview (no emails sent)
finwipe send # send all pending
finwipe send --request-id DPR-2026-000001
finwipe send --rate-limit 2000 # 2s between emails
finwipe send --channel post # generate PDF letters
finwipe track
Monitor the full lifecycle.
finwipe track --request-id DPR-2026-000001
finwipe track --all # all active
finwipe track --overdue # past deadline
finwipe track --awaiting-ack # no response yet
Lifecycle:
INITIATED β DISPATCHED β ACK_RECEIVED β RESPONSE_OK β CLOSED
β β
AWAITING_ACK ESCALATED
β β
DELIVERY_FAILED DPDP_BOARD / RBI_OMBUDSMAN
finwipe ack
Record an NBFC's acknowledgment.
finwipe ack --request-id DPR-2026-000001
finwipe ack --request-id DPR-2026-000001 --reference ABC123XYZ
finwipe escalate
Escalate ignored requests up the chain.
finwipe escalate --request-id DPR-2026-000001 --to dpo # L1: Data Protection Officer
finwipe escalate --request-id DPR-2026-000001 --to dpd_board # L2: DPDP Board Β§27(3)
finwipe escalate --request-id DPR-2026-000001 --to rbi_ombudsman # L3: RBI
finwipe escalate --request-id DPR-2026-000001 --to consumer_forum # L3: Consumer Forum
finwipe close
Close a request with an outcome.
finwipe close --request-id DPR-2026-000001 --outcome deleted
finwipe close --request-id DPR-2026-000001 --outcome rejected --notes "claimed already deleted"
Outcomes: deleted Β· acknowledged_not_deleted Β· partial Β· rejected Β· exemption_claimed Β· no_response
finwipe report
Dashboard with compliance metrics.
finwipe report
finwipe report --days 30 --format json
π Discovery Commands
Find out who holds your data before sending requests.
finwipe discover-from-cibil
Parse a CIBIL report PDF β auto-create requests for every institution that queried your credit.
finwipe discover-from-cibil --file your_cibil_report.pdf --auto
finwipe discover-from-bureau
All 4 bureaus: CIBIL, Experian, Equifax, CRIF HighMark.
finwipe discover-from-bureau --file Experian_Report.pdf --auto
finwipe discover-from-bank-statement
Extract FI references from bank statement PDFs (EMI deductions, NACH mandates).
finwipe discover-from-statement --file statement.pdf
finwipe discover-from-statement --directory ./statements/ --auto
finwipe discover-from-email
Parse Gmail Takeout exports.
finwipe discover-from-email --file gmail_export.zip --auto
finwipe discover-from-whatsapp
Extract FI contacts from WhatsApp Business chat exports.
finwipe discover-from-whatsapp --path ./whatsapp_chat.txt
finwipe discover-from-aa
Discover FIs via Account Aggregator apps (NADL, CAMS, SAafe, Finvu).
finwipe discover-from-aa --provider nadl
βοΈ Enforcement Commands
finwipe portability
Request all data an entity holds about you (Β§6(9), DPDP Act). Company must respond in 72 hours.
finwipe portability --nbfc-id bajaj-finserv
finwipe portability --nbfc-id tata-capital --send
finwipe verify
Confirm an NBFC actually deleted your data.
finwipe verify --request-id DPR-2026-000001 --method certificate
Methods: email Β· certificate Β· login
finwipe mass-request
Send to ALL entities in a category at once.
finwipe mass-request --category fintech --dry-run
finwipe mass-request --category bank --exclude hdfc-bank,icici-bank
β οΈ You'll receive ~90 acknowledgment emails.
finwipe compliance
Community compliance rates + shame list.
finwipe compliance
finwipe compliance --shame # worst offenders
π€ Automation
finwipe cron
Daily automation: follow-ups, deadline checks, auto-escalation.
finwipe cron --dry-run # preview
finwipe cron # full automation
Schedule: Day 3 β follow-up Β· Day 7 β DPO escalation Β· Day 30 β DPDP Board
finwipe wizard
Interactive guided flow for first-time users.
finwipe wizard
finwipe ask
Quick consent-withdrawal wizard (no finwipe init needed).
finwipe ask
Monthly GitHub Actions
Fork the repo, add secrets (SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, FINWIPE_FULL_NAME, FINWIPE_EMAIL, FINWIPE_PHONE, FINWIPE_ADDRESS), and the workflow runs finwipe send monthly on the 1st.
π Supporting Commands
| Command | Description |
|---|---|
finwipe letter |
Generate PDF deletion letters |
finwipe evidence attach |
Attach screenshots/acknowledgments to a DPR-ID |
finwipe cic |
Generate CIC (CIBIL/Experian/Equifax/CRIF) dispute forms |
finwipe parse |
Parse CIBIL report β extract NBFC names |
finwipe update-registry |
Update NBFC registry from awesome-fintech-india |
finwipe setup-forward |
Set up FinWipe cloud inbox for passive discovery |
finwipe sync |
Sync discoveries from FinWipe cloud |
finwipe cloud-status |
Check cloud connectivity |
π By the Numbers
| Metric | Value |
|---|---|
| Version | 0.1.4 |
| Registry | 91 entities (12 banks Β· 18 NBFCs Β· 59 fintechs Β· 2 HFCs) |
| Legal basis | DPDP Act 2023 + RBI DLG |
| npm | finwipe |
| Homebrew | das-rebel/finwipe |
βοΈ Legal Basis
| Law | Section | Right |
|---|---|---|
| DPDP Act 2023 | Β§8(6) | Right to Erasure |
| DPDP Act 2023 | Β§6(9) | Right to Data Portability |
| DPDP Act 2023 | Β§27(3) | Complaint to DPDP Board |
| DPDP Rules 2025 | Rule 8(1) | 48-hour acknowledgment |
| DPDP Rules 2025 | Rule 8(2) | Deletion within 30 days |
| RBI DLG 2022 | Para 10.2, 11.1 | Data deletion in lending |
β What Can Be Deleted
β Marketing and promotional data
β Third-party shared data
β Behavioral and usage data
β Pre-approved loan offer profiles
β Call recordings and service logs
β App activity and preferences
β What Cannot Be Deleted
β KYC documents (PMLA: 10 years post-closure)
β Transaction records (RBI: 5-10 years)
β Active loan account data
β CIBIL's own records (separate fiduciary duty)
π Data Location
All data stays local at ~/.finwipe/:
~/.finwipe/
βββ config.yaml # Profile + SMTP
βββ history.db # SQLite (WAL) β full audit trail
βββ nbfcs.yaml # Entity registry
βββ letters/ # Generated PDFs
βββ evidence/ # Screenshots, acknowledgments
π οΈ Tech Stack
- Go 1.21+ β single binary, no runtime deps
- Cobra β CLI framework
- SQLite (WAL) β request history
- gofpdf β PDF generation
- Viper β configuration
π€ Contributing
PRs welcome β especially:
- New NBFCs/fintechs in
data/nbfcs.yaml - Email/letter templates in
templates/ - Better PDF parsing
- CIC dispute form improvements
π¦ Installation Links
| Platform | Command / Link |
|---|---|
| npm | npm install -g finwipe |
| Homebrew | brew tap das-rebel/finwipe && brew install finwipe |
| macOS ARM64 | finwipe-darwin-arm64 |
| macOS AMD64 | finwipe-darwin-amd64 |
| Linux AMD64 | finwipe-linux-amd64 |
| Linux ARM64 | finwipe-linux-arm64 |
| Windows | finwipe-windows-amd64.exe |
| Source | git clone https://github.com/das-rebel/finwipe |
π Documentation
| Guide | Description |
|---|---|
| Gmail Setup Guide | SMTP sending (Gmail), receiving replies via forwarding rules, alternatives (Outlook, iCloud, ProtonMail) |
| CIBIL Guide | Stop CIBIL sharing data, freeze credit report, DPDPA erasure request to CIBIL |
| Regulatory Framework | DPDPA 2023, RBI Guidelines, SEBI Circulars, CIC Dispute forms |
| CONTRIBUTING.md | How to contribute, add new NBFCs, submit pull requests |
License
MIT β Use it. Modify it. Distribute it. Delete your data.
"Your financial data. Your rules."