Extract data from bank statements
Unstract reads checking, savings, credit card and mortgage statements, from online-banking PDFs to phone photos of paper pages, and sends every transaction, balance and fee to your loan origination system.
| DATE · DETAIL | WITHDRAWALS | DEPOSITS | BALANCE |
|---|---|---|---|
| 09/01 Opening balance | — | — | 412.38 |
| 09/04 NSF fee · check #1182 returned | 35.00 | — | 377.38 |
| 09/05 Payroll · Ridgeview Health ACH | — | 2,146.82 | 2,524.20 |
| 09/08 ACH debit · Lakeside Apartments rent | 1,450.00 | — | 1,074.20 |
| 09/12 Mobile deposit · check #2210 | — | 2,500.00 | 3,574.20 |
| 09/15 Cascade Auto Finance payment | 386.15 | — | 3,188.05 |
| 09/19 Payroll · Ridgeview Health ACH | — | 2,146.82 | 5,334.87 |
| 09/24 Debit card · Fresh Market #212 | 112.64 | — | 5,222.23 |
| 09/26 ATM withdrawal · 5th and Main | 200.00 | — | 5,022.23 |
| 09/30 Closing balance | 2,183.79 | 6,793.64 | 5,022.23 |
9/12 deposit — source? need LOE — RK
Member FDIC · Overdraft and returned item fee: $35.00 per item
{ "bank": "Cedar Ridge Community Bank", "account_holder": "Dana M. Whitfield", "account_number": "****6352", "statement_period": "Sep 1 – Sep 30, 2026", "opening_balance": 412.38, "total_deposits": 6793.64, "total_withdrawals": 2183.79, "closing_balance": 5022.23, "nsf_fees": 35, "confidence": 0.95}
Trusted by lending and onboarding teams around the globe
Borrowers send statements in whatever form their bank gives them
Some download a clean PDF from online banking. Many photograph paper pages on the kitchen table or forward a screenshot of an app.
Paper statements photographed on a table, shadowed and tilted
Three banks, three names for the same withdrawal column
Margin notes from the borrower explaining a deposit, one amount struck through
Two months, three accounts, one upload from the borrower portal
Transaction history exported as a CSV instead of a statement
Processors add up deposits, hunt for NSF fees and check every month is present by hand, so a loan file waits days for asset verification before an underwriter can clear it.
Unstract reads each statement in its own bank's layout, extracts every transaction and balance, checks the running balance and the months covered, and posts the result to your loan origination system with the questions already raised.
From a borrower's statement to verified assets on one platform
Parse the statement, extract the transactions, run asset verification around them. Use any one product alone, or stack all three and let the loan file move without anyone retyping a deposit.
Parse bank statements with every transaction kept on its own row
Get the full text of a statement whether it came as a bank-generated PDF, a scan from a branch or a phone photo of a printed page. Date, description, withdrawal, deposit and running balance stay on the same line, multi-page transaction tables carry across page breaks, and the account summary box is read separately from the activity below it.
Send the text to your own LLM, or make parsing the first step of an asset verification workflow.
Learn more about LLMWhispererTurn bank statements into transaction records an underwriter can trust
Bank statement data extraction starts with the fields you name: the account holder, account number, period and balances, and then every transaction with its date, description, amount and type. A credit union's two-column layout and a national bank's four-column one return the same JSON. Each statement is checked as it comes out: the transactions must carry the opening balance to the closing one, and a deposit that is not payroll or a returned item fee is flagged with the reason.
Developers call it as a bank statement OCR API from a borrower portal or a lending app, operations teams run it as an ETL pipeline from the loan documents folder, or it becomes one step of an orchestrated loan file.
Learn more about Document StudioRun mortgage loan origination from the upload to a clean loan file
Describe how your team verifies assets and income from bank statements in plain English, and Flow's agents build the workflow. The 1003, pay stubs, W-2s and statements are split and indexed to the loan, each statement is read, payroll deposits are compared with the stated income, and balances are checked against the funds needed to close. Clean fields land in your loan origination system, such as ICE Encompass or Dark Matter Empower. You approve the workflow once, and every loan file runs through it identically.
Choose when a person steps in: income off the 1003 beyond your tolerance, an unexplained large deposit, a missing statement month or a low-confidence read. Only those files stop, with the statement page that raised the question, for a loan processor to clear or turn into a condition.
Learn more about FlowExtract bank statement data now. Automate the loan file when you're ready.
Start for free and run your own borrowers' statements through parsing and extraction today. Income checks, conditions and posting to your loan origination system begin with a consultation.
Bank, card and mortgage statements, and the rest of the asset file
Documents
- Bank account statements
- Savings and money market statements
- Business bank statements
- Credit card statements
- Mortgage statements
- Bank reconciliation statements
- Home equity line statements
- Auto loan statements
- Online banking transaction exports (CSV)
- Verification of deposit forms
- Brokerage statements
- Retirement account statements
- Pay stubs
- W-2 forms
- Letters of explanation
- Gift letters
Fields captured
Processes these statements feed
For the people who build and clear a loan file
Loan officers see a borrower's verified assets and income while the conversation is still fresh, and know which deposit needs a letter of explanation before they promise a closing date.
Processors stop adding deposits on a calculator, and underwriters open a file with every month accounted for, every NSF fee listed and every large deposit sourced or conditioned.
Members' statements from any local bank or credit union are read in their own layout, so a small lending team handles more applications without hiring for document review.
Consumer and auto applicants who are self-employed or paid in gig work can be decisioned on months of real deposits, with the transaction history in your loan origination system.
Asset verification done before the underwriter opens the file
Protecting the most personal record a borrower hands over
A bank statement carries a person's account number, balances and every transaction they made: where they shop, who they pay, what they earn and when. That is enough to open fraudulent credit or take over the account.




