Bank & Statement Import

Bring bank transactions into your books through live feeds, PDF extraction, or file uploads -- with intelligent matching that handles categorization for you.

Overview

Kantivo provides three distinct approaches for pulling bank data into your desktop accounting system: live bank feeds, PDF statement extraction, and CSV/Excel file uploads. You can rely on a single method or combine all three depending on your banking situation.

Once transactions arrive, Kantivo's intelligent matching engine categorizes them using your saved rules and learned patterns. The matching engine improves over time, reducing manual categorization with every import.

Pro Tip: Live bank feeds provide the most streamlined experience -- link once, then pull new transactions with a single click. When a bank does not support direct feeds, the Statement Bucket lets you upload PDF statements without converting them first.

Bank Feed (Automatic Sync)

Linking your financial institution directly to Kantivo gives you on-demand access to new transactions without manual file handling. This is the fastest path from bank to books on your desktop.

🔗 NEW Feature: Live feeds are compatible with over 5,000 financial institutions across the US, including Chase, Bank of America, Wells Fargo, Capital One, and many regional banks.

How to Connect Your Bank

  1. Open the Bank Import section from the sidebar menu
  2. Select 🏦 Connect New Bank
  3. Type your bank's name in the search field and pick the correct match
  4. Authenticate through the secure, encrypted Stripe widget (your credentials never touch Kantivo)
  5. Choose which accounts you want linked
  6. Connected accounts appear under "Manage Bank Connections"

Mapping Bank Accounts

Once connected, each bank account needs to be paired with a corresponding entry in your local Chart of Accounts:

  1. Locate the account under Unmapped Bank Accounts
  2. Press Map Account
  3. Pick the appropriate local account (for instance, "Business Checking")
  4. The account shifts to Mapped Bank Accounts and becomes eligible for syncing

Syncing Transactions

  1. Press ⚙️ Initialize to define the starting date for your first retrieval
  2. Press 🔄 Sync to pull the latest transactions into Kantivo
  3. Retrieved transactions are routed into the Transaction Matching pipeline
  4. Use 🔄 Sync All to refresh every mapped account simultaneously
Pro Tip: Choose an initialization date that aligns with when you began tracking in Kantivo. This prevents pulling in transactions you have already recorded by hand.

Resetting Sync

If you need to re-fetch transactions from a different starting point, press ↺ Reset on the relevant mapped account and select a new date.

Canadian Bank Feeds

If your books are kept in Canada, your bank can feed Kantivo directly rather than by monthly download. RBC, TD, Scotiabank, BMO, CIBC, National Bank, Desjardins and Tangerine are all reachable. Canadian credit union coverage is narrower than the American equivalent — when an institution isn't offered, nothing is lost, since statement import continues to work for it.

Setting one up

  1. Choose Bank Feeds in the sidebar
  2. Press + Connect a bank
  3. Answer Canada when Kantivo asks where the account is held
  4. Locate your institution and authenticate within your bank's own secure window
  5. Returning to Kantivo, use Records into on each account to name the ledger account it feeds
  6. Press Sync now
🔐 We never receive your banking password. You authenticate in the provider's window; Kantivo is handed transactions and balances only. It cannot see your credentials and cannot initiate a payment.

Check the currency before you link

Transactions from a Canadian account arrive in CAD. Attaching that feed to a ledger account denominated in US dollars yields a balance that is wrong without ever raising an error, so Kantivo compares the two at mapping time and asks you to confirm a mismatch. The right remedy is almost always a CAD account in your chart of accounts for the feed to report into.

Both countries in one practice

Canadian and American accounts coexist happily. The Bank Feeds list shows all of them together, marks each with its country, and treats their mapping and syncing entirely separately — adding a Canadian client changes nothing about the US files you already run.

Approval still comes first. A sync fills the review queue, exactly as importing a file does. Entries reach your ledger only once you approve them in Transaction Matching.

Periodic re-authentication

Banks retire a connection every so often by design. When that happens the account is labelled Needs reconnecting and offers a Reconnect button. Signing in again picks the feed up from where it left off, so no transactions are skipped.

Backup Bank Connection (Stripe Financial Connections)

