# Bank reconciliation

> Import bank statements and explain each transaction line against your books — the core of accurate bookkeeping, explained step by step with worked examples.

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

Manual statement imports, reconciliation and manually applied rules are included on Free. Automated provider logins and remote-file feeds require Standard or Plus and share the plan’s connection allowance.

Bank reconciliation is how AccountFUN turns raw bank data into a trustworthy set of books. It is the single most important habit in bookkeeping, and it is built around a deliberately simple, step-by-step workflow so nothing gets missed.

If you only read one guide, read this one.

## Why reconcile at all?

Every transaction you care about touches your bank account twice, at different times, through two separate records:

1. **Your ledger** — the accounting entries AccountFUN posts when you create an invoice, record a payment, or enter a spend/receive-money transaction.
2. **Your bank statement** — the raw lines your bank actually moved in and out of your account.

These two records **start out disconnected**. An invoice you raised is in your ledger but won’t appear on the bank statement until the customer pays. A debit card coffee appears on the bank statement but isn’t in your ledger until you tell AccountFUN what it was for.

**Reconciliation is the act of pairing them up**, line by line, and confirming “yes, this bank line and this ledger entry are the same real-world event.” When every bank line is paired, your books exactly reflect what the bank knows — and your profit, tax, and reports become reliable.

## The two balances, and the “gap”

Open any bank account and you’ll see **two numbers**:

* **Account Balance** (your ledger) — the running total of every journal entry posted against this account. This is what your reports and profit figures use.
* **Bank Balance** (your statement) — the opening balance plus every imported, non-deleted statement line, in the bank account’s currency.

The balances can differ because of unmatched statement lines, ledger entries that have not cleared the bank, or opening-balance/import problems. They can also agree while unmatched items cancel each other out. Each account card and the Reconciliation tab show an **“Unreconciled: N”** badge counting exactly how many statement lines still need explaining. When that count hits zero, the badge turns green and reads **“Reconciled”** — that is your goal.

```text
Bank Balance  −  Account Balance  =  the balance difference to explain
```

The gap is normal and expected in the middle of a period. The discipline is to close it regularly so the gap never grows unmanageable.

The golden rule

Reconcile little and often. Clearing 20 lines a week takes minutes; clearing 800 at year-end takes days and is where mistakes hide.

Want to go deeper on the two balances?