- Encrypted in transit and at rest.
- Borrower statements are never used for model training.
- Access by role, branch and loan file, with every edited transaction and cleared flag recorded against the borrower.
- You set retention: statements are deleted when your record-keeping and privacy policy says they can go.
- Self-hosted deployment for lenders and credit unions whose examiners expect member data to stay inside their own environment.
What lending teams ask about reading bank statements
LLMWhisperer is the OCR engine: it reads scanned, photographed and bank-generated statements into text with each transaction row kept intact, and returns it through one API call. Document Studio then extracts the fields you define, so a developer gets a JSON record per statement from an endpoint instead of writing a parser per bank.
Look for three things: it reads statements from banks it has never seen, it checks that the transactions add up to the closing balance, and it fits where your loan files already live. Unstract deploys as an API endpoint, an ETL pipeline or an MCP server, and posts results to your loan origination system.
Unstract extracts every transaction with its date, description, amount and running balance, and tags payroll deposits, transfers, returned items and fees. The AI sits in the extraction layer, and two models check each value, so a figure they disagree on comes back empty for review rather than wrong.
Upload the statement, name the fields you want, and run it. Try it free on your own statements, or point an ETL pipeline at the folder your borrower portal writes to so every new upload is read on arrival.
Yes. Every transaction comes back as a row with date, description, withdrawal, deposit and balance, so bank statement to Excel or CSV is one export. Most lenders send the same rows straight to the loan file instead of a spreadsheet.
A bank statement parser written with rules or templates breaks when a bank changes its layout. Document Studio finds the fields by meaning, so a new bank, a redesigned statement or a credit union's own format needs no new template.
Yes. Credit card statements return the balance, minimum payment and due date for the debt-to-income calculation. Mortgage statements return the servicer, principal balance, escrow and payment history. Bank reconciliation statements are read the same way.
You set the rules: a deposit above a share of monthly income, or one that is not payroll, is flagged with the statement line, and every NSF or overdraft fee is listed with its date. The loan processor decides whether it becomes a condition.
Yes. Each statement's period and page count are extracted, so a gap between months or a "page 2 of 4" with no page 3 is raised before the file reaches an underwriter.
Unstract is SOC 2, ISO 27001, GDPR and HIPAA compliant. Statements are encrypted in transit and at rest, never used to train models, and deleted on the schedule you set. Lenders that keep member data in-house can self-host; see the Trust Center.
Bring a week of borrower statements to the consultation
Phone photos, credit union PDFs, a CSV export and the statement with a deposit nobody has sourced yet. We read them live and show the transactions, the balance check and every flag.