Some financial institutions only respond to specific aggregator networks. Kantivo solves this by bundling a secondary bank connection path -- powered by Stripe Financial Connections -- into every subscription. When the primary aggregator can't see your bank, the alternate route usually finds it on the first attempt.

🔁 Why Two Networks? Different aggregators contract with different banks. Maintaining two independent paths means coverage you simply can't get with a single-vendor approach.

When to Use the Backup Connection

How to Use the Backup Connection

  1. Open the Bank Sync screen from the sidebar
  2. Scroll to the Backup Bank Connection panel beneath your existing connections
  3. Press 🔁 Connect via Stripe
  4. Search for and select your bank inside the secure Stripe widget
  5. Authenticate with your bank credentials -- they never touch Kantivo or our servers
  6. Pick the accounts you want linked, then return to the Bank Sync screen
  7. Map the new accounts the same way you map any other bank connection
Pro Tip: The two aggregators are completely independent. You can have some clients on one network and other clients on the other -- whatever provides the best stability for that institution.

Tier Limits

The backup connection includes generous monthly refresh and account limits, scaled to your plan tier:

Tier Linked Accounts Refreshes / Month
Trial15
Basic215
Pro515
Accountant Pro1530
Enterprise3030

If you reach a limit, the screen will tell you exactly which one and when it resets.

Multi-Client Workflow (Bookkeepers & Accountants)

If you keep books for multiple clients on a single Kantivo installation, you'll quickly accumulate dozens of bank connections -- and several of them may share the same institution. To keep them straight, every connection supports a custom label, and the mapping dropdown includes a live search filter.

Connection Labels

