BSA - Document Classifier
Introduction:
Bank Statement File Identification & Financial Document Classifier is designed to eliminate incorrect document uploads early in the lending workflow. In current journeys, non-bank-statement documents such as Aadhaar, PAN, salary slips, FD receipts, or random PDFs often reach the Bank Statement Analysis (BSA) engine without prevalidation, leading to wasted compute, manual queue buildup, delayed decisions, and poor customer experience. This solution introduces an intelligent, configurable document identification layer that validates uploaded files before downstream processing. This API not only determines whether a document is a valid bank statement but also classifies other common financial documents such as Salary Slips, Form 16/ITR documents, and Fixed Deposit receipts, enabling faster, more accurate automation across lender workflows.
Input Parameters:
Parameter | Type | Description | Mandatory/Optional |
|---|---|---|---|
files | Array | List of Files that you need analysis on | Mandatory |
files[n].fileUrl | String | Bank Statement file URL. You can generate and pass fileURL by using upload option in API or can pass the S3 bucket url†| Mandatory |
Sample Response:
{
"success": true,
"totalFiles": 1,
"validBankStatements": 1,
"invalidDocuments": 0,
"results": [
{
"fileUrl": "https://files.signzy.tech/api/files/1398377134/download/ad6d28ea67884bb08afd5710998cab2eaa75bc3ea72444789eb3a8d3184be83f.pdf",
"success": true,
"data": {
"documentType": "bank_statement",
"confidence": 0.99,
"indicators": {
"bankStatement": {
"hasBankName": true,
"bankName": "au small finance bank",
"tableHeaderMatches": 8,
"structureMatches": 7,
"financialMatches": 1,
"score": 101
},
"salarySlip": {
"keywordMatches": 2,
"score": 10
},
"form16": {
"keywordMatches": 1,
"score": 8
},
"itr": {
"keywordMatches": 0,
"score": 0
},
"upiStatement": {
"keywordMatches": 1,
"score": 7
},
"creditCardStatement": {
"keywordMatches": 0,
"score": 0
},
"fixedDeposit": {
"keywordMatches": 0,
"score": 0
}
},
"reasoning": [
"Detected bank: au small finance bank",
"Found 8 table header indicators",
"Found 7 statement structure indicators"
],
"scores": {
"bank_statement": 101,
"salary_slip": 10,
"form_16": 8,
"itr": 0,
"upi_statement": 7,
"credit_card_statement": 0,
"fixed_deposit": 0
},
"metadata": {
"pageCount": 25,
"pdfMetadata": {
"title": "",
"author": "",
"creator": "JasperReports Library version 6.10.0-dddd38218a3c404d01eecdb9d9a7636fe2d02d7a",
"producer": "iText 2.1.7 by 1T3XT",
"creationDate": {},
"modificationDate": {}
},
"fontsUsed": [
"g_d3_f1",
"Helvetica",
"g_d3_f2"
],
"processingTime": 4.86,
"isScanned": false,
"ocrProvider": "",
"ocrProcessingTime": 0
}
}
}
]
}
Status Codes:
{
"error": {
"reason": "INVALID_FILE_URL",
"status": 400,
"message": "Invalid fileUrl, only PDF supported",
"type": "Bad Request",
"statusCode": 400,
"name": "error"
}
}