How to Extract Bank Statement Transactions from PDF into SQLite, CSV or JSON

Extract bank statement accounts, balances, and transaction rows from PDF, then review, query, and export the results as SQLite or CSV.

PdfParse Team

This tutorial shows how to turn a bank statement PDF into relational data with PdfParse. You will generate an extraction schema, create account and transaction records, review the extracted rows, query them with SQLite, and prepare the results for CSV export.

Generate the schema with Smart Extractor

Building a schema manually takes time and leaves room for mistakes. Smart Extractor uses a sample document and an optional prompt to propose the tables, fields, types, and relationships needed for extraction. It can model connections between accounts, statements, and their transaction records in one pass.

Smart Extractor generates the related account, statement, and transaction tables from a sample document.

Review the generated schema before extraction

Important: A schema generated by AI is a starting point, not a guarantee. Smart Extractor can choose the wrong field, data type, prompt, nullability rule, or relationship. Review every generated table and column before processing a document batch.

Check that the schema includes the fields your workflow needs, uses the correct numeric and date types, and connects each statement to its account and transaction rows. You can add or correct fields manually in the table editor when the generated result needs adjustment.

Manual field controls for reviewing and correcting a generated bank statement schema
Use the manual field controls to correct names, types, extraction prompts, and nullability before creating the table.

Choose JSON or relational SQL tables

PdfParse can represent repeating data with JSON arrays or related tables. JSON can be easier to inspect as a single value, but it limits direct filtering and joins. Foreign keys preserve relationships in SQLite, which lets you select individual fields, filter transactions by amount, and join records across tables. This tutorial uses child tables so each transaction becomes a row that can be queried directly.

Extract and review the data

After creating the tables, upload the files and select them for processing. The Manage files button opens the processing workspace, where you can start extraction and follow its progress. Live status updates help you identify failed documents and review unexpected results before using the extracted data.

Review extraction progress and inspect the generated records before using them downstream.

Each dataset remains connected to the document that produced it. The document preview provides a lightweight review tool inside the workspace, so you can compare extracted rows with the source PDF without switching applications. This makes it easier to investigate a questionable value or confirm that the extraction used the correct part of the statement.

Open the source PDF beside the dataset when you need to verify where an extracted value came from.

You can also export the schemas that define the dataset. A schema export records the table and field structure separately from the extracted values, which is useful when you need to inspect the model, reproduce it elsewhere, or share the expected data shape with another workflow.

Export the dataset schemas when another system or collaborator needs the same table and field definitions.

Query subsets in the SQL workspace

Because PdfParse stores extracted records in SQLite, the product includes a query workspace for working with that data. The live SQL editor can filter rows, select specific fields, join related tables, and return only the records needed for the next step in a workflow.

Use the query workspace to inspect and filter extracted records with SQL. This recording is a representative interface example and is not tied to a controlled sample statement.

The recording shows a query running against the generated database. Queries can isolate credits or debits, find transactions within an amount range, inspect records for reconciliation, and prepare a smaller result set for export.

Export the extracted data

Use the Export button above the main table to download the current dataset as CSV or JSON. CSV works well for Excel, Google Sheets, accounting imports, and reconciliation workflows. JSON preserves a structured payload for APIs and other software integrations. The underlying SQLite database remains available when you need related tables and direct SQL access.

Choose CSV for spreadsheet workflows or JSON for structured software integrations.

Get started with bank statement extraction

Ready to automate your bank statement processing? Try the bank statement parser, or review pricing before creating a project.


Need help with edge cases? Contact us at support@pdfparse.net if you're handling:

  • Statements that contain multiple currencies
  • Complex fee structures
  • International transaction formats
  • Custom reconciliation rules

We'll help you refine your schema and prompts to handle even the trickiest statement formats.