API documentation
Bank statement analysis
Analyses a bank statement: every transaction, balances, inflows and outflows, bounces and monthly totals.
Endpoint
POST https://api.finovel.in/v1/bank-statement-analysisCharged only when the call succeeds. Errors are never charged. See how every API works for keys, retries and status codes.
Request fields
| Field | Type | Required | Description |
|---|---|---|---|
file | file | Yes | Statement PDF or image |
pdf_password | text | No | PDF password. Only for a password-protected PDF. |
Example request
curl -X POST https://api.finovel.in/v1/bank-statement-analysis \
-H "Authorization: Bearer fin_test_your_key" \
-H "Content-Type: application/json" \
-d '{}'Response fields
Inside data:
| Field | Description |
|---|---|
status | Result |
bankName | Bank |
accountName | Account holder |
period.from | From |
period.to | To |
summary.transactionCount | Transactions |
summary.totalCredits | Total credits |
summary.totalDebits | Total debits |
summary.averageBalance | Average day-end balance |
summary.possibleBounceCount | Possible bounces |
Example response from the sandbox
{
"request_id": "req_...",
"success": true,
"status": "success",
"environment": "sandbox",
"message": "OK",
"data": {
"period": {
"to": "2026-09-30",
"from": "2026-04-01"
},
"status": "COMPLETED",
"summary": {
"totalDebits": 12000,
"totalCredits": 50000,
"averageBalance": 38000,
"transactionCount": 2,
"possibleBounceCount": 0
},
"bankName": "Sandbox Bank",
"warnings": [],
"accountName": "SANDBOX TEST USER",
"transactions": [
{
"date": "2026-04-01",
"debit": null,
"credit": 50000,
"balance": 50000,
"description": "SALARY"
},
{
"date": "2026-04-05",
"debit": 12000,
"credit": null,
"balance": 38000,
"description": "RENT"
}
]
},
"error": null,
"charged_paise": 0
}Sandbox scenarios
With a test key, this API can return:
- Statement analysed (default)