🔌 REST API ⚡ <5s Response 🏦 93 Bank Formats 🎯 98.9% Accuracy 🆓 50 Free/month

Bank Statement Converter API

POST a bank statement PDF. Get structured JSON transactions back in under 5 seconds. Purpose-built for fintech, lending, accounting, and personal finance applications.

Get API Key Free → View Full Docs

Quick Start — Convert a Bank Statement PDF in One Request

# Python — convert bank statement PDF to JSON
import requests

response = requests.post(
    'https://api.bankstatementengine.com/v1/convert',
    headers={'X-API-Key': 'your_api_key_here'},
    files={'file': open('statement.pdf', 'rb')},
    data={
        'format': 'json',
        'pdf_password': 'optional_password'
    }
)

data = response.json()
# data['transactions'] — list of all transaction objects
# data['summary']  — totals, balance check, bank info
// Node.js — same request with FormData
const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');

const form = new FormData();
form.append('file', fs.createReadStream('statement.pdf'));
form.append('format', 'json');

const { data } = await axios.post(
    'https://api.bankstatementengine.com/v1/convert',
    form,
    { headers: { ...form.getHeaders(), 'X-API-Key': 'your_api_key' }}
);

JSON Response Format

{
  "status": "success",
  "bank": "HDFC Bank",
  "account_number": "XXXX1234",
  "period_start": "2026-05-01",
  "period_end": "2026-05-31",
  "opening_balance": 24500.00,
  "closing_balance": 31820.50,
  "balance_check": true,
  "confidence_score": 0.99,
  "transactions": [
    {
      "date": "2026-05-02",
      "description": "SALARY ACME CORP NEFT",
      "debit": null,
      "credit": 75000.00,
      "balance": 99500.00,
      "transaction_type": "NEFT",
      "reference": "UTR2405020012345"
    }
  ],
  "summary": {
    "total_credits": 82000.00,
    "total_debits": 74679.50,
    "transaction_count": 47
  }
}

API Endpoints

POST /v1/convert
Convert a single bank statement PDF. Returns structured data synchronously. Average response: <5s.
POST /v1/batch
Submit up to 50 PDFs at once for async processing. Returns a batch ID. Use webhook or poll /v1/batch/{id} for results.
GET /v1/banks
Returns the full list of 93 supported bank formats with detection confidence scores.
GET /v1/usage
Returns your current month's conversion count and remaining quota.

Pricing

Free

$0
50 statements/month · JSON output · All 93 banks

Starter

$49/mo
500 statements/month · All formats · Webhooks

Growth

$149/mo
2,500 statements/month · Batch API · Priority support

Enterprise

Custom
Unlimited volume · SLA · On-prem option · Dedicated support

Use Cases — Who Uses the Bank Statement API?

Use caseWhat they buildOutput format
Lending platformsIncome verification and affordability scoringJSON
Accounting softwareAutomatic bank import for users with unsupported banksCSV / QBO
Personal finance appsTransaction import and categorisationJSON
Mortgage brokersAutomated bank statement analysis for applicationsJSON / Excel
Audit firmsBulk extraction of client bank data for analysisExcel / CSV
NBFC / Fintechs (India)Bank statement analysis for KYC and credit decisioningJSON

Technical Specifications

Security: All API requests use HTTPS. PDFs are processed in isolated containers and deleted within 1 hour. No training data is retained from API submissions. SOC 2 Type II in progress. GDPR compliant. See Privacy Policy for full details.

Frequently Asked Questions

How do I get an API key?
Register for a free account at bankstatementengine.com/api. The free tier gives you 50 conversions per month with no credit card required. Your API key is available immediately in your dashboard.
Does the API work with Indian bank statements?
Yes. We have specific templates for SBI, HDFC Bank, ICICI Bank, Axis Bank, Kotak Mahindra Bank, Canara Bank, Bank of Baroda, PNB, Yes Bank, IndusInd Bank, Federal Bank, and 10+ more Indian banks. Indian bank PDFs are often password-protected — pass the password via the pdf_password parameter.
Can I process statements in bulk via the API?
Yes. Use the /v1/batch endpoint to submit up to 50 PDFs at once. Results are delivered via webhook callback when processing completes. For very high volumes (thousands of statements), contact us for a dedicated pipeline with guaranteed SLAs.
What happens if a bank format is not recognised?
The API uses a fallback generic extraction mode for unrecognised bank formats. This achieves lower accuracy (typically 80-90%) but still extracts most transactions. The response includes a bank: "unknown" field and a lower confidence_score. Contact us with the bank name and a redacted sample statement and we will add a specific template within 48 hours.

Start Extracting Bank Statement Data via API

50 free conversions/month · No credit card · Full JSON response · All 93 banks

Get Free API Key →

Related: Full API Documentation · PDF Data Extractor · Bank Statement Parser · Bulk Converter