SoonOne MCP server, all 49 APIs as agent tools. See how it works

AI-powered financial document processing

Bank Statement Parser API

The Bank Statement Parser API uses advanced OCR and machine learning to automatically extract structured financial data from bank statements. Parse transactions, account information, balances, and generate financial insights from PDF documents and images.

Perfect for fintech applications, accounting software, lending platforms, and financial analytics tools requiring automated bank statement processing with bank-grade security and enterprise reliability.

Free tier included, no credit card required. One key works across all 49 APIs.

At a glance
Accuracy Rate
98%+
Processing Time
<15s
Banks Supported
500+

Key features

  • Extract all transaction details and metadata
  • Parse account and bank information
  • Calculate balances and financial summaries
  • Automatic transaction categorization
  • Support for PDF and image statement formats
  • Multi-bank and multi-currency processing
  • Secure processing with data encryption
  • Batch processing for multiple statements

Built for

  • Loan application and underwriting
  • Personal finance management apps
  • Automated bookkeeping and accounting
  • Financial planning and budgeting tools
  • Expense tracking and reporting
  • Credit assessment and risk analysis
  • Banking and fintech integrations
  • Compliance and audit documentation

Try it

Build the request for your data

Edit the parameters below and see the exact curl command and JSON response you will get. No key required to preview.

POST/v1/parse
Open in Playground
Request · HTTP
POST /parser/v1/parse HTTP/1.1
Host: api.apicodex.io
Content-Type: multipart/form-data
Response · JSON
200 OK
{
  "success": true,
  "parsed_at": "2025-05-13T07:40:48.000Z",
  "data": {
    "bank_info": {
      "name": "First National Bank",
      "address": "123 Banking Street, Financial District, NY 10001",
      "phone": "(555) 123-BANK",
      "routing_number": "123456789",
      "swift_code": "FNBKUS33"
    },
    "account_info": {
      "account_holder": "John Smith",
      "account_number": "**** 1234",
      "account_type": "Checking",
      "currency": "USD"
    },
    "statement_period": {
      "start_date": "2025-04-01",
      "end_date": "2025-04-30",
      "statement_date": "2025-05-01"
    },
    "balance_info": {
      "opening_balance": 2500.00,
      "closing_balance": 2847.50,
      "available_balance": 2847.50,
      "pending_balance": 0.00
    },
    "transactions": [
      {
        "date": "2025-04-02",
        "description": "Direct Deposit - Salary",
        "amount": 3500.00,
        "balance": 6000.00,
        "reference": "DD20250402001",
        "category": "Deposit",
        "merchant": "ABC Corporation",
        "location": null
      }
    ],
    "summary": {
      "total_credits": 3500.00,
      "total_debits": -652.50,
      "transaction_count": 25,
      "fees_charged": 5.00,
      "interest_earned": 0.00
    }
  }
}

Documentation

Bank Statement Parser API Documentation

The Bank Statement Parser API is designed for fintech companies, financial institutions, and developers who need to extract structured data from bank statements. The API supports various statement formats and uses advanced AI to ensure high accuracy while maintaining strict security standards.

Base URL

url
https://api.apicodex.io/parser

Authentication

Authenticate every request with your API key: send it in an X-Api-Key header, or pass it as an ?apikey= query parameter.

headers
{
"X-Api-Key": "YOUR_API_KEY"
}

Request and response

Illustrative values. Confirm current endpoint behavior, quotas, and data freshness in the API documentation before production use.

request · http
POST /v1/parse HTTP/1.1
Content-Type: multipart/form-data
response · json
{
  "success": true,
  "parsed_at": "2025-05-13T07:40:48.000Z",
  "data": {
    "bank_info": {
      "name": "First National Bank",
      "address": "123 Banking Street, Financial District, NY 10001",
      "phone": "(555) 123-BANK",
      "routing_number": "123456789",
      "swift_code": "FNBKUS33"
    },
    "account_info": {
      "account_holder": "John Smith",
      "account_number": "**** 1234",
      "account_type": "Checking",
      "currency": "USD"
    },
    "statement_period": {
      "start_date": "2025-04-01",
      "end_date": "2025-04-30",
      "statement_date": "2025-05-01"
    },
    "balance_info": {
      "opening_balance": 2500.00,
      "closing_balance": 2847.50,
      "available_balance": 2847.50,
      "pending_balance": 0.00
    },
    "transactions": [
      {
        "date": "2025-04-02",
        "description": "Direct Deposit - Salary",
        "amount": 3500.00,
        "balance": 6000.00,
        "reference": "DD20250402001",
        "category": "Deposit",
        "merchant": "ABC Corporation",
        "location": null
      }
    ],
    "summary": {
      "total_credits": 3500.00,
      "total_debits": -652.50,
      "transaction_count": 25,
      "fees_charged": 5.00,
      "interest_earned": 0.00
    }
  }
}

Code examples

JavaScript/Node.js
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

const form = new FormData();
form.append('statement', fs.createReadStream('/path/to/statement.pdf'));

const options = {
  method: 'POST',
  url: 'https://api.apicodex.io/parser/v1/parse',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
    ...form.getHeaders()
  },
  data: form
};

