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.
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.
How to Connect Your Bank
- Open the Bank Import section from the sidebar menu
- Select 🏦 Connect New Bank
- Type your bank's name in the search field and pick the correct match
- Authenticate through the secure, encrypted Stripe widget (your credentials never touch Kantivo)
- Choose which accounts you want linked
- 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:
- Locate the account under Unmapped Bank Accounts
- Press Map Account
- Pick the appropriate local account (for instance, "Business Checking")
- The account shifts to Mapped Bank Accounts and becomes eligible for syncing
Syncing Transactions
- Press ⚙️ Initialize to define the starting date for your first retrieval
- Press 🔄 Sync to pull the latest transactions into Kantivo
- Retrieved transactions are routed into the Transaction Matching pipeline
- Use 🔄 Sync All to refresh every mapped account simultaneously
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
- Choose Bank Feeds in the sidebar
- Press + Connect a bank
- Answer Canada when Kantivo asks where the account is held
- Locate your institution and authenticate within your bank's own secure window
- Returning to Kantivo, use Records into on each account to name the ledger account it feeds
- Press Sync now
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.
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.
When to Use the Backup Connection
- The primary aggregator search returns no results for your bank
- Your bank appears in the search but fails the credentials handshake
- You receive a "this institution is not supported" message from the primary path
- An existing connection has gone permanently stale and reconnecting through the same network keeps failing
How to Use the Backup Connection
- Open the Bank Sync screen from the sidebar
- Scroll to the Backup Bank Connection panel beneath your existing connections
- Press 🔁 Connect via Stripe
- Search for and select your bank inside the secure Stripe widget
- Authenticate with your bank credentials -- they never touch Kantivo or our servers
- Pick the accounts you want linked, then return to the Bank Sync screen
- Map the new accounts the same way you map any other bank connection
Tier Limits
The backup connection includes generous monthly refresh and account limits, scaled to your plan tier:
| Tier | Linked Accounts | Refreshes / Month |
|---|---|---|
| Trial | 1 | 5 |
| Basic | 2 | 15 |
| Pro | 5 | 15 |
| Accountant Pro | 15 | 30 |
| Enterprise | 30 | 30 |
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.
- Open the Manage Bank Connections panel on the Bank Sync screen
- Locate the connection you want to label
- Press the ✏️ pencil icon next to the institution name
- Type the new label (typically the client's company name)
- Press Save -- the label takes effect immediately across the entire interface
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:
- The connection label (typically the client name)
- The institution name (e.g. "Wells Fargo")
- The account name returned by the bank
- The last four digits of the account
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.
Client Bank Link Invitations
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.
How to Send an Invitation
- Open Bank & Statement Import and expand Manage Bank Connections.
- Click Request Client Bank Link (next to Connect Another Bank).
- Enter the client's email address and, optionally, their name and a personal message.
- Click Send Invitation. Kantivo emails a secure one-time link valid for 48 hours.
What the Client Sees
- An email with your firm's name and the optional message you wrote.
- A branded page explaining what will happen and reinforcing that their credentials stay private.
- A "Connect My Bank Securely" button that opens Stripe's bank authentication widget.
- 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:
- Cancel a pending invitation before the client uses it.
- See which invitations have been redeemed and how many accounts were linked.
- Identify expired invitations that were never used.
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 | Upload original bank statements -- Kantivo extracts the data automatically |
How to Import CSV/Excel Files
- Go to Bank Import in the sidebar
- Press 📁 Import Transactions
- Browse for your CSV or Excel file
- Specify the Bank Account the transactions belong to
- Confirm the correct Date Format
- 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.
How to Use Statement Bucket
- Open 🪣 Statement Bucket
- Drag one or more PDFs onto the drop area, or click to browse for them
- 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
- Review the parsed transactions and the balance check above them
- 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.
If a Statement Comes Back Empty
- Check that the account you expected is selected in Statement Account. Only active accounts appear in that list, so an account marked inactive in the Chart of Accounts will be missing
- The status line under each file names which reader handled it, which tells you whether the AI reader or the offline fallback was used
- If the balance check reports a difference, compare the transaction list against the statement before staging -- on credit card statements the opening and closing figures will not always tie the way they do on a checking account
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
- Select 🎯 Transaction Matching from the Bank Import page
- Browse transactions grouped by their current match stage
- Approve items that were auto-categorized, or assign categories manually where needed
- 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:
- Apply to N -- assigns the same account (and payee, if set) to all of them at once.
- Always do this… -- opens the rule dialog pre-filled with the merchant name rather than the full one-off description, so the rule catches next month’s charges too. Review it and save.
Keyboard shortcuts
| Key | Action |
|---|---|
| ↑ / ↓ (or J / K) | Move between rows |
| Enter | Accept the highlighted row |
| Space | Select or deselect the row for a batch action |
| A / P | Jump to the Account / Payee picker |
| I | Ignore the row |
| U | Undo 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:
- Transaction date, memo text and reference number carry over from the statement line
- Line one holds the bank or card account the transaction arrived on
- The figure is seated on the right-hand side automatically - Kantivo works out debit versus credit from the account's normal balance and the sign your institution reported, so a card charge and a checking withdrawal each land correctly
- A vendor or customer already attached to the row is carried into the entry
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.
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
- Open ⚙️ Mapping Rules
- Press ➕ New Rule
- Define your conditions (for example, description contains a keyword, amount equals a value, etc.)
- Select the destination account
- Optionally link a vendor or customer to the rule
- 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 |
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
- Kantivo compares each imported transaction against records already in your local database
- Matching criteria include dollar amount, date proximity (within 14 days), and description similarity
- Each potential match displays a confidence percentage between 70% and 100%
What to Do
- Yes, Same Transaction: The import is discarded since the entry already exists in your books
- No, Different Transaction: The item moves to the Review stage for proper categorization
Tips & Best Practices
Before Importing
- Confirm that a corresponding bank account already exists in your Chart of Accounts
- Stick to a consistent date format across all your imports to prevent parsing errors
- Process one month of data at a time for more manageable review sessions
Creating Effective Rules
- Partial keyword matches (like "ELECTRIC") catch vendor name variations automatically
- Combining multiple conditions (description plus amount) increases precision
- Assign priority levels to control the order in which rules are evaluated
Efficient Workflow
- Clear the Auto and Rule stages first -- these are the quickest to approve
- Move to Smart matches next, verifying or adjusting the AI's suggestions
- Tackle Review items last, since they require the most manual attention
- Always inspect the Matches Existing stage before posting to prevent duplicate entries
Troubleshooting
Transactions not importing?
- Confirm the file is a supported type: CSV, Excel (.xlsx/.xls), or PDF
- Double-check that the date format you selected matches the format used in the file
- Verify the file contains the three required columns: date, description, and amount
Duplicate transactions appearing?
- Review the "Matches Existing" stage before approving any imports
- Narrow your date range to avoid overlap with previously imported periods
- Check your import history to ensure the same file has not been uploaded twice
Rules not matching?
- Verify rule priority -- higher-priority rules execute before lower ones
- Confirm the keyword is accurate (matching is case-insensitive but the text must be present)
- Use the built-in "Test Rule" function to validate your conditions against sample data
PDF not extracting correctly?
- Make sure the PDF contains selectable text rather than a scanned image
- Experiment with a different bank format selection in the dropdown
- Reach out to support if your bank's statement layout is not yet recognized
Bank feed not connecting?
- Double-check that your bank login credentials are current
- Determine whether your bank requires multi-factor authentication and complete any extra steps
- Some institutions impose temporary rate limits on external connections -- wait a few minutes and retry
- When your bank is not listed, switch to PDF or CSV import as an alternative
Bank feed showing "Disconnected"?
- Financial institutions periodically require you to re-verify your identity
- Press Reconnect and complete the authentication process again
- If you recently updated your bank password, the old session token may have been revoked