Skip to content

Why not just use Bank CSV?

TL;DR: Bank CSVs are inconsistent, limited, and missing GST fields. This tool gives you one schema for all banks, full history, and GSTR-2A reconciliation.

The Problem with Bank CSVs

Most Indian banks offer CSV downloads, but they're designed for human viewing — not for automated processing at scale.

Aspect Bank CSV This Tool
Schema Different per bank (HDFC/ICICI/SBI/Axis all differ) One unified schema for all banks
Date format DD/MM/YYYY, DD-MM-YYYY, YYYY-MM-DD, DD MMM YYYY Normalized to YYYY-MM-DD
Amounts 1,000.00, 1000.00, signed/unsigned, debit/credit mixed Decimal, separate debit/credit columns
History Usually 90–180 days Full statement period (years via PDF)
Credit cards Many banks don't offer CSV for cards Parses card PDFs
GSTR-2A No GSTIN, invoice numbers, place of supply, HSN GSTR-2A ready CSV with all required fields
Bulk processing Manual download per account parse-bank-statements --input-dir ./clients --bank hdfc
Offline/air-gapped Requires login + download Works on PDFs only, no network
Regional variants SBI has 20+ regional formats Handles all via regex patterns

Real-World Scenarios

CA Firm (50+ clients/month)

# Without tool: Manual download, open each CSV, fix columns, merge
# With tool:
parse-bank-statements --input-dir ./client-statements --bank hdfc --output-dir ./parsed

Lender (Income verification)

# Need standardized income data from multiple banks
df = parse_statements(input_dir="./borrower-statements", bank="sbi")
# All transactions in same schema, ready for analysis

GST Practitioner

# Generate GSTR-2A upload format
df = parse_statements(
    input_dir="./client-statements",
    bank="icici",
    reconcile_gstr2a=True,
    gstin="29ABCDE1234F1Z5"
)
df.to_csv("gstr2a_upload.csv", index=False)

When Bank CSV is Fine

  • Personal finance (1-2 accounts)
  • Occasional manual review
  • No GST reconciliation needed
  • Recent transactions only (last 90 days)

When You Need This Tool

  • Scale: Processing 10+ statements/month
  • Multi-bank: HDFC + ICICI + SBI in same workflow
  • GST: GSTR-2A reconciliation required
  • History: Need full year+ of transactions
  • Credit cards: Banks don't offer CSV for cards
  • Automation: CI/CD pipelines, scheduled jobs
  • Offline: Air-gapped environments, no bank login

The Unified Output Schema

date,description,debit,credit,balance,ref_no,category
2024-01-15,"UPI-PAYMENT TO MERCHANT",500.00,,45000.00,UPI123456789,debit
2024-01-16,"SALARY CREDIT",,120000.00,165000.00,SAL987654321,credit
Column Type Description
date date Transaction date (YYYY-MM-DD)
description string Raw transaction narration
debit float Debit amount (empty if credit)
credit float Credit amount (empty if debit)
balance float Running balance after transaction
ref_no string Bank reference/UTR number
category string debit or credit

Bottom line: If you process statements at scale, need GST reconciliation, or want one schema for all banks — this tool saves hours of manual cleanup every month.