What we've shipped, improved, and fixed.
The transfer tab in bank reconciliation got a complete redesign. Previously, transfer candidates were displayed but you couldn't act on them without navigating elsewhere. Now you can select the correct transfer match directly from a radio-button interface, compare candidate details (account name, amount, date) side by side, and reconcile in one click — all without leaving the page.
Expense insights. A new Expense Insights page (rolling out gradually) uses the AI assistant to analyze your recurring expenses — identifying patterns, flagging anomalies, and surfacing trends you might miss when reviewing transactions one at a time. Open documents without leaving reports. Clicking a document link on the General Ledger or Transaction Detail report now opens it in a drawer overlay. You can inspect invoices, bills, journal entries, and payments without losing your scroll position or filter state. We also added an FX column toggle to show or hide foreign currency amounts on reports. Multi-currency improvements. Currency symbols, formatting, and defaults now always reflect your workspace's base currency — regardless of which currency you use.
Upload PDF bank statements. You can now upload bank statements as PDFs (not just CSVs). Balances.ai uses vision AI to read the PDF pages, extract transaction rows, dates, descriptions, and amounts, then feeds them through the same import pipeline. Multi-page statements and XLSX files are also supported. Currency-aware agent chat. When you ask the agent about balances or totals, it now responds with properly formatted currency amounts (e.g., "€1,250.00"). The agent knows your workspace's base currency and formats everything accordingly. Scrollable reports with pinned filters. The General Ledger, Transaction Detail, and Activity by Contact reports now keep filters pinned at the top while ledger entries scroll independently. Report drilldown improvements. Manual journal entries now appear correctly in Profit & Loss and Balance Sheet drilldown views. Multi-currency accounting refinements: improved Balance Sheet retained earnings calculation for multi-currency workspaces, more accurate unrealized FX on liabilities, corrected foreign currency opening balance conversions, and more reliable GL balances when re-posting opening balances. Document date validation. The agent now enforces your tenant start date when creating documents.
Download invoices as PDF. A new "Download PDF" option is available in the invoice drawer and list overflow menu. The PDF uses the same professional formatting as email attachments — available on drafts, posted, and voided invoices. Automatic bank sync. Plaid-connected accounts update live whenever new transactions come in. We also added a 12-hour backup sync as a safety net, so your feed stays current even if a live update gets missed. Smarter bank transaction categorization. Several improvements to how the AI decoder processes your bank transactions: cleaner amount formatting, automatic contact assignment for bank fees and interest charges, and smarter transfer matching that waits for counterpart transactions before finalizing. We also improved document classification when uploading files: the AI is now better at distinguishing bills from invoices based on business context.
When you upload a file in the agent chat, it now displays immediately as a downloadable chip — no refresh needed. We also added resilience to the agent: if a response takes longer than expected, the system automatically diagnoses and recovers, keeping you informed along the way.
Two significant improvements: Sessions that don't expire on you. If you return after your access token expires (up to 30 days), Balances.ai silently refreshes your session in the background. You just pick up where you left off. Faster onboarding. The onboarding page has been redesigned into a clean inline form with a "Try the demo" option that loads instantly. After creating a workspace, navigation is instant via client-side routing.
Bank statement imports got more robust. We improved handling for certain bank CSV exports (notably Chase). The importer now validates column assignments against actual data and auto-corrects when they don't match. The agent also works through ambiguous CSV formats methodically. Tool call UI polish. When the agent uses a tool, completed steps now show a checkmark with clear past-tense labels like "Used the 'Process File' tool." We also introduced a new workspace-created confirmation email that guides you to connect your bank account as a next step. Exchange rate lookups now retry automatically, and background tasks run in isolated sessions for better reliability.
The AI assistant got a major upgrade. It can now edit line items directly on posted documents — change a description, amount, or account without having to void and recreate the whole thing. It also has access to a built-in knowledge base: ask it how a workflow works, what a term means, or how to handle a multi-currency scenario, and it'll give you a plain-English answer right in the chat. We also improved bank statement CSV parsing to handle a wider range of file encodings and formats.
Never miss a beat. A new notification bell in the header shows how many items are waiting for your review in the Assistant feed — the count refreshes every 60 seconds and clears when you visit the page. Prefer email? We now send a daily digest at 8 AM (your local time) summarizing your pending items with a preview of the top three. Admins and owners can unsubscribe with one click.
Connecting a bank account no longer navigates you to a separate page. A new drawer (slide-over panel) lets you choose between Plaid and manual entry, complete the flow, and stay right where you were — whether that's onboarding, the banking dashboard, or the chart of accounts. The onboarding page itself got a visual refresh with a contained card layout and a "What happens next" section.
The demo environment now loads in roughly 2.5 seconds, down from about 14.5 seconds. Your chart of accounts, bank transactions, and AI assistant suggestions appear immediately. Invoices, bills, and reimbursements populate in the background so you're never waiting.
We overhauled the signup experience. Creating a workspace now takes just four fields: company name, industry, country, and currency. From there, a single call-to-action — "Add your bank account" — opens a drawer for Plaid or manual entry without any page navigation. The Assistant is now your default landing page after login, so you're guided from the very first session.
The Assistant feed is now the default landing page after login — so you see your pending items and AI assistant suggestions first, not the dashboard. The left nav has been reordered to match. We added a "Need help?" link at the bottom of the left navigation so support is always one click away. The welcome email now includes a "Book a demo call" button powered by Cal.com, and the demo banner links to scheduling as well — making it easy to get a walkthrough if you want one.
The AI assistant is now fully mobile-responsive. On phones and tablets, the sidebar hides by default and the assistant expands to full width when you open it — accounting on the go, finally. The assistant can also now edit individual line items (description, amount, account) on existing documents without requiring a void-and-recreate cycle.
Upload a CSV bank statement and Balances.ai figures out the rest. Our importer auto-detects column formats from major banks — Chase, Bank of America, Wells Fargo, and more — filters out duplicate transactions automatically, and gets everything in cleanly. The AI decoder now shows a "Learned" chip when it's reusing a past categorization, so you can see it getting smarter over time. A new DecoderHistory drawer lets you see matched transactions with similarity scores, and we've lowered the learning threshold so the system picks up patterns faster.
We added a safeguard to prevent voiding future-dated transactions with "Today's Date" when today is before the original transaction date. If you try, you'll get a clear error message explaining the issue and suggesting the "Original Date" option instead. This keeps your reports in proper chronological order.
Improved email deliverability — transactional emails are now less likely to land in spam. We also added workspace names to banking connection alerts, so if you manage multiple workspaces, you'll know exactly which one needs attention.
The multi-currency payment dialog went on a diet. Instead of three confusing interdependent fields, you now see the document amount and date up front, with a clear summary row showing the calculated base amount and an intuitive inverted rate (e.g., "148.75 JPY/USD"). Need to override the exchange rate? An optional "Adjust" section is one click away — hidden until you need it.
The "Active" status filter on document lists now includes drafts alongside posted documents. No more wondering where that invoice you were working on went — if it's not voided or fully paid, it shows up.
Foreign currency documents now lock in their base amounts at creation using a precise largest-remainder algorithm, so line items always sum exactly to the document total — no rounding surprises. Your AR/AP reports stay consistent regardless of exchange rate fluctuations, and FX gains and losses are tracked accurately from the moment a document is created.
New demo users now land directly in a "Welcome to Balances" conversation with the AI assistant. The welcome message has been rewritten to explain the sandbox nature of the demo and encourage exploration, making it clearer that you can try anything without consequences.
When the AI assistant proposes creating documents, it now uses numbered lists ("Here's what I'll create: 1. Invoice for Acme Corp...") instead of checkboxes — making it obvious these are proposals waiting for your approval, not already-completed actions.
Two big additions in one release. First: PDF export for all financial reports. Profit & Loss, Balance Sheet, Cash Flow Statement, Statement of Equity, and Trial Balance can all be exported as professionally formatted PDFs with your company name, timestamp, and timezone. Great for sending to your accountant or keeping clean records. Second: recurring invoices got a complete overhaul. We replaced the old confusing status system with three intuitive states — Active, Paused, and Completed — and simplified scheduling to just: start date, frequency, and stop condition.
When voiding a document, you can now choose whether the reversal takes effect on the original transaction date or today's date. If the original date falls within a locked accounting period, the system automatically selects "Today's Date" for you. This keeps your locked periods clean while giving you the flexibility to control when voids hit your books.
Documents with fractional quantities and very low unit prices (e.g., 1,000 units at $0.003) now post smoothly. We improved precision handling throughout the calculation chain to cover these edge cases.
Disconnected Plaid accounts now clearly show "Disconnected" instead of being confused with "Manual Entry" accounts. A "Reconnect to Plaid" button appears right on the account, so you know exactly what happened and can fix it in one click.
Improved error recovery: if your browser session gets out of sync with the server (e.g., after a deployment), you'll be gracefully redirected to the login page.
A big release with several improvements: Account posting guardrails: Accounts Receivable, Accounts Payable, and Opening Balance Equity are now blocked from direct journal entries — they require proper document workflows. Sensitive accounts like Retained Earnings and FX clearing accounts show a helpful warning tooltip. Foreign currency opening balances: When setting up a foreign currency bank account, you can now specify the exchange rate directly in the opening balance wizard. Balance Sheet FX revaluation: A new checkbox on the Balance Sheet report lets you include or exclude FX revaluation adjustments.
Demo company creation is significantly faster thanks to a large reduction in database round-trips. We also fixed an issue where duplicate activity events appeared and increased table row sizes across the app for better readability.
New demo users now see the AI Agent panel automatically on first visit with an updated banner: "Try anything! Sample data, reset anytime." We also tightened input validation across all amount fields for extra safety.
Balances.ai now handles prepayments properly. When a customer pays before their invoice is posted, the payment goes to a dedicated Customer Prepayments liability account. Same logic for vendors — early payments land in a Vendor Prepayments asset account. When the corresponding document posts, clearing entries are created automatically.
Payment lists now show much more context: the documents included in each payment, document count, and currency. Payment allocation details show the document date and contact name. Auto-generated document numbers now use clear prefixes like EXPENSE-123 and DEPOSIT-123.
The AI assistant can now post, void, and delete journal entries via natural language, and handle the full reimbursement workflow — submit, recall, approve, reject, and void. It understands the difference between immediate documents and accrual documents, applying the correct state transitions for each.
When matching bank transactions to documents, the document list is now sortable by Relevance, Total Amount, or Balance Due — so you can quickly find the right match. The AI assistant also handles multi-step operations more reliably now.
The Money Feed has been rebranded to the Assistant with a new tagline: "Ready for your approval." Draft documents now have a "Post" button that posts immediately — no extra confirmation step needed. When you have a batch of drafts, "Post All" handles them in one click with a smooth animation.
All dates across the entire app now display in a consistent, human-friendly format: "Dec 3, 2025" instead of "12/03/2025". This change spans 31+ components — document lists, bank transaction cards, the Assistant, all financial reports, and opening balances.
Comprehensive new filter and sort options across the app: document lists support contact name and amount range filters, contact lists are sortable by name/email/status, payments can filter by source type and status, and journal entries have a dedicated status filter.
The AI assistant now skips redundant questions and goes straight to previewing the document it's about to create. Smart defaults kick in automatically: dates default to the 1st of the month, due dates use Net 30, and accounts are pre-selected based on context.
Attach files to invoices, bills, deposits, expenses, journal entries, and reimbursements. Supported formats include PDFs, images, Office documents, CSVs, and text files — up to 10 MB each. You can preview, download, and delete attachments right from the document drawer.
The bank transaction matching interface got a complete visual redesign. Transactions now show side-by-side with their proposed matches — you can see the contact name, document number, outstanding balance, and due date at a glance. Color-coded action labels with confidence percentages help you decide quickly whether to accept, review, or skip.
Posted opening balances can now be reopened for corrections — the system requires you to void related payments first to maintain ledger integrity. We also added double-click prevention on all form buttons across the app to prevent accidental duplicate submissions.
Several quality-of-life improvements: void date selection on journal entries, bank account deactivation from the details drawer, opening balance editing within the setup wizard, journal entry list actions, Trial Balance P&L fix, and dashboard cleanup for inactive accounts.
A comprehensive overhaul of destructive actions across the app. You can no longer accidentally void a document that has active payments — you must delete the payments first, and the UI explains why. Every delete and void action now has a clear confirmation dialog explaining exactly what will happen.
Have questions or feedback? Reach out to us at hello@balances.ai