# Custom file and spreadsheet bank feeds

> Map a CSV, Excel file or shared spreadsheet to bank statement lines, review possible overlaps, and keep a linked source up to date.

Source: https://www.accountfun.com/docs/guides/custom-bank-feed/

Remote file and spreadsheet feeds require Standard or Plus and use one automated connection per active configuration. Local file imports and manual reconciliation are included on Free.

A custom bank feed brings transactions from your bank or your own transaction table into an AccountFUN bank account, ready for reconciliation.

Choose a linked source for scheduled checks, or upload a file whenever you have a fresh export. Supported sources are **CSV**, **XLSX**, **Google Sheets** and **OneDrive**. Each table must contain one bank account and one currency. CSV and XLSX files can be up to **5 MiB** and **10,000 rows**.

You need **Bank Accounts** permission to preview and import transactions. An **Admin** saves a linked feed or pauses and resumes it. Create the bank account first, with the currency used by your source.

## Choose your source

1. Open **Bank Accounts** and select the account.
2. Click **Setup Bank Feed**, then **Custom File or Spreadsheet**.
3. Choose **Linked source** or **Upload a file**.
4. Enter a **Transaction source name**, such as “Main bank export”. Reuse this name for later files or renewed links from the same stream. Give an independent stream a different name.
5. Select the **Source format** and provide the file or **Source URL**.

| Source             | What to provide                                                                                              |
| ------------------ | ------------------------------------------------------------------------------------------------------------ |
| CSV or XLSX upload | A file from your device. Download a template from the setup page if you need an example.                     |
| Linked CSV or XLSX | A direct HTTPS file link. Supply an **Authorization header** only if your source requires one.               |
| Google Sheets      | A sheet shared as **Anyone with the link**, with Viewer access. Select its transaction worksheet.            |
| OneDrive           | A sharing link to the workbook, plus its **Share password** if one is set. Select its transaction worksheet. |

Custom spreadsheets do not need an HSBC **Guidelines** tab. For a spreadsheet generated by HSBC Business Internet Banking, use the [HSBC Hong Kong feed](https://www.accountfun.com/docs/guides/hsbc-hk-bank-feed/) instead.

Keep source access private

A sharing link or authorization value can give access to your banking data. Keep it private, and replace it with the source provider if it is exposed.

## Map and preview the transactions

1. Choose **Dates in the file**. This describes the source file, independently of your personal display format.
2. Choose **One Signed Amount Column** or **Separate Withdrawal / Deposit**. Positive signed amounts mean money received; negative amounts mean money spent. Tick **Reverse signs** if your source uses the opposite convention.
3. Check the **Header row**, **Decimal separator in text amounts**, and, for CSV files, **CSV delimiter**. Optionally set **Import from**.
4. Click **Preview transactions** to read the headings. For a workbook, choose **Transaction worksheet** when the worksheet list appears.
5. Check **Column mapping** and preview again after changing it.

Map **Date** and either **Amount** or the separate withdrawal and deposit columns. Optional fields include payee, description, reference, check number, transaction ID, currency and status.

The preview shows eligible rows, money in, money out and any errors. Its table shows up to 20 sample rows. Pending or draft transactions and rows before your start date are excluded. Posted transactions dated in the future are refused. Correct errors and preview again before importing.

## Review possible overlaps

Stable **Transaction IDs** let the feed recognize transactions from the same named source and worksheet. New transactions with IDs can import automatically when they have no possible overlap. Reusing an ID with changed transaction details stops the import so you can correct the source.

Without IDs, each changed file snapshot needs review. Repeating an approved snapshot imports nothing. A matching date and amount alone do not prove that two payments are the same.

For every row requiring review, compare the payee, reference and other details, then choose:

| Decision                          | When to use it                                                                |
| --------------------------------- | ----------------------------------------------------------------------------- |
| **Import as a New Transaction**   | This is a separate bank transaction.                                          |
| **Existing: …** or **Deleted: …** | The row represents the listed statement line. Linking it avoids another copy. |
| **Ignore This Source Row**        | This row should not be added to the statement.                                |

**Mark unmatched rows as new** fills decisions only for rows without candidates or a previous suppression. You still need to review the remaining rows.

An earlier import or ignore decision can keep a row from returning automatically after its original line is removed. To bring it back deliberately, open **Review transactions** and choose **Import as a New Transaction** for that row.

## Import a file or connect the feed

For an upload, complete the review and click **Import transactions**. Uploading a snapshot keeps any saved linked-feed settings.

For a linked source, complete the review and click **Connect automatic feed**. Checks run **four times a day**. New, unambiguous transactions with stable IDs can import automatically; a changed snapshot without IDs or a possible overlap shows **Needs review**. Click **Review transactions**, make the decisions and click **Import reviewed transactions**.

| Feed state                 | What to do                                                                                                 |
| -------------------------- | ---------------------------------------------------------------------------------------------------------- |
| **Ready for first fetch**  | Click **Fetch now** or wait for a scheduled check.                                                         |
| **Up to date with source** | Check **Last checked** and **Last new transactions**; these can be different times.                        |
| **Needs review**           | Open **Review transactions** and resolve the rows.                                                         |
| **Needs attention**        | Read the error, correct source access or settings, and fetch again.                                        |
| **Paused**                 | An admin can **Resume** after checking the source. Repeated fetch failures can pause a feed automatically. |

**Disconnect** stops future checks and removes the saved connection. Imported statement lines remain. Disconnect an existing Plaid connection before enabling a custom linked feed on that account.

Importing statement lines does not record income, expenses or payments in your books. Continue with [Bank reconciliation](https://www.accountfun.com/docs/guides/bank-reconciliation/).

## Worked example: two payments of the same amount

Your file contains two separate payments of **US$25** on the same day. One is already in AccountFUN from an earlier upload. In the review, compare the references: link the known payment to its **Existing** line and choose **Import as a New Transaction** for the other. Reconcile the two statement lines against their actual payments, rather than collapsing them into one.
