Every US issuer writes its CSV a different way. Some give you one signed Amount column, some split Debit and Credit, some drop the header row entirely, and none of them agree on the date format. This page lists the columns each issuer actually gives you, and the converter above turns a statement PDF into one consistent layout 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 entirely on the issuer. A Chase card CSV gives you Transaction Date, Post Date, Description, Category, Type and a single signed Amount. Citi splits money into separate Debit and Credit columns behind a Status column. Capital One adds a Card No. column and also splits Debit and Credit. Discover uses one Amount column but writes purchases as positive numbers, the opposite sign convention to Chase. No two of those import into accounting software the same way.
A credit card CSV looks like structured data, so people assume it will drop straight into QuickBooks or a spreadsheet model. Then the totals come out backwards, the dates read as text, and half the file has to be rebuilt by hand. These are the six differences that cause it.
Chase and Discover use one Amount column. Citi and Capital One use two, Debit and Credit, both written as positive numbers. A formula built for one shape produces nonsense on the other.
Chase writes purchases as negative numbers. Discover writes the same purchases as positive. If you stack two issuers in one sheet without normalizing, your spend total nets itself out.
Cards post on a different day than they transact, so most issuers ship both a transaction date and a posted date. Pick the wrong one and the charge lands in the wrong month at close.
Chase and Discover use MM/DD/YYYY. Capital One usually writes YYYY-MM-DD. Excel silently reinterprets one of them, and a 03/04 charge quietly becomes April 3.
The Wells Fargo comma delimited download arrives with no column names at all, so nothing downstream can map it until you label the columns yourself.
Capital One caps its CSV download at 90 days and American Express covers your recent activity plus the past six billing statements. Anything older than that only exists as a statement PDF.
Rather than reconciling six different export conventions, upload the statement PDFs and get the same columns out every time, whichever issuer they came from.
Date, description, amount, and category come out in the same positions for Chase, Citi, Capital One, Amex, Discover and the rest, so one template covers all of them.
Charges are negative and payments positive across every issuer, so stacked files total correctly instead of quietly canceling each other out.
Dates come out as genuine date values in one format, so month grouping and period cutoffs work without a text-to-columns pass.
The export window in online banking does not limit you. Any statement PDF you hold converts, including years the download no longer reaches.
Take a spreadsheet for analysis or an import file for QuickBooks, Quicken, Xero or Wave, from the same upload.
Card 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. Unlike the CSV download, statement PDFs usually stay available for years.
Tip: Several months in one upload is fine.
Drag the files into the box above. Each issuer layout is read on its own terms and mapped to the same output columns.
Tip: Mixed issuers in one batch are fine.
Save as XLSX or CSV, then tie your total charges and payments back to the statement summary before you import anything.
Tip: Matching totals prove nothing was dropped.
Anyone loading card activity into something else has to know exactly which column carries the money and which way the sign points. Get it wrong once and the error follows the data through every report built on top of it.
Map five clients on five different issuers into one QuickBooks import format without rebuilding the mapping each month.
Rebuild a full year of card spend for a return when the online export only reaches back 90 days.
Pull business card charges into a spend model that totals correctly across personal and business cards.
Build a vendor spend view across employee cards, using the card identifier where an issuer provides one.
Write one parser against a stable column contract instead of six per-issuer parsers that break on the next format change.
Test a card spend population against the statement itself rather than a truncated online export.
Here is what each major US issuer writes in its download, verified against the export itself and against each issuer's published download guidance. Exact header labels do shift by card product and over time, so confirm against your own file before you build formulas on top of it.
| Issuer | Columns in order | Amount convention | Date format |
|---|---|---|---|
| Chase (credit card) | Transaction Date, Post Date, Description, Category, Type, Amount (some exports add Memo) | One signed column, purchases negative | MM/DD/YYYY |
| Chase (checking) | Details, Posting Date, Description, Amount, Type, Balance, Check or Slip # | One signed column, keeps a running Balance | MM/DD/YYYY |
| Citi (credit card) | Status, Date, Description, Debit, Credit | Split columns, one populated per row | MM/DD/YYYY |
| Capital One (credit card) | Transaction Date, Posted Date, Card No., Description, Category, Debit, Credit | Split columns, both written positive | Usually YYYY-MM-DD |
| Discover | Trans. Date, Post Date, Description, Amount, Category | One signed column, purchases positive | MM/DD/YYYY |
| American Express | Date, Description, Amount, plus extended detail fields depending on the download option | One amount column | MM/DD/YYYY |
| Wells Fargo | No header row at all in the comma delimited download, so you label the columns yourself | One amount column | MM/DD/YYYY |
Two patterns are worth internalizing. First, the split Debit and Credit issuers write both numbers as positives, so the sign has to come from which column the value sits in, not from the value. Second, the single-column issuers do not agree on direction: a $50 restaurant charge is -50.00 at Chase and 50.00 at Discover. Merge those two files without a normalizing step and a hundred dollars of spend reports as zero.
The transaction date is the day you made the purchase. The posted date is the day the issuer applied it to the account, usually one to three business days later, and it is the date that decides which statement period the charge lands in. Use the transaction date for expense reporting and the posted date for reconciling to a statement balance.
Shorter than most people expect, which is why so many card exports end in a request for old statements instead. The download window is the single biggest reason to work from statement PDFs for anything historical.
| Issuer | CSV download reach | Statement PDF reach |
|---|---|---|
| Capital One | Capped at 90 days per download | Several years of statements online |
| American Express | Recent activity plus the past six billing statements | Longer than the download window |
| Chase | A limited recent window per download | Statements and documents, up to about seven years |
| Discover | A date range of posted transactions | Statements kept online for years |
The practical rule: if the period you need is inside the download window and only one issuer is involved, take the native export. If it is older, spans issuers, or has to match a statement exactly, convert the PDFs. The credit card statement to Excel converter handles that path, and the per-issuer pages for Chase, Citi, Discover and Capital One cover the details specific to each one.
QuickBooks Online accepts a three column CSV of Date, Description and Amount, or a four column version that splits Credit and Debit. Neither matches any issuer export exactly, so there is always a mapping step. Split-column issuers like Citi and Capital One line up with the four column shape more naturally. Single-column issuers like Chase and Discover fit the three column shape, but Discover needs its sign flipped first because purchases arrive positive.
| Source shape | Fix before import |
|---|---|
| Split Debit and Credit, both positive | Build one signed column with =IF(Credit="",-Debit,Credit), or keep the split and use the four column QuickBooks format. |
| Single column, purchases positive | Multiply the amount column by -1 so charges read as money out. |
| Dates as YYYY-MM-DD text | Convert with DATEVALUE, then format the column, so grouping by month works. |
| No header row | Insert a header row and name the columns before anything downstream tries to map them. |
| Extra columns the importer rejects | Delete anything outside the columns your target format expects, including blank trailing columns. |
Once the shape is right, importing a bank statement into QuickBooks and importing credit card transactions into QuickBooks cover the upload itself, and the QuickBooks bank statement converter produces a file already in that shape. For Xero, the Xero bank statement converter does the same against Xero's column requirements.
Issuer categories are built for the consumer spending dashboard, not for your chart of accounts. They are inconsistent across issuers, missing on some rows, and unaware of how your business codes anything. Treat them as a starting hint, then apply your own rules. Categorizing transactions from a bank statement covers the rule-based approach.
On a Chase card export, Type reads Sale or Payment, which is useful. On a Chase checking export, Type carries values like ACH_CREDIT, FEE or MISC_DEBIT, which describe how the money moved rather than what it bought. Neither belongs in a budget category field, and mapping the checking Type into an expense account is a common source of miscoded ledgers.
Getting a clean, consistently signed table is the hard part. Once you have it, reconciling against the statement proves nothing was dropped, and the general bank statement PDF to Excel converter handles the checking and savings side with the same output layout. Teams running many cards at once often stop hand-mapping altogether and categorize every card charge automatically instead, then export the finished ledger.
Citi exports Status, Date, Description, Debit and Credit. Charges land in the Debit column and payments or refunds in the Credit column, with the other column left blank on each row, so there is no single signed amount field to sort on until you build one.
Transaction Date, Post Date, Description, Category, Type and Amount, and some exports add a trailing Memo column. Amount is one signed column with purchases written as negative numbers, and Type reads Sale or Payment. Dates come through as MM/DD/YYYY.
Transaction Date, Posted Date, Card No., Description, Category, Debit and Credit. The Card No. column holds the last four digits, which makes it the easiest export to pivot by employee card. Debit and Credit are both written as positive numbers.
Some issuers follow accounting convention and put money out and money in into different fields rather than using one signed number. Citi and Capital One do this. It avoids arguments about which direction negative means, but it needs a formula to collapse into the single amount column most importers want.
The Wells Fargo comma delimited download ships without a header row, so the file opens as unlabeled columns. Insert a header row and name the columns yourself before importing, or convert the statement PDF instead and get labeled columns from the start.
The issuers disagree on convention. Chase writes purchases as negative and Discover writes the same purchases as positive. If you combine files from both without normalizing, spend nets against itself and the total is wrong rather than obviously broken.
Use the statement PDFs. Capital One caps its CSV download at 90 days and American Express covers recent activity plus six billing statements, but statement PDFs typically stay online for years. Converting those PDFs recovers periods the download cannot reach.
Use the posted date when you are reconciling to a statement, because that is the date that determines the statement period. Use the transaction date for expense reports and spend analysis, since it reflects when the purchase actually happened rather than when the issuer processed it.
Convert any card statement PDF to Excel or CSV.
The full walkthrough, issuer by issuer.
The same output layout for checking and savings.
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 |