> ## Documentation Index
> Fetch the complete documentation index at: https://help.finerd.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Import a bank statement

> Import a CSV statement from your bank into a finerd account on the web or iOS: file limits, progress, results, duplicates and import errors.

To add your bank's transactions to finerd without typing them, export a statement from your bank as a CSV file and import it into one of your finerd accounts. finerd reads the file itself, adds the transactions to that account and fills in the merchant and category for each one.

Importing transactions needs Pro. It works on the web and on iOS; the Android app can't import a file into an account, so use the web or iOS for it. To bring over your history from another finance app instead, see [Start fresh or import history](/getting-started/choose-how-to-start). To record only the closing balance from a statement, use [Import a statement](/verified-balance#import-a-statement) in verified balances.

<h2 id="before">
  Before you import
</h2>

**Choose the account.** You import a file into one account at a time: a bank account, a card, cash, a loan or a debt you track yourself. Use it for accounts that aren't [connected to your bank](/institutions/connect-institution), or to add older history that your bank connection doesn't bring. Create the account first if you don't have it yet; see [Create an account](/accounts/create-account). Archived accounts and your partner's family account can't take an import.

**Export the file from your bank.** Choose **CSV** in your bank's export or statement options. If your bank offers only an Excel file, open it in a spreadsheet app and save it as CSV. PDF statements can't be imported as transactions.

**Check the file.**

* One file per import, up to **1 MB** and **1,000 transactions**. Split a longer history into several files, for example one per few months.
* Each row needs a **date**, an **amount** and a **description**. A currency column is optional; without one, finerd uses the account's currency.
* Remove rows that aren't transactions, such as opening and closing balances, totals or rows without an amount. finerd can read them as transactions with the wrong amount.
* You don't need to rename or rearrange the columns. finerd works out which column is which, including separate debit and credit columns, dates such as `2026-09-02`, `9/2/2026` or `02.09.2026`, and decimal commas.
* Category, tag and note columns are ignored: finerd chooses the merchant and category for each transaction itself.

<h2 id="import">
  Import a CSV file
</h2>

