Developer API · Beta

Bank statement parsing, as an API.

One REST endpoint. PDF in, structured JSON out — plus one-click Tally XML, QuickBooks .qbo, Zoho Books CSV, or Xero CSV formats.

Latency
~4–8s

per statement, ≤ 30 pages

Accuracy
98.7%

Public benchmark vs 4 competitors

Coverage
280+ banks

across 45 countries incl. US, UK, EU, Canada

Batch API
Beta

Enqueue up to 1,000 PDFs per request. Poll or receive a webhook when the batch completes.

curl -X POST https://convertbankstatements.co/api/public/batch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "files": [
      { "url": "https://your-cdn.com/stmt-1.pdf", "bank_code": "chase", "format": "qbo" },
      { "url": "https://your-cdn.com/stmt-2.pdf", "bank_code": "hdfc", "format": "tally" }
    ],
    "webhook_url": "https://your-app.com/hooks/b2b",
    "callback_secret": "shhh"
  }'

// → 202 Accepted
{ "job_id": "job_abc123", "status": "queued", "accepted": 2,
  "poll_url": "/api/public/batch?id=job_abc123",
  "eta_seconds": 12 }

// Webhook (POST) fires when complete:
{ "job_id": "job_abc123", "status": "completed",
  "completed": 2, "total": 2,
  "results": [
    { "file_url": "...", "status": "ok", "bank": "chase",
      "transaction_count": 84,
      "download_urls": { "qbo": "https://.../out.qbo" } }
  ] }

Native accounting-tool exports

One conversion, twelve output formats. No post-processing.

ExcelCSVTally XMLQuickBooks .qboQuickBooks Desktop IIFZoho BooksXeroSage 50FreshBooksWaveMYOBQIF

Quick example

curl -X POST https://convertbankstatements.co/api/public/convert \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@statement.pdf" \
  -F "bank_code=hdfc" \
  -F "format=tally"

// → 200 OK
{
  "statement": {
    "bank_name": "HDFC Bank",
    "currency": "INR",
    "period_from": "2026-06-01",
    "period_to": "2026-06-30",
    "opening_balance": 152430.55,
    "closing_balance": 187214.10,
    "transaction_count": 84
  },
  "transactions": [
    { "date": "2026-06-01", "description": "SALARY-ACME-INC",
      "credit": 250000, "category": "Salary" }
    /* ... */
  ],
  "download_urls": {
    "excel": "https://convertbankstatements.co/dl/xxx.xlsx",
    "tally_xml": "https://convertbankstatements.co/dl/xxx.xml"
  }
}

How to convert bank statements with the API

From key to structured JSON in three calls.

  1. Step 1

    Get an API key

    Create an account and generate a key from the dashboard. Keys are scoped per environment and can be rotated without downtime.

  2. Step 2

    POST the statement

    Send the PDF as a URL or multipart upload to /api/public/convert, optionally with a bank code and target format. Batches of up to 1,000 files go to /api/public/batch.

  3. Step 3

    Receive structured JSON

    Poll the job or register a signed webhook. The response contains normalised transactions plus the requested export file — JSON, Excel, .qbo, OFX or Tally XML.

Frequently asked questions

What does the API return?

A normalised transaction array — date, description, debit, credit, running balance, detected category and counter-party — plus account metadata and a link to the generated export file.

How is the API priced?

Per statement converted, with volume tiers. Failed conversions are not billed.

Is there a batch endpoint?

Yes. POST up to 1,000 files per request to /api/public/batch and receive an HMAC-signed webhook when the batch completes.

How do you secure webhooks?

Every callback is signed with your callback secret, and destination URLs are validated against private, loopback and cloud-metadata ranges before dispatch.

What are the rate limits?

Per-key request limits apply and are returned in the response headers so you can back off cleanly. Higher limits are available on request.

Pricing

Developer
Free
50 statements/month · community support
Startup
$0.05/statement
Pay-as-you-go · email support
Volume
Custom
Committed spend, SLA, dedicated bank templates

Get early access.

The API is in private beta. Sign up and mention "API access" — we'll onboard you within 24h.

Request access