For the full explanation of why Account Balance and Bank Balance differ, the timing scenarios that cause the gap, and what it means when they finally match, see [Account balance vs. bank balance](https://www.accountfun.com/docs/concepts/account-vs-bank-balance/).

## Step 1 — bring in your bank data

AccountFUN can bring in bank data through Plaid (US banks), a CSV upload, a custom file or spreadsheet, or the HSBC Hong Kong spreadsheet feed. Pick whichever suits your bank.

### Bank feed with Plaid (US banks)

The hands-off option: connect your US bank once and statement lines import themselves — no exports, no uploads, nothing to click. Open the account’s **Bank Statements** tab, click **Setup Bank Feed**, pick your bank, and sign in through Plaid’s secure window. Your bank password stays between you and your bank. Full walkthrough in the [Plaid bank feed guide](https://www.accountfun.com/docs/guides/plaid-bank-feed/).

### CSV upload (any bank)

1. Export a statement CSV from your bank’s website.
2. Go to **Bank Accounts**, open the account, and choose the **Bank Statements** tab.
3. Click **Import CSV** and upload the file.

The import only needs two columns — **Date** and **Amount** — and optionally **Payee, Description, Reference,** and **Check Number**. You can **Download sample CSV** to see the expected shape.

Before anything is saved, AccountFUN walks you through two quick checks:

* **Date format** — detected from your file and confirmed as part of the import, with a sample date shown so you can see it parses the way you expect. You can pick a different format if the detection got it wrong.
* **Preview** — the file is read exactly as it will be imported, and any problem rows are highlighted and listed for you. As long as there’s a single error, the import waits — nothing half-loads into your books.

Amounts are read the way your bank writes them — currency symbols, thousand separators (US or European style), and negatives in parentheses all work. Each line is deduplicated automatically by its date + amount + description, so re-importing the same file won’t double-count. And if you ever delete statement lines and change your mind, importing the same file again brings them back.

Positive vs. negative amounts

In an imported statement, a **positive** amount is money in (a deposit), and a **negative** amount is money out (a withdrawal). AccountFUN uses the sign to decide which direction to suggest matches for.

### Custom File or Spreadsheet feed

Open **Setup Bank Feed → Custom File or Spreadsheet** to map CSV, XLSX, Google Sheets or OneDrive data to this account’s statement lines. You can upload a snapshot or connect a source that is checked four times a day.

Choose your source date and amount formats, map the columns and preview before importing. Stable transaction IDs support automatic imports; changed snapshots without IDs and possible overlaps require review. Custom workbooks do not need an HSBC **Guidelines** tab. See [Custom file and spreadsheet bank feeds](https://www.accountfun.com/docs/guides/custom-bank-feed/) for setup, limits and review decisions.

### HSBC Hong Kong spreadsheet feed

If HSBC Business Internet Banking generates your spreadsheet, choose the **HSBC Hong Kong** feed setup. Its **Guidelines** tab and **Date | Description | Withdrawal | Deposit** columns are checked by the HSBC validation panel. Select the account’s worksheet, then save the configuration. See [HSBC Hong Kong bank feed](https://www.accountfun.com/docs/guides/hsbc-hk-bank-feed/) for the bank-side setup and sharing steps.

Feed imports track rows that were already seen and keep separate repeated transactions when the source contains them. Shortening a source file does not remove lines already imported. Review a deleted or ignored custom-feed row explicitly before bringing it back; fetching again does not silently restore it.

## Step 2 — open the Reconciliation tab

Select **Reconciliation** on the bank account. The screen is a **two-pane layout**:

* **Left pane** lists your imported statement lines, with a running count of **Total · Reconciled · Unreconciled** at the top.
* **Right pane** is where you clear the currently selected line, using one of four sub-tabs.

### Reading the left pane

Statement lines split into two buckets:

* **Potential Matches (N)** — lines AccountFUN already has a confident suggestion for (an existing invoice, bill, payment, or a matching bank rule). Clear these first; they’re the quick wins.
* **Statement Lines (N)** — everything else, paged 25/50/100/200 at a time.

Each potential-match line carries a **confidence badge**:

| Badge              | Meaning                             |
| ------------------ | ----------------------------------- |
| High (green)       | An exact-amount match within 7 days |
| Medium (yellow)    | Exact amount, 8–14 days apart       |
| Low (muted)        | Exact amount, 15–30 days apart      |
| Bank rule (indigo) | A bank rule matched this line       |

You can **search** (by description or amount) and **sort** (by date, amount). Both are resolved server-side so even thousands of backlogged lines stay fast — type your term and press **Search** (or hit Enter).

Click a line to select it. The right pane updates to show that line’s date, payee/description, and amount (in the **Spent** or **Received** column), and routes you to the most relevant sub-tab.

## Step 3 — clear each line (the four sub-tabs)

Every statement line is cleared by exactly one of these four actions. Pick the one that matches the real-world event.

### A. Match — “this bank line pays off something I already entered”

Use this when the bank line corresponds to a transaction that’s **already in your ledger**: a payment for an invoice you raised, a bill you recorded, or a spend/receive-money entry you typed in.

AccountFUN lists suggested matches ranked by confidence, each with the document number, contact, date, and the **available amount** (which may be less than the face amount if the document is partially paid already). Tick one or more until the **Selected total** meets the **Statement amount**, then click **OK**.

Many-to-one is allowed

You can tick several small transactions to match one lump-sum bank deposit. For example, three invoices of $100 settling as a single $300 deposit.

**Bank fee shortcut:** if your selection is a few cents or dollars short of the statement amount (a common case — the bank charged a fee), tick **“Add difference as bank fee?”**, pick a supplier and an expense account, and AccountFUN posts the fee as an extra line so the reconciliation balances to the penny.

### B. Find & Match — “search wider, including outstanding invoices and bills”

Find & Match is the **manual** counterpart to Match. Use it when the automatic suggestions missed the right transaction, or when you need more exotic combinations:

* Match **one statement line to many** documents (a single deposit paying several invoices).
* Match a statement line to an **outstanding invoice or bill** that doesn’t yet have a payment — AccountFUN creates the payment for you on confirm.
* Match against **batch deposits/payments** as a single candidate.
* Handle **cash refunds, credit notes, and overpayments**.

Search by contact, reference, amount, or description. Tick the documents; the totals panel shows your selection vs. the statement amount and the difference. If a single invoice’s outstanding amount is bigger than the statement line, a **“Split — partial payment”** option lets you settle just the statement amount and leave the remainder outstanding.

When the totals don’t quite line up, two difference-absorbers are available:

* **Add difference as bank fee** — only in the natural fee direction; needs a supplier + expense account.
* **Add difference as adjustment** — works in either direction; post the residual to any account (an FX gain/loss, rounding, or a write-off).

### C. Create — “I don’t have a transaction for this yet”

When no existing transaction fits, create a new one directly from the statement line. AccountFUN decides the type from the amount’s sign:

* A **deposit** (positive) becomes a **Receive Money** transaction.
* A **withdrawal** (negative) becomes a **Spend Money** transaction.

Fill in the **Account** (the category — e.g. “Office Supplies”, “Rent”), the **Contact**, an optional description and reference, and click **Create Transaction**. The transaction posts and the line reconciles in one step.

Note

This is where most day-to-day expenses get coded. The bank already told you the amount and date; you just decide the category.

### D. Transfer — “this is money moving between my own accounts”

When a statement line is really a movement between two of your own bank accounts (a transfer to savings, paying a credit card from checking), use **Transfer**. Pick the **destination bank account**, optionally add a reference, and click **Create Transfer**. Both legs post and the line reconciles.

Money-out (negative) treats this account as the source; money-in (positive) treats it as the destination — either way, the reconciled leg always equals the statement amount.

## Worked example: reconciling a month

Let’s walk through a realistic month for a small bakery so the workflow clicks.

Your **Business Checking** starts the month reconciled. You import a CSV with these lines:

| Date   | Description                      | Amount    |
| ------ | -------------------------------- | --------- |
| Jun 02 | DEPOSIT Sarah’s Cafe INV-0014    | +1,200.00 |
| Jun 05 | STARBUCKS                        | −4.50     |
| Jun 09 | WHOLE FOODS                      | −85.40    |
| Jun 12 | TRANSFER TO SAVINGS              | −2,000.00 |
| Jun 18 | STRIPE PAYOUT INV-0015, INV-0016 | +780.00   |
| Jun 20 | BANK SERVICE FEE                 | −12.00    |
| Jun 28 | DEPOSIT unknown                  | +150.00   |

Here’s how each line clears:

1. **Jun 02 (+1,200)** — you already raised invoice **INV-0014** for Sarah’s Cafe. The left pane shows it as a **High** potential match. Click it, the **Match** tab opens, tick INV-0014, difference is $0. **OK** → reconciled.

2. **Jun 05 (−4.50), Starbucks** — no invoice or bill exists, and you have a bank rule named *“Coffee”* that matches `payee contains STARBUCKS` and codes it to **Office Expenses**. The line shows a **Bank rule** badge. Open it, click **Apply** → reconciled, with a Spend Money transaction posted automatically.

3. **Jun 09 (−85.40), Whole Foods** — no suggestion. Select the line; the **Create** tab opens (withdrawal → Spend Money). Pick account **Groceries / Staff Meals**, contact “Whole Foods”. **Create Transaction** → reconciled.

4. **Jun 12 (−2,000), Transfer to Savings** — this is internal. Select the line, switch to the **Transfer** tab, pick **Savings Account** as destination. **Create Transfer** → reconciled on both accounts.

5. **Jun 18 (+780), Stripe payout for INV-0015 + INV-0016** — two invoices ($420 + $360) settled as one payout. The Match tab may only auto-suggest one. Switch to **Find & Match**, search the customer, tick both invoices (selected total $780 = statement amount). **OK** → one payment created, allocated across both invoices, reconciled.

6. **Jun 20 (−12.00), Bank service fee** — Create → Spend Money, account **Bank Fees**, contact your bank. (Or, if you cleared an invoice short by $12, use the “Add difference as bank fee” checkbox instead.)

7. **Jun 28 (+150), Unknown deposit** — Create → Receive Money, decide the category. If it turns out later to be a customer payment, you can **unreconcile** and rematch it correctly.

After line 7 the badge reads **Reconciled**, and your Account Balance now equals your Bank Balance. The month is closed off.

## Automate the repetitive stuff with bank rules

For transactions that repeat — the same subscription, the same fuel station, the same landlord — create a **bank rule** under **Bank Rules → New** so you don’t re-categorize them every month.

A rule says:

* **When** the statement line’s `Payee`/`Description`/`Reference`/`Amount` matches certain conditions (`contains`, `equals`, `starts with`, `is blank`), with **any** or **all** logic.
* **Then** treat it as a Spend Money, Receive Money, or Transfer, set the contact (a specific one, or inferred from the payee), allocate the amount across one or more accounts and tax rates (fixed amounts, or by percent that must total 100%), and copy a reference field through.
* **Run on** all bank accounts or just selected ones.

Rules suggest, they don’t auto-post

A bank rule is **never applied silently**. When a statement line matches a rule, it surfaces in the Match tab with a **Bank rule** badge and an **Apply** button. You click Apply for each line, so you stay in control of what gets posted. Rules just remove the typing.

Rules are **ordered** (▲/▼ on the list) — the first matching rule is suggested first. You can pause (deactivate) a rule without deleting it.

## Spend Money, Receive Money, and Transfer Money

Sometimes you need to record a bank transaction that **isn’t** tied to an imported statement line — recording a cash expense before the statement arrives, or an owner’s drawing. Each bank account has three buttons for this:

* **Spend Money** — money out, coded across one or more line items (account, tax, tracking). Posts a journal entry debiting your expense accounts and crediting the bank.
* **Receive Money** — money in, mirror image (debits bank, credits income).
* **Transfer Money** — move funds between two of your own bank accounts.

These create **unreconciled** ledger entries. Later, when the matching statement line imports, you’ll match them in the reconciliation screen — the work flows both directions.

## Cross-currency reconciliation

If the bank account is in a foreign currency (different from your base currency), AccountFUN needs an **exchange rate** every time money moves. You are **always prompted to confirm the rate** — it is never silently fetched — so you can match what your bank actually charged. This applies to the **Create**, **Transfer**, **Find & Match**, and bank-rule **Apply** flows.

* A rate deviating more than 5% from the market rate triggers an extra **confirmation guard** (“This rate differs X% from market — confirm”).
* Any realized gain or loss from the rate difference posts automatically to your **Realized FX** account and appears on the transaction’s detail page.

See the [Multi-currency guide](https://www.accountfun.com/docs/guides/multi-currency/) for the full picture.

## Undo a mistake: unreconcile

Matched the wrong transaction, or created something you shouldn’t have? Selecting a reconciled line lets you **Unreconcile** it. This is safe and fully reversible — AccountFUN undoes the link and, if the reconciliation had created any transactions on your behalf (a payment, a bank fee, or a bank-rule entry), those are reversed too. The statement line returns to **unreconciled** so you can clear it again, correctly.

On any transaction’s detail page you’ll also find **Remove & Redo** (voids via a reversal entry) and, for auto-created transactions, a combined **Unreconcile & Remove/Redo**.

Reconciled transactions can’t be voided directly

If a transaction is already reconciled to a statement line, the Void/Reverse action is blocked — you must **unreconcile** first, then reverse. This keeps the statement and ledger in sync.

## Tips for accurate, painless reconciliation

* **Reconcile weekly.** Small batches surface mistakes while you still remember what the transaction was.
* **Clear Potential Matches first.** They’re the fastest wins and shrink the list quickly.
* **Use bank rules for repeats** — subscriptions, fuel, rent, software.
* **Handle the pennies.** Small differences are almost always bank fees or FX rounding. Use the “Add difference as bank fee/adjustment” options rather than leaving a line unreconciled.
* **Don’t guess on unknown deposits.** Create them as Receive Money to clear the statement, then unreconcile and rematch once you know the truth.
* **Watch the badge.** Green **Reconciled** on every account before period-end means your reports and tax numbers are trustworthy.
