No two US banks write a checking export the same way. Chase leads with a Details column, Bank of America stacks a balance summary above the transactions, Wells Fargo ships no header row at all, and Citi splits money into Debit and Credit. This page documents what each bank actually gives you, and the converter above produces one consistent layout from the statement PDF instead.
Last updated July 2026
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF, MT940
Uploading...
It depends on the bank. A Chase checking CSV gives you Details, Posting Date, Description, Amount, Type, Balance and Check or Slip #. Bank of America writes Date, Description, Amount and Running Bal., with a short balance summary block above the transaction rows. Wells Fargo ships a comma delimited file with no header row at all. Citi splits money into separate Debit and Credit columns behind a Status column. Capital One 360 keeps it to date, description, amount and running balance.
A checking export looks like clean data until you try to load it somewhere. These are the six differences that turn a two minute import into an afternoon of cleanup.
The Bank of America download opens with a small balance summary above the transaction table, so a parser reading row one as the header picks up the wrong labels and the import fails validation.
Wells Fargo comma delimited downloads arrive unlabeled. Nothing downstream can map the file until you insert a header row and name the columns yourself.
Chase, Bank of America and Capital One 360 use one signed Amount column. Citi splits into Debit and Credit, both written as positive numbers, so the sign has to come from the column rather than the value.
Some banks include a running balance, some leave it out, and some populate it on only part of the file. Without it you cannot tie the sheet back to the statement.
Exports taken mid period often carry pending transactions that later change amount or drop off entirely, which quietly breaks a reconciliation you already signed off on.
Bank of America consumer online banking reaches back roughly 18 months and Capital One caps a download near 90 days, while statement PDFs commonly stay available for years.
Rather than writing a mapping per bank, upload the statement PDFs and get identical columns out every time.
Date, description, amount and balance land in the same positions whether the statement came from Chase, Bank of America, Wells Fargo, Citi or a community bank nobody has heard of.
Withdrawals are negative and deposits positive across every bank, so stacking several accounts in one sheet totals correctly instead of canceling out.
The balance column comes from the statement itself, so the last row ties to the closing balance and you can prove nothing was dropped.
Dates come out as genuine date values in one format, so period cutoffs and month grouping work without a text to columns pass.
The 18 month and 90 day caps in online banking do not apply. Any statement PDF you hold converts, including years the download no longer reaches.
Statements carry account numbers. Uploads use 256-bit encryption and you can delete files whenever you want.
Nothing to install and no credit card to start.
Download the PDF statements for the months you need. Statement PDFs almost always outlive the transaction download window.
Tip: Several months in one upload is fine.
Drag the files into the box above. Each bank layout is read on its own terms and mapped to the same output columns.
Tip: Mixed banks in one batch are fine.
Save as XLSX or CSV, then check the final balance against the statement closing balance before you import anything.
Tip: A matching balance proves the extraction is complete.
Anyone moving checking activity into another system has to know which column carries the money, which way the sign points, and whether the balance can be trusted. Get it wrong once and the error propagates into every report built on top of it.
Map several clients across several banks into one import format without rebuilding the mapping every month.
Rebuild a full year of activity for a return when the online export only reaches back 18 months.
Consolidate several operating accounts into one cash view where the balances actually tie to the statements.
Test a population against the statement rather than a truncated online export that may exclude reversed items.
Write one parser against a stable column contract instead of one per bank that breaks on the next redesign.
Work from a normalized table so deposit averages and low balance days are computed the same way for every borrower.
Here is what the major US banks write in a checking or savings download. Labels do shift by account type and get changed in online banking redesigns, so treat this as the shape to expect and confirm against the file you actually downloaded.
| Bank | Columns you get | How the amount is written | Running balance |
|---|---|---|---|
| Chase (checking) | Details, Posting Date, Description, Amount, Type, Balance, Check or Slip # | One signed column, withdrawals negative | Yes, in the Balance column |
| Bank of America | Date, Description, Amount, Running Bal., preceded by a short balance summary block | One signed column, withdrawals negative | Yes, though it can be blank on some rows |
| Wells Fargo | No header row in the comma delimited download. The fields run date, amount, a marker column, a mostly empty column, then description | One signed column, withdrawals negative | Not in the comma delimited file |
| Citi | Status, Date, Description, Debit, Credit (some exports add a member or account name column) | Split columns, one populated per row, both positive | No |
| Capital One 360 | Date, description, amount and balance, a simpler layout than the Capital One card export | One signed column | Usually yes |
Two things separate a bank export from a card export. Checking files usually carry a balance, which gives you a way to prove the file is complete, and they carry a transaction type or details field describing how the money moved rather than what it bought. Card exports carry a category and a second date instead. If you are working with card files, the credit card CSV export columns by issuer reference covers those layouts.
Because Wells Fargo does not write them. The comma delimited download is transaction data only, so the file opens as unlabeled columns and every importer that expects named fields rejects it. Insert a row at the top and label the columns yourself before you map anything, and keep that labeled template so the next month takes seconds.
The same fix handles the opposite problem at Bank of America, where the file opens with a small balance summary above the transactions. Delete the summary rows so the header sits on row one, and the file behaves like every other import.
Details is Chase's direction flag. It reads DEBIT for money leaving the account, CREDIT for money arriving, CHECK for a paid check, and DSLIP for a deposit slip. It duplicates information already carried by the sign on the Amount column, so most people drop it during mapping. The separate Type column is the one worth keeping, since it carries values like ACH_DEBIT, ACH_CREDIT, FEE_TRANSACTION and MISC_DEBIT that describe how the money actually moved.
Because the running balance is a property of the statement, not of the transaction list. Online banking generates the download from the transaction table, and a balance only exists once the rows are in a fixed order over a fixed period. Wells Fargo comma delimited files and Citi exports leave it out entirely. Without it you have no way to prove a row is missing, which is why converting the statement PDF is the safer route for anything that has to be defended.
Shorter than most people expect. This gap between the download window and the statement archive is the single most common reason people end up converting PDFs.
| Bank | Transaction download reach | Statement PDFs online |
|---|---|---|
| Bank of America | Roughly the last 18 months of consumer activity | Up to about seven years |
| Chase | A limited recent window per download | Up to about seven years |
| Capital One | Capped near 90 days per download | Several years |
| Wells Fargo | A date range inside the recent activity window | Several years |
The rule of thumb: if the period sits inside the download window, one account is involved, and nobody will audit the result, take the native export. If it is older, spans banks, or has to match a statement exactly, convert the PDFs. Our guide on how far back you can download bank transactions works through the specific windows, and how far back you can get bank statements covers requesting older records including from closed accounts.
QuickBooks Online accepts a three column CSV of Date, Description and Amount, or a four column version splitting Credit and Debit. No bank export matches either exactly, so there is always a mapping step.
| What you have | What to do |
|---|---|
| A summary block above the data (Bank of America) | Delete the summary rows so the column header sits on row one. |
| No header row (Wells Fargo) | Insert a header row and name the columns before importing. |
| Split Debit and Credit, both positive (Citi) | Build one signed column with =IF(Credit="",-Debit,Credit), or keep the split and use the four column QuickBooks format. |
| A Balance or Running Bal. column | Keep it for your own tie-out, then remove it before importing. QuickBooks does not want it. |
| Details, Type or Check number columns | Drop Details, fold the check number into the description, and keep Type only if you use it for coding rules. |
| Pending rows mixed in | Filter them out. Importing a pending amount that later changes creates a duplicate you will chase at reconciliation. |
Once the shape is right, importing a bank statement into QuickBooks walks the rest, and the Xero bank statement converter handles the Xero column order instead.
Checking exports normally carry one date, the posting date, which is the date the bank applied the item to the account and the date that decides which statement period it falls in. Use it for anything that has to reconcile. Card exports are the ones that carry two dates, and there the posted date is the reconciliation date while the transaction date is what an expense policy cares about.
A clean, consistently signed table is most of the work. From there, reconciling against the statement proves nothing was dropped, categorizing transactions from a bank statement turns rows into a coded ledger, and the general bank statement PDF to Excel converter handles any bank not listed above with the same output layout. If your file is a corporate bank format rather than a spreadsheet download, the bank file format converter compares BAI2, MT940, camt.053 and NACHA side by side.
Details, Posting Date, Description, Amount, Type, Balance and Check or Slip #. Amount is one signed column with withdrawals negative, Details carries a DEBIT, CREDIT, CHECK or DSLIP direction flag, and Type describes the movement with values like ACH_DEBIT or FEE_TRANSACTION.
Date, Description, Amount and Running Bal., with a short balance summary block sitting above the transaction table. Withdrawals are negative in the single Amount column. Delete the summary rows so the header lands on row one before you import the file anywhere.
Wells Fargo does not write a header row into the comma delimited download. The file is transaction data only, so it opens as unlabeled columns. Insert a row at the top and name the columns yourself, then save that as a template for future months.
Some banks follow accounting convention and put money out and money in into different fields instead of using one signed number. Citi does this. Both values are written as positives, so the direction comes from which column is populated, not from the sign.
The running balance belongs to the statement rather than the transaction list. Wells Fargo comma delimited files and Citi exports leave it out. Without it you cannot prove a row is missing, which is why converting the statement PDF is safer for audited or lender-facing work.
Use the statement PDFs. Bank of America consumer online banking reaches back roughly 18 months and Capital One caps a download near 90 days, but statement archives commonly hold about seven years. Converting those PDFs reaches every month the archive holds.
Yes. QuickBooks Online expects Date, Description and Amount, or a four column version splitting Credit and Debit. Keep the balance column while you tie the file to the statement, then delete it, along with any blank trailing columns, before uploading.
No. Bank exports usually carry a balance and a transaction type describing how money moved. Card exports carry a spending category and two dates, a transaction date and a posted date, but no balance. They need separate mappings even at the same institution.
The same reference for card issuer exports.
Convert any bank statement PDF to Excel or CSV.
From the same family of tools
Get started converting bank statements to spreadsheets.
USD
per month
billed as
$288 yearly
Choose speed vs accuracy when extracting
| Base AI Faster | 2,500 pages |
| Pro AI Best accuracy | 500 pages |
Scale statement conversion across your team with automation.
USD
per month
billed as
$888 yearly
Choose speed vs accuracy when extracting
| Base AI Faster | 10,000 pages |
| Pro AI Best accuracy | 2,000 pages |
Enterprise-grade bank statement conversion and controls.
USD
per month
billed as
$ yearly
Choose speed vs accuracy when extracting
| Base AI Faster | pages |
| Pro AI Best accuracy | pages |