try {
  const response = await axios.request(options);
  console.log(response.data);
} catch (error) {
  console.error(error);
}

Pricing

Bank Statement Parser API Pricing

One key, one subscription, all 49 APIs. Start free and upgrade when you grow. No minimums, no lock-in.

This API costs 25 credits per request. Credits are shared across every API on your plan.

Estimate your monthly cost

Drag the slider to match your expected request volume. We will recommend the cheapest plan that covers it.

10,000

Recommended plan

Pro

$99.99 /month

Credits used250,000
Credits included250,000
Cost per 1K requests$9.999
Choose Pro

Free

Free
1,000 credits · ~40 requests/mo · 2 rps
  • All 49 APIs included
  • No credit card required
  • Full documentation and examples
Start for free

Starter

Popular
$29.99/month
50,000 credits · ~2,000 requests/mo · 10 rps
  • All 49 APIs included
  • Email support
  • Usage dashboard and analytics
Start with Starter

Pro

$99.99/month
250,000 credits · ~10,000 requests/mo · 25 rps
  • All 49 APIs included
  • Priority support
  • Up to 5 API keys
Start with Pro

Need a different plan?

Tell us about your API, volume, or support requirements.

Contact us

Coming soon · MCP

Use the Bank Statement Parser API from your AI agent

The API Codex MCP server will expose this API, and the other 39, to Claude, Cursor and any MCP client as tools. Same key, same credits, one config entry.

About the MCP server

FAQ

Frequently asked questions

The Bank Statement Parser API supports PDF statements from over 500 financial institutions including Chase, Bank of America, Wells Fargo, Citibank, HSBC, Barclays, and regional credit unions worldwide. It processes both digitally-generated PDFs (where text is embedded) and scanned paper statements using integrated OCR with automatic image preprocessing for skew correction and contrast enhancement. The API also handles password-protected PDFs when the password is provided as a parameter. For scanned documents, the engine supports resolutions from 150 to 600 DPI and automatically detects multi-page layouts, column formats, and table structures specific to each bank's statement template.

Security is fundamental to our architecture. All document uploads and API responses are transmitted over TLS 1.3 encrypted connections. Uploaded documents are processed in isolated, ephemeral containers and permanently deleted within 60 seconds of processing completion — no financial data is persisted on our servers. We comply with PCI DSS Level 1 requirements, SOC 2 Type II standards, and GDPR data protection regulations. Sensitive fields like full account numbers and routing numbers are automatically masked in API responses (e.g., ****1234), and you can configure additional masking rules via request parameters. Our infrastructure undergoes quarterly penetration testing and annual security audits by independent third-party firms.

The API extracts a comprehensive set of structured fields organized into logical sections. Bank information includes the institution name, address, phone number, routing number, and SWIFT/BIC code. Account details cover the account holder name, masked account number, account type (checking, savings, money market), and currency. The statement period section provides start date, end date, and statement generation date. Balance information includes opening balance, closing balance, available balance, and pending amounts. Each transaction record contains the date, description, debit or credit amount, running balance, reference number, merchant name, location, and auto-assigned category. The financial summary aggregates total credits, total debits, transaction count, fees charged, and interest earned.

Yes, the API uses a multi-layered classification system combining rule-based matching and machine learning to categorize transactions with over 95% accuracy. Standard categories include direct deposits, payroll, ACH transfers, wire transfers, ATM withdrawals, point-of-sale purchases, online payments, recurring subscriptions, loan payments, utility bills, and bank fees. The ML model is trained on millions of real transaction descriptions and continuously updated to recognize new merchants and payment patterns. Enterprise plans support custom categorization taxonomies, allowing you to define business-specific categories like department codes or cost centers that map to your internal accounting chart of accounts.

Our API achieves over 98% field-level accuracy in data extraction, validated against a benchmark dataset of 50,000+ bank statements from diverse institutions and formats. Accuracy is measured across individual fields: numerical values like amounts and balances achieve 99.2% accuracy, dates achieve 98.7%, and free-text fields like merchant names achieve 96.5%. The system uses a two-pass extraction approach — the first pass applies template-matched extraction for known bank formats, while the second pass uses adaptive ML models for unfamiliar layouts. A confidence score is returned for each extracted field, allowing your application to flag low-confidence results for manual review rather than accepting potentially incorrect data.

Yes, the Bank Statement Parser API supports statements from international banks across multiple countries and currencies. The API recognizes various date formats (DD/MM/YYYY, MM/DD/YYYY, YYYY-MM-DD), currency symbols and ISO codes (USD, EUR, GBP, JPY, CAD, AUD, and 50+ others), and multi-language bank statements in English, Spanish, French, German, Portuguese, Italian, Dutch, and other major languages. The OCR engine handles non-Latin scripts including Chinese, Japanese, Korean, Arabic, and Cyrillic characters. The extracted data is normalized into a consistent JSON format regardless of the source bank or country, with amounts converted to standard decimal notation and dates standardized to ISO 8601 format, making it straightforward to work with international financial data in a unified pipeline.