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.
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 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
Reading Debits and Credits at a Glance
Every row in the matching list is coded by the direction the money moved, so a statement can be assessed without reading individual figures.
- Green left bar and tint -- a credit. Money arrived in the account.
- Red left bar and tint -- a debit. Money left the account.
- Signed amounts -- credits read
+$842.10, debits read-$1,612.74. - Legend -- a reminder of the convention sits at the top right of the list.
The sign accompanies the color rather than replacing it. Roughly one man in twelve has some degree of red-green color deficiency, so the direction of each transaction stays readable even where the two colors cannot be told apart.
Direction is derived from the amount your bank supplied. Should a row appear in the wrong color, the imported amount itself carries the wrong sign -- consult Troubleshooting rather than recategorizing the transaction.
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 |
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