Convert a bank statement to CSV for QuickBooks & Xero
If your bank doesn't offer a CSV download โ or only goes back a few months โ you can build the import file yourself from the PDF statement. Here's how to get the columns right.
What accounting tools expect
QuickBooks, Xero, Wave and most others import a simple CSV with, at minimum, three columns:
- Date โ one consistent format (e.g.
2024-03-01). Mixed formats are the #1 cause of failed imports. - Description โ the payee / memo text.
- Amount โ a single signed column (debits negative, credits positive), or sometimes separate Debit/Credit columns.
A Balance column is optional and usually ignored on import, but it's handy for checking your work.
Step 1 โ Get a clean table out of the PDF
Open the LINGYANG converter and drop in your statement. It reads the PDF on your device and detects the Date, Description, Amount and Balance columns. Crucially, it produces one signed Amount column and a single consistent date format โ exactly what importers want.
Build your import file in under a minute. No upload, no signup.
Open the converter โStep 2 โ Review and fix
Scan the detected rows. Remove any header or summary lines that slipped in, confirm the signs (money out negative, money in positive), and check the running balance matches the statement. Editing happens right in the table before you export.
Step 3 โ Export to CSV
Choose CSV and download. You'll get a tidy file with Date, Description, Amount, Balance headers.
Step 4 โ Import into your accounting tool
- QuickBooks Online: Transactions โ Bank transactions โ Upload from file โ map Date / Description / Amount.
- Xero: Accounting โ Bank accounts โ Manage account โ Import a statement โ map the columns.
- Wave / others: look for "Upload statement" or "Import transactions" and map the same three columns.
If an import is rejected, it's almost always a date-format mismatch โ re-export with the date style your tool expects and try again.
Why on-device matters here
Bookkeepers convert clients' statements. Doing it in the browser means the client's file never touches a third-party server, so you stay on the right side of confidentiality while still getting a clean import file. Try it free โ