A connection label is a free-text identifier attached to a bank connection. By default, Kantivo uses the active company name when a connection is first mapped to an account, but you can override that any time.

  1. Open the Manage Bank Connections panel on the Bank Sync screen
  2. Locate the connection you want to label
  3. Press the ✏️ pencil icon next to the institution name
  4. Type the new label (typically the client's company name)
  5. Press Save -- the label takes effect immediately across the entire interface
Pro Tip: Use the same label format for every client (for example, "Acme Co - Operating") to keep your dropdowns alphabetized in a predictable way.

Searching the Mapping Dropdown

When you open the bank account mapping dropdown, a search box sits at the top. Start typing and the list filters in real time. The filter checks:

Empty groups are hidden automatically as you narrow the search, so you only see relevant matches.

Adding More Connections to the Same Installation

The ➕ Connect Another Bank button lives directly inside the Manage Bank Connections panel, making it easy to chain together client connections without leaving the screen.

If you manage books for clients who do not have their own Kantivo installation, you can invite them to connect their bank account remotely. The client authenticates on their own device and the linked account flows back to your installation — their credentials are never visible to you.

Security model: Invitations use a single-use cryptographic token with a 48-hour expiry. Bank authentication happens through Stripe Financial Connections (PCI-compliant). Only read-only balances and transactions are shared — no money movement is possible. Clients can revoke the connection from their bank's portal at any time.

How to Send an Invitation

  1. Open Bank & Statement Import and expand Manage Bank Connections.
  2. Click Request Client Bank Link (next to Connect Another Bank).
  3. Enter the client's email address and, optionally, their name and a personal message.
  4. Click Send Invitation. Kantivo emails a secure one-time link valid for 48 hours.

What the Client Sees

  1. An email with your firm's name and the optional message you wrote.
  2. A branded page explaining what will happen and reinforcing that their credentials stay private.
  3. A "Connect My Bank Securely" button that opens Stripe's bank authentication widget.
  4. After selecting their bank and logging in, a success confirmation — they can close the page.

Claiming Linked Accounts

When the client completes the flow, the invitation status changes to Redeemed and the bank account is stored against your installation. On your next visit to the Bank & Statement Import screen (or manual refresh), Kantivo automatically claims the account into your local bank connections list. A notification confirms how many new accounts were added.

Managing Invitations

Pending and completed invitations appear in the Client Bank Link Invitations panel below your Stripe FC section. From here you can:

Pro tip: The invitation is tied to your current company context, so accounts from the link are automatically tagged with the correct client file. If you manage multiple companies on one installation, make sure you switch to the right company before sending the invitation.

Manual Import Methods

For situations where a live feed is not available or not preferred, Kantivo accepts three file-based import formats:

Method File Types Best For
CSV Import .csv The most widely available export format, compatible with virtually every bank
Excel Import .xlsx, .xls Spreadsheet exports provided by your bank or prepared by your accountant
PDF Import .pdf Upload original bank statements -- Kantivo extracts the data automatically

How to Import CSV/Excel Files

  1. Go to Bank Import in the sidebar
  2. Press 📁 Import Transactions
  3. Browse for your CSV or Excel file
  4. Specify the Bank Account the transactions belong to
  5. Confirm the correct Date Format
  6. Inspect the preview table, then press 🎯 Smart Matching to begin categorization

Statement Bucket (PDF Import)

The Statement Bucket takes raw PDF statements -- bank or credit card -- with no need to convert anything to CSV first. Kantivo Core AI reads the statement the way a bookkeeper would, rather than matching it against a template written for one particular institution.

🪣 Reads any layout: There is no supported-bank list to check. Credit card statements, statements with two dates per line, reference-number columns, unfamiliar section headings, and statements that arrive as scanned images with no selectable text are all handled.

How to Use Statement Bucket

  1. Open 🪣 Statement Bucket
  2. Drag one or more PDFs onto the drop area, or click to browse for them
  3. Choose the Statement Account -- the bank or credit card account this statement belongs to. Every line read from the PDF is staged into that account's register
  4. Review the parsed transactions and the balance check above them
  5. Press Stage for Matching to send them into Transaction Matching

Credit Card Statements

Card statements import exactly like bank statements: pick the credit card account in the Statement Account list and drop the PDF. Purchases, fees and interest are recorded as money going out; payments and refunds are recorded as money coming in. Reference numbers and the transaction date are kept in the memo so the description stays a clean merchant name for vendor matching.

Where the Reading Happens

Statement text is sent to Kantivo Core AI for reading, and the extracted result comes back to your desktop. Your books, ledger and company data never leave your machine -- only the statement content needed to read it is transmitted, and nothing is retained for training.

If you would rather use your own AI provider account, enable Bring Your Own Key under ⚙️ Company Settings → 🤖 AI Assistant, add your Anthropic key and pick your model. Your key is then used for statement reading, and your included Kantivo Core AI credits are left untouched.

AI Credits

Each statement read uses one of your included Kantivo Core AI credits. A statement or two is negligible against a monthly allowance. If you drop more than five files at once, Kantivo asks for confirmation first so a large batch is never a surprise.

Works offline: With no internet connection, or once the month's AI allowance is spent, Kantivo falls back to its original rule-based reader, which recognizes layouts from major US banks including Chase, Bank of America, Wells Fargo, Capital One, Citi, US Bank and PNC. Importing keeps working either way; the AI reader simply handles a far wider range of statements.

If a Statement Comes Back Empty

Transaction Matching

Every imported transaction passes through the Transaction Matching pipeline. This is where you review, categorize, and approve items before they are committed to your local PostgreSQL ledger.

How to Access Transaction Matching

  1. Select 🎯 Transaction Matching from the Bank Import page
  2. Browse transactions grouped by their current match stage
  3. Approve items that were auto-categorized, or assign categories manually where needed
  4. Post approved transactions to your books

Working the Review List

Each bank transaction occupies one row: Date, Bank (hidden when only one account is in view), Description with any memo or matching rule beneath it, Payee, Account, Spent, Received, Status, and the row actions -- ✓ to accept and ⋯ for everything else (link to an invoice or bill, split as a journal entry, create a rule, re-match, ignore).

Money out appears under Spent and money in under Received, so direction never depends on color. Direction comes from the amount your bank supplied; should a deposit appear under Spent, the imported amount carries the wrong sign -- consult Troubleshooting rather than recategorizing it.

Choosing a payee and account

Click the Payee or Account cell and type any part of the name. office finds 6100 · Office Supplies; 1200 still finds accounts by number. Use the arrow keys and Enter to choose, or pick + Create New Account / + Create New Vendor at the bottom of the list.

Applying a choice to similar transactions

After you set an account or payee, Kantivo looks for other lines in the queue from the same merchant -- for example the other AMAZON MKTP charges -- going the same direction. A bar beneath the row offers:

Keyboard shortcuts

KeyAction
↑ / ↓ (or J / K)Move between rows
EnterAccept the highlighted row
SpaceSelect or deselect the row for a batch action
A / PJump to the Account / Payee picker
IIgnore the row
UUndo the last accept or ignore

Undo and progress

Every accept or ignore shows an Undo button at the bottom of the screen for eight seconds; accepted lines can also be reversed later from the Accepted tab. The progress bar reads “X of Y ready to accept” -- a line counts as ready once it has an account, or when it is a possible duplicate awaiting your yes or no.

Toolbar

With rows selected, Accept, Categorize and Ignore act on all of them. Auto-match ▾ holds re-running the matching engine, re-matching selected rows, matching card charges to open bills, and the Kantivo Core AI tools (categorize, clean descriptions, AI match, accuracy stats). Rules ▾ creates a rule from the selected row, manages existing rules, or suggests rules from your history. The 🎨 button in the list header opens the same Grid appearance settings used by account registers.

Match Stages

Imported transactions are sorted into six stages that reflect how each one was categorized:

Stage Meaning Action Needed
✅ Auto Strong-confidence match derived from established rules Review and accept
📐 Rule Categorized by a rule you previously configured Review and accept
💡 Smart AI-proposed category based on patterns Confirm the suggestion or pick a different category
🔍 Review No automatic match found -- requires your input Assign the correct account and entity
📋 Existing? Potentially duplicates a record already in your ledger Confirm the match or reject it
✔️ Accepted Approved and queued for posting Post to your books when ready

Open a Line as a Journal Entry

One category per bank line is fine until it isn't. A wire to a contractor that covers labor, permits and a materials reimbursement is three postings wearing one amount, and forcing it into the nearest account quietly distorts whichever account you chose.

Kantivo gives every pending row a 📔 action, shown beside the existing 🔗, 🔄 and 📐 buttons. Choosing it launches the General Journal Entry screen pre-loaded from that row, so nothing you already know has to be typed twice:

You then enter as many further lines as the transaction genuinely requires - separate accounts, separate figures, an optional note per line - and post it once debits and credits agree.

After Posting

Posting removes the row from the matching queue with an ✓ Imported badge and keeps a reference to the entry it produced. Because that reference exists, the standard ↩ Undo control reverses the split just as it reverses any accepted line - useful when a reimbursement turns out to have been coded to the wrong project.

In practice: A $2,400 home improvement supplier charge appears under Review. Press 📔; the entry opens with Business Credit Card already credited $2,400. Enter Materials $1,500, Small Tools $600 and Freight In $300 on the debit side, post, and one balanced four-line entry replaces what would otherwise have been a single misleading expense.

Mapping rules remain the better tool where a charge divides by the same percentages every month. Reach for the journal entry action when the division changes each time.

Creating Mapping Rules

Mapping rules let you define conditions that automatically assign accounts and entities to incoming transactions. Once a rule is active, recurring charges and deposits are handled without intervention.

How to Create a Rule

  1. Open ⚙️ Mapping Rules
  2. Press ➕ New Rule
  3. Define your conditions (for example, description contains a keyword, amount equals a value, etc.)
  4. Select the destination account
  5. Optionally link a vendor or customer to the rule
  6. Save your rule

Example Rules

Condition Account Entity
Description contains "ELECTRIC" Utilities Expense -
Description contains "STARBUCKS" Meals & Entertainment -
Description contains "RENT" AND amount = -2500 Rent Expense ABC Property Management
Pro Tip: Begin with general-purpose rules (such as "AMAZON" directing to Office Supplies) and layer in more granular rules over time as your transaction patterns become clearer.

Matches Existing Feature

It is common to record a transaction by hand -- such as a check you wrote -- before the corresponding bank charge clears. The "Matches Existing" detector identifies these potential overlaps so you avoid double-counting.

How It Works

What to Do

Tips & Best Practices

Before Importing

Creating Effective Rules

Efficient Workflow

Troubleshooting

Transactions not importing?

Duplicate transactions appearing?

Rules not matching?

PDF not extracting correctly?

Bank feed not connecting?

Bank feed showing "Disconnected"?

Note: Take a moment to scan imported transactions before committing them to your ledger. Automated categorization handles the heavy lifting, but a brief manual review ensures nothing slips through incorrectly.