Back to blog
September 7, 20267 min readpdf-to-csvquickbooksxero

PDF to CSV Converter: The CSV Format Your Accounting Software Wants

Converting a statement to CSV is half the job. The other half is producing the specific column layout your accounting software accepts. QuickBooks Online and Xero want different things, and both reject files for reasons they explain poorly.

By Saurav Agarwal

CSV is the format accounting software imports, but each product wants a different column layout. QuickBooks Online accepts a 3-column or 4-column file. Xero requires only Date and Amount, with a single signed amount column. Getting the layout wrong is the most common reason an import that "should work" is rejected.

Key takeaways

  • QuickBooks Online: 3 columns (Date, Description, Amount) or 4 columns (Date, Description, Credit, Debit).

  • Xero: Date and Amount are the minimum; income positive, expenses negative, all in one column.

  • The two are incompatible by default — QuickBooks' 4-column layout splits what Xero wants combined.

  • Most rejections come from date format, mixed signs, or size limits rather than from bad data.

What does QuickBooks Online accept?

Intuit documents two supported layouts for manually uploading bank transactions.

3-column format: Date, Description, Amount

4-column format: Date, Description, Credit, Debit

Their formatting requirements are specific, and each one corresponds to a common rejection:

Requirement

What happens if you ignore it

Use one consistent date format throughout

Rows parse as the wrong date, or the import fails

Remove the word "amount" from Credit and Debit headers

Header not recognised

Leave cells blank rather than entering 0

Zero-value rows import as real transactions

Remove numbers from the Description column

Description content misread as numeric data

File must be in English and 350 KB or less

Oversized file rejected outright

Maximum 1,000 lines per upload

Rows beyond the limit are dropped

The 350 KB limit is the one that catches people converting a full year at once. A CSV of roughly 1,000 transaction rows sits comfortably under it; the limit is usually hit because the file carries extra columns or formatting the import does not need.

Intuit's own guidance recommends dd/mm/yyyy, and the safest approach is to pick one format and apply it to every row without exception.

What does Xero accept?

Xero is more permissive on columns and stricter on signs.

Required: Date and Amount. That is genuinely the minimum needed to create statement lines, though reconciliation is much easier if you also include payee and description.

The critical rule: income and expenses must be in the same Amount column. Income is positive; expenses are negative, written either with a leading minus (-30.00) or in brackets ((30.00)). Do not use commas as decimal separators.

Xero accepts up to 100,000 rows per file — two orders of magnitude more than QuickBooks — so a multi-year history can go in one import. Xero also publishes a region-specific CSV template with mandatory fields marked, and starting from that template removes most guesswork about accepted date formats.

Why can't I use the same CSV for both?

Because they model direction differently.

QuickBooks' 4-column layout puts credits and debits in separate columns, each holding positive values. Xero wants one column with signed values. A file built for one is structurally wrong for the other, and neither will tell you that clearly — you will get an import that succeeds with every expense recorded as income, which is worse than a rejection.

QuickBooks' 3-column layout is closer to Xero's shape, since it also uses a single Amount column. If you need one file for both, that is the format to start from — but check the sign convention, because a converter that outputs debits as positive values in a single column will invert your entire cash flow in Xero.

This is exactly why output schema matters as much as extraction accuracy. A converter that always emits date, description, debit, credit and balance gives you a known starting point that can be reshaped predictably for either target, rather than a layout that varies by bank and needs re-mapping every time.

What actually causes import failures?

In roughly the order you will meet them:

  1. Mixed date formats in one file. A statement covering a year-end often shows dates differently in the header and the transaction list, and a converter can carry that inconsistency through. Normalise every row to one format.

  2. Ambiguous dates. 03/04/2026 is 3 April or 4 March depending on locale. If your data has no day above 12 in the period, nothing will error — the transactions will simply land in the wrong months.

  3. Currency symbols and thousands separators inside amount fields. $1,234.56 is text, not a number. Strip symbols; keep the decimal point.

  4. Sign convention mismatch. The most damaging error, and silent. Verify by checking that a known expense imported as a decrease.

  5. Descriptions containing commas. Unquoted commas shift every subsequent field one column left. Any correct CSV writer quotes these; a hand-edited file often does not.

  6. Trailing blank rows. Spreadsheet editors add empty rows that import as malformed transactions.

  7. Encoding. Non-ASCII characters in merchant names — accents, currency symbols — can arrive as mojibake if the file is not UTF-8.

How do I check a CSV before importing it?

Two minutes of checking is cheaper than unpicking a bad import.

  • Open it in a plain text editor, not a spreadsheet. Spreadsheets silently reformat dates and strip leading zeros on the way in, so you see something different from what the import will see.

  • Count rows. They should equal the transactions on the statement, plus one header row.

  • Reconcile the total. Sum the amounts, apply to the opening balance, compare to the statement's printed closing balance. If it matches, signs and values are right.

  • Check the first and last transaction against the PDF by eye. Extraction errors cluster at boundaries.

  • Import into a test period or a trial file first if the dataset is large.

The reconciliation step is the one that matters. It validates every row at once, and it is the only check that catches a sign convention error before it reaches your ledger.

Getting a clean CSV from a statement PDF

This converter outputs CSV and Excel with a fixed schema — date, description, debit, credit, balance — for every statement, digital or scanned, so the reshaping step into a QuickBooks or Xero layout is the same each time rather than bank-specific.

Because debits and credits are separate columns in the output, a QuickBooks 4-column import needs no transformation, and a Xero import is one subtraction. Pricing is per page with no subscription, and signup includes 50 free credits. You can convert a statement here.

For the wider set of methods, including your bank's own CSV export where it exists, see the complete bank statement to Excel guide.

Frequently asked questions

What CSV format does QuickBooks Online need for bank transactions?

Either three columns — Date, Description, Amount — or four columns: Date, Description, Credit, Debit. Dates must use one consistent format throughout, cells that would contain zero should be left blank, the Description column should not contain numbers, and the file must be in English, under 350 KB, and no more than 1,000 lines.

What columns does Xero require in a CSV bank statement?

Only Date and Amount are mandatory, though payee and description make reconciliation much easier. Income and expenses share the single Amount column, with income positive and expenses negative — either -30.00 or (30.00). Xero accepts up to 100,000 rows and publishes a region-specific template with mandatory fields marked.

Why does my CSV import put expenses in as income?

Your file's sign convention does not match what the software expects. This is most common when a converter outputs debits as positive numbers in a single amount column and the target system reads positive as income. Check one known expense after importing a small test batch, before importing a full year.

Should I convert to CSV or Excel for accounting software?

CSV for the import itself — both QuickBooks Online and Xero import CSV directly, and it avoids formatting that import routines can misinterpret. Excel is more convenient for reviewing and correcting data before import. Producing both, reviewing in Excel and importing the CSV, gets the benefit of each.

Can I import several months of statements in one CSV?

In Xero, comfortably — the row limit is 100,000. In QuickBooks Online you are limited to 1,000 lines and 350 KB per upload, so a busy account may need splitting by month or quarter. Splitting by statement period also makes reconciliation easier, since each file has its own opening and closing balance to check against.