API Documentation

Integrate our powerful bank statement conversion capabilities into your applications with our comprehensive RESTful API.

Introduction

Welcome to the Bank Statement Converter API! Our RESTful API allows you to programmatically convert bank statements between various formats including PDF, CSV, Excel, QFX, and more.

API Version: v1 | Base URL: https://api.bankstatementconverter.com/v1

Key Features

  • Convert PDF bank statements to CSV, Excel, QFX, and other formats
  • Support for major banks worldwide
  • Secure, encrypted file processing
  • Real-time conversion status updates
  • Webhook notifications for async operations
  • Comprehensive error handling and validation

Authentication

The Bank Statement Converter API uses API keys for authentication. Include your API key in the request header for all API calls.

Your API Key

bsc_live_1234567890abcdef

Keep your API key secure and never share it publicly

Authentication Header

Authorization: Bearer YOUR_API_KEY
curl -H "Authorization: Bearer bsc_live_1234567890abcdef" \
  https://api.bankstatementconverter.com/v1/convert

Rate Limits

To ensure fair usage and optimal performance, our API implements rate limiting based on your subscription plan.

Plan Requests per Hour Concurrent Conversions Max File Size
Free 100 2 25 MB
Pro 1,000 10 100 MB
Enterprise 10,000 50 500 MB
Rate Limit Headers: Each response includes rate limit information in the headers: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

Quick Start

Get up and running with the Bank Statement Converter API in just a few minutes. Follow this simple example to convert your first document.

Step 1: Upload and Convert

curl -X POST https://api.bankstatementconverter.com/v1/convert \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@bank_statement.pdf" \
  -F "output_format=csv" \
  -F "bank=chase"

Step 2: Check Status

curl -X GET https://api.bankstatementconverter.com/v1/convert/conv_1234567890 \
  -H "Authorization: Bearer YOUR_API_KEY"

Step 3: Download Result

curl -X GET https://api.bankstatementconverter.com/v1/convert/conv_1234567890/download \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o converted_statement.csv

Upload Document

Upload a bank statement document for conversion. This endpoint accepts PDF, JPG, PNG, and other supported formats.

POST /v1/convert

Uploads and initiates conversion of a bank statement document.

Parameters

Parameter Type Required Description
file file Required The bank statement file to convert (PDF, JPG, PNG)
output_format string Required Target format: csv, excel, qfx, ofx, qbo
bank string Optional Bank identifier: chase, bankofamerica, wells_fargo, etc.
webhook_url string Optional URL to receive webhook notifications when conversion completes
date_format string Optional Date format for output: mm/dd/yyyy, dd/mm/yyyy, yyyy-mm-dd

Response

200 OK Conversion initiated successfully
{
  "id": "conv_1234567890",
  "status": "processing",
  "file_name": "bank_statement.pdf",
  "file_size": 2048576,
  "output_format": "csv",
  "bank": "chase",
  "created_at": "2024-01-15T10:30:00Z",
  "estimated_completion": "2024-01-15T10:32:00Z",
  "download_url": null,
  "webhook_url": "https://yourapp.com/webhooks/conversion"
}

Get Conversion Status

Retrieve the current status and details of a conversion job.

GET /v1/convert/{conversion_id}

Returns detailed information about a specific conversion job.

Path Parameters

Parameter Type Description
conversion_id string The unique identifier for the conversion job

Response

200 OK Conversion completed successfully
{
  "id": "conv_1234567890",
  "status": "completed",
  "file_name": "bank_statement.pdf",
  "file_size": 2048576,
  "output_format": "csv",
  "bank": "chase",
  "created_at": "2024-01-15T10:30:00Z",
  "completed_at": "2024-01-15T10:31:45Z",
  "download_url": "https://api.bankstatementconverter.com/v1/convert/conv_1234567890/download",
  "expires_at": "2024-01-22T10:31:45Z",
  "transaction_count": 124,
  "processing_details": {
    "pages_processed": 3,
    "bank_detected": "chase",
    "date_range": {
      "start": "2024-01-01",
      "end": "2024-01-31"
    }
  }
}

Download Converted File

Download the converted bank statement file once the conversion is complete.

GET /v1/convert/{conversion_id}/download

Downloads the converted file. Only available when conversion status is "completed".

Note: Download URLs are valid for 7 days after conversion completion. After this period, files are automatically deleted for security.

Example Request

curl -X GET https://api.bankstatementconverter.com/v1/convert/conv_1234567890/download \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o converted_statement.csv

Response

200 OK File download successful

Returns the converted file as a binary stream with appropriate headers:

Content-Type: text/csv
Content-Disposition: attachment; filename="bank_statement_converted.csv"
Content-Length: 15342

Date,Description,Amount,Balance
2024-01-01,"DEPOSIT - PAYROLL",2500.00,8245.67
2024-01-02,"WITHDRAWAL - ATM",-60.00,8185.67
...

List Conversions

Retrieve a list of all your conversion jobs with optional filtering and pagination.

GET /v1/conversions

Returns a paginated list of conversion jobs for your account.

Query Parameters

Parameter Type Default Description
limit integer 25 Number of results per page (1-100)
offset integer 0 Number of results to skip
status string all Filter by status: pending, processing, completed, failed
bank string all Filter by bank identifier
created_after datetime - Filter conversions created after this date (ISO 8601)

Response

{
  "data": [
    {
      "id": "conv_1234567890",
      "status": "completed",
      "file_name": "january_statement.pdf",
      "output_format": "csv",
      "bank": "chase",
      "created_at": "2024-01-15T10:30:00Z",
      "completed_at": "2024-01-15T10:31:45Z"
    },
    {
      "id": "conv_0987654321",
      "status": "processing",
      "file_name": "december_statement.pdf",
      "output_format": "excel",
      "bank": "bankofamerica",
      "created_at": "2024-01-15T09:15:00Z",
      "progress": 78
    }
  ],
  "pagination": {
    "total": 156,
    "limit": 25,
    "offset": 0,
    "has_more": true
  }
}

Error Codes

The API uses conventional HTTP response codes to indicate success or failure of requests.

HTTP Status Error Code Description
400 invalid_request The request was malformed or missing required parameters
400 invalid_file_format The uploaded file format is not supported
400 file_too_large The uploaded file exceeds the maximum size limit
401 unauthorized Invalid or missing API key
404 not_found The requested conversion job was not found
429 rate_limit_exceeded You have exceeded your rate limit
500 internal_server_error An unexpected error occurred on our servers

Error Response Format

{
  "error": {
    "code": "invalid_file_format",
    "message": "Unsupported file format. Please upload PDF, JPG, or PNG files.",
    "details": {
      "supported_formats": ["pdf", "jpg", "jpeg", "png"],
      "received_format": "docx"
    },
    "documentation_url": "https://docs.bankstatementconverter.com/errors#invalid_file_format"
  }
}

SDKs & Libraries

Official and community-maintained libraries to help you integrate with our API faster.

JavaScript/Node.js

npm install bankstatement-converter
View Documentation →

Python

pip install bankstatement-converter
View Documentation →

PHP

composer require bankstatement/converter
View Documentation →

Java

<dependency>
  <groupId>com.bankstatement</groupId>
  <artifactId>converter</artifactId>
</dependency>
View Documentation →
Community Libraries: Don't see your language? Check out our community-maintained libraries or build your own using our comprehensive REST API.