> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.booksgpt.ai/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Import a CSV from any bank or app

Most banks, card companies and payment apps let you download your transactions as a file. Importing that file adds each transaction to one account in your books, just as a bank connection would. Use it for the months before your connection started, or for an account whose bank will not connect.

Each row needs a date and an amount, and ideally a description of who you paid or who paid you. BooksGPT finds those columns on its own and shows you the rows before anything is imported.

It reads CSV, Excel, the .QBO or .QFX file your bank offers for QuickBooks and Quicken, one account's Quicken QIF file, a PayPal activity download, and a Stripe balance export.

|| A PDF statement, or a statement saved from its PDF into a spreadsheet, goes to [Upload a bank statement](https://help.booksgpt.ai/en/article/upload-a-bank-statement-1xc0ly7/) instead.

## Import a file

1. Download the transactions from your bank for the dates you need.
2. Open **All pages** in the left sidebar, then click **Setup** and **[Import](https://app.booksgpt.ai/go/import)**.
3. Under **Other ways in**, click **Upload transactions**. The page is titled **Import transactions**.
4. Under **Bank or card account**, pick the account the file belongs to.
5. Drop the file on the box, or click the box to choose it.

![The Import transactions page, with Bank or card account above the drop zone](https://booksgpt.ai/help/csv/import-page-stripe.png?v=2026-10-15)

| Every row in the file goes into the account you pick, so pick it carefully.

## Check the directions, then import

Before importing, BooksGPT makes sure it knows which rows are money in and which are money out. Getting this wrong would turn a deposit into a payment.

- When the file proves it on its own (for example a .QBO file, or a running balance printed on every row), the card says **Directions verified**.
- Otherwise it shows the largest rows under **Money in** and **Money out**. If they are right, tick the box under them.

Then click **Import transactions**.

![Check transaction directions, with the largest Money in and Money out rows, the confirmation box ticked, and the Import transactions button](https://booksgpt.ai/help/csv/check-directions-2026-10.png)

## What your books say now

Each transaction is now in that account, on its own date. A deposit raises the account's balance in your books and a payment lowers it. On a credit card, a charge raises what you owe, and a payment to the card lowers it once you file it as a transfer.

Each row still needs a category: the account that says what the money was for, such as Rent or Sales. BooksGPT suggests one, and until you approve it, the row sits in **Uncategorized Income** or **Uncategorized Expense**. Click **Review imported transactions** to approve them.

![Import complete: 38 transactions added to To Review, with Review imported transactions](https://booksgpt.ai/help/csv/import-complete-2026-10.png)

Rows already in the account, from your bank connection or an earlier file, are matched and skipped. Uploading the same file twice adds nothing the second time.

## What your file needs

- **A date column**, such as Date, Posted Date or Transaction Date. Dates like 2026-01-31, 01/31/2026 or Jan 31, 2026 all work. Slash dates are read month first, so 05/01/2026 is May 1. If your bank writes the day first, change the column to the 2026-01-31 form before you import.
- **An amount**: one Amount column, Debit and Credit columns (Withdrawal and Deposit work too), or an Amount column beside one that says which way each row went, such as Transaction Type or CR DR.
- **A description**, such as Description, Memo or Payee. Optional, but it is what BooksGPT uses to suggest a category.

On a bank account, deposits are positive and withdrawals negative. A file where every amount is positive needs Debit and Credit columns instead.

Card companies write charges both ways: some as positive numbers, some as negative. BooksGPT works it out from the card payment rows in the file. If it could not tell, the result says so.

## PayPal and Stripe downloads

A PayPal or Stripe balance is money your business holds, like a bank account. Give it its own bank account in your books and import into that. To add one, open **All pages**, then click **Accounting** and **Chart of accounts**, then **Add account**.

- **PayPal:** download your activity as a CSV and upload it as PayPal saved it.
- **Stripe:** in Stripe, open **Balances** and export your balance history as a CSV. Upload it as Stripe saved it.
- Each sale comes in at its full amount, with the fee as its own row, so your books show both the sale and what the fee cost you.
- A copy saved as an Excel file is refused, because a spreadsheet can change dates without showing it. Upload the CSV as you downloaded it.

A payout from PayPal or Stripe to your bank is not income: it is your own money moving between two of your accounts. Categorize it as a transfer to your bank account. A row where PayPal or Stripe draws money from your bank is a transfer too, and a repayment of a loan from either goes against that loan, not to an expense. See [Transfers, credit-card payments, and owner draws](https://help.booksgpt.ai/en/article/transfers-credit-card-payments-and-owner-draws-15sx6bu/).

## Files that go somewhere else

This page imports one account at a time. When a file belongs elsewhere, nothing is imported, and the message usually has a button to the right page:

- **A PDF or a bank statement:** **Upload as a bank statement**.
- **A General Ledger or another report that lists several accounts:** **Import your books**. See [Import your books from a file](https://help.booksgpt.ai/en/article/the-import-wizard-drop-a-file-and-check-it-reconciles-19p3vy/).
- **A Quicken file with several accounts:** **Import every Quicken account**. See [Import from Quicken](https://help.booksgpt.ai/en/article/import-from-quicken-1ndekv7/).
- **A list of invoices:** **Upload invoices**.
- **A bank download that covers several accounts:** download one account at a time.

## If something goes wrong

- **The import failed and lists your columns.** BooksGPT could not find a date or an amount column. Rename that heading in your spreadsheet, for example to Date or Amount, and upload the file again.
- **Some rows were skipped, or the dates look wrong.** A two-digit year like 1/31/26 cannot be read. If the file writes the day first, the rows that did import were read with day and month swapped (05/01/2026 became May 1). On **Transactions**, delete the rows this import added, change the whole date column to the 2026-01-31 form, then import again.
- **A credit card's purchases came in as money in.** Under **If your purchases came in positive**, delete the rows that import added, click **Set up for charges positive**, then import the same file again.