Set Up Transaction Fields for Bank Statements
Configure bank statement fields in the dashboard — extract transaction tables, balances, and statement periods for reconciliation workflows.
Ready to set this up? Sign up for PerfectParser and get 20 free credits — no credit card required.
What this guide helps you do
This guide shows how to configure a bank statement parser in PerfectParser, set up transaction tables and balance fields, run a test batch, and export reconciliation data. Leave the AI prompt blank initially if you want the AI to surface all visible statement fields before you lock the schema.
Why bank statements are hard to parse
Bank statements stretch across multiple pages with transaction tables that break mid-row at page boundaries. Some banks use separate credit and debit columns; others use a single amount column with a DR/CR indicator. Running balance continuity is fragile — a missed row on page two throws off every subsequent balance check. Statement period dates appear in headers that differ by institution ("Statement Period", "For the period ending", or a date range in fine print). Summary totals for deposits and withdrawals may sit on the last page while transactions start on page one. Credit card statements add purchase categories and foreign exchange lines that look like regular transactions. A schema that only captures header balances without a robust transactions table will not support reconciliation workflows.
Recommended Fields
We suggest configuring the following schema fields for your Bank Statement Parser to capture all essential ledger and summary data.
| Field Name | Type | Description |
|---|---|---|
bank_name | Text | The issuing financial institution (e.g., Chase, Wells Fargo). |
account_number | Text | The masked bank account number. |
statement_period | Text | The billing period (e.g., June 1 - June 30, 2026). |
starting_balance | Number | Account balance at the beginning of the statement period. |
ending_balance | Number | Account balance at the end of the statement period. |
total_deposits | Number | Total credited amount for the period. |
total_withdrawals | Number | Total debited amount for the period. |
transactions | Table | Table containing date, description, deposit_amount, withdrawal_amount, and running_balance. |
AI Prompt (Optional)
Use this only when you want to guide auto-detect toward a specific set of fields.
If you want PerfectParser to discover additional fields on its own, leave the AI Prompt (Optional) box blank for the first pass, review the detected schema, then add a prompt only if you need tighter consistency.
When you do use a prompt, copy and paste the following instructions into the AI Prompt (Optional) field during setup:
Set up this parser in the dashboard
Create a parser
Go to Parsers → New Parser in the dashboard. Give it a name like "Bank Statement Parser" and optionally select the document category.
Upload a sample document
Drag and drop a representative bank statement (PDF, PNG, or JPEG). Use a multi-page statement if that is what you process in production — the AI needs to see how transaction tables continue across pages.
Detect fields or use standard fields
Paste the AI Prompt from the section above into the AI Prompt (Optional) box if you want tighter field mapping, then click Auto-Detect. To discover more fields automatically, leave the prompt blank and click Auto-Detect. Or skip auto-detect and add fields manually using the Recommended Fields table above.
Review and save your schema
Check that transactions is a Table with separate deposit and withdrawal columns. Confirm balance fields are Number, not Text. Edit field descriptions if your bank labels credits differently (e.g. "Deposits" vs "Credits"). Click Save.
Run a test batch
Navigate to Bulk Extraction, choose One document per file for multi-page PDFs, upload a small test set, and click Extract All Files. Review transaction row counts in Batch History and export to CSV or Excel.
Common mistakes
- Letting a transaction table break at a page boundary without testing a multi-page sample — rows on page two are the most commonly dropped.
- Using one signed amount column when your bank prints separate debit and credit columns (or vice versa).
- Capturing
statement_periodfrom a payment due date instead of the actual coverage range in the header. - Skipping
running_balancein the transactions table, which removes the quickest sanity check during reconciliation.
Next steps
Test your first extraction free — sign up for PerfectParser, no credit card needed.
FAQs
Do I need a sample bank statement to set up this parser?
Yes. Upload a statement from the bank and account type you process most often. Transaction table layouts differ between retail checking, credit card, and business accounts, so match your sample to production files.
How should I model debit and credit columns in the transactions table?
Use separate Number columns for deposit_amount and withdrawal_amount in your transactions table, plus a running_balance column. Avoid a single signed amount column unless all your statements use the same convention — mixed formats break reconciliation.
How many credits does setup and a test extraction use?
Parser setup is free. Each statement page costs 1 credit. A four-page monthly statement uses 4 credits. Choose 'One document per page' or 'One document per file' in Bulk Extraction based on how your PDFs are structured.
Looking for product features and use cases?