<Tabs>
  <Tab title="Web">
    1. Open **Accounts** and select the account.
    2. Select **⋮** at the top of the account, then **Import transactions**.
    3. Select **Upload** and choose the CSV file, or drag the file onto the panel. The file appears under **Files to import**.
    4. Select **Start import**. The panel closes and finerd starts reading the file.

    You can also start from **Transactions**: select **⋮** at the top of the page, then **Import transactions**, and choose the account under **Where to import transactions?**

    <Frame caption="Import transactions in the account's ⋮ menu.">
      <img src="https://mintcdn.com/finerdai/Jo1uKObVQTyRKK8h/images/bills/import-statement/web-account-menu.png?fit=max&auto=format&n=Jo1uKObVQTyRKK8h&q=85&s=5f51bc917f8c55bae341925f1f2dc86d" width="400" alt="Harbor Checking account panel with the ⋮ menu open: Show turnovers, Mark as Joint, Change account type, Import transactions, Meta data, Archive, Delete and Contact support." data-path="images/bills/import-statement/web-account-menu.png" />
    </Frame>

    <Frame caption="Upload a CSV file of up to 1 MB and 1,000 transactions.">
      <img src="https://mintcdn.com/finerdai/Jo1uKObVQTyRKK8h/images/bills/import-statement/web-import-panel.png?fit=max&auto=format&n=Jo1uKObVQTyRKK8h&q=85&s=9310e686f5ebbe28dce93faba3f83088" width="400" alt="Import transactions panel for Harbor Checking: Click here or drag files to upload, Max file size 1 MB, You can import up to 1000 transactions at a time, and an Upload button." data-path="images/bills/import-statement/web-import-panel.png" />
    </Frame>
  </Tab>

  <Tab title="Android">
    The Android app can't import a CSV file into an account. Import the file on the web or in the iOS app; the transactions then appear on Android too.
  </Tab>

  <Tab title="iOS">
    1. Save the CSV file to the **Files** app, for example from an email attachment or from your bank's app.
    2. Open **Transactions**, tap **⋮** at the top right, then **Import transactions**.
    3. Choose the file.
    4. Under **Where to import transactions?**, tap the account. finerd starts reading the file.

    You can also start from the account: open it, tap **⋮**, then **Import transactions**, and choose the file. The account step is skipped.

    <div style={{ display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(min(100%, 240px), 1fr))", gap: "20px", alignItems: "start" }}>
      <Frame caption="Import transactions in the Transactions menu.">
        <img src="https://mintcdn.com/finerdai/Jo1uKObVQTyRKK8h/images/bills/import-statement/ios-transactions-menu.png?fit=max&auto=format&n=Jo1uKObVQTyRKK8h&q=85&s=5d5d40ce00d50f5280102a29ba6b72ee" alt="iOS Transactions with the ⋮ menu open: Import transactions, Bulk edit and Contact support." width="630" height="380" data-path="images/bills/import-statement/ios-transactions-menu.png" />
      </Frame>

      <Frame caption="After choosing the file, choose the account.">
        <img src="https://mintcdn.com/finerdai/Jo1uKObVQTyRKK8h/images/bills/import-statement/ios-where-to-import.png?fit=max&auto=format&n=Jo1uKObVQTyRKK8h&q=85&s=cbcc473122ebf68768519b411d6a55d0" alt="iOS Where to import transactions? list of bank accounts, including Harbor Checking with 1,250.00 dollars." width="630" height="1265" data-path="images/bills/import-statement/ios-where-to-import.png" />
      </Frame>
    </div>
  </Tab>
</Tabs>

Only one import runs at a time. If you start another one, finerd shows **Importing data… Please wait**; select **Got it** and try again when the first one has finished.

If **Import transactions** shows a **Pro** badge, importing isn't included in your plan.

<h2 id="status">
  Follow the import
</h2>

finerd reads the file first and then adds the transactions. A short statement usually takes about a minute. You can keep using finerd in the meantime; an import can't be stopped once it has started.

<Tabs>
  <Tab title="Web">
    The account shows **Analyzing by AI** while finerd reads the file, then **Importing** with a percentage. To see the import with its progress bar, select **Active processes** at the top of the page.

    <Frame caption="Active processes and the account label show the import's progress.">
      <img src="https://mintcdn.com/finerdai/Jo1uKObVQTyRKK8h/images/bills/import-statement/web-importing-badge.png?fit=max&auto=format&n=Jo1uKObVQTyRKK8h&q=85&s=8e19494421b774b312d1dbd334f94611" width="500" alt="Accounts page with Active processes open: Harbor Checking, Transactions importing…; in the list, Harbor Checking shows Analyzing by AI and $1,250.00." data-path="images/bills/import-statement/web-importing-badge.png" />
    </Frame>
  </Tab>

  <Tab title="Android">
    Android doesn't show the progress of an import started on the web or iOS. The result message appears in **Inbox**.
  </Tab>

  <Tab title="iOS">
    The **Dashboard** shows **Active processes** with **Import in progress** and a count, such as **0 of 7 transactions imported. 0 failed**.

    <Frame caption="Import progress on the Dashboard.">
      <img src="https://mintcdn.com/finerdai/Jo1uKObVQTyRKK8h/images/bills/import-statement/ios-active-processes.png?fit=max&auto=format&n=Jo1uKObVQTyRKK8h&q=85&s=26e86347ce20456cef850fee86aa0459" width="400" alt="iOS Dashboard card: Active processes 1, Import in progress, 0 of 7 transactions imported. 0 failed." data-path="images/bills/import-statement/ios-active-processes.png" />
    </Frame>
  </Tab>
</Tabs>

When the import is over, finerd sends a message to **Inbox** with the result. If everything was imported, it says how many transactions were added to the account, for example **All 7 transactions imported in Harbor Checking**, with a **View transactions** link.

<Frame caption="The result arrives in Inbox.">
  <img src="https://mintcdn.com/finerdai/Jo1uKObVQTyRKK8h/images/bills/import-statement/web-import-result.png?fit=max&auto=format&n=Jo1uKObVQTyRKK8h&q=85&s=8ba60714b3ce8ed299e28c43aa097451" width="400" alt="Inbox message: All 7 transactions imported in Harbor Checking. We checked twice - still perfect. View transactions." data-path="images/bills/import-statement/web-import-result.png" />
</Frame>

<h2 id="result">
  Check the imported transactions
</h2>

Select **View transactions** in the Inbox message, or open the account, to see what was added. Imported transactions are recorded like the ones you add yourself:

* **Merchant and category.** finerd recognizes the merchant from the description and chooses a category, as it does for bank transactions. For example, `STARBUCKS STORE 1182` becomes **Starbucks** in **Coffee & Snacks**. When it can't tell, the transaction shows **Unknown merchant**; if no category fits, it's marked [Needs review](/transactions/review-imported-transactions#needs-review). With [Zero Inbox](/transactions/review-imported-transactions#zero-inbox) on, every imported transaction is marked **Needs review** until you confirm it.
* **Money in and out.** Money that went out is recorded as an expense. Money that came in is recorded as income, such as a salary, or as a refund in the matching expense category, such as `REFUND BOOTS PHARMACY` in **Medical Expenses**.
* **Editing.** You can change, split or delete an imported transaction, the same as one you [added yourself](/transactions/add-transaction).
* **Balance.** Imported transactions dated before the account's first [verified balance](/verified-balance), such as the balance you set when you created it, don't change that balance: finerd records the difference as [Initial balance](/verified-balance#initial-balance) before the earliest imported transaction. For example, Harbor Checking still shows \$1,250.00 after the September statement is imported. Transactions dated after a verified balance change the account's balance, or a [Balance correction](/verified-balance#review-a-discrepancy) if a later check exists.

<Frame caption="Imported transactions with merchants and categories.">
  <img src="https://mintcdn.com/finerdai/Jo1uKObVQTyRKK8h/images/bills/import-statement/ios-account-result.png?fit=max&auto=format&n=Jo1uKObVQTyRKK8h&q=85&s=dd6ac9cc35cf680b69fe5dcab16832a2" width="320" alt="iOS Harbor Checking account: balance 1,250.00 dollars and the last 5 transactions: Starbucks, Coffee & Snacks 4.95; HARBOR ELECTRIC BILL PAY, Utilities & Bills 72.18; Boots, Medical Expenses 14.60; McDonald's, Eating Out & Delivery 11.25; IKEA, Household Goods 89.99." data-path="images/bills/import-statement/ios-account-result.png" />
</Frame>

**Importing the same file again** doesn't add the transactions twice: finerd recognizes the rows it has already imported into that account. It does restore them as they were in the file, so changes you made to those transactions, such as a new category, are lost. When you import your next statement, export only the dates you haven't imported yet.

<h2 id="errors">
  If the import fails or skips transactions
</h2>

| What you see | What it means | What to do |
| - | - | - |
| Web: **The file size or transaction count exceeds the allowed import limits.** iOS: **File is larger than 1 MB. Please upload a smaller CSV.** | The file is over 1 MB or has more than 1,000 transactions. | Export a shorter period, or split the file into several CSV files and import them one by one. |
| **Import failed. That file confused our AI.** with **View CSV sample** | finerd couldn't find transactions in the file. | Check that it's the transaction export, not a summary or another report, and that it has date and amount columns. **View CSV sample** opens an example file to compare with; on Android the link doesn't open, so open the message on the web or iOS. |
| **Import had issues. … of … transactions weren't imported** | Some rows weren't added, for example a row with an amount of zero. | Open the account and compare it with the statement. [Add](/transactions/add-transaction) any missing transaction yourself. |
| **Importing data… Please wait** | Another import or a data migration is still running. | Select **Got it** and wait for the **Inbox** message about the first one. |
| The file can't be selected | Only CSV files can be imported. | Save the statement as CSV first. |

<Frame caption="Inbox messages about an import with skipped transactions and a failed import.">
  <img src="https://mintcdn.com/finerdai/Jo1uKObVQTyRKK8h/images/bills/import-statement/web-import-errors.png?fit=max&auto=format&n=Jo1uKObVQTyRKK8h&q=85&s=73d5c9ec5a4ebf9e088dbc4a7cff87f9" width="400" alt="Two Inbox messages: Import had issues. 2 of 4 transactions weren't imported in Harbor Checking. View transactions; and Import failed. That file confused our AI. Try another one or compare your file with the sample, with a Harbor Checking card and View CSV sample." data-path="images/bills/import-statement/web-import-errors.png" />
</Frame>

<Frame caption="iOS checks the file size before the import.">
  <img src="https://mintcdn.com/finerdai/Jo1uKObVQTyRKK8h/images/bills/import-statement/ios-file-too-large.png?fit=max&auto=format&n=Jo1uKObVQTyRKK8h&q=85&s=c41ad48dfabe75f5e3ceeb952ded543b" width="320" alt="iOS message: File is larger than 1 MB. Please upload a smaller CSV. OK." data-path="images/bills/import-statement/ios-file-too-large.png" />
</Frame>

After any import, compare the account with your statement. If a transaction has an amount that isn't on the statement, open it and correct or delete it.

If **Import transactions** isn't in the account's menu, check that the account isn't archived and that it's your own account rather than your partner's family account.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.