A 30-page statement, down to ABB, EMIs and bounces
BSA (Bank Statement Analyser) reads PDFs, scans and password-protected statements.
R. Sharma · Savings XXXX4821
Sample Bank · 01 Apr – 30 Sep 2026
ABB (6 mo)
₹84,250
Salary credit
₹48,300
EMI obligations
₹14,300
Bounces
2
Monthly inflow vs outflow
InOutFraud checks
- PDF metadata
- Balance continuity
- Circular txns1
- Round-figure deposits1
Flagged transactions
4 to review| Date | Narration | ₹ | Flag |
|---|---|---|---|
| 22 Sep | CASH DEP SELF | +50,000 | Round figure |
| 14 Jul | IMPS / IN-OUT | +25,000 | Circular |
| 05 Sep | ACH RTN / EMI | −14,300 | EMI bounce |
| 05 Jul | ACH RTN / EMI | −14,300 | EMI bounce |
Statement reading and maths, done for you
ABB and monthly cash flow
ABB on the dates your policy uses, plus monthly inflow, outflow and closing balance.
Fraud and tamper flags
Circular transactions, round-figure deposits, edited PDF metadata and balances that don’t add up.
- PDFs, scans and photosScans go through OCR, with unclear pages marked for review.
- Transaction categoriesSalary, EMI, UPI, NEFT/IMPS, cash, cheque returns and charges.
- EMI obligations for FOIRRecurring EMIs pulled out and totalled for your FOIR check.
- Dashboard, Excel and APIReview on screen, export to Excel, or pull JSON into your LOS.
From upload to decision in four steps
- 01
Upload
From the dashboard or through the API.
- 02
Extract
BSA identifies the bank and pulls out every transaction.
- 03
Analyse
Categories, ABB, cash flow and fraud checks.
- 04
Decide
Your analyst or your LOS applies your policy.
Send a statement, get structured JSON back
- Webhooks
- Excel export
- Web dashboard
POST /v1/bsa/analyse
Authorization: Bearer <your-api-key>
Content-Type: multipart/form-data
file=@statement_apr-sep.pdf
password=********
applicant_ref=APP-2026-00418
callback_url=https://lms.example.in/hooks/bsa{
"analysis_id": "bsa_7Hk2Qm",
"status": "completed",
"account": {
"bank": "Sample Bank",
"account_no": "XXXX4821",
"holder": "R Sharma",
"period": {
"from": "2026-04-01",
"to": "2026-09-30"
}
},
"summary": {
"abb": 84250,
"avg_monthly_credit": 61900,
"avg_monthly_debit": 58450,
"emi_obligation_monthly": 14300,
"outward_bounces": 2
},
"salary": {
"detected": true,
"employer": "SAMPLE TRADERS PVT",
"avg_credit": 48300,
"months": 6
},
"flags": [
{
"type": "round_figure_deposit",
"date": "2026-09-22",
"amount": 50000,
"severity": "medium"
},
{
"type": "emi_bounce",
"date": "2026-09-05",
"amount": 14300,
"severity": "high"
}
],
"excel_url": "/v1/bsa/analyses/bsa_7Hk2Qm/export.xlsx"
}Your data, under your control
- Encrypted in transit and at rest
- Role-based access
- Audit logs
- Retention you control
Specific to BSA
- Statement passwords are used once to unlock the file and are never stored.
- Account numbers are masked on screen and in exports by default.
Questions about BSA
Which banks does BSA support?
The major public, private and co-operative banks used in Indian lending. Send a sample statement and we’ll run it in the demo.
Can it read scanned statements?
Yes. Scans and photos go through OCR, and unclear pages are marked for an analyst to check.
Does BSA make the credit decision?
No. It gives you the numbers and the flags. Your credit policy decides.
Do we need a tech team to start?
No. Start with the dashboard and Excel export, and move to the API when your LOS team is ready.