← All posts

How to Import a Bank Statement Without Linking Your Bank

A person using a phone to pay at a café counter

If you have decided not to connect your bank to a budgeting app, you have probably run into the assumption that the only alternative is typing every coffee in by hand.

It is not. Almost every bank will hand you a file containing months of transactions, and a good expense tracker will read that file. No Plaid, no bank credentials, no third party sitting between you and your account.

This post covers how to get that file, which format to pick, and what actually happens to it after you choose it.

Why a file instead of a connection

We are asked do you need my bank login often enough that it is worth answering here in full.

A bank connection is a standing permission. You give an aggregator your login once, and from then on it reads your account on a schedule, forever, until you remember to revoke it. That is genuinely convenient, and it is also why a lot of people will not do it.

A statement file is the opposite. It is one download, from your own bank, that you hand over once. There is no standing access to revoke, nothing to breach later, and no third party holding a credential.

The trade is that it is not automatic. You do it monthly, or whenever you feel like catching up. For a lot of people that is a fair price, and it is the same reason people still prefer tracking expenses without linking a bank at all.

Getting the file out of your bank

Every bank calls this something slightly different. Look for one of these, usually inside the transactions view for a single account:

  • Download, Export, or Statements
  • On desktop banking, often a small download icon above the transaction list
  • In a mobile app, often under a three-dot menu on the account screen

You will usually be offered a date range and a format. Take the widest range the bank offers, and read the next section before picking the format, because the format is the part that matters.

Pick the format: OFX or QFX first, CSV second, PDF last

Banks typically offer some mix of four things. They are not equivalent.

OFX or QFX. Take this if it is offered. These are structured formats built for exactly this job. Every field is labelled, so there is nothing to guess: the date is the date, the amount is the amount, and the description is the description. In SpendSmart AI an OFX or QFX file is parsed on your device and lands straight in a preview screen with no further questions.

CSV. The common fallback. A spreadsheet of rows. It works well, with one catch: there is no standard for what the columns are called or what order they come in, so the app has to be told which column is the date and which is the amount. SpendSmart AI proposes a mapping and shows it to you before parsing anything, and it ships presets for several common exports so the mapping is usually already filled in. You confirm it once.

PDF. Take it only if there is nothing else. A PDF is a picture of a statement, not data. Getting transactions out of one means reading it the way a person would, which needs AI. It works, and it is the right tool when a PDF is genuinely all your bank gives you, but it is the slowest route and the only one with a cost attached.

Anything else, including a printed page or a screenshot. Use the receipt scanner for one-off items instead, or type them. A screenshot of a statement is a worse PDF.

What each route costs

This is the part most articles get wrong, so here it is plainly.

In SpendSmart AI, OFX, QFX and CSV imports are unlimited on every plan, including the free one. They are parsed by code running on your phone or in your browser. There is no per-import cost to us, so there is no per-import limit for you. The only ceiling is 500 transactions in a single file, and if your statement is longer than that you split the date range and import twice.

Only the AI route is metered. That is a PDF, or a file our on-device parsers try and fail to read. On the free plan you get one of those a month; on Pro they are unlimited. Before that route runs, the app asks you first and tells you it is going to spend the credit. It never happens silently, and a file that could have been read on-device is never sent down that path.

So if you export OFX or CSV, the free plan will import your entire history and never ask you for anything.

What leaves your device

Since the whole point of avoiding a bank connection is that your financial data stays yours, here is the honest version.

An OFX, QFX or CSV statement is never transmitted at all. It is read on the device, turned into transactions, and stored the same way anything you typed would be. It is not sent to us, and it is not sent to Anthropic. There is no upload step because there is nothing to upload.

A PDF is sent, as the whole file, to Anthropic's Claude API, because that is the only way to read it. The FAQ answers this directly under is my statement stored. That file may contain your name, your account number and your balance, and all of it goes with the document. Under Anthropic's API data-use policy that input is not retained beyond the request and is not used to train models. We do not attach your name, email or account identifiers to the request.

If you would rather nothing at all left the device, the answer is to export OFX, QFX or CSV rather than PDF. That is a real choice you get to make at the bank's download screen, before any of this is relevant, and it is the reason it is worth reading the format list before clicking.

After the import

Two things worth knowing.

Duplicates are handled. Importing an overlapping date range twice does not double your spending; matching transactions are recognised rather than re-added. That means you can import a fresh statement each month without carefully trimming the start date.

Categories are guessed, and you can fix them. Imported transactions get a category from their description. Some will be wrong, particularly for merchants with unhelpful names, and correcting one takes a tap.

The short version

If your bank offers OFX or QFX, use it. If not, use CSV. Either way the file is read on your device, it costs nothing on any plan, and it never leaves the phone. Save the PDF route for banks that give you nothing else.

That is the whole workflow: download a file, open the app, pick the file. Months of history, no bank login, nothing standing open afterwards.

